{"version":3,"file":"static/js/main.fc44fdf9.js","mappings":"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,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,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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AE59L,UAAW,aAAc49L,SAAU,+BACrC,CAAE59L,UAAW,QAAS49L,SAAU,0BAChC,CAAE59L,UAAW,QAAS49L,SAAU,0BAChC,CAAE59L,UAAW,OAAQ49L,SAAU,qCAE/B8mG,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,CACP39D,KAAMs9D,GACNzkS,WAAY0kS,IAGxB,EACAE,EAAmBG,SAAW,SAAU53S,GACpC,IAAIooC,EAAO7jC,KAAKmzS,iBAEhB,OADanzS,KAAKszS,eAAezvQ,EAAMpoC,EAE3C,EACAy3S,EAAmBI,eAAiB,SAAUzvQ,EAAMpoC,GAChDuE,KAAKgzS,YAAcnvQ,EAAKuvQ,UAAU9kS,WAClCtO,KAAK+yS,WAAalvQ,EAAKuvQ,UAAU39D,KACjCz1O,KAAKuzS,YAAc5mS,SAASS,cAAc,OAC1CpN,KAAKuzS,YAAYtmS,UAAYxR,EAC7BuE,KAAKwzS,gBACLxzS,KAAKyzS,iBACLzzS,KAAK0zS,iBACL,IAAIC,EAAe3zS,KAAKuzS,YAAYtmS,UAEpC,OADAjN,KAAKktM,gBACEymG,EAAa9hS,QAAQ,QAAS,IACzC,EACAqhS,EAAmBhmG,cAAgB,WAG/B,IADA,IAAIv+L,EAAQ3O,KAAKuzS,YAAY1vS,SACpBg0B,EAAI,EAAGA,EAAIlpB,EAAMhL,OAAQk0B,IAE9B,IADA,IAAItpB,EAAYI,EAAM4I,SAASsgB,EAAE/7B,WAAY,KAAKwS,WACzCzJ,EAAI,EAAGA,EAAI0J,EAAU5K,OAAQkB,IAClC7E,KAAKuzS,YAAY1vS,SAAS0T,SAASsgB,EAAE/7B,WAAY,KAAKynH,gBAAgBh1G,EAAUgJ,SAAS1S,EAAE/I,WAAY,KAAK83S,UAGxH,EACAV,EAAmBM,cAAgB,WAC/B,IAAIhmS,EAAWxN,KAAKuzS,YAAY1lS,iBAAiB7N,KAAK+yS,WAAW5yR,KAAK,MAClE3S,EAAS7J,OAAS,GAClB6J,EAASxP,SAAQ,SAAUd,GACvB2kH,GAAO3kH,EACX,GAKR,EACAg2S,EAAmBO,eAAiB,WAChC,IAAIjmS,EAAWxN,KAAKuzS,YAAY1lS,iBAAiB,IAAMolS,GAAS9yR,KAAK,OAAS,KAC1E3S,EAAS7J,OAAS,GAClB6J,EAASxP,SAAQ,SAAUd,GACvB+1S,GAASj1S,SAAQ,SAAU8Y,GACnB5Z,EAAQ22S,aAAa/8R,IACrB5Z,EAAQqmH,gBAAgBzsG,EAEhC,GACJ,GAKR,EACAo8R,EAAmBQ,eAAiB,WAChC,IAAI5tS,EAAQ9F,KAEZA,KAAKgzS,YAAYh1S,SAAQ,SAAU6lC,EAAMj1B,GACrC,IAAIpB,EAAW1H,EAAMytS,YAAY1lS,iBAAiBg2B,EAAKsoK,UACnD3+L,EAAS7J,OAAS,GAClB6J,EAASxP,SAAQ,SAAUd,GACvBA,EAAQqmH,gBAAgB1/E,EAAKt1B,UACjC,GAER,GACJ,EACO2kS,CACX,CA7EwC,GCjGjC,SAASY,GAAkB1mS,EAAeizF,EAAKvgG,EAAM5C,EAAS62S,EAAS11H,GAC1E,IAAI7iK,EAAQte,EACZ,GAAIA,EAAQwP,UAAY2zF,EAAK,CACzB,IAAI2zM,EAAa7vO,GAAS,gBAAiBjnE,GAC3Cse,EAAQpO,EAAc,QAAS,CAAEyJ,MAAO,CAAE,KAAQ/W,KAElD,IADA,IAAI4Q,EAAQ,CAAC,SAAU,WAAY,QAAS,gBAAiB,MACpD9B,EAAQ,EAAGR,EAAMlR,EAAQoR,WAAW3K,OAAQiL,EAAQR,EAAKQ,KACH,IAAvD8B,EAAMxB,QAAQhS,EAAQoR,WAAWM,GAAOG,WACxCyM,EAAMzE,aAAa7Z,EAAQoR,WAAWM,GAAOG,SAAU7R,EAAQoR,WAAWM,GAAOI,WAGzFV,GAAWpR,EAAS,CAAE,MAAS62S,IAC/B72S,EAAQ+Z,YAAYuE,GACpB+oD,GAAS,gBAAiByvO,EAAYx4R,GACtCy3P,GAAa/1Q,EAAS,gBAC1B,CACA,OAAOse,CACX,CAQO,SAASy4R,GAAY/2S,GAGxB,IAFA,IAAIgG,EACAgxS,EAAYh3S,EAAQoQ,WACfzI,EAAI,EAAGA,EAAIqvS,EAAUvwS,OAAQkB,IAElC,GAAsB,KADtB3B,EAAOgxS,EAAUrvS,IACRiK,SACL,OAAO5L,EAGf,OAAO,IACX,CAgGO,SAASixS,GAAmBtoS,EAAGuoS,GAClC,GAAIA,EAAY,CACZ,IAAInlB,EAAUtiR,SAAS0nS,YAAY,eACnCplB,EAAQqlB,UAAUzoS,EAAE/L,MAAM,GAAO,GACjCs0S,EAAW9lL,cAAc2gK,EAC7B,CACJ,CCxJA,IA0BWslB,GA1BPxwS,GAAyC,WACzC,IAAIC,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBpI,OAAOuI,gBAClB,CAAEC,UAAW,cAAgBzH,OAAS,SAAUsH,EAAGC,GAAKD,EAAEG,UAAYF,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAInD,KAAKmD,EAAOA,EAAEhG,eAAe6C,KAAIkD,EAAElD,GAAKmD,EAAEnD,GAAI,EACtEiD,EAAcC,EAAGC,EAC5B,EACA,OAAO,SAAUD,EAAGC,GAEhB,SAASK,IAAOvE,KAAKwE,YAAcP,CAAG,CADtCD,EAAcC,EAAGC,GAEjBD,EAAEpI,UAAkB,OAANqI,EAAatI,OAAOqE,OAAOiE,IAAMK,EAAG1I,UAAYqI,EAAErI,UAAW,IAAI0I,EACnF,CACJ,CAZ6C,GAazCwxR,GAA0C,SAAUC,EAAYl5R,EAAQmB,EAAKsC,GAC7E,IAA2H0D,EAAvH+Q,EAAIjQ,UAAUpB,OAAQshD,EAAIjwC,EAAI,EAAIlY,EAAkB,OAATyD,EAAgBA,EAAO3E,OAAO4E,yBAAyB1D,EAAQmB,GAAOsC,EACrH,GAAuB,kBAAZoxI,SAAoD,oBAArBA,QAAQskJ,SAAyBhxO,EAAI0sF,QAAQskJ,SAASD,EAAYl5R,EAAQmB,EAAKsC,QACpH,IAAK,IAAIsE,EAAImxR,EAAWryR,OAAS,EAAGkB,GAAK,EAAGA,KAASZ,EAAI+xR,EAAWnxR,MAAIogD,GAAKjwC,EAAI,EAAI/Q,EAAEghD,GAAKjwC,EAAI,EAAI/Q,EAAEnH,EAAQmB,EAAKgnD,GAAKhhD,EAAEnH,EAAQmB,KAASgnD,GAChJ,OAAOjwC,EAAI,GAAKiwC,GAAKrpD,OAAOsD,eAAepC,EAAQmB,EAAKgnD,GAAIA,CAChE,GASA,SAAWsvP,GAIPA,EAAmB,KAAI,OAIvBA,EAAoB,MAAI,QAIxBA,EAAkB,IAAI,MAItBA,EAAqB,OAAI,QAC5B,CAjBD,CAiBGA,KAAiBA,GAAe,CAAC,IACR,IAAI9sD,GAAzB,ICzCH+sD,GACAC,GACAv3S,GACAw3S,GCFAA,GACAC,GFwCAC,GACK,QADLA,GAEQ,QAFRA,GAGS,YAHTA,GAIS,aAcTC,GAAwB,SAAUhvS,GAQlC,SAASgvS,EAAOt4S,EAASW,GACrB,OAAO2I,EAAO9J,KAAKiE,KAAMzD,EAASW,IAAY8C,IAClD,CAiSA,OA1SA+D,GAAU8wS,EAAQhvS,GAUlBgvS,EAAOh5S,UAAU0iS,UAAY,WACzB,EAQJsW,EAAOh5S,UAAUmP,OAAS,WACtBhL,KAAK+nE,aACL/nE,KAAK80S,mBAAqBnd,GAAa33R,KAAK9C,QAAS,CAAEivM,SAAU,IAAMyoG,KACvE50S,KAAKm/R,gBACT,EACA0V,EAAOh5S,UAAUksE,WAAa,WAO1B,GANI/nE,KAAK+0S,UACL5lB,GAAS,CAACnvR,KAAK9C,SAAU8C,KAAK+0S,SAASljS,QAAQ,OAAQ,KAAKC,OAAOQ,MAAM,MAEzEtS,KAAKmkJ,WACLnkJ,KAAK9C,QAAQ2rE,UAAU31C,IAAI0hR,KAE1BhhC,MAAeA,MAAuC,iBAAzB5zQ,KAAK4yR,gBAAqC,CACxE,GAAI5yR,KAAKqN,QAAS,CACd,IAAI2nS,EAAeh1S,KAAKi1S,oBAAuB/B,GAAmBG,SAASrzS,KAAKqN,SAAWrN,KAAKqN,QAChGrN,KAAK9C,QAAQ+P,UAAY+nS,CAC7B,CACAh1S,KAAKk1S,YACT,CACIl1S,KAAKg+R,WACLh+R,KAAK9C,QAAQ2rE,UAAU31C,IAAI0hR,IAE3B50S,KAAK6pH,SACL7pH,KAAKm1S,cAAcn1S,KAAK6pH,UAGxB7pH,KAAK8pS,YAEb,EACA+K,EAAOh5S,UAAUs5S,cAAgB,SAAUtrL,GACvC7pH,KAAK9C,QAAQ2sH,SAAWA,CAC5B,EACAgrL,EAAOh5S,UAAUq5S,WAAa,WAC1B,GAAIl1S,KAAKo1S,QAAS,CACd,IAAI14N,EAAO18E,KAAKoN,cAAc,OAAQ,CAAEgiE,UAAW,cAAgBpvE,KAAKo1S,UACnEp1S,KAAK9C,QAAQm7D,YAAYvmD,QAI1B4qE,EAAK7T,UAAU31C,IAAI,UAAYlzB,KAAKq1S,aAAa5nS,eACvB,QAAtBzN,KAAKq1S,cAAgD,WAAtBr1S,KAAKq1S,cACpCr1S,KAAK9C,QAAQ2rE,UAAU31C,IAAI,KAAOlzB,KAAKq1S,aAAa5nS,cAAgB,cALxEzN,KAAK9C,QAAQ2rE,UAAU31C,IAAI0hR,IAQ/B,IAAI1xS,EAAOlD,KAAK9C,QAAQoQ,WAAW,IAC/BpK,GAA+B,SAAtBlD,KAAKq1S,cAAiD,QAAtBr1S,KAAKq1S,aAI9Cr1S,KAAK9C,QAAQ+Z,YAAYylE,GAHzB18E,KAAK9C,QAAQghK,aAAaxhF,EAAMx5E,EAKxC,CACJ,EACA2xS,EAAOh5S,UAAUiuS,WAAa,WACtB9pS,KAAKs1S,UACLnnB,GAAaj7P,IAAIlzB,KAAK9C,QAAS,QAAS8C,KAAKu1S,gBAAiBv1S,KAEtE,EACA60S,EAAOh5S,UAAU25S,aAAe,WACxBx1S,KAAKs1S,UACLnnB,GAAa9pN,OAAOrkE,KAAK9C,QAAS,QAAS8C,KAAKu1S,gBAExD,EACAV,EAAOh5S,UAAU05S,gBAAkB,WAC3Bv1S,KAAK9C,QAAQ2rE,UAAUsJ,SAAS,YAChCnyE,KAAK9C,QAAQ2rE,UAAUxE,OAAO,YAG9BrkE,KAAK9C,QAAQ2rE,UAAU31C,IAAI,WAEnC,EAMA2hR,EAAOh5S,UAAUsM,QAAU,WACvB,IAAI0gE,EAAY,CAAC+rO,GAAsBA,GAAkBA,GAAsB,YAAa,SAAU,WAClG,YAAa,SAAU,YAAa,UAAW,WAAY,WAAY,UACvE,iBAAkB,qBAClB50S,KAAK+0S,WACLlsO,EAAYA,EAAU7rE,OAAOgD,KAAK+0S,SAASziS,MAAM,OAErDzM,EAAOhK,UAAUsM,QAAQpM,KAAKiE,MAC9BwvR,GAAY,CAACxvR,KAAK9C,SAAU2rE,GACvB7oE,KAAK9C,QAAQ8uH,aAAa,UAC3BhsH,KAAK9C,QAAQqmH,gBAAgB,SAE7BvjH,KAAK6pH,UACL7pH,KAAK9C,QAAQqmH,gBAAgB,YAE7BvjH,KAAKqN,UACLrN,KAAK9C,QAAQ+P,UAAYjN,KAAK9C,QAAQ+P,UAAU4E,QAAQ7R,KAAKqN,QAAS,KAE1E,IAAIqvE,EAAO18E,KAAK9C,QAAQ8P,cAAc,mBAClC0vE,GACAmlC,GAAOnlC,GAEX18E,KAAKw1S,eACDvd,IACAj4R,KAAK80S,oBAEb,EAOAD,EAAOh5S,UAAU+2R,cAAgB,WAC7B,MAAO,KACX,EAOAiiB,EAAOh5S,UAAUgkS,eAAiB,WAC9B,OAAO7/R,KAAKmgS,aAAa,GAC7B,EAOA0U,EAAOrV,OAAS,WACZ,EAUJqV,EAAOh5S,UAAUy2R,kBAAoB,SAAUmF,EAASC,GAEpD,IADA,IAAIh7M,EAAO18E,KAAK9C,QAAQ8P,cAAc,mBAC7BmO,EAAK,EAAGpV,EAAKnK,OAAOwB,KAAKq6R,GAAUt8Q,EAAKpV,EAAGpC,OAAQwX,IAAM,CAE9D,OADWpV,EAAGoV,IAEV,IAAK,YACGs8Q,EAAQtzI,UACRnkJ,KAAK9C,QAAQ2rE,UAAU31C,IAAI0hR,IAG3B50S,KAAK9C,QAAQ2rE,UAAUxE,OAAOuwO,IAElC,MACJ,IAAK,WACD50S,KAAKm1S,cAAc1d,EAAQ5tK,UAC3B,MACJ,IAAK,UACGntC,EACI+6M,EAAQ2d,SACR14N,EAAKtN,UAAY,cAAgBqoN,EAAQ2d,QACrCp1S,KAAK9C,QAAQm7D,YAAYvmD,SACC,SAAtB9R,KAAKq1S,aACL34N,EAAK7T,UAAU31C,IAAI,eAGnBwpD,EAAK7T,UAAU31C,IAAI,kBAK3B2uF,GAAOnlC,GAIX18E,KAAKk1S,aAET,MAEJ,IAAK,eACD1lB,GAAY,CAACxvR,KAAK9C,SAAU,CAAC,iBAAkB,uBAC/Cw/E,EAAO18E,KAAK9C,QAAQ8P,cAAc,qBAE9B60G,GAAOnlC,GAEX18E,KAAKk1S,aACL,MACJ,IAAK,WACGxd,EAAQqd,UACRvlB,GAAY,CAACxvR,KAAK9C,SAAUw6R,EAAQqd,SAASziS,MAAM,MAEnDmlR,EAAQsd,UACR5lB,GAAS,CAACnvR,KAAK9C,SAAUu6R,EAAQsd,SAASljS,QAAQ,OAAQ,KAAKC,OAAOQ,MAAM,MAEhF,MACJ,IAAK,YACGmlR,EAAQuG,UACRh+R,KAAK9C,QAAQ2rE,UAAU31C,IAAI0hR,IAG3B50S,KAAK9C,QAAQ2rE,UAAUxE,OAAOuwO,IAElC,MACJ,IAAK,UACUX,GAAYj0S,KAAK9C,UAExB8C,KAAK9C,QAAQ2rE,UAAUxE,OAAOuwO,MAE7BhhC,MAAeA,OAAe5zQ,KAAK84Q,kBAA6C,iBAAzB94Q,KAAK4yR,mBACzD5yR,KAAKi1S,sBACLxd,EAAQpqR,QAAU6lS,GAAmBG,SAAS5b,EAAQpqR,UAE1DrN,KAAK9C,QAAQ+P,UAAYwqR,EAAQpqR,QACjCrN,KAAKk1S,cAET,MAEJ,IAAK,WACGzd,EAAQ6d,SACRnnB,GAAaj7P,IAAIlzB,KAAK9C,QAAS,QAAS8C,KAAKu1S,gBAAiBv1S,OAG9DmuR,GAAa9pN,OAAOrkE,KAAK9C,QAAS,QAAS8C,KAAKu1S,iBAChD/lB,GAAY,CAACxvR,KAAK9C,SAAU,CAAC,cAI7C,CACJ,EAQA23S,EAAOh5S,UAAUykI,MAAQ,WACrBtgI,KAAK9C,QAAQojI,OACjB,EAQAu0K,EAAOh5S,UAAU45S,QAAU,WACvBz1S,KAAK9C,QAAQm1E,OACjB,EACA0jN,GAAW,CACPnB,GAAS,SACVigB,EAAOh5S,UAAW,oBAAgB,GACrCk6R,GAAW,CACPnB,GAAS,KACVigB,EAAOh5S,UAAW,eAAW,GAChCk6R,GAAW,CACPnB,IAAS,IACVigB,EAAOh5S,UAAW,gBAAY,GACjCk6R,GAAW,CACPnB,IAAS,IACVigB,EAAOh5S,UAAW,iBAAa,GAClCk6R,GAAW,CACPnB,GAAS,KACVigB,EAAOh5S,UAAW,gBAAY,GACjCk6R,GAAW,CACPnB,GAAS,KACVigB,EAAOh5S,UAAW,eAAW,GAChCk6R,GAAW,CACPnB,IAAS,IACVigB,EAAOh5S,UAAW,gBAAY,GACjCk6R,GAAW,CACPnB,MACDigB,EAAOh5S,UAAW,cAAU,GAC/Bk6R,GAAW,CACPnB,IAAS,IACVigB,EAAOh5S,UAAW,2BAAuB,GAC5Ck6R,GAAW,CACPxnK,MACDsmL,EAAOh5S,UAAW,eAAW,GAChCg5S,EAAS9e,GAAW,CAChBX,IACDyf,EAEP,CA5S4B,CA4S1BlwK,ICpWE+wK,IAAc,EAuCX,SAASC,GAAkBC,EAAgBC,EAAWC,EAAWtM,EAAeuM,GAInF,GAHAtB,QAAYn0S,EACZm0S,GAAYsB,EACZL,KAAclM,GACToM,EACD,MAAO,CAAE5qO,KAAM,EAAGC,IAAK,GAEtB4qO,IACDA,EAAY,QAEXC,IACDA,EAAY,OAEhBpB,GAAiBkB,EAAe3pP,cAChC/uD,GAAU04S,EAEV,OA2BJ,SAAwBzxL,EAAMC,EAAMlvG,GAEhC,OADAs/R,GAAct3S,GAAQ0tE,wBACdw5C,EAAOD,GACX,IAAK,YACD6xL,GAAQC,KAAqB/gS,GAC7BghS,GAAQC,KAAiBjhS,GACzB,MACJ,IAAK,WACD8gS,GAAQI,KAAmBlhS,GAC3BghS,GAAQC,KAAiBjhS,GACzB,MACJ,IAAK,eACD8gS,GAAQC,KAAqB/gS,GAC7BghS,GAAQG,KAAqBnhS,GAC7B,MACJ,IAAK,cACD8gS,GAAQI,KAAmBlhS,GAC3BghS,GAAQG,KAAqBnhS,GAC7B,MACJ,IAAK,aACD8gS,GAAQM,KAAkBphS,GAC1BghS,GAAQG,KAAqBnhS,GAC7B,MACJ,IAAK,eACD8gS,GAAQC,KAAqB/gS,GAC7BghS,GAAQK,KAAoBrhS,GAC5B,MACJ,IAAK,cACD8gS,GAAQI,KAAmBlhS,GAC3BghS,GAAQK,KAAoBrhS,GAC5B,MACJ,IAAK,aACD8gS,GAAQM,KAAkBphS,GAC1BghS,GAAQK,KAAoBrhS,GAC5B,MACJ,QAEI8gS,GAAQM,KAAkBphS,GAC1BghS,GAAQC,KAAiBjhS,GAIjC,OADAhY,GAAU,KACHgY,CACX,CAtEWrB,CAAegiS,EAAUpoS,cAAeqoS,EAAUroS,cAD/C,CAAEu9D,KAAM,EAAGC,IAAK,GAE9B,CAOA,SAAS+qO,GAAQv6S,EAAOyZ,GACpBA,EAAI81D,KAAOvvE,CACf,CAOA,SAASy6S,GAAQz6S,EAAOyZ,GACpBA,EAAI+1D,IAAMxvE,CACd,CAuDA,SAAS+6S,KACL,OAAO9B,GAAe3nS,gBAAgBw6I,WAAamtJ,GAAe93N,KAAK2qE,SAC3E,CAIA,SAASkvJ,KACL,OAAO/B,GAAe3nS,gBAAgBskH,YAAcqjL,GAAe93N,KAAKy0C,UAC5E,CAIA,SAASklL,KACL,OAAOb,GAAclB,GAAYzvG,OAASyvG,GAAYzvG,OAASyxG,IACnE,CAIA,SAASH,KACL,OAAOF,KAAmB3B,GAAYrzO,OAAS,CACnD,CAIA,SAASg1O,KACL,OAAOT,GAAclB,GAAYvpO,IAAMupO,GAAYvpO,IAAMurO,IAC7D,CAIA,SAASF,KACL,OAAO9B,GAAYxpO,KAAOyrO,IAC9B,CAIA,SAASL,KACL,IAAIM,EAAcx5S,IAAWA,GAAQ2rE,UAAUsJ,SAAS,wBAA4BsiO,GAAYA,GAAUvzO,MAAQ,EAC7GuzO,IAAcD,GAAYtzO,OAASuzO,GAAUvzO,MAASuzO,GAAUvzO,MAAQ,EAC7E,OAAOszO,GAAYj0G,MAAQk2G,KAAsBC,CACrD,CAIA,SAAST,KACL,OAAOK,KAAoB9B,GAAYtzO,MAAQ,CACnD,CCxKO,SAASy1O,GAAIz5S,EAAS05S,EAAiB7qG,EAAM/3L,GAGhD,QAFwB,IAApB4iS,IAA8BA,EAAkB,WACvC,IAAT7qG,IAAmBA,EAAO,CAAEtwJ,GAAG,EAAOikH,GAAG,KACxCqsC,EAAKrsC,IAAMqsC,EAAKtwJ,EACjB,MAAO,CAAEuvB,KAAM,EAAGC,IAAK,GAE3B,IAAI4rO,EAAW35S,EAAQ0tE,wBAMvB,GALA+pO,GAAkBiC,EAClBlC,GAAiBx3S,EAAQ+uD,cACpBj4C,IACDA,EAAW2hS,GAAkBz4S,EAAS,OAAQ,QAE9C6uM,EAAKtwJ,EAAG,CACR,IAAIq7P,EAAiBnC,GAAkBoC,KAA4BC,KAC/DC,EAAgBC,KAChBC,EAAiBC,KACjBC,EAAWJ,EAAgBjjS,EAASg3D,KACpCssO,EAAYtjS,EAASg3D,KAAO6rO,EAAS31O,MAAQi2O,EAC7CN,EAAS31O,MAAQ41O,EAEb9iS,EAASg3D,KADTqsO,EAAW,GAAKC,GAAa,EACbH,EAAiBN,EAAS31O,MAErCo2O,EAAY,GAAKD,GAAY,EAClBJ,EAGAI,EAAWC,EAAaH,EAAiBN,EAAS31O,MAAS+1O,EAG1EI,EAAW,EAChBrjS,EAASg3D,MAAQqsO,EAEZC,EAAY,IACjBtjS,EAASg3D,MAAQssO,EAEzB,CACA,GAAIvrG,EAAKrsC,EAAG,CACR,IAAI63I,EAAkB5C,GAAkB6C,KAA6BC,KACjEC,EAAeC,KACfC,EAAkBC,KAClBC,EAAUJ,EAAe1jS,EAASi3D,IAClC8sO,EAAa/jS,EAASi3D,IAAM4rO,EAAS11O,OAASy2O,EAC9Cf,EAAS11O,OAASo2O,EAEdvjS,EAASi3D,IADT6sO,EAAU,GAAKC,GAAc,EACdH,EAAkBf,EAAS11O,OAErC42O,EAAa,GAAKD,GAAW,EACnBJ,EAGAI,EAAUC,EAAcH,EAAkBf,EAAS11O,OAAUu2O,EAG3EI,EAAU,EACf9jS,EAASi3D,KAAO6sO,EAEXC,EAAa,IAClB/jS,EAASi3D,KAAO8sO,EAExB,CACA,OAAO/jS,CACX,CASO,SAASgkS,GAAU96S,EAAS05S,EAAiBznR,EAAGnK,QAC3B,IAApB4xR,IAA8BA,EAAkB,MACpD,IAAIqB,EAAatC,GAAkBz4S,EAAS,OAAQ,OAChDiyB,IACA8oR,EAAWjtO,KAAO77C,GAElBnK,IACAizR,EAAWhtO,IAAMjmD,GAErB,IAAI/hB,EAAO,GACX0xS,GAAkBiC,EAClBlC,GAAiBx3S,EAAQ+uD,cACzB,IAAIuoP,EAAct3S,EAAQ0tE,wBACtBK,EAAMgtO,EAAWhtO,IACjBD,EAAOitO,EAAWjtO,KAClBu1H,EAAQ03G,EAAWjtO,KAAOwpO,EAAYtzO,MAItCg3O,EAAQC,GAAgBltO,EAHfgtO,EAAWhtO,IAAMupO,EAAYrzO,QAItCi3O,EAAQC,GAAiBrtO,EAAMu1H,GAanC,OAZI23G,EAAMI,SACNr1S,EAAKF,KAAK,OAEVq1S,EAAMG,WACNt1S,EAAKF,KAAK,SAEVq1S,EAAMI,UACNv1S,EAAKF,KAAK,QAEVm1S,EAAMO,YACNx1S,EAAKF,KAAK,UAEPE,CACX,CAcO,SAASy1S,GAAKx7S,EAASJ,EAAQ+3D,EAASC,EAAS+gP,EAAWC,EAAWc,EAE9E7qG,EAAM2pG,GAGF,QAFwB,IAApBkB,IAA8BA,EAAkB,WACvC,IAAT7qG,IAAmBA,EAAO,CAAEtwJ,GAAG,EAAMikH,GAAG,IACvC5iK,GAAWI,GAAY24S,GAAcC,IAAe/pG,EAAKtwJ,GAAMswJ,EAAKrsC,GAAzE,CAGA,IAWI80I,EAXAmE,EAAQ,CAAEC,GAAI,KACdC,GAAI,KACJC,GAAI,KACJC,GAAI,MACLC,EAAQ,CACPJ,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,MAIR,GAAiD,SAA7C5xS,OAAOghE,iBAAiBjrE,GAASymH,QAAoB,CACrD,IAAIs1L,EAAgB/7S,EAAQgU,MAAMyrE,WAClCz/E,EAAQgU,MAAMyrE,WAAa,SAC3Bz/E,EAAQgU,MAAMyyG,QAAU,QACxB6wL,EAAct3S,EAAQ0tE,wBACtB1tE,EAAQgU,MAAMgoS,eAAe,WAC7Bh8S,EAAQgU,MAAMyrE,WAAas8N,CAC/B,MAEIzE,EAAct3S,EAAQ0tE,wBAE1B,IAAI11D,EAAM,CACNivG,KAAM0xL,EAAWzxL,KAAM0xL,EAAWjhP,QAASA,EAASC,QAASA,EAAS9gD,SAAU,CAAEg3D,KAAM,EAAGC,IAAK,IAEpG0pO,GAAkBiC,EAClBlC,GAAiB53S,EAAOmvD,cAwC5B,SAA2BnvD,EAAQq8S,EAAMjkS,EAAKwgS,EAAalB,GACvDt/R,EAAIlB,SAAW2hS,GAAkB74S,EAAQoY,EAAIivG,KAAMjvG,EAAIkvG,KAAMsxL,EAAalB,GAC1E2E,EAAKP,GAAKjD,GAAkB74S,EAAQ,OAAQ,MAAO44S,EAAalB,GAChE2E,EAAKN,GAAKlD,GAAkB74S,EAAQ,QAAS,MAAO44S,EAAalB,GACjE2E,EAAKJ,GAAKpD,GAAkB74S,EAAQ,OAAQ,SAAU44S,EAAalB,GACnE2E,EAAKL,GAAKnD,GAAkB74S,EAAQ,QAAS,SAAU44S,EAAalB,EACxE,CA7CI4E,CAAkBt8S,EAAQ67S,EAAOzjS,EAAKwgS,EAAalB,GACnD6E,GAAYL,EAAO9jS,EAAKs/R,GACpBzoG,EAAKtwJ,GACL69P,GAASx8S,EAAQk8S,EAAOL,EAAOzjS,EAAKs/R,GAAa,GAEjDzoG,EAAKrsC,GAAKi5I,EAAMC,GAAG3tO,KAAO,GAC1BsuO,GAAQz8S,EAAQk8S,EAAOL,EAAOzjS,EAAKs/R,GAAa,GAWxD,SAAkBt3S,EAASgY,EAAKs/R,GAE5B,IAAIxpO,EAAO,EAAGC,EAAM,EACpB,GAA4B,MAAxB/tE,EAAQ66P,eACgD,aAApD5vL,iBAAiBjrE,EAAQ66P,cAAc/jP,UACa,aAApDm0D,iBAAiBjrE,EAAQ66P,cAAc/jP,UAA0B,CACrE,IAAI/Q,EAAO0yS,GAAkBz4S,EAAQ66P,aAAc,OAAQ,OAAO,EAAOy8C,GACzExpO,EAAO/nE,EAAK+nE,KACZC,EAAMhoE,EAAKgoE,GACf,CACA/tE,EAAQgU,MAAM+5D,IAAO/1D,EAAIlB,SAASi3D,IAAM/1D,EAAI4/C,QAAWmW,EAAQ,KAC/D/tE,EAAQgU,MAAM85D,KAAQ91D,EAAIlB,SAASg3D,KAAO91D,EAAI2/C,QAAWmW,EAAS,IACtE,CArBIwuO,CAASt8S,EAASgY,EAAKs/R,EArCvB,CAsCJ,CA4CA,SAAS6E,GAAYI,EAASvkS,EAAKs/R,GAC/BiF,EAAQb,GAAK,CAAE3tO,IAAK/1D,EAAIlB,SAASi3D,IAAM/1D,EAAI4/C,QAASkW,KAAM91D,EAAIlB,SAASg3D,KAAO91D,EAAI2/C,SAClF4kP,EAAQZ,GAAK,CAAE5tO,IAAKwuO,EAAQb,GAAG3tO,IAAKD,KAAMyuO,EAAQb,GAAG5tO,KAAOwpO,EAAYtzO,OACxEu4O,EAAQX,GAAK,CAAE7tO,IAAKwuO,EAAQb,GAAG3tO,IAAMupO,EAAYrzO,OAC7C6J,KAAMyuO,EAAQb,GAAG5tO,MACrByuO,EAAQV,GAAK,CAAE9tO,IAAKwuO,EAAQb,GAAG3tO,IAAMupO,EAAYrzO,OAC7C6J,KAAMyuO,EAAQb,GAAG5tO,KAAOwpO,EAAYtzO,MAC5C,CAOA,SAASm3O,GAAiBrtO,EAAMu1H,GAE5B,IAAIi4G,GAAW,EAAOD,GAAY,EAOlC,OANMvtO,EAAOyrO,KAAuBS,OAChCsB,GAAW,GAEXj4G,EAAQ62G,OACRmB,GAAY,GAET,CAAEC,SAAUA,EAAUD,UAAWA,EAC5C,CAWA,SAASe,GAASx8S,EAAQq8S,EAAMR,EAAOzjS,EAAKs/R,EAAakF,GACrD,IAAIC,EAActB,GAAiBc,EAAKP,GAAG5tO,KAAMmuO,EAAKN,GAAG7tO,MACpD2tO,EAAMC,GAAG5tO,KAAOyrO,MAAwBS,OACzCyC,EAAYnB,UAAW,GAEvBG,EAAME,GAAG7tO,KAAOosO,OAChBuC,EAAYpB,WAAY,IAEvBoB,EAAYnB,WAAamB,EAAYpB,YAAgBoB,EAAYnB,UAAYmB,EAAYpB,aACzE,UAAbrjS,EAAIivG,KACJjvG,EAAIivG,KAAO,OAGXjvG,EAAIivG,KAAO,QAEfjvG,EAAI2/C,QAAU3/C,EAAI2/C,QAAU2/O,EAAYtzO,MACxChsD,EAAI2/C,SAAW,EAAI3/C,EAAI2/C,QACvB3/C,EAAIlB,SAAW2hS,GAAkB74S,EAAQoY,EAAIivG,KAAMjvG,EAAIkvG,MAAM,GAC7Di1L,GAAYF,EAAMjkS,EAAKs/R,GACnBkF,GACAJ,GAASx8S,EAAQq8S,EAAMR,EAAOzjS,EAAKs/R,GAAa,GAG5D,CAWA,SAAS+E,GAAQz8S,EAAQq8S,EAAMR,EAAOzjS,EAAKs/R,EAAakF,GACpD,IAAIC,EAAcxB,GAAgBgB,EAAKP,GAAG3tO,IAAKkuO,EAAKL,GAAG7tO,KAClD0tO,EAAMC,GAAG3tO,IAAMurO,MAAuBmB,OACvCgC,EAAYrB,SAAU,GAEtBK,EAAMG,GAAG7tO,KAAO4sO,MAAqB/6S,EAAO8tE,wBAAwBm6H,OAAS59L,OAAOk7G,cACpFs3L,EAAYlB,YAAa,IAExBkB,EAAYrB,UAAYqB,EAAYlB,aAAiBkB,EAAYrB,SAAWqB,EAAYlB,cACxE,QAAbvjS,EAAIkvG,KACJlvG,EAAIkvG,KAAO,SAGXlvG,EAAIkvG,KAAO,MAEflvG,EAAI4/C,QAAU5/C,EAAI4/C,QAAU0/O,EAAYrzO,OACxCjsD,EAAI4/C,SAAW,EAAI5/C,EAAI4/C,QACvB5/C,EAAIlB,SAAW2hS,GAAkB74S,EAAQoY,EAAIivG,KAAMjvG,EAAIkvG,MAAM,EAAOowL,GACpE6E,GAAYF,EAAMjkS,EAAKs/R,GACnBkF,GACAH,GAAQz8S,EAAQq8S,EAAMR,EAAOzjS,EAAKs/R,GAAa,GAG3D,CAOA,SAAS2D,GAAgBltO,EAAK85H,GAE1B,IAAIuzG,GAAU,EAAOG,GAAa,EAOlC,OANKxtO,EAAMurO,KAAsBmB,OAC7BW,GAAU,GAEVvzG,EAAS8yG,OACTY,GAAa,GAEV,CAAEH,QAASA,EAASG,WAAYA,EAC3C,CAIA,SAAS1B,KACL,OAAOpC,GAAgB/pO,wBAAwB1J,KACnD,CAIA,SAASs2O,KACL,OAAO7C,GAAgB/pO,wBAAwBzJ,MACnD,CAIA,SAASy4O,KACL,OAAOjF,GAAgB/pO,wBAAwBI,IACnD,CAIA,SAAS6uO,KACL,OAAOlF,GAAgB/pO,wBAAwBK,GACnD,CAEA,SAAS0sO,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,GAAe3nS,gBAAgBw6I,WAAamtJ,GAAe93N,KAAK2qE,SAC3E,CAIA,SAASkvJ,KAGL,OAAO/B,GAAe3nS,gBAAgBskH,YAAcqjL,GAAe93N,KAAKy0C,UAC5E,CAIA,SAASomL,KACL,OAAOtwS,OAAOk7G,WAClB,CAIA,SAAS20L,KACL,IAAI8C,EAAc3yS,OAAOi7G,WACrB23L,EAAgBptS,SAASI,gBAAgB69D,wBAE7C,OAAOkvO,GAAeA,GADH9mC,GAAkBrmQ,SAASI,iBAAoB,EAAIgtS,EAAc74O,OAExF,CC9ZA,IAAIn9D,GAAyC,WACzC,IAAIC,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBpI,OAAOuI,gBAClB,CAAEC,UAAW,cAAgBzH,OAAS,SAAUsH,EAAGC,GAAKD,EAAEG,UAAYF,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAInD,KAAKmD,EAAOA,EAAEhG,eAAe6C,KAAIkD,EAAElD,GAAKmD,EAAEnD,GAAI,EACtEiD,EAAcC,EAAGC,EAC5B,EACA,OAAO,SAAUD,EAAGC,GAEhB,SAASK,IAAOvE,KAAKwE,YAAcP,CAAG,CADtCD,EAAcC,EAAGC,GAEjBD,EAAEpI,UAAkB,OAANqI,EAAatI,OAAOqE,OAAOiE,IAAMK,EAAG1I,UAAYqI,EAAErI,UAAW,IAAI0I,EACnF,CACJ,CAZ6C,GAazCwxR,GAA0C,SAAUC,EAAYl5R,EAAQmB,EAAKsC,GAC7E,IAA2H0D,EAAvH+Q,EAAIjQ,UAAUpB,OAAQshD,EAAIjwC,EAAI,EAAIlY,EAAkB,OAATyD,EAAgBA,EAAO3E,OAAO4E,yBAAyB1D,EAAQmB,GAAOsC,EACrH,GAAuB,kBAAZoxI,SAAoD,oBAArBA,QAAQskJ,SAAyBhxO,EAAI0sF,QAAQskJ,SAASD,EAAYl5R,EAAQmB,EAAKsC,QACpH,IAAK,IAAIsE,EAAImxR,EAAWryR,OAAS,EAAGkB,GAAK,EAAGA,KAASZ,EAAI+xR,EAAWnxR,MAAIogD,GAAKjwC,EAAI,EAAI/Q,EAAEghD,GAAKjwC,EAAI,EAAI/Q,EAAEnH,EAAQmB,EAAKgnD,GAAKhhD,EAAEnH,EAAQmB,KAASgnD,GAChJ,OAAOjwC,EAAI,GAAKiwC,GAAKrpD,OAAOsD,eAAepC,EAAQmB,EAAKgnD,GAAIA,CAChE,EAYI+0P,GAA8B,SAAUn0S,GAExC,SAASm0S,IACL,OAAkB,OAAXn0S,GAAmBA,EAAOb,MAAMhF,KAAM+E,YAAc/E,IAC/D,CAOA,OAVA+D,GAAUi2S,EAAcn0S,GAIxBkwR,GAAW,CACPnB,GAAS,SACVolB,EAAan+S,UAAW,SAAK,GAChCk6R,GAAW,CACPnB,GAAS,QACVolB,EAAan+S,UAAW,SAAK,GACzBm+S,CACX,CAZkC,CAYhClgB,IAGEmgB,GACM,UADNA,GAEK,QAFLA,GAGM,eAHNA,GAIO,gBAePC,GAAuB,SAAUr0S,GAEjC,SAASq0S,EAAMh9S,EAASX,GACpB,OAAOsJ,EAAO9J,KAAKiE,KAAMzD,EAASW,IAAY8C,IAClD,CAsoBA,OAzoBA+D,GAAUm2S,EAAOr0S,GAYjBq0S,EAAMr+S,UAAUy2R,kBAAoB,SAAUmF,EAASC,GACnD,IAAK,IAAIv8Q,EAAK,EAAGpV,EAAKnK,OAAOwB,KAAKq6R,GAAUt8Q,EAAKpV,EAAGpC,OAAQwX,IAAM,CAE9D,OADWpV,EAAGoV,IAEV,IAAK,QACDq1Q,GAAkBxwR,KAAK9C,QAAS,CAAE,MAAS82Q,GAAWyjB,EAAQv2N,SAC9D,MACJ,IAAK,SACDsvN,GAAkBxwR,KAAK9C,QAAS,CAAE,OAAU82Q,GAAWyjB,EAAQt2N,UAC/D,MACJ,IAAK,SACDqvN,GAAkBxwR,KAAK9C,QAAS,CAAE,OAAUu6R,EAAQpuN,SACpD,MACJ,IAAK,YACDrpE,KAAKm6S,eACL,MACJ,IAAK,WACL,IAAK,WACDn6S,KAAKo6S,kBACL,MACJ,IAAK,UAED,IAAIjrR,EAAIsoQ,EAAQ5iO,QAAU6iO,EAAQ7iO,QAClC70D,KAAK9C,QAAQgU,MAAM85D,MAAQzzD,SAASvX,KAAK9C,QAAQgU,MAAM85D,KAAM,IAAO77C,GAAIrzB,WAAa,KACrF,MACJ,IAAK,UAED,IAAIkpB,EAAIyyQ,EAAQ3iO,QAAU4iO,EAAQ5iO,QAClC90D,KAAK9C,QAAQgU,MAAM+5D,KAAO1zD,SAASvX,KAAK9C,QAAQgU,MAAM+5D,IAAK,IAAOjmD,GAAIlpB,WAAa,KACnF,MACJ,IAAK,UACDkE,KAAKq6S,aACL,MACJ,IAAK,iBAC8B,SAA3B5iB,EAAQ6iB,eACRt6S,KAAKu6S,mBAGLv6S,KAAKw6S,qBAIrB,CACJ,EAOAN,EAAMr+S,UAAU+2R,cAAgB,WAC5B,MAAO,OACX,EAMAsnB,EAAMr+S,UAAU4+S,iBAAmB,WAC/Bz6S,KAAK06S,gBACT,EAMAR,EAAMr+S,UAAUgkS,eAAiB,WAC7B,OAAO7/R,KAAKmgS,aAAa,GAC7B,EAMA+Z,EAAMr+S,UAAUsM,QAAU,WAClBnI,KAAK9C,QAAQ2rE,UAAUsJ,SAAS,iBAChCnyE,KAAKirS,eAETjrS,KAAK9C,QAAQ2rE,UAAUxE,OAAO41O,GAAiBA,GAAgBA,GAAiBA,IAChFp0S,EAAOhK,UAAUsM,QAAQpM,KAAKiE,KAClC,EAOAk6S,EAAMr+S,UAAUmP,OAAS,WACrBhL,KAAK9C,QAAQ2rE,UAAU31C,IAAI+mR,IAC3B,IAAIphP,EAAS,CAAC,EACM,MAAhB74D,KAAKqpE,SACLxQ,EAAOwQ,OAASrpE,KAAKqpE,QAEN,SAAfrpE,KAAKkhE,QACLrI,EAAOqI,MAAQ8yM,GAAWh0Q,KAAKkhE,QAEf,SAAhBlhE,KAAKmhE,SACLtI,EAAOsI,OAAS6yM,GAAWh0Q,KAAKmhE,SAEpCqvN,GAAkBxwR,KAAK9C,QAAS27D,GAChC74D,KAAK01S,aAAc,EACnB11S,KAAKm6S,eACLn6S,KAAKq6S,YACT,EACAH,EAAMr+S,UAAUiuS,WAAa,WACrBtd,GAAQS,UACRkB,GAAaj7P,IAAI/rB,OAAQ,oBAAqBnH,KAAK26S,oBAAqB36S,MAEhD,SAAxBA,KAAKs6S,gBACLt6S,KAAKu6S,kBAEb,EACAL,EAAMr+S,UAAU0+S,iBAAmB,WAC/B,GAAIv6S,KAAK46S,qBACL,IAAK,IAAIz/R,EAAK,EAAGpV,EAAK/F,KAAKqiS,oBAAoBriS,KAAK46S,sBAAuBz/R,EAAKpV,EAAGpC,OAAQwX,IAAM,CAC7F,IAAIo/Q,EAAWx0R,EAAGoV,GAClBgzQ,GAAaj7P,IAAIqnQ,EAAU,SAAUv6R,KAAK66S,cAAe76S,KAC7D,CAER,EACAk6S,EAAMr+S,UAAUovS,aAAe,WACvBze,GAAQS,UACRkB,GAAa9pN,OAAOl9D,OAAQ,oBAAqBnH,KAAK26S,qBAE9B,SAAxB36S,KAAKs6S,gBACLt6S,KAAKw6S,oBAEb,EACAN,EAAMr+S,UAAU2+S,mBAAqB,WACjC,GAAIx6S,KAAK46S,qBACL,IAAK,IAAIz/R,EAAK,EAAGpV,EAAK/F,KAAKqiS,oBAAoBriS,KAAK46S,sBAAuBz/R,EAAKpV,EAAGpC,OAAQwX,IAAM,CAC7F,IAAI2/R,EAAW/0S,EAAGoV,GAClBgzQ,GAAa9pN,OAAOy2O,EAAU,SAAU96S,KAAK66S,cACjD,CAER,EACAX,EAAMr+S,UAAU++S,mBAAqB,WACjC,IAAIG,EAAoC,KAAlB/6S,KAAKg7S,UAAmBhoC,GAAkBhzQ,KAAKg7S,UACjEruS,SAASiwE,KAAO58E,KAAKg7S,SAEzB,OADAh7S,KAAK4xR,cAAc,CAAEopB,SAAUD,IAAmB,GACf,kBAAnB/6S,KAAKg7S,SACjBruS,SAASK,cAAchN,KAAKg7S,UAAYh7S,KAAKg7S,QACrD,EACAd,EAAMr+S,UAAUg/S,cAAgB,SAAUhvS,GAWtC,GAV4B,eAAxB7L,KAAKs6S,eACAtnC,GAAkBhzQ,KAAK9C,UAAc8C,KAAK9C,QAAQ66P,eAAiBlsP,EAAE/O,QACrEkD,KAAK9C,QAAQ66P,cAAsD,SAAtC/3P,KAAK9C,QAAQ66P,aAAarrP,SAC1B,MAA1Bb,EAAE/O,OAAO0sS,eACbxpS,KAAKo6S,kBAGoB,SAAxBp6S,KAAKs6S,gBACVt6S,KAAKwhH,OAEmB,SAAxBxhH,KAAKs6S,gBACDt6S,KAAK46S,qBAAsB,CAC3B,IAAIK,EAAgBj7S,KAAKk7S,oBAAoBl7S,KAAK46S,qBAAsB/uS,EAAE/O,QACrEm+S,GAAkBj7S,KAAKm7S,sBAInBF,IACLj7S,KAAKm7S,uBAAwB,IAJ7Bn7S,KAAKw0H,QAAQ,sBACbx0H,KAAKm7S,uBAAwB,EAKrC,CAER,EAWAjB,EAAMr+S,UAAUq/S,oBAAsB,SAAUH,EAAiBK,GAE7D,IADA,IAAIC,EAAgBr7S,KAAKqiS,oBAAoB0Y,GACpCO,EAAW,EAAGA,EAAWD,EAAc13S,OAAQ23S,IACpD,IAAIt7S,KAAKu7S,iBAAiBR,EAAiBM,EAAcC,IAIrD,OAAO,EAGf,OAAO,CACX,EACApB,EAAMr+S,UAAU0/S,iBAAmB,SAAUR,EAAiBK,GAC1D,IAAIn1P,EAAOjmD,KAAKw7S,2BAA2BT,GAC3C,IAAK90P,EAAKkb,SAAWlb,EAAKib,MACtB,OAAO,EAEX,GAAK8xM,GAAkBhzQ,KAAKw7S,2BAA2BJ,IAOlD,CACD,IAAInkD,EAAM9vP,OACNs0S,EAAa,CACbxwO,IAAKgsL,EAAIykD,QACT1wO,KAAMisL,EAAI0kD,QACVp7G,MAAO02D,EAAI0kD,QAAU1kD,EAAI2kD,WACzB72G,OAAQkyD,EAAIykD,QAAUzkD,EAAI4kD,aAE1BxyS,EAAMssS,GAAkBoF,GACxB1rB,EAAM,CACNpkN,IAAK5hE,EAAI4hE,IACTD,KAAM3hE,EAAI2hE,KACVu1H,MAAOl3L,EAAI2hE,KAAO/kB,EAAKib,MACvB6jI,OAAQ17L,EAAI4hE,IAAMhlB,EAAKkb,QAEvB26O,EAAc,CACd7wO,IAAKwwO,EAAW12G,OAASsqF,EAAIpkN,IAC7BD,KAAMywO,EAAWl7G,MAAQ8uF,EAAIrkN,KAC7B+5H,OAAQsqF,EAAItqF,OAAS02G,EAAWxwO,IAChCs1H,MAAO8uF,EAAI9uF,MAAQk7G,EAAWzwO,MAElC,OAAO8wO,EAAY7wO,IAAM,GAClB6wO,EAAY9wO,KAAO,GACnB8wO,EAAYv7G,MAAQ,GACpBu7G,EAAY/2G,OAAS,CAChC,CA/BI,IAAIg3G,EAAWX,EAAcxwO,wBAC7B,QAAS3kB,EAAK8+I,OAASg3G,EAAS9wO,QACzBhlB,EAAK8+I,OAASg3G,EAASh3G,WACnB9+I,EAAKs6I,MAAQw7G,EAASx7G,UACnBt6I,EAAK+kB,KAAO+wO,EAAS/wO,KA4B3C,EAOAkvO,EAAMr+S,UAAU0iS,UAAY,WACxB,EAEJ2b,EAAMr+S,UAAUs+S,aAAe,WAC3Bn6S,KAAK4tM,aAEL5tM,KAAKg+R,UAAYh+R,KAAK9C,QAAQ2rE,UAAU31C,IAAI+mR,IAAkBj6S,KAAK9C,QAAQ2rE,UAAUxE,OAAO41O,GAChG,EACAC,EAAMr+S,UAAUw+S,WAAa,WACzB,IAAKrnC,GAAkBhzQ,KAAKqN,SAExB,GADArN,KAAK9C,QAAQ+P,UAAY,GACK,kBAAlBjN,KAAKqN,QACbrN,KAAK9C,QAAQm7D,YAAcr4D,KAAKqN,YAE/B,CACD,IAAI2uS,EAAeh8S,KAAK46S,qBAEpBlqS,EAAQ1Q,KAAKqN,QAAQqD,MACpBsrS,EAAanzO,UAAUsJ,SAAS,oBAAqB6gM,GAAkBtiQ,IACxE1Q,KAAK9C,QAAQ+Z,YAAYjX,KAAKqN,QAEtC,CAER,EACA6sS,EAAMr+S,UAAU8+S,oBAAsB,WAClC,IAAI70S,EAAQ9F,KACZ8Z,YAAW,WACPhU,EAAMs0S,iBACV,GAAG,IACP,EAOAF,EAAMr+S,UAAUu+S,gBAAkB,SAAUt9S,EAAQm/S,GAC3CjpC,GAAkBl2Q,IACnBkD,KAAKk8S,iBAAiBp/S,GAE1BkD,KAAK4tM,aACAquG,GACDj8S,KAAK06S,gBAEb,EACAR,EAAMr+S,UAAU+xM,WAAa,WACzB,IAAI14L,EACAlB,EACA+mS,EAAkB/6S,KAAK46S,qBAC3B,GAA+B,kBAApB56S,KAAKgU,SAASynC,GAA6C,kBAApBz7C,KAAKgU,SAAS0rJ,EAC5DxqJ,EAAM,CAAE81D,KAAMhrE,KAAKgU,SAASynC,EAAGwvB,IAAKjrE,KAAKgU,SAAS0rJ,QAEjD,GAAgC,kBAApB1/J,KAAKgU,SAASynC,GAA6C,kBAApBz7C,KAAKgU,SAAS0rJ,GACtC,kBAApB1/J,KAAKgU,SAASynC,GAA6C,kBAApBz7C,KAAKgU,SAAS0rJ,EAAiB,CAC9E,IAAIy8I,OAAgB,EAChBx4L,EAAU3jH,KAAK9C,QAAQgU,MAAMyyG,QACjC3jH,KAAK9C,QAAQgU,MAAMyyG,QAAU,QACzB3jH,KAAK9C,QAAQ2rE,UAAUsJ,SAAS,iBAChCgqO,EAAgBn8S,KAAK9C,QAAQssS,cAAct4R,MAAMyyG,QACjD3jH,KAAK9C,QAAQssS,cAAct4R,MAAMyyG,QAAU,SAE/C3vG,EAAWhU,KAAKo8S,kBAAkBrB,EAAiB/6S,KAAK9C,QAAS8C,KAAKgU,SAAUhU,KAAK60D,QAAS70D,KAAK80D,SAE/F5/C,EAD2B,kBAApBlV,KAAKgU,SAASynC,EACf,CAAEuvB,KAAMh3D,EAASg3D,KAAMC,IAAKjrE,KAAKgU,SAAS0rJ,GAG1C,CAAE10F,KAAMhrE,KAAKgU,SAASynC,EAAGwvB,IAAKj3D,EAASi3D,KAEjDjrE,KAAK9C,QAAQgU,MAAMyyG,QAAUA,EACzB3jH,KAAK9C,QAAQ2rE,UAAUsJ,SAAS,iBAChCnyE,KAAK9C,QAAQssS,cAAct4R,MAAMyyG,QAAUw4L,EAEnD,MACK,GAAIpB,EAAiB,CAClBp3L,EAAU3jH,KAAK9C,QAAQgU,MAAMyyG,QACjC3jH,KAAK9C,QAAQgU,MAAMyyG,QAAU,QAC7BzuG,EAAMlV,KAAKo8S,kBAAkBrB,EAAiB/6S,KAAK9C,QAAS8C,KAAKgU,SAAUhU,KAAK60D,QAAS70D,KAAK80D,SAC9F90D,KAAK9C,QAAQgU,MAAMyyG,QAAUA,CACjC,MAEIzuG,EAAM,CAAE81D,KAAM,EAAGC,IAAK,GAErB+nM,GAAkB99P,KACnBlV,KAAK9C,QAAQgU,MAAM85D,KAAO91D,EAAI81D,KAAO,KACrChrE,KAAK9C,QAAQgU,MAAM+5D,IAAM/1D,EAAI+1D,IAAM,KAE3C,EACAivO,EAAMr+S,UAAU2/S,2BAA6B,SAAUnsB,GAEnD,IAEI,OADUA,EAAIzkN,uBAElB,CACA,MAAOtoE,GACH,OAAO,IACX,CACJ,EACA43S,EAAMr+S,UAAUugT,kBAAoB,SAAUC,EAAWhtB,EAAKr7Q,EAAU6gD,EAASC,GAC7E,IAAIwnP,EAAUt8S,KAAKw7S,2BAA2BnsB,GAC1CktB,EAAav8S,KAAKw7S,2BAA2Ba,GACjD,GAAIrpC,GAAkBspC,IAAYtpC,GAAkBupC,GAChD,OAAO,KAEX,IAAIl3Q,EAASg3Q,EACTG,EAAY,CAAExxO,KAAM,EAAGC,IAAK,GAUhC,OATIokN,EAAIt3B,cAA6C,SAA7Bs3B,EAAIt3B,aAAarrP,SAA4C,SAAtB2vS,EAAU3vS,QACrE8vS,EAAY7G,GAAkB0G,IAGzBhtB,EAAIxmN,UAAUsJ,SAAS,gBAAqC,SAAnB9sC,EAAO34B,UACjD2iR,EAAMA,EAAIma,eAEdgT,EFxZL,SAAwCn3Q,EAAQnoC,GACnD,IAAIu/S,GAAe,EACfD,EAAY,CAAExxO,KAAM,EAAGC,IAAK,GAC5ByxO,EAAar3Q,EACjB,IAAKA,IAAWnoC,EACZ,OAAOs/S,EAKX,IAHIxpC,GAAkB91Q,EAAQ66P,eAA4C,UAA3B76P,EAAQgU,MAAM8C,WACzDyoS,GAAe,IAEXv/S,EAAQ66P,cAAgB0kD,IAAiBp3Q,GAAUnoC,EAAQ66P,eAAiB1yN,GAChFm3Q,EAAUxxO,MAAQ3lC,EAAOq6J,WACzB88G,EAAUvxO,KAAO5lC,EAAOo6J,UACxBp6J,EAASA,EAAO0yN,aAGpB,IADA1yN,EAASq3Q,GACDx/S,EAAQ66P,cAAgB0kD,IAAiBp3Q,GAAUnoC,EAAQ66P,eAAiB1yN,GAChFm3Q,EAAUxxO,MAAQ3lC,EAAOgsF,WACzBmrL,EAAUvxO,KAAO5lC,EAAOkiH,UACxBliH,EAASA,EAAOmkQ,cAEpB,OAAOgT,CACX,CEkYwBG,CAA+Bt3Q,EAAQgqP,IAE/Cr7Q,EAASynC,GACb,QACA,IAAK,OACD,MACJ,IAAK,SACI4zO,EAAIxmN,UAAUsJ,SAAS,gBAAqC,SAAnB9sC,EAAO34B,SAA0C,cAApB1M,KAAK48S,WAC5EJ,EAAUxxO,MAAS7jE,OAAOi7G,WAAa,EAAIk6L,EAAQp7O,MAAQ,EAElC,cAApBlhE,KAAK48S,WACVJ,EAAUxxO,MAASuxO,EAAWr7O,MAAQ,EAAIo7O,EAAQp7O,MAAQ,EAG1Ds7O,EAAUxxO,MAASuxO,EAAWr7O,MAAQ,EAE1C,MACJ,IAAK,QACImuN,EAAIxmN,UAAUsJ,SAAS,gBAAqC,SAAnB9sC,EAAO34B,SAA0C,cAApB1M,KAAK48S,WAC5EJ,EAAUxxO,MAAS7jE,OAAOi7G,WAAak6L,EAAQp7O,MAEtB,cAApBlhE,KAAK48S,WACVJ,EAAUxxO,MAASuxO,EAAWr7O,MAAQo7O,EAAQp7O,MAG9Cs7O,EAAUxxO,MAASuxO,EAAWr7O,MAI1C,OAAQltD,EAAS0rJ,GACb,QACA,IAAK,MACD,MACJ,IAAK,SACI2vH,EAAIxmN,UAAUsJ,SAAS,gBAAqC,SAAnB9sC,EAAO34B,SAA0C,cAApB1M,KAAK48S,WAC5EJ,EAAUvxO,KAAQ9jE,OAAOk7G,YAAc,EAAIi6L,EAAQn7O,OAAS,EAEnC,cAApBnhE,KAAK48S,WACVJ,EAAUvxO,KAAQsxO,EAAWp7O,OAAS,EAAIm7O,EAAQn7O,OAAS,EAG3Dq7O,EAAUvxO,KAAQsxO,EAAWp7O,OAAS,EAE1C,MACJ,IAAK,SACIkuN,EAAIxmN,UAAUsJ,SAAS,gBAAqC,SAAnB9sC,EAAO34B,SAA0C,cAApB1M,KAAK48S,WAC5EJ,EAAUvxO,KAAQ9jE,OAAOk7G,YAAci6L,EAAQn7O,OAEtB,cAApBnhE,KAAK48S,WACVJ,EAAUvxO,KAAQsxO,EAAWp7O,OAASm7O,EAAQn7O,OAG9Cq7O,EAAUvxO,KAAQsxO,EAAWp7O,OAMzC,OAFAq7O,EAAUxxO,MAAQnW,EAClB2nP,EAAUvxO,KAAOnW,EACV0nP,CACX,EACAtC,EAAMr+S,UAAUghT,SAAW,SAAUzlK,GACjC,IAAI2jK,EAAkB/6S,KAAK46S,qBAC3BlC,GAAK14S,KAAK9C,QAAS69S,EAAiB/6S,KAAK60D,QAAS70D,KAAK80D,QAAS90D,KAAKgU,SAASynC,EAAGz7C,KAAKgU,SAAS0rJ,EAAG1/J,KAAK42S,gBAAiBx/J,EAAOp3I,KAAK01S,YACxI,EACAwE,EAAMr+S,UAAUihT,QAAU,SAAU1lK,GAChC,GAA6D,IAAzD4gK,GAAUh4S,KAAK9C,QAAS8C,KAAK42S,iBAAiBjzS,OAC9C,GAAIqvQ,GAAkBhzQ,KAAK42S,iBAAkB,CACzC,IAAI3zS,EAAO0zS,GAAI32S,KAAK9C,QAAS8C,KAAK42S,gBAAiBx/J,GAC/CA,EAAM37F,IACNz7C,KAAK9C,QAAQgU,MAAM85D,KAAO/nE,EAAK+nE,KAAO,MAEtCosE,EAAMsoB,IACN1/J,KAAK9C,QAAQgU,MAAM+5D,IAAMhoE,EAAKgoE,IAAM,KAE5C,KACK,CACD,IAAIupO,EAAcx0S,KAAKw7S,2BAA2Bx7S,KAAK9C,SACnD6/S,EAAe/8S,KAAKw7S,2BAA2Bx7S,KAAK42S,iBACxD,GAAI5jC,GAAkBwhC,IAAgBxhC,GAAkB+pC,GACpD,OAAO,KAEP3lK,IAAqB,IAAZA,EAAMsoB,IACXq9I,EAAa9xO,IAAMupO,EAAYvpO,IAC/BjrE,KAAK9C,QAAQgU,MAAM+5D,IAAM,MAEpB8xO,EAAah4G,OAASyvG,EAAYzvG,SACvC/kM,KAAK9C,QAAQgU,MAAM+5D,IAAM1zD,SAASvX,KAAK9C,QAAQgU,MAAM+5D,IAAK,KAAOupO,EAAYzvG,OAASg4G,EAAah4G,QAAU,OAGjH3tD,IAAqB,IAAZA,EAAM37F,IACXshQ,EAAax8G,MAAQi0G,EAAYj0G,MACjCvgM,KAAK9C,QAAQgU,MAAM85D,KAAOzzD,SAASvX,KAAK9C,QAAQgU,MAAM85D,KAAM,KAAOwpO,EAAYj0G,MAAQw8G,EAAax8G,OAAS,KAExGw8G,EAAa/xO,KAAOwpO,EAAYxpO,OACrChrE,KAAK9C,QAAQgU,MAAM85D,KAAOzzD,SAASvX,KAAK9C,QAAQgU,MAAM85D,KAAM,KAAO+xO,EAAa/xO,KAAOwpO,EAAYxpO,MAAQ,MAGvH,CAER,EACAkvO,EAAMr+S,UAAU6+S,eAAiB,WAC7B,IAAIsC,EAAOh9S,KAAKi8S,UAAUxgQ,EACtBwhQ,EAAOj9S,KAAKi8S,UAAUv8I,EACb,SAATs9I,GAA4B,SAATC,IAGV,SAATD,GAA4B,SAATC,EACnBj9S,KAAK68S,SAAS,CAAEphQ,GAAG,EAAMikH,GAAG,IAEd,QAATs9I,GAA2B,QAATC,EACvBj9S,KAAK88S,QAAQ,CAAErhQ,GAAG,EAAMikH,GAAG,KAGd,SAATs9I,EACAh9S,KAAK68S,SAAS,CAAEphQ,GAAG,EAAMikH,GAAG,IAEd,SAATu9I,GACLj9S,KAAK68S,SAAS,CAAEn9I,GAAG,EAAMjkH,GAAG,IAEnB,QAATuhQ,EACAh9S,KAAK88S,QAAQ,CAAErhQ,GAAG,EAAMikH,GAAG,IAEb,QAATu9I,GACLj9S,KAAK88S,QAAQ,CAAErhQ,GAAG,EAAOikH,GAAG,KAGxC,EAQAw6I,EAAMr+S,UAAU8lH,KAAO,SAAUu7L,EAAkBC,GAC/C,IAAIr3S,EAAQ9F,KASZ,GARsBA,KAAK46S,qBACP/xO,UAAUsJ,SAAS,mBACnCnyE,KAAKo9S,kBAAoBp9S,KAAK9C,QAAQixM,uBAAuB,sBAAsB,IAEvFnuM,KAAK8pS,cACA92B,GAAkBhzQ,KAAKo9S,oBAAsB5wB,GAAQ6wB,QACtDr9S,KAAKo9S,kBAAkBlsS,MAAMyyG,QAAU,SAEvB,MAAhB3jH,KAAKqpE,SAAoB2pM,GAAkBmqC,GAAkB,CAC7D,IAAIG,EAAiBtqC,GAAkBmqC,GAAoBn9S,KAAK9C,QAAUigT,EAC1En9S,KAAKqpE,OAASk0O,GAAiBD,GAC/B9sB,GAAkBxwR,KAAK9C,QAAS,CAAE,OAAU8C,KAAKqpE,QACrD,CACA6zO,EAAqBlqC,GAAkBkqC,IAAiD,kBAArBA,EAC5Cl9S,KAAKw9S,cAAxBN,EACqB,SAArBl9S,KAAKi8S,UAAUxgQ,GAAqC,SAArBz7C,KAAKi8S,UAAUv8I,IAC9C8vH,GAAY,CAACxvR,KAAK9C,SAAU+8S,IAC5B9qB,GAAS,CAACnvR,KAAK9C,SAAU+8S,IACzBj6S,KAAK06S,iBACLlrB,GAAY,CAACxvR,KAAK9C,SAAU+8S,IAC5B9qB,GAAS,CAACnvR,KAAK9C,SAAU+8S,KAExBjnC,GAAkBkqC,IAenB1tB,GAAY,CAACxvR,KAAK9C,SAAU+8S,IAC5B9qB,GAAS,CAACnvR,KAAK9C,SAAU+8S,IACzBj6S,KAAKw0H,QAAQ,UAhBb0oL,EAAiB5sP,MAAQ,WAChBxqD,EAAM+rR,cACPrC,GAAY,CAAC1pR,EAAM5I,SAAU+8S,IAC7B9qB,GAAS,CAACrpR,EAAM5I,SAAU+8S,IAElC,EACAiD,EAAiB7oS,IAAM,WACdvO,EAAM+rR,aACP/rR,EAAM0uH,QAAQ,OAEtB,EACA,IAAI0hK,GAAUgnB,GAAkBtmB,QAAQ52R,KAAK9C,SAOrD,EAOAg9S,EAAMr+S,UAAU2lH,KAAO,SAAU07L,GAC7B,IAAIp3S,EAAQ9F,KACZk9S,EAAqBlqC,GAAkBkqC,IAAiD,kBAArBA,EAC5Cl9S,KAAKy9S,cAAxBP,EACClqC,GAAkBkqC,IAWnB1tB,GAAY,CAACxvR,KAAK9C,SAAU+8S,IAC5B9qB,GAAS,CAACnvR,KAAK9C,SAAU+8S,IACzBj6S,KAAKw0H,QAAQ,WAZb0oL,EAAiB7oS,IAAM,WACdvO,EAAM+rR,cACPrC,GAAY,CAAC1pR,EAAM5I,SAAU+8S,IAC7B9qB,GAAS,CAACrpR,EAAM5I,SAAU+8S,IAC1Bn0S,EAAM0uH,QAAQ,SAEtB,EACA,IAAI0hK,GAAUgnB,GAAkBtmB,QAAQ52R,KAAK9C,UAOjD8C,KAAKirS,cACT,EAOAiP,EAAMr+S,UAAUwmS,oBAAsB,SAAUnlS,GAE5C,OADA8C,KAAKk8S,iBAAiBh/S,GACfmlS,GAAoBnlS,EAAS8C,KAAK01S,YAC7C,EACAwE,EAAMr+S,UAAUqgT,iBAAmB,SAAUh/S,GAEzC,IADA,IAAIqG,EAASrG,EAAQssS,cACdjmS,GAA6B,SAAnBA,EAAOmJ,SAAoB,CACxC,IAAIgxS,EAAcv1O,iBAAiB5kE,GACN,UAAzBm6S,EAAY1pS,WAAyBg/P,GAAkBhzQ,KAAK9C,UAAY8C,KAAK9C,QAAQ66P,cAC/C,SAAtC/3P,KAAK9C,QAAQ66P,aAAarrP,SAA+E,WAAzDy7D,iBAAiBnoE,KAAK9C,QAAQ66P,cAAcl7O,WAC5F7c,KAAK9C,QAAQgU,MAAM+5D,IAAM9jE,OAAOu0S,QAAUnkS,SAASvX,KAAK9C,QAAQgU,MAAM+5D,IAAK,IACvE+oM,GAAW7sQ,OAAOu0S,QAAUnkS,SAASvX,KAAK9C,QAAQgU,MAAM+5D,IAAK,KAC3D+oM,GAAWz8P,SAASvX,KAAK9C,QAAQgU,MAAM+5D,IAAK,IAAM9jE,OAAOu0S,SAC/D17S,KAAK9C,QAAQgU,MAAM8C,SAAW,QAC9BhU,KAAK01S,aAAc,GAEvBnyS,EAASA,EAAOimS,eACXx2B,GAAkBhzQ,KAAK9C,UAAY81Q,GAAkBhzQ,KAAK9C,QAAQ66P,eAA0C,UAAzB2lD,EAAY1pS,UAC7D,UAAhChU,KAAK9C,QAAQgU,MAAM8C,WACtBhU,KAAK01S,aAAc,EAE3B,CACJ,EACA3f,GAAW,CACPnB,GAAS,SACVslB,EAAMr+S,UAAW,cAAU,GAC9Bk6R,GAAW,CACPnB,GAAS,SACVslB,EAAMr+S,UAAW,aAAS,GAC7Bk6R,GAAW,CACPnB,GAAS,OACVslB,EAAMr+S,UAAW,eAAW,GAC/Bk6R,GAAW,CACPnB,GAAS,cACVslB,EAAMr+S,UAAW,kBAAc,GAClCk6R,GAAW,CACPnB,GAAS,OACVslB,EAAMr+S,UAAW,uBAAmB,GACvCk6R,GAAW,CACPnB,GAAS,CAAEn5O,EAAG,OAAQikH,EAAG,UAC1Bw6I,EAAMr+S,UAAW,iBAAa,GACjCk6R,GAAW,CACPnB,GAAS,KACVslB,EAAMr+S,UAAW,gBAAY,GAChCk6R,GAAW,CACPhB,GAAQ,CAAC,EAAGilB,KACbE,EAAMr+S,UAAW,gBAAY,GAChCk6R,GAAW,CACPnB,GAAS,IACVslB,EAAMr+S,UAAW,eAAW,GAC/Bk6R,GAAW,CACPnB,GAAS,IACVslB,EAAMr+S,UAAW,eAAW,GAC/Bk6R,GAAW,CACPnB,GAAS,MACVslB,EAAMr+S,UAAW,cAAU,GAC9Bk6R,GAAW,CACPnB,IAAS,IACVslB,EAAMr+S,UAAW,iBAAa,GACjCk6R,GAAW,CACPnB,GAAS,eACVslB,EAAMr+S,UAAW,sBAAkB,GACtCk6R,GAAW,CACPnB,GAAS,OACVslB,EAAMr+S,UAAW,qBAAiB,GACrCk6R,GAAW,CACPnB,GAAS,OACVslB,EAAMr+S,UAAW,qBAAiB,GACrCk6R,GAAW,CACPxnK,MACD2rL,EAAMr+S,UAAW,YAAQ,GAC5Bk6R,GAAW,CACPxnK,MACD2rL,EAAMr+S,UAAW,aAAS,GAC7Bk6R,GAAW,CACPxnK,MACD2rL,EAAMr+S,UAAW,0BAAsB,GAC1Cq+S,EAAQnkB,GAAW,CACfX,IACD8kB,EAEP,CA3oB2B,CA2oBzBv1K,IAUK,SAAS09J,GAAoBnlS,EAASw4S,GAKzC,IAJA,IAAI1G,EAAW7mO,iBAAiBjrE,GAC5Bm+S,EAAgB,GAChBsC,EAAgB,gBAChBp6S,EAASrG,EAAQssS,cACdjmS,GAA6B,SAAnBA,EAAOmJ,SAAoB,CACxC,IAAIgxS,EAAcv1O,iBAAiB5kE,GACP,aAAtByrS,EAASh7R,UAAoD,WAAzB0pS,EAAY1pS,WAC/C2pS,EAAcjwS,KAAKgwS,EAAY7gS,SAAW6gS,EAAY3sL,UAAY2sL,EAAY1sL,YACjFqqL,EAAct4S,KAAKQ,GAEvBA,EAASA,EAAOimS,aACpB,CAIA,OAHKkM,GACD2F,EAAct4S,KAAK4J,UAEhB0uS,CACX,CAQO,SAASkC,GAAiBrgT,GAI7B,IAFA,IAAIqG,EAASrG,EAAQssS,cACjBoU,EAAe,GACZr6S,GACoB,SAAnBA,EAAOmJ,SADA,CAEP,IAAIkC,EAAQjC,SAASg6I,YAAYx+E,iBAAiB5kE,EAAQ,MAAM6kE,iBAAiB,WAC7Ep0D,EAAWrH,SAASg6I,YAAYx+E,iBAAiB5kE,EAAQ,MAAM6kE,iBAAiB,YACtE,SAAVx5D,GAAiC,WAAboF,GACpB4pS,EAAa76S,KAAK6L,GAEtBrL,EAASA,EAAOimS,aAKxB,CAEA,IADA,IAAIqU,EAAiB,GACZh5S,EAAI,EAAGA,EAAI8H,SAASiwE,KAAK/4E,SAASF,OAAQkB,IAC/C,IAAK3H,EAAQ4gT,YAAYnxS,SAASiwE,KAAK/4E,SAASgB,IAAK,CAC7C+J,EAAQjC,SAASg6I,YAAYx+E,iBAAiBx7D,SAASiwE,KAAK/4E,SAASgB,GAAI,MAAMujE,iBAAiB,WAChGp0D,EAAWrH,SAASg6I,YAAYx+E,iBAAiBx7D,SAASiwE,KAAK/4E,SAASgB,GAAI,MAAMujE,iBAAiB,YACzF,SAAVx5D,GAAiC,WAAboF,GACpB6pS,EAAe96S,KAAK6L,EAE5B,CAEJivS,EAAe96S,KAAK,OACpB,IAAIg7S,EAAiB,GACrB,IAAK/qC,GAAkB91Q,EAAQssS,gBAAoD,SAAlCtsS,EAAQssS,cAAc98R,QACnE,KAAIY,EAAa,GAAGuH,MAAM9Y,KAAKmB,EAAQssS,cAAc3lS,UACrD,IAASgB,EAAI,EAAGA,EAAIyI,EAAW3J,OAAQkB,IACnC,IAAK3H,EAAQ4gT,YAAYxwS,EAAWzI,IAAK,CACjC+J,EAAQjC,SAASg6I,YAAYx+E,iBAAiB76D,EAAWzI,GAAI,MAAMujE,iBAAiB,WACpFp0D,EAAWrH,SAASg6I,YAAYx+E,iBAAiB76D,EAAWzI,GAAI,MAAMujE,iBAAiB,YAC7E,SAAVx5D,GAAiC,WAAboF,GACpB+pS,EAAeh7S,KAAK6L,EAE5B,CAR0D,CAWlE,IAAIovS,EAAaJ,EAAa5gT,OAAO6gT,EAAgBE,GAEjDE,EAAqBnmS,KAAKC,IAAI/S,MAAM8S,KAAMkmS,GAAc,EAC5D,OAAOC,EAAqB,WAAa,WAAaA,CAC1D,CCtxBA,IAOIC,GACAC,GAOAvwO,GACAwC,GACA1C,GACAyC,GACAiuO,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,GAAmB18Q,GACxB28Q,KACA,IAAIC,EAAetyS,GAAc,OAAQ,CACrCyJ,MAAO,CACH,aAAgB,KAAM,gBAAmB,WAGjD6oS,EAAa3oS,aAAa,QAAS,4BAA8B+rB,GAC/C,UAAdA,IACA48Q,EAAaxuS,MAAMiwD,OAAS,MAC5Bu+O,EAAaxuS,MAAMgwD,MAAQ,OAC3Bw+O,EAAaxuS,MAAM6zL,OAAS,MAC5B26G,EAAaxuS,MAAM85D,KAAO,OAEZ,UAAdloC,IACA48Q,EAAaxuS,MAAMiwD,OAAS,MAC5Bu+O,EAAaxuS,MAAMgwD,MAAQ,OAC3Bw+O,EAAaxuS,MAAM+5D,IAAM,MACzBy0O,EAAaxuS,MAAM85D,KAAO,OAEZ,SAAdloC,IACA48Q,EAAaxuS,MAAMiwD,OAAS,OAC5Bu+O,EAAaxuS,MAAMgwD,MAAQ,MAC3Bw+O,EAAaxuS,MAAMqvL,MAAQ,MAC3Bm/G,EAAaxuS,MAAM+5D,IAAM,OAEX,SAAdnoC,IACA48Q,EAAaxuS,MAAMiwD,OAAS,OAC5Bu+O,EAAaxuS,MAAMgwD,MAAQ,MAC3Bw+O,EAAaxuS,MAAM85D,KAAO,MAC1B00O,EAAaxuS,MAAM+5D,IAAM,OAE7BizO,GAAcjnS,YAAYyoS,EAC9B,CAMA,SAASC,GAAcziT,GACnB,IAAI4uH,EASJ,OARK8zL,GAAM1iT,KAEH4uH,EADqB,kBAAb5uH,EACKyP,SAASK,cAAc9P,GAGvBA,GAGd4uH,CACX,CAEA,SAASg+K,GAAWtwR,GACZomS,GAAMpmS,KACNA,EAAOxZ,MAGX,IADA,IAAI6/S,EAAW3B,GAAcrwS,iBAAiB,IAAM0wS,IAC3C15S,EAAI,EAAGA,EAAIg7S,EAASl8S,OAAQkB,IAAK,CACtCs5S,GAAkB0B,EAASh7S,GAC3BspR,GAAaj7P,IAAIirR,GAAiB,YAAa73K,GAAa9sH,GAC5D,IAAIy1G,EAAmC,SAAtBu9J,GAAQ5vN,KAAKj6D,KAAmB,cAAgB,aACjEwrR,GAAaj7P,IAAIirR,GAAiBlvL,EAAWspE,GAAc/+K,EAC/D,CACA,IAAIsmS,EAAiB5B,GAAcrwS,iBAAiB,2BACpD,IAAK+xS,GAAME,GACP,IAASj7S,EAAI,EAAGA,EAAIi7S,EAAen8S,OAAQkB,IAAK,CAC5Cs5S,GAAkB2B,EAAej7S,GACjCspR,GAAaj7P,IAAIirR,GAAiB,YAAa73K,GAAa9sH,GACxDy1G,EAAmC,SAAtBu9J,GAAQ5vN,KAAKj6D,KAAmB,cAAgB,aACjEwrR,GAAaj7P,IAAIirR,GAAiBlvL,EAAWspE,GAAc/+K,EAC/D,CAER,CAOA,SAASumS,GAAal0S,GAClB,OAAQA,EAAEqD,QAAQ,UAAY,EAAK,QAAU,OACjD,CAOA,SAASo3H,GAAYz6H,GAOjB,GANAA,EAAE89D,iBACFu0O,GAAgBryS,EAAE/O,OAAO0sS,cACzBiW,KACAT,GAAiBnzS,EAAE+6D,MACnBq4O,GAAiBpzS,EAAEg7D,MACnBh7D,EAAE/O,OAAO+rE,UAAU31C,IAAIsrR,IAClBoB,GAAMV,MAEuB,IAA1BA,GAAYrzS,EADR7L,MADZ,CAMIA,KAAKggT,WAAa9B,IAAiBA,GAAclxS,cAAc,sBAC/DoxS,GAAoC,SAAjBp+S,KAAKlD,OAA0D,KAAOkD,KAAKggT,UAC9F7vO,GAAWnwE,KAAKggT,UAAUvyK,YAC1Br9D,GAAYpwE,KAAKggT,UAAUryK,cAE/B,IAAI7wI,EAAU8iT,GAAMxB,IAAqBzxS,SAAWyxS,GACpDjwB,GAAaj7P,IAAIp2B,EAAQ,YAAau7L,GAAar4L,MACnDmuR,GAAaj7P,IAAIvmB,SAAU,UAAW2rL,GAAWt4L,MACjD,IAAK,IAAI6E,EAAI,EAAGA,EAAI45S,GAAc96S,OAAQkB,IAElCw6S,IADAnB,GAAcr1O,UAAUsJ,SAASssO,GAAc55S,GAVvD,CAiBJ,CAOA,SAASyzL,GAAUzsL,GACf,IAAImiR,EAAwC,SAAtBxB,GAAQ5vN,KAAKj6D,KAAmB,cAAgB,YAClEsrR,EAAuC,SAAtBzB,GAAQ5vN,KAAKj6D,KAAmB,YAAc,WAC/D7F,EAAU8iT,GAAMxB,IAAqBzxS,SAAWyxS,GAChDnvL,EAAmC,SAAtBu9J,GAAQ5vN,KAAKj6D,KAAmB,cAAgB,aACjEwrR,GAAa9pN,OAAOvnE,EAAQ,YAAau7L,IACzC81F,GAAa9pN,OAAOvnE,EAAQkxR,EAAgB31F,IAC5C81F,GAAa9pN,OAAOvnE,EAAQmyH,EAAWopE,IAClCunH,GAAMjzS,SAASiwE,KAAK5vE,cAAc,IAAMwxS,MACzC7xS,SAASiwE,KAAK5vE,cAAc,IAAMwxS,IAAiB31O,UAAUxE,OAAOm6O,IAEnEoB,GAAMR,KAEPA,GAAUvzS,EADF7L,MAGZmuR,GAAa9pN,OAAO13D,SAAU,UAAW2rL,IACzC61F,GAAa9pN,OAAO13D,SAAUshR,EAAe31F,GACjD,CAKA,SAASmnH,KACLb,GAAgB9/Q,WAAWqpC,iBAAiB+1O,GAAe,MAAM91O,iBAAiB,SAASv2D,QAAQ,KAAM,KACzGgtS,GAAiB//Q,WAAWqpC,iBAAiB+1O,GAAe,MAAM91O,iBAAiB,UAAUv2D,QAAQ,KAAM,KAC3GitS,GAAYZ,GAActzO,wBAAwBI,KAClD+zO,GAAYb,GAActzO,wBAAwBK,GACtD,CAOA,SAASstH,GAAa1sL,GAClBqyS,GAAgBryS,EAAE/O,OAAO0sS,cACzBiW,KACA,IAAIQ,EAAsB/B,GAAcr1O,UAAUsJ,SAAS,aACtDtmE,EAAE/O,OAAO+rE,UAAUsJ,SAASosO,KAAmB1yS,EAAE/O,OAAO+rE,UAAUsJ,SAAS,4BAA8B8tO,GAC1Gp0S,EAAE/O,OAAO+rE,UAAU31C,IAAIsrR,IAE3B,IAAI0B,EAAcr0S,EAAEw4I,QAAUx4I,EAAE04I,eAAe,GAAK14I,EAGpD,GAFAmzS,GAAiBkB,EAAYt5O,MAC7Bq4O,GAAiBiB,EAAYr5O,MACxB+4O,GAAMV,MAEuB,IAA1BA,GAAYrzS,EADR7L,MADZ,CAMA,IAAIguR,EAAwC,SAAtBxB,GAAQ5vN,KAAKj6D,KAAmB,cAAgB,YAClEsrR,EAAuC,SAAtBzB,GAAQ5vN,KAAKj6D,KAAmB,YAAc,WAC/D7F,EAAU8iT,GAAMxB,IAAqBzxS,SAAWyxS,GACpDjwB,GAAaj7P,IAAIp2B,EAAQkxR,EAAgB31F,GAAar4L,MACtDmuR,GAAaj7P,IAAIvmB,SAAUshR,EAAe31F,GAAWt4L,KALrD,CAMJ,CAOA,SAASq4L,GAAYxsL,GAOjB,GANIA,EAAE/O,OAAO+rE,UAAUsJ,SAASosO,KAAmB1yS,EAAE/O,OAAO+rE,UAAUsJ,SAASqsO,IAC3EL,GAAkBtyS,EAAE/O,OAEd8iT,GAAMjzS,SAASiwE,KAAK5vE,cAAc,IAAMwxS,OAC9CL,GAAkBxxS,SAASiwE,KAAK5vE,cAAc,IAAMwxS,MAEnDoB,GAAMzB,IAAkB,CAEzB,IADA,IAAIgC,EAAgB,GACXt7S,EAAI,EAAGA,EAAIy5S,GAAa36S,OAAQkB,IACjCs5S,GAAgBt1O,UAAUsJ,SAAS,KAAOmsO,GAAaz5S,MACvDs7S,EAAgB7B,GAAaz5S,IAOrC,OAJK+6S,GAAMT,KAEPA,GAAOtzS,EADC7L,MAGJmgT,GACJ,IAAK,QACDC,GAAYv0S,GACZ,MACJ,IAAK,QACDw0S,GAAYx0S,GACZ,MACJ,IAAK,OACDy0S,GAAWz0S,GACX,MACJ,IAAK,OACD00S,GAAW10S,GACX,MACJ,IAAK,aACDu0S,GAAYv0S,GACZ00S,GAAW10S,GACX,MACJ,IAAK,aACDu0S,GAAYv0S,GACZy0S,GAAWz0S,GACX,MACJ,IAAK,aACDw0S,GAAYx0S,GACZ00S,GAAW10S,GACX,MACJ,IAAK,aACDw0S,GAAYx0S,GACZy0S,GAAWz0S,GAIvB,CACJ,CAOA,SAAS20S,GAAoBtjT,GACzB,OAAOA,EAAQ0tE,uBACnB,CAGA,SAASw1O,GAAYv0S,GACjB,IAKI40S,EALAC,EAAiB/zS,SAASI,gBAAgB4gI,aAC1CgzK,GAAiB,EAEjBC,GADc/0S,EAAEw4I,QAAUx4I,EAAE04I,eAAe,GAAK14I,GACrBg7D,MAC3Bg6O,EAAmBL,GAAoBtC,IAEtC0B,GAAMxB,MACPqC,EAAsBD,GAAoBpC,KAEzCwB,GAAMxB,IAGFwB,GAAMxB,MAAuBsC,EAAiBE,GAAiB,GAAMC,EAAiB51O,IAAM,KACjG01O,GAAiB,GAHjBA,GAAiB,EAKrB,IAAIG,EAAmBjC,IAAkB+B,EAAe3B,IACxD6B,EAAoBA,EAAmBlzO,GAAakzO,EAAmBlzO,GACvE,IAAI8pO,EAAe,EACdkI,GAAMxB,MACP1G,EAAe+I,EAAoBx1O,KAEvC,IAAI81O,EAAcnB,GAAMxB,IAAoB,EAAIA,GAAiB3gH,aAAe2gH,GAAiBzwK,aAC7FqzK,EAAoBH,EAAiB51O,IAAMysO,EAAiBqJ,EAAc,EAE9E,GADAC,EAAoBA,EAAmB,EAAK,EAAIA,EAC5CH,EAAiB51O,IAAM,GAAM+1O,EAAmBF,EAAoB1wO,GAAxE,CAEI,GADAuwO,GAAiB,EACbzC,GAAcr1O,UAAUsJ,SAASusO,IACjC,OAEJR,GAAchtS,MAAMiwD,OAAUiP,GAAY74D,SAASypS,EAAiBllT,WAAY,IAAO,IAE3F,KAPA,CAQA,IAAImlT,EAAY,EAChB,GAAIN,EAAgB,CACZE,EAAiB51O,IAAM,GAAMy1O,GAAkBG,EAAiB1/O,OAAS0/O,EAAiB51O,KAAO,GAE5F61O,GADLG,EAAYJ,EAAiB51O,MACS,KAClC61O,EAAoBD,EAAiB1/O,QAAU0/O,EAAiB1/O,OAAS0/O,EAAiB51O,KAAQ,IAGpG61O,EAAmBD,EAAiB51O,KAAQmF,KAC9C8tO,GAAchtS,MAAMiwD,OAAS0/O,EAAiB1/O,QACzCu/O,GAAkBG,EAAiB1/O,OAAS0/O,EAAiB51O,MAAQ,MAE9E,IAAIi2O,EAAiBtB,GAAMxB,IAAqB6C,EAAYD,EACxDF,GAAoBlzO,IAAekzO,EAAmBI,GAAkB9wO,KACxE8tO,GAAchtS,MAAMiwD,OAAS2/O,EAAmB,KAExD,CAjBA,CAkBJ,CAGA,SAAST,GAAYx0S,GACjB,IACIs1S,EADAR,GAAiB,EAEjB95O,EAAkC,UAAzBk5O,GAAal0S,EAAE/L,MAAqB+L,EAAEg7D,MAAQh7D,EAAEw4I,QAAQ,GAAGx9E,MACpEg6O,EAAmBL,GAAoBtC,IACtC0B,GAAMxB,MACP+C,EAAqBX,GAAoBpC,OAExCwB,GAAMxB,KAAsByC,EAAiB51O,IAAMk2O,EAAmBl2O,IAAO,GAGzE20O,GAAMxB,KAAqBv3O,EAAQ,KAFxC85O,GAAiB,GAKrB,IAAIS,EAAgBvC,IAAkBh4O,EAAQo4O,IAC9C,GAAI0B,GACIS,GAAiBxzO,IAAawzO,GAAiBhxO,GAAW,CAC1D,IAAIsnO,EAAe,EACdkI,GAAMxB,MACP1G,EAAeyJ,EAAmBl2O,KAEtC,IAAIo2O,EAAStC,GAAYrH,GAAiB7wO,EAAQo4O,IAClDoC,EAAQA,EAAQ,EAAIA,EAAQ,EAC5BnD,GAAchtS,MAAMiwD,OAASigP,EAAgB,KAC7ClD,GAAchtS,MAAM+5D,IAAMo2O,EAAQ,IACtC,CAER,CAGA,SAASf,GAAWz0S,GAChB,IAEIy1S,EAFAC,EAAgB50S,SAASI,gBAAgB0gI,YACzCkzK,GAAiB,EAEhBf,GAAMxB,MACPkD,EAAad,GAAoBpC,KAErC,IAAIx3O,EAAkC,UAAzBm5O,GAAal0S,EAAE/L,MAAqB+L,EAAE+6D,MAAQ/6D,EAAEw4I,QAAQ,GAAGz9E,MACpEi6O,EAAmBL,GAAoBtC,IACvC6C,EAAcnB,GAAMxB,IAAoB,EAAIA,GAAiB5gH,YAAc4gH,GAAiB3wK,YAE5FziE,EAAO40O,GAAMxB,IAAoB,EAAIkD,EAAWt2O,KAChD8rO,EAAiB8I,GAAMxB,IAAoB,EAAIkD,EAAWpgP,MAE1D0+O,GAAMvB,MACDuB,GAAMxB,IAKPC,GAAkBkD,GAJlBlD,GAAqBwC,EAAiB71O,KAAOA,EAAQ+1O,EAAc,EAAMF,EAAiB3/O,MAC1Fm9O,IAAqCvH,EAAiBiK,EAAc1C,OAMvEuB,GAAMxB,KACNtmS,KAAKuT,MAAOw1R,EAAiB71O,KAAOs2O,EAAWt2O,KAAQ61O,EAAiB3/O,OACpEogP,EAAW/gH,MAAQsgH,EAAiBtgH,QAAUwgH,GAAgB5wO,IAG9DyvO,GAAMxB,KAAqBx3O,GAAS,KAFzC+5O,GAAiB,GAKrB,IAAIa,EAAkB5C,IAAiBh4O,EAAQo4O,IAI/C,GAHIK,KACAmC,EAAmBA,EAAkBnD,GAAmBA,GAAkBmD,GAE1Eb,GACIa,GAAmB9zO,IAAY8zO,GAAmBrxO,GAAU,CAC5D,IAAI8mO,EAAgB,EACf2I,GAAMxB,MACPnH,EAAgBqK,EAAWt2O,MAE/B,IAAIy2O,EAAU3C,GAAY7H,GAAkBrwO,EAAQo4O,IACpDyC,EAAUA,EAAS,EAAKA,EAAS,EAC7BD,IAAoBlC,IAAiBC,KACrCrB,GAAchtS,MAAMgwD,MAAQsgP,EAAkB,MAE9CnC,KACAnB,GAAchtS,MAAM85D,KAAOy2O,EAAS,KAEhClC,GADW,IAAXkC,EAOZ,CAEJnC,GAAgBkC,CACpB,CAGA,SAASjB,GAAW10S,GAChB,IAEI40S,EAFAc,EAAgB50S,SAASI,gBAAgB0gI,YACzCkzK,GAAiB,EAEhBf,GAAMxB,MACPqC,EAAsBD,GAAoBpC,KAE9C,IACIx3O,GADc/6D,EAAEw4I,QAAUx4I,EAAE04I,eAAe,GAAK14I,GAC5B+6D,MACpBi6O,EAAmBL,GAAoBtC,MACtC0B,GAAMxB,MAAwByC,EAAiB71O,KAAOy1O,EAAoBz1O,KAAQ61O,EAAiB3/O,OAAUiP,IAC1G0wO,EAAiBtgH,MAAQkgH,EAAoBz1O,MAAS61O,EAAiB3/O,QAGtE0+O,GAAMxB,KAAsBmD,EAAgB36O,EAAS,KAF1D+5O,GAAiB,GAKrB,IAAIa,EAAkB5C,IAAiBh4O,EAAQo4O,IAC3C/H,EAAgB,EAIpB,GAHK2I,GAAMxB,MACPnH,EAAgBwJ,EAAoBz1O,MAElC61O,EAAiB71O,KAAOisO,EAAiBuK,EAAmBrxO,GAAU,CAExE,GADAwwO,GAAiB,EACbzC,GAAcr1O,UAAUsJ,SAASusO,IACjC,OAEJR,GAAchtS,MAAMgwD,MAAQiP,IAAY0wO,EAAiB71O,KAAOisO,GAAiB,IACrF,CACI0J,GACIa,GAAmB9zO,IAAY8zO,GAAmBrxO,KAClD+tO,GAAchtS,MAAMgwD,MAAQsgP,EAAkB,KAG1D,CA6BO,SAASE,KAEZ,IADA,IAAIz6S,EAAWi3S,GAAcrwS,iBAAiB,IAAM0wS,IAC3C15S,EAAI,EAAGA,EAAIoC,EAAStD,OAAQkB,IACjCg9G,GAAO56G,EAASpC,IAEpB,IAAIi7S,EAAiB5B,GAAcrwS,iBAAiB,2BACpD,IAAK+xS,GAAME,GACP,IAASj7S,EAAI,EAAGA,EAAIi7S,EAAen8S,OAAQkB,IACvCg9G,GAAOi+L,EAAej7S,GAGlC,CC1hBA,IAuoDW88S,GAvoDP59S,GAAyC,WACzC,IAAIC,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBpI,OAAOuI,gBAClB,CAAEC,UAAW,cAAgBzH,OAAS,SAAUsH,EAAGC,GAAKD,EAAEG,UAAYF,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAInD,KAAKmD,EAAOA,EAAEhG,eAAe6C,KAAIkD,EAAElD,GAAKmD,EAAEnD,GAAI,EACtEiD,EAAcC,EAAGC,EAC5B,EACA,OAAO,SAAUD,EAAGC,GAEhB,SAASK,IAAOvE,KAAKwE,YAAcP,CAAG,CADtCD,EAAcC,EAAGC,GAEjBD,EAAEpI,UAAkB,OAANqI,EAAatI,OAAOqE,OAAOiE,IAAMK,EAAG1I,UAAYqI,EAAErI,UAAW,IAAI0I,EACnF,CACJ,CAZ6C,GAazCwxR,GAA0C,SAAUC,EAAYl5R,EAAQmB,EAAKsC,GAC7E,IAA2H0D,EAAvH+Q,EAAIjQ,UAAUpB,OAAQshD,EAAIjwC,EAAI,EAAIlY,EAAkB,OAATyD,EAAgBA,EAAO3E,OAAO4E,yBAAyB1D,EAAQmB,GAAOsC,EACrH,GAAuB,kBAAZoxI,SAAoD,oBAArBA,QAAQskJ,SAAyBhxO,EAAI0sF,QAAQskJ,SAASD,EAAYl5R,EAAQmB,EAAKsC,QACpH,IAAK,IAAIsE,EAAImxR,EAAWryR,OAAS,EAAGkB,GAAK,EAAGA,KAASZ,EAAI+xR,EAAWnxR,MAAIogD,GAAKjwC,EAAI,EAAI/Q,EAAEghD,GAAKjwC,EAAI,EAAI/Q,EAAEnH,EAAQmB,EAAKgnD,GAAKhhD,EAAEnH,EAAQmB,KAASgnD,GAChJ,OAAOjwC,EAAI,GAAKiwC,GAAKrpD,OAAOsD,eAAepC,EAAQmB,EAAKgnD,GAAIA,CAChE,EASI28P,GAA6B,SAAU/7S,GAEvC,SAAS+7S,IACL,OAAkB,OAAX/7S,GAAmBA,EAAOb,MAAMhF,KAAM+E,YAAc/E,IAC/D,CAaA,OAhBA+D,GAAU69S,EAAa/7S,GAIvBkwR,GAAW,CACPnB,IAAS,IACVgtB,EAAY/lT,UAAW,cAAU,GACpCk6R,GAAW,CACPnB,MACDgtB,EAAY/lT,UAAW,mBAAe,GACzCk6R,GAAW,CACPnB,GAAS,WACVgtB,EAAY/lT,UAAW,YAAQ,GAClCk6R,GAAW,CACPxnK,MACDqzL,EAAY/lT,UAAW,aAAS,GAC5B+lT,CACX,CAlBiC,CAkB/B9nB,IAKE+nB,GAAmC,SAAUh8S,GAE7C,SAASg8S,IACL,OAAkB,OAAXh8S,GAAmBA,EAAOb,MAAMhF,KAAM+E,YAAc/E,IAC/D,CAUA,OAbA+D,GAAU89S,EAAmBh8S,GAI7BkwR,GAAW,CACPnB,GAAS,SACVitB,EAAkBhmT,UAAW,cAAU,GAC1Ck6R,GAAW,CACPnB,GAAS,MACVitB,EAAkBhmT,UAAW,gBAAY,GAC5Ck6R,GAAW,CACPnB,GAAS,IACVitB,EAAkBhmT,UAAW,aAAS,GAClCgmT,CACX,CAfuC,CAerC/nB,IAEEgoB,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,SAAUt9S,GASlC,SAASs9S,EAAO5mT,EAASW,GACrB,IAAI4I,EAAQD,EAAO9J,KAAKiE,KAAMzD,EAASW,IAAY8C,KAEnD,OADA8F,EAAMg4R,SAAU,EACTh4R,CACX,CAkgDA,OA9gDA/B,GAAUo/S,EAAQt9S,GAmBlBs9S,EAAOtnT,UAAUmP,OAAS,WACtBhL,KAAK+nE,aACL/nE,KAAKojT,aACLpjT,KAAK8pS,aACc,SAAf9pS,KAAKkhE,QACLlhE,KAAK9C,QAAQgU,MAAMgwD,MAAQ,IAER,KAAnBlhE,KAAK4tE,YACL5tE,KAAK9C,QAAQgU,MAAM08D,UAAYomM,GAAWh0Q,KAAK4tE,YAE/C5tE,KAAKqjT,eACLrjT,KAAKsjT,YACiC,SAAlCtjT,KAAKujT,kBAAkBC,QACvBxjT,KAAKyjT,gBAGbzjT,KAAKm/R,gBACT,EACAgkB,EAAOtnT,UAAU6nT,gBAAkB,WAC/B1jT,KAAK2jT,YAAcT,EACvB,EAOAC,EAAOtnT,UAAU0iS,UAAY,WACzB,IAAIz4R,EAAQ9F,KACZA,KAAK0jT,kBACL1jT,KAAK4jT,cAAgB,KACrB5jT,KAAK6jT,gBAAiB,EACtB7jT,KAAK8jT,mBAAoB,EACzB9jT,KAAK+jT,UAAY/jT,KAAK9C,QAAQ+H,WAAU,GACxCjF,KAAKgkT,2BAA6B,SAAUrpP,GACxC70D,EAAM69S,YAxEU,aAyEhB79S,EAAM07G,KAAK7mD,EACf,EACA36D,KAAKikT,4BAA8B,SAAUtpP,GACzC70D,EAAM69S,YA1EY,eA2ElBhpP,EAAMupP,cAAe,EACrBp+S,EAAM0uH,QAAQ,eAAgB75D,GAAO,SAAUwpP,GACtCA,EAAsBD,cACvBp+S,EAAMs+S,eAEVt+S,EAAM69S,YAAcT,EACxB,GACJ,EAIA,GAFAljT,KAAKgoE,KAAO,IAAIsjO,GAAK,SADJ,CAAEvsO,MAAO,SACiB/+D,KAAKqc,QAChDrc,KAAKqkT,oBACDrxC,GAAkBhzQ,KAAKlD,QAAS,CAChC,IAAIwnT,EAAetkT,KAAKkxR,oBACxBlxR,KAAKkxR,qBAAsB,EAC3BlxR,KAAKlD,OAAS6P,SAASiwE,KACvB58E,KAAKkxR,oBAAsBozB,CAC/B,CACJ,EACAnB,EAAOtnT,UAAU0oT,cAAgB,SAAU9oT,GAEvC,MADe,mBAAmBiS,KAAKjS,EAE3C,EACA0nT,EAAOtnT,UAAUwoT,kBAAoB,WACjC,IAAKrxC,GAAkBhzQ,KAAKgU,UAAW,CACnC,IAAKg/P,GAAkBhzQ,KAAKgU,SAASynC,IAAoC,kBAArBz7C,KAAKgU,SAASynC,EAE9D,GADez7C,KAAKukT,cAAcvkT,KAAKgU,SAASynC,GAClC,CACV,IAAI6oQ,EAAetkT,KAAKkxR,oBACxBlxR,KAAKkxR,qBAAsB,EAC3BlxR,KAAKgU,SAASynC,EAAI3c,WAAW9+B,KAAKgU,SAASynC,GAC3Cz7C,KAAKkxR,oBAAsBozB,CAC/B,CAEJ,IAAKtxC,GAAkBhzQ,KAAKgU,SAAS0rJ,IAAoC,kBAArB1/J,KAAKgU,SAAS0rJ,EAE9D,GADe1/J,KAAKukT,cAAcvkT,KAAKgU,SAAS0rJ,GAClC,CACN4kJ,EAAetkT,KAAKkxR,oBACxBlxR,KAAKkxR,qBAAsB,EAC3BlxR,KAAKgU,SAAS0rJ,EAAI5gI,WAAW9+B,KAAKgU,SAAS0rJ,GAC3C1/J,KAAKkxR,oBAAsBozB,CAC/B,CAER,CACJ,EACAnB,EAAOtnT,UAAU2oT,OAAS,SAAUvnI,EAAMkvB,GAEtC,IADA,IAAIjvM,OAAUoD,EACLuE,EAAI,EAAGA,EAAIo4K,EAAKt5K,OAAQkB,IAC7B,GAAIo4K,EAAKp4K,GAAGgkE,UAAUsJ,SAASg6H,GAAW,CACtCjvM,EAAU+/K,EAAKp4K,GACf,KACJ,CAEJ,OAAO3H,CACX,EAEAimT,EAAOtnT,UAAU4nT,aAAe,WAC5B,IAAIgB,EAAuB,MACvBC,EAAuB,MACtB1xC,GAAkBhzQ,KAAK9C,QAAQ8P,cAAc,IAAMg1S,OACpDyC,EAAuBt8O,iBAAiBnoE,KAAK4jT,eAAeziP,QAEhE,IAAIwjP,EAAY3kT,KAAKwkT,OAAOxkT,KAAK9C,QAAQ2G,SAAUq+S,IAC9ClvC,GAAkB2xC,KACnBD,EAAuBv8O,iBAAiBw8O,GAAWxjP,QAEvD,ID2QqByjP,EC3QjBC,EAAettS,SAASktS,EAAqB5vS,MAAM,EAAG4vS,EAAqBv1S,QAAQ,MAAO,IAC1F41S,EAAevtS,SAASmtS,EAAqB7vS,MAAM,EAAG6vS,EAAqBx1S,QAAQ,MAAO,IAE9F,ODwQqB01S,ECzQRC,EAAe,IAAMrqS,MAAMsqS,GAAgB,EAAIA,GD0QhEl3O,GAAYg3O,ECzQAC,EAAe,GAAKC,CAChC,EACA3B,EAAOtnT,UAAUkpT,cAAgB,SAAUvrS,EAAMwrS,GAE7C,OADAA,EAAUxwL,QAAQ,cAAeh7G,GAC1BA,EAAKW,MAChB,EACAgpS,EAAOtnT,UAAUopT,WAAa,SAAUzrS,EAAMwrS,GAC1CA,EAAUxwL,QAAQ,WAAYh7G,EAClC,EACA2pS,EAAOtnT,UAAUqpT,iBAAmB,SAAU1rS,EAAMwrS,GAChDA,EAAUxwL,QAAQ,aAAch7G,EACpC,EACA2pS,EAAOtnT,UAAUynT,UAAY,WACzB,GAAItjT,KAAKqjT,aAAc,CACnB,GAAIrjT,KAAKmlT,yBAA2BnyC,GAAkBhzQ,KAAK9C,QAAQ8P,cAAc,6BAC7E,OAEJhN,KAAK9C,QAAQ2rE,UAAU31C,IAAI6vR,IAI3B,IAHA,IAAIqC,EAAiBj9O,iBAAiBnoE,KAAK9C,SAAS0wE,UAChDy3O,EAAgBl9O,iBAAiBnoE,KAAK9C,SAASwwE,SAC/C5qC,EAAY,GACPj+B,EAAI,EAAGA,EAAI7E,KAAKslT,cAAc3hT,OAAQkB,IAAK,CAChD,GAA8B,QAA1B7E,KAAKslT,cAAczgT,GAAc,CACjCi+B,EAAY,oEACZ,KACJ,CAEI,IAAIyiR,EAAiB,GACrB,OAAQvlT,KAAKslT,cAAczgT,GAAG/I,YAC1B,IAAK,YACDypT,EAAiB,aACjB,MACJ,IAAK,YACDA,EAAiB,aACjB,MACJ,IAAK,YACDA,EAAiB,aACjB,MACJ,IAAK,YACDA,EAAiB,aACjB,MACJ,QACIA,EAAiBvlT,KAAKslT,cAAczgT,GAAG/I,WAG/CgnC,GAAayiR,EAAe/0R,oBAAsB,GAE1D,CACIxwB,KAAKg+R,WAAkC,eAArBl7P,EAAUhxB,OAC5BgxB,EAAY,aAEP9iC,KAAKg+R,WAAkC,eAArBl7P,EAAUhxB,SACjCgxB,EAAY,cAEZ9iC,KAAKwlT,SAAWxlT,KAAKg+R,UACrBh+R,KAAK9C,QAAQ2rE,UAAU31C,IAAI8vR,IAEtBhjT,KAAKwlT,SAAWxlT,KAAKlD,SAAW6P,SAASiwE,MAC9C58E,KAAK9C,QAAQ2rE,UAAU31C,IAAI+vR,IDnQpC,SAAsBzpS,GACzB0lS,GAAc1lS,EAAKisS,YACnBtG,GAAS3lS,EAAKksS,SACdtG,GAAY5lS,EAAKmsS,eACjBzH,GAAgByB,GAAcnmS,EAAKtc,SACnCkhT,GAAmBuB,GAAcnmS,EAAKosS,UAEtC,IADA,IAAIC,EAAarsS,EAAKspB,UAAUxwB,MAAM,KAC7BzN,EAAI,EAAGA,EAAIghT,EAAWliT,OAAQkB,IACnC,GAAI85S,GAAmBzvS,QAAQ22S,EAAWhhT,KAAO,GAAKghT,EAAWhhT,GAC7D26S,GAAmBqG,EAAWhhT,SAE7B,GAA6B,KAAzBghT,EAAWhhT,GAAGiN,OAAe,CAClC,IAAIg0S,EAAgB14S,GAAc,MAAO,CAAEgiE,UAAW,WAAamvO,GAAb,MAA2CsH,EAAWhhT,KAC5Gq5S,GAAcjnS,YAAY6uS,EAC9B,CAEJl4O,GAAYp0D,EAAKo0D,UACjBF,GAAWl0D,EAAKk0D,SAChByC,GAAW32D,EAAK22D,SAChBC,GAAY52D,EAAK42D,UACb52D,EAAKypL,OAASzpL,EAAKypL,MAAM/lM,SAAWsc,EAAKypL,MAAM/lM,QAAQ2rE,UAAUsJ,SAAS,YAC1E23N,GAAWtwR,EAAKypL,OAGhB6mG,IAER,CC2OYic,CAAa,CACT7oT,QAAS8C,KAAK9C,QACd4lC,UAAWA,EACX8qC,UAAWr2D,SAAS6tS,EAAevwS,MAAM,EAAGwwS,EAAcn2S,QAAQ,MAAO,IACzEkhE,UAAWpwE,KAAKggT,UAAUryK,aAC1BjgE,SAAUn2D,SAAS8tS,EAAcxwS,MAAM,EAAGwwS,EAAcn2S,QAAQ,MAAO,IACvEihE,SAAUnwE,KAAKggT,UAAUvyK,YACzBm4K,SAAU5lT,KAAKlD,SAAW6P,SAASiwE,KAAO,KAAO58E,KAAKggT,UACtDyF,YAAazlT,KAAK+kT,cAAcnkP,KAAK5gE,MACrC2lT,eAAgB3lT,KAAKklT,iBAAiBtkP,KAAK5gE,MAC3C0lT,SAAU1lT,KAAKilT,WAAWrkP,KAAK5gE,MAC/BijM,MAAOjjM,OAEXA,KAAKgmT,uBACT,MAEItE,KACA1hT,KAAKimT,0BACDjmT,KAAKwlT,QACLxlT,KAAK9C,QAAQ2rE,UAAUxE,OAAO2+O,IAG9BhjT,KAAK9C,QAAQ2rE,UAAUxE,OAAO4+O,IAElCjjT,KAAK9C,QAAQ2rE,UAAUxE,OAAO0+O,GAEtC,EACAI,EAAOtnT,UAAUqqT,gBAAkB,SAAUppT,GACzC,IACIw7D,EAAQx7D,EAAO+Q,iBADP,8EAEZ,MAAO,CAAE3Q,QAASo7D,EAAMA,EAAM30D,OAAS,GAC3C,EAEAw/S,EAAOtnT,UAAUo4H,QAAU,SAAUt5D,GACjC,IAAI70D,EAAQ9F,KACZ,GAAsB,IAAlB26D,EAAM8kF,SACFz/I,KAAKwlT,QAAS,CACd,IAAIW,OAAY,EACXnzC,GAAkBhzQ,KAAKomT,UACxBD,EAAYnmT,KAAKomT,OAAOpmT,KAAKomT,OAAOziT,OAAS,IAE5CqvQ,GAAkBhzQ,KAAKomT,UAAcpzC,GAAkBhzQ,KAAKqmT,sBAC7DF,EAAYnmT,KAAKkmT,gBAAgBlmT,KAAKqmT,qBAEtCrzC,GAAkBhzQ,KAAKomT,SAAWpzC,GAAkBhzQ,KAAKqmT,sBAAwBrzC,GAAkBhzQ,KAAKsmT,cACxGH,EAAYnmT,KAAKkmT,gBAAgBlmT,KAAKsmT,aAErCtzC,GAAkBmzC,IAAcx5S,SAASylE,gBAAkB+zO,EAAUjpT,SAAYy9D,EAAMiW,WACxFjW,EAAMgP,iBACN3pE,KAAKgsP,kBAAkBhsP,KAAK9C,SAASm1E,SAErC1lE,SAASylE,gBAAkBpyE,KAAKgsP,kBAAkBhsP,KAAK9C,UAAYy9D,EAAMiW,WACzEjW,EAAMgP,iBACDqpM,GAAkBmzC,IACnBA,EAAUjpT,QAAQm1E,QAG9B,CAEJ,IAAIn1E,EAAUyP,SAASylE,cACnBm0O,EAAa,CAAC,QAAS,YAAYr3S,QAAQhS,EAAQwP,QAAQe,gBAAkB,EAC7E+4S,GAAgB,EAIpB,GAHKD,IACDC,EAAgBtpT,EAAQ22S,aAAa,oBAAkE,SAA5C32S,EAAQ8uH,aAAa,oBAE9D,KAAlBrxD,EAAM8kF,SAAkBz/I,KAAKymT,cAAe,CAC5CzmT,KAAK2jT,YA9QO,SA+QZ,IAAI58S,EAAQ4F,SAASK,cAAc,iCAE5BgmQ,GAAkBjsQ,IAAWA,EAAM8hE,UAAUsJ,SAAS,mBACzDnyE,KAAKwhH,KAAK7mD,EAElB,CACA,GAAuB,KAAlBA,EAAM8kF,UAAmB9kF,EAAM0R,SAA6C,aAAlCnvE,EAAQwP,QAAQe,eAC3D84S,IAAcvzC,GAAkBhzQ,KAAK0mT,mBAClB,KAAlB/rP,EAAM8kF,SAAkB9kF,EAAM0R,UAA8C,aAAlCnvE,EAAQwP,QAAQe,eACvD+4S,KAAoBxzC,GAAkBhzQ,KAAK0mT,kBAAmB,CAClE,IAAIC,EACAC,EAAe5mT,KAAKuhJ,QAAQlmI,MAAK,SAAUpY,EAAM2L,GACjD+3S,EAAgB/3S,EAEhB,IAAIi4S,EAAc5jT,EAAK4jT,YACvB,OAAQ7zC,GAAkB6zC,KAA0C,IAA1BA,EAAY1iK,SAC1D,IACIyiK,GAA+D,oBAAvC5mT,KAAKuhJ,QAAQolK,GAAermL,OACpDxmH,YAAW,WACPhU,EAAMy7I,QAAQolK,GAAermL,MAAMvkI,KAAK+J,EAAO60D,EACnD,GAER,CACJ,EAOAwoP,EAAOtnT,UAAUksE,WAAa,WACrBirM,GAAkBhzQ,KAAKlD,UACxBkD,KAAKggT,UAAsC,kBAAjBhgT,KAAKlD,OAC3B6P,SAASK,cAAchN,KAAKlD,QAAUkD,KAAKlD,QAE9CkD,KAAKmlT,wBACNh2B,GAAS,CAACnvR,KAAK9C,SAAU4kT,IAEzBt1B,GAAQS,UACRkC,GAAS,CAACnvR,KAAK9C,SAAUqlT,IAExBviT,KAAKmlT,wBACNnlT,KAAK8mT,cAET9mT,KAAK+mT,cACT,EAOA5D,EAAOtnT,UAAUunT,WAAa,WAC1B,IAAIt9S,EAAQ9F,KA8CZ,GA7CAA,KAAKgnT,eAAgB,EAChBhnT,KAAKmlT,wBACN72S,GAAWtO,KAAK9C,QAAS,CAAEmhL,KAAM,WAEjB,MAAhBr+K,KAAKqpE,QACLrpE,KAAKinT,UAAUjnT,KAAK9C,SAAS,GAC7B8C,KAAKknT,iBAAkB,GAGvBlnT,KAAKknT,iBAAkB,EAEvBlnT,KAAKmlT,wBAA0BnyC,GAAkBhzQ,KAAK4jT,iBACtD5jT,KAAK4jT,cAAgB5jT,KAAK9C,QAAQixM,uBAAuB,wBAAwB,IAEjFnuM,KAAKmlT,wBAA0BnyC,GAAkBhzQ,KAAKsmT,cACtDtmT,KAAKsmT,WAAatmT,KAAK9C,QAAQ8P,cAAc,IAAMhN,KAAK9C,QAAQ+0D,GAAK,oBAEpEjyD,KAAKmlT,yBACNnlT,KAAKmnT,mBACe,KAAhBnnT,KAAK60H,QAAkBm+I,GAAkBhzQ,KAAK60H,SAC9C70H,KAAK8+N,YAET9+N,KAAKonT,kBACLpnT,KAAKq6S,aACuB,KAAxBr6S,KAAKqnT,gBAA0Br0C,GAAkBhzQ,KAAKqnT,gBAGhDr0C,GAAkBhzQ,KAAKuhJ,QAAQ,GAAGslK,cACxC7mT,KAAKsnT,YAHLtnT,KAAKunT,qBAMTvnT,KAAKmlT,yBACAnyC,GAAkBhzQ,KAAKuhJ,QAAQ,GAAGslK,cAAwC,KAAxB7mT,KAAKqnT,gBACxDrnT,KAAKsnT,aAGTtnT,KAAKwnT,gBAAmBx0C,GAAkBhzQ,KAAK4jT,gBAC/C5jT,KAAKynT,mBAEJznT,KAAKmlT,yBACN72S,GAAWtO,KAAK9C,QAAS,CAAE,aAAe8C,KAAKwlT,QAAU,OAAS,UAC9DxlT,KAAKwlT,SACLxlT,KAAK0nT,cAGT1nT,KAAKmlT,wBAA0BnyC,GAAkBhzQ,KAAK2nT,cAAe,CACrE3nT,KAAK2nT,aAAe3nT,KAAK9C,QAAQssS,cACjC,IAAK,IAAI3kS,EAAI,EAAGyI,EAAatN,KAAK2nT,aAAa9jT,SAAUgB,EAAIyI,EAAW3J,OAAQkB,IACxEyI,EAAWzI,GAAGgkE,UAAUsJ,SAAS,mBACjCnyE,KAAK4nT,WAAat6S,EAAWzI,GAGzC,CACA,IAAwD,IAApD7E,KAAK9C,QAAQ2rE,UAAUsJ,SAAS0wO,MAAkF,IAAtD7iT,KAAK9C,QAAQ2rE,UAAUsJ,SAAS2wO,MACxF9vC,GAAkBhzQ,KAAK9C,QAAQssS,eAAgB,CACnD,IAAIqe,EAAY7nT,KAAKwlT,QAAUxlT,KAAK2nT,aAAane,cAAgBxpS,KAAK9C,QAAQssS,cAC9ExpS,KAAK8nT,WAAa9nT,KAAKoN,cAAc,MAAO,CAAEgiE,UAhYpC,sBAiYVy4O,EAAU3pJ,aAAal+J,KAAK8nT,WAAa9nT,KAAKwlT,QAAUxlT,KAAK2nT,aAAe3nT,KAAK9C,QACrF,CACK81Q,GAAkBhzQ,KAAKggT,aAExBhgT,KAAKwlT,QAAUxlT,KAAKggT,UAAU/oS,YAAYjX,KAAK2nT,cAAgB3nT,KAAKggT,UAAU/oS,YAAYjX,KAAK9C,UAEnG8C,KAAK+nT,SAAW,IAAI7N,GAAMl6S,KAAK9C,QAAS,CACpCikE,OAAQnhE,KAAKmhE,OACbD,MAAOlhE,KAAKkhE,MACZmI,OAAQrpE,KAAKqpE,OACb2xO,SAAUh7S,KAAKlD,OACfw9S,eAAgB,OAChBtc,UAAWh+R,KAAKg+R,UAEhBj9M,KAAM,SAAUpmB,GACZ,IAAImwN,EAAY,CACZ7yM,UAAWnyE,EAAM0/S,QAAU1/S,EAAM6hT,aAAe7hT,EAAM5I,QACtDA,QAAS4I,EAAM5I,QACfJ,OAAQgJ,EAAMhJ,OACdonT,cAAc,GAEdp+S,EAAMu9S,cACNv9S,EAAMkiT,kBAEVliT,EAAM0uH,QAAQ,OAAQs2J,GAAW,SAAUm9B,GAClCA,EAAc/D,cACfp+S,EAAMs+S,cAEd,GACJ,EAEArlP,MAAO,SAAUpE,GACT70D,EAAM0/S,SACNr2B,GAAS,CAACrpR,EAAM8hT,YAAa,UAEjC9hT,EAAMoiT,YAAYpiT,EAAM5I,SACpB4I,EAAM0/S,UACN1/S,EAAM6hT,aAAaz2S,MAAMyyG,QAAU,QAEvC79G,EAAM0uH,QAAQ,QAAS1uH,EAAMqiT,WAC7B,IAAIC,EAAYz7S,SAASylE,cACpB4gM,GAAkBo1C,IAAep1C,GAAmBo1C,EAAWtxO,OAChEsxO,EAAUtxO,OAETk8L,GAAkBltQ,EAAMuiT,qBAAwBr1C,GAAkBltQ,EAAMuiT,mBAAmBh2O,QAC5FvsE,EAAMuiT,mBAAmBh2O,OAEjC,IAEJryE,KAAKsoT,iBACLtoT,KAAKuoT,eACAvoT,KAAKmlT,yBACNh2B,GAAS,CAACnvR,KAAK9C,SA9bZ,iBA+bC8C,KAAKwlT,SACLxlT,KAAKwoT,oBAGTxoT,KAAKsgG,QACLtgG,KAAK2hH,OAGD3hH,KAAKwlT,UACLxlT,KAAK4nT,WAAW12S,MAAMyyG,QAAU,QAGxC3jH,KAAKgnT,eAAgB,CACzB,EACA7D,EAAOtnT,UAAUmsT,gBAAkB,WAC/B,IAAIS,EAAkBzoT,KAAKyjT,eAC3B,GAAIzjT,KAAKggT,UAAUviH,aAAegrH,EAAiB,CAC/C,IAAIr5O,EAAYpvE,KAAKg+R,UAAY,eAAiB,eAC9C0qB,EAAa1oT,KAAK9C,QAAQ8P,cAAc,IAAMoiE,GAC7C4jM,GAAkB01C,KACnBA,EAAWx3S,MAAM6zL,OAAS,IAAM0jH,EAAgB3sT,WAAa,KAErE,CACJ,EACAqnT,EAAOtnT,UAAU2sT,iBAAmB,SAAUG,GAC1C,IAAIt/O,EAEAA,EADA2pM,GAAkB21C,GACTpxS,SAASvX,KAAK9C,QAAQgU,MAAMm4D,OAAQ,IAAM9xD,SAASvX,KAAK9C,QAAQgU,MAAMm4D,OAAQ,IAAMrpE,KAAKqpE,OAGzFs/O,EAEb3oT,KAAK4nT,WAAW12S,MAAMm4D,QAAUA,EAAS,GAAGvtE,WAC5CkE,KAAK2nT,aAAaz2S,MAAMm4D,OAASA,EAAOvtE,UAC5C,EACAqnT,EAAOtnT,UAAUysT,eAAiB,WAC1BtoT,KAAKwlT,UACAhrS,MAAMskB,WAAW9+B,KAAKgU,SAASynC,KAAQjhC,MAAMskB,WAAW9+B,KAAKgU,SAAS0rJ,MAGhEllJ,MAAMskB,WAAW9+B,KAAKgU,SAASynC,KAAOjhC,MAAMskB,WAAW9+B,KAAKgU,SAAS0rJ,KACxEllJ,MAAMskB,WAAW9+B,KAAKgU,SAASynC,MAAQjhC,MAAMskB,WAAW9+B,KAAKgU,SAAS0rJ,IAC1E1/J,KAAK4oT,oBAGL5oT,KAAK9C,QAAQgU,MAAM+5D,IAAM,MACzBjrE,KAAK9C,QAAQgU,MAAM85D,KAAO,MAC1BhrE,KAAK2nT,aAAa9+O,UAAU31C,IAAI,SAAWlzB,KAAKgU,SAASynC,EAAI,IAAMz7C,KAAKgU,SAAS0rJ,IAIrF1/J,KAAK4oT,kBAEb,EACAzF,EAAOtnT,UAAU+sT,iBAAmB,WAChC5oT,KAAK+nT,SAASn2B,cAAc,CACxB59Q,SAAU,CACNynC,EAAGz7C,KAAKgU,SAASynC,EAAGikH,EAAG1/J,KAAKgU,SAAS0rJ,IAGjD,EACAyjJ,EAAOtnT,UAAU4rT,iBAAmB,WAChC,IAAI3hT,EAAQ9F,KACR6oT,EAAgB,IAAM7G,GACrBhiT,KAAK9C,QAAQ2rE,UAAUsJ,SAjfrB,iBAkfHnyE,KAAK8oT,QAAU,IAAI9nB,GAAUhhS,KAAK9C,QAAS,CACvCV,OAAO,EACP0nS,cAAc,EACdrzO,MAAO,uBACP0sJ,OAAQsrG,EACRrkB,UAAW,SAAU7pO,GACjB70D,EAAM0uH,QAAQ,YAAa75D,GAAO,SAAUouP,GACpCn1C,MACAm1C,EAAc14O,WAAW1V,EAAMgqO,YAEvC,GACJ,EACAwD,SAAU,SAAUxtO,GACZ70D,EAAM0/S,UACDxyC,GAAkBltQ,EAAMkO,WACzBlO,EAAM6hT,aAAa9+O,UAAUxE,OAAO,SAAWv+D,EAAMkO,SAASynC,EAAI,IAAM31C,EAAMkO,SAAS0rJ,GAG3F55J,EAAM5I,QAAQgU,MAAM8C,SAAW,YAEnClO,EAAM0uH,QAAQ,WAAY75D,GAC1B70D,EAAM5I,QAAQ2rE,UAAUxE,OAAO2+O,GACnC,EACAv4O,KAAM,SAAU9P,GACZ70D,EAAM0uH,QAAQ,OAAQ75D,EAC1B,IAECq4M,GAAkBhzQ,KAAKggT,aACxBhgT,KAAK8oT,QAAQlkB,SAAW5kS,KAAKggT,WAGzC,EACAmD,EAAOtnT,UAAUyrT,UAAY,WACzB,IAAKtnT,KAAKmlT,uBAAwB,CAC9BnlT,KAAKgpT,cAAgB,GACrBhpT,KAAKomT,OAAS,GAGd,IADA,IACSvhT,EAAI,EAAGA,EAAI7E,KAAKuhJ,QAAQ59I,OAAQkB,IAAK,CAC1C,IAAIokT,EAAcj2C,GAAkBhzQ,KAAKuhJ,QAAQ18I,GAAG/E,MAA6C,SAArCE,KAAKuhJ,QAAQ18I,GAAG/E,KAAK2N,cAC7Ey7S,EAAMlpT,KAAKoN,cAAc,SAAU,CAAEgiE,UAAWpvE,KAAK+0S,SAAUl+R,MAAO,CAAE/W,KAAMmpT,KAClFjpT,KAAKgpT,cAAcjmT,KAAKmmT,EAAIC,UAChC,CACAnpT,KAAKunT,mBACT,CAES1iT,EAAI,EAAb,IADA,IAAIukT,EACY97S,EAAatN,KAAK9C,QAAQ2G,SAAUgB,EAAIyI,EAAW3J,OAAQkB,IACnEyI,EAAWzI,GAAGgkE,UAAUsJ,SAAS+vO,MACjCkH,EAAY97S,EAAWzI,GAAGgJ,iBAAiB,WAGnD,IAAShJ,EAAI,EAAGA,EAAI7E,KAAKuhJ,QAAQ59I,OAAQkB,IAChC7E,KAAKmlT,yBACNnlT,KAAKomT,OAAOvhT,GAAK,IAAIgwS,GAAO70S,KAAKuhJ,QAAQ18I,GAAGgiT,cAE5C7mT,KAAKmlT,yBACLnlT,KAAKqmT,mBAAqBrmT,KAAK9C,QAAQ8P,cAAc,IAAMk1S,MAE1DlvC,GAAkBhzQ,KAAKqmT,qBAAuB+C,EAAUzlT,OAAS,IAC3B,oBAA3B3D,KAAKuhJ,QAAQ18I,GAAGy7H,OACxB6tJ,GAAaj7P,IAAIk2R,EAAUvkT,GAAI,QAAS7E,KAAKuhJ,QAAQ18I,GAAGy7H,MAAOtgI,MAE5B,kBAA3BA,KAAKuhJ,QAAQ18I,GAAGy7H,OACxB6tJ,GAAaj7P,IAAIk2R,EAAUvkT,GAAI,QAAS7E,KAAKqpT,mBAAmBzoP,KAAK5gE,KAAM6E,GAAI7E,OAGlFA,KAAKmlT,wBAA2BnyC,GAAkBhzQ,KAAKqmT,sBACxDrmT,KAAKomT,OAAOvhT,GAAGu5R,SAASp+R,KAAKqmT,mBAAmBxiT,SAASgB,IACrD7E,KAAKuhJ,QAAQ18I,GAAGykT,QAChBtpT,KAAKomT,OAAOvhT,GAAG3H,QAAQ2rE,UAAU31C,IAAI,UAEzClzB,KAAK0mT,iBAAmB1mT,KAAK9C,QAAQixM,uBAAuB,aAAa,GAGrF,EACAg1G,EAAOtnT,UAAUwtT,mBAAqB,SAAUz6S,GAC5C5O,KAAKw0H,QAAQ,WAAa5lH,EAAQ,UAAW,CAAC,EAClD,EACAu0S,EAAOtnT,UAAUw+S,WAAa,WAE1B,GADAr6S,KAAKsmT,WAAatmT,KAAKoN,cAAc,MAAO,CAAEgiE,UA3lBpC,gBA2lB4Dnd,GAAIjyD,KAAK9C,QAAQ+0D,GAAK,oBACxFjyD,KAAKupT,oBACLvpT,KAAKsmT,WAAWrvS,YAAYjX,KAAKupT,0BAEhC,IAAKv2C,GAAkBhzQ,KAAKqN,UAA6B,KAAjBrN,KAAKqN,UAAmBrN,KAAKgnT,cAAe,CAEjEprT,OAAOwB,KAAK+J,SACF,kBAAlBnH,KAAKqN,SAA0BumQ,OAGlC5zQ,KAAKqN,mBAAmB+yF,YAC7BpgG,KAAKsmT,WAAWrvS,YAAYjX,KAAKqN,SAHjCrN,KAAKwpT,YAAYxpT,KAAKqN,QAASrN,KAAKsmT,WAAY,UAQxD,CACKtzC,GAAkBhzQ,KAAK4jT,eAIxB5jT,KAAK9C,QAAQghK,aAAal+J,KAAKsmT,WAAYtmT,KAAK9C,QAAQ2G,SAAS,IAHjE7D,KAAK9C,QAAQghK,aAAal+J,KAAKsmT,WAAYtmT,KAAK9C,QAAQ2G,SAAS,IAKjD,SAAhB7D,KAAKmhE,SACAnhE,KAAKmlT,yBAA0B34B,GAAQoC,MAAqC,KAA7B5uR,KAAK9C,QAAQgU,MAAMgwD,OAAiB8xM,GAAkBhzQ,KAAKkhE,SAC3GlhE,KAAK9C,QAAQgU,MAAMgwD,MAAQ8yM,GAAWh0Q,KAAKkhE,QAE/ClhE,KAAK+mT,eAEb,EACA5D,EAAOtnT,UAAU2tT,YAAc,SAAUr8S,EAAUs0I,EAAWpsI,GAC1D,IAAIo0S,EACAC,EAYAC,EAVgB/tT,OAAOwB,KAAK+J,QAE5BuiT,EADAjoK,EAAU54E,UAAUsJ,SAAS8vO,IACbjiT,KAAK9C,QAAQ+0D,GAAK,SAE7BwvF,EAAU54E,UAAUsJ,SAAS+vO,IAClBliT,KAAK9C,QAAQ+0D,GAAK,iBAGlBjyD,KAAK9C,QAAQ+0D,GAAK,UAGjC+gN,GAAkB7lQ,EAASg8S,YAGF,kBAAbh8S,GAA+C,kBAAbA,GAA2BymQ,OAAe5zQ,KAAK69R,oBACrE,kBAAb1wR,IACRA,EAAWnN,KAAK4pT,eAAez8S,IAE/BnN,KAAK6pT,OAA6B,kBAAb18S,GACrBs8S,EAAaj5D,GAAQrjP,GACrBw8S,EAAgBx8S,GAGhBs0I,EAAUx0I,UAAYE,GAX1Bs0I,EAAUxqI,YAAY9J,GAc1B,IAAIwiR,EAAe,GACnB,IAAK3c,GAAkBy2C,GAAa,CAIhC,IAHA,IAGStuS,EAAK,EAAGpV,EAAK0jT,EAAW,CAAC,EAAGzpT,KAAMqV,EAAMq0S,IAHjC91C,OACX5zQ,KAAK69R,kBAA+D,IAA1C8rB,EAAez6S,QAAQ,iBAClDlP,KAAK69R,kBACkE1iR,EAAKpV,EAAGpC,OAAQwX,IAAM,CAC7F,IAAI0oB,EAAO99B,EAAGoV,GACdw0Q,EAAa5sR,KAAK8gC,EACtB,CACAooC,GAAO,GAAGp3D,MAAM9Y,KAAK4zR,GAAeluI,EACxC,CACJ,EAMA0hK,EAAOtnT,UAAU+tT,eAAiB,SAAUnuT,GACxC,GAAIuE,KAAKi1S,oBAAqB,CAC1B,IAAI6U,EAAa5W,GAAmBC,iBAKpCj3R,GAAO4tS,EAAYA,EAJD,CACd3vS,QAAQ,EACRisR,OAAQ,OAGZpmS,KAAKw0H,QAAQ,qBAAsBs1L,GAC/BA,EAAW3vS,SAAW64P,GAAkB82C,EAAW1jB,QACnD3qS,EAAQquT,EAAW1jB,OAAO3qS,GAEpBquT,EAAW3vS,SACjB1e,EAAQy3S,GAAmBI,eAAewW,EAAYruT,GAE9D,CACA,OAAOA,CACX,EACA0nT,EAAOtnT,UAAUkrT,aAAe,WAC5B,GAAK/mT,KAAK6jT,eAAV,CAGA,IAAIlgM,EAAU3jH,KAAK9C,QAAQgU,MAAMyyG,QACjC3jH,KAAK9C,QAAQgU,MAAMyyG,QAAU,OAC7B3jH,KAAK9C,QAAQgU,MAAMk/D,WAAc4iM,GAAkBhzQ,KAAKlD,SAAakD,KAAKggT,UAAUviH,aAAet2L,OAAOk7G,YACrGriH,KAAKggT,UAAUviH,aAAe,GAAM,KAAQt2L,OAAOk7G,YAAc,GAAM,KAC5EriH,KAAK9C,QAAQgU,MAAMyyG,QAAUA,EACzB6oK,GAAQoC,MAAwB,SAAhB5uR,KAAKmhE,SAAsB6xM,GAAkBhzQ,KAAKsmT,aAC/DtmT,KAAK9C,QAAQugM,aAAez9L,KAAKsmT,WAAW7oH,eAC/Cz9L,KAAK9C,QAAQgU,MAAMiwD,OAAS,UARhC,CAUJ,EACAgiP,EAAOtnT,UAAU0sT,aAAe,WACvBvoT,KAAKmlT,yBAENnlT,KAAKg+R,UAAY7O,GAAS,CAACnvR,KAAK9C,SAAU6kT,IAAOvyB,GAAY,CAACxvR,KAAK9C,SAAU6kT,KAE5E/uC,GAAkBhzQ,KAAK9C,QAAQ8P,cAAc,uBAC9C00S,KACA1hT,KAAKsjT,YAEb,EACAH,EAAOtnT,UAAUsrT,iBAAmB,WAChC,IAAIrhT,EAAQ9F,KACZ,GAAIgzQ,GAAkBhzQ,KAAKqN,UAA6B,KAAjBrN,KAAKqN,QAAgB,CACxD,IAAI08S,EAA8E,KAAlE/pT,KAAK9C,QAAQ+P,UAAU4E,QAAQ,0BAA2B,KACtE7R,KAAK9C,QAAQ2G,SAASF,OAAS,GAAKomT,KACpC/pT,KAAKupT,oBAAsB58S,SAASmjR,yBACpC,GAAGj7Q,MAAM9Y,KAAKiE,KAAK9C,QAAQoQ,YAAYtP,SAAQ,SAAU0+H,GACjC,IAAhBA,EAAG5tH,UACHhJ,EAAMyjT,oBAAoBtyS,YAAYylH,EAE9C,IAER,CACJ,EACAymL,EAAOtnT,UAAUijO,UAAY,WACrB9+N,KAAKgqT,UACLhqT,KAAKgqT,UAAU/8S,UAAY,GAG3BjN,KAAKgqT,UAAYhqT,KAAKoN,cAAc,MAAO,CAAE6kD,GAAIjyD,KAAK9C,QAAQ+0D,GAAK,SAAUmd,UAAW6yO,KAE5FjiT,KAAKiqT,sBACLjqT,KAAK4jT,cAAc3sS,YAAYjX,KAAKgqT,WACpChqT,KAAKwpT,YAAYxpT,KAAK60H,OAAQ70H,KAAKgqT,UAAW,UAC9C17S,GAAWtO,KAAK9C,QAAS,CAAE,kBAAmB8C,KAAK9C,QAAQ+0D,KAC3DjyD,KAAK9C,QAAQghK,aAAal+J,KAAK4jT,cAAe5jT,KAAK9C,QAAQ2G,SAAS,IAChE7D,KAAKwnT,gBAAmBx0C,GAAkBhzQ,KAAK4jT,gBAC/C5jT,KAAKynT,kBAEb,EACAtE,EAAOtnT,UAAU0rT,kBAAoB,WAC7BvnT,KAAKqmT,mBACLrmT,KAAKqmT,mBAAmBp5S,UAAY,GAGpCjN,KAAKqmT,mBAAqBrmT,KAAKoN,cAAc,MAAO,CAChDgiE,UAAW8yO,KAGS,KAAxBliT,KAAKqnT,gBAA0Br0C,GAAkBhzQ,KAAKqnT,gBAItDrnT,KAAKqmT,mBAAmBp5S,UAAYjN,KAAKgpT,cAAc7oS,KAAK,IAH5DngB,KAAKwpT,YAAYxpT,KAAKqnT,eAAgBrnT,KAAKqmT,mBAAoB,kBAKnErmT,KAAK9C,QAAQ+Z,YAAYjX,KAAKqmT,mBAClC,EACAlD,EAAOtnT,UAAUouT,oBAAsB,WAC/Bj3C,GAAkBhzQ,KAAK4jT,iBACvB5jT,KAAK4jT,cAAgB5jT,KAAKoN,cAAc,MAAO,CAAE6kD,GAAIjyD,KAAK9C,QAAQ+0D,GAAK,iBAAkBmd,UAAW4yO,KAE5G,EACAmB,EAAOtnT,UAAUurT,gBAAkB,WAC3BpnT,KAAKkqT,gBACLlqT,KAAKmqT,UAAYnqT,KAAKoN,cAAc,SAAU,CAAEgiE,UAAWqzO,GAAoB5rS,MAAO,CAAE/W,KAAM,YAC9FE,KAAKoqT,gBAAkB,IAAIvV,GAAO,CAAEE,SAAU,SAAUK,QAASgN,gBACjEpiT,KAAKqqT,iBACAr3C,GAAkBhzQ,KAAK4jT,gBAIxB5jT,KAAKiqT,sBACL99O,GAAQ,CAACnsE,KAAKmqT,WAAYnqT,KAAK4jT,eAC/B5jT,KAAK9C,QAAQghK,aAAal+J,KAAK4jT,cAAe5jT,KAAK9C,QAAQ2G,SAAS,KALpEsoE,GAAQ,CAACnsE,KAAKmqT,WAAYnqT,KAAK4jT,eAOnC5jT,KAAKoqT,gBAAgBhsB,SAASp+R,KAAKmqT,WAE3C,EACAhH,EAAOtnT,UAAUwuT,eAAiB,WAC9BrqT,KAAKgoE,KAAKyjO,UAAUzrS,KAAKqc,QACzB,IAAIguS,EAAiBrqT,KAAKgoE,KAAK8jO,YAAY,SAC3C9rS,KAAKmqT,UAAUpzS,aAAa,QAASszS,GACrCrqT,KAAKmqT,UAAUpzS,aAAa,aAAcszS,EAC9C,EACAlH,EAAOtnT,UAAUirT,YAAc,SAAUwD,GACjCA,IACA96B,GAAY,CAACxvR,KAAK9C,SAAUotT,EAAYh4S,MAAM,MAC1CtS,KAAKwlT,UAAYxyC,GAAkBhzQ,KAAK2nT,eACxCn4B,GAAY,CAACxvR,KAAK2nT,cAAe2C,EAAYh4S,MAAM,OAGvDtS,KAAK+0S,WACL5lB,GAAS,CAACnvR,KAAK9C,SAAU8C,KAAK+0S,SAASziS,MAAM,MACzCtS,KAAKwlT,UAAYxyC,GAAkBhzQ,KAAK2nT,eACxCx4B,GAAS,CAACnvR,KAAK2nT,cAAe3nT,KAAK+0S,SAASziS,MAAM,MAG9D,EACA6wS,EAAOtnT,UAAU6rT,WAAa,WAC1B1nT,KAAK2nT,aAAe3nT,KAAKoN,cAAc,MAAO,CAAEgiE,UAvyBpC,oBAwyBZpvE,KAAK8mT,cACL9mT,KAAK9C,QAAQ2rE,UAAUxE,OAAOq+O,IAC9B1iT,KAAK9C,QAAQyQ,WAAWuwJ,aAAal+J,KAAK2nT,aAAc3nT,KAAK9C,SAC7D8C,KAAK2nT,aAAa1wS,YAAYjX,KAAK9C,SACnCiyR,GAAS,CAACnvR,KAAK9C,SAAUilT,IACzBniT,KAAK4nT,WAAa5nT,KAAKoN,cAAc,MAAO,CAAEgiE,UA/yBpC,kBAgzBVpvE,KAAK4nT,WAAW12S,MAAMm4D,QAAUrpE,KAAKqpE,OAAS,GAAGvtE,WACjDkE,KAAK2nT,aAAa1wS,YAAYjX,KAAK4nT,WACvC,EACAzE,EAAOtnT,UAAU0uT,kBAAoB,SAAUjyP,GAE3C,IADA,IAAIp1D,EACK6lB,EAAI,EAAGA,EAAIuvC,EAAM30D,OAAQolB,IAAK,CAEnC,KADA7lB,EAAOo1D,EAAMvvC,IACH4kH,aAAe,GAAqC,MAA/BzqI,EAAKwJ,QAAQe,eAAyBvK,EAAK2wS,aAAa,UAAa3wS,EAAKmsE,UAAY,IAChHnsE,EAAK2mH,WAAa7pH,KAAKwqT,eAAetnT,EAAM,qDAC7C,OAAOA,EAGPA,EAAO,IAEf,CACA,OAAOA,CACX,EACAigT,EAAOtnT,UAAUmwP,kBAAoB,SAAU3+O,GAC3C,IAAK2lQ,GAAkB3lQ,GAAU,CAC7B,IACIirD,EAAQjrD,EAAQQ,iBADR,sEAEZ,OAAO7N,KAAKuqT,kBAAkBjyP,EAClC,CACA,OAAO,IACX,EACA6qP,EAAOtnT,UAAU4uT,iBAAmB,SAAUxyO,GAC1C,IAAI/0E,EAAO+0E,EAAUjrE,cAAc,IAAMy1S,IAErCnqP,EAAQ2f,EAAUpqE,iBADV,eAER68S,EAAY1qT,KAAKuqT,kBAAkBjyP,GAIvC,GAHIs7M,OACA5zQ,KAAK0mT,iBAAmB1mT,KAAK9C,QAAQixM,uBAAuB,aAAa,IAExE6kE,GAAkB03C,GAGlB,CAED,IAAK13C,GADL03C,EAAY1qT,KAAKgsP,kBAAkBhsP,KAAKsmT,aAEpC,OAAcoE,EAEb,IAAK13C,GAAkBhzQ,KAAK0mT,kBAC7B,OAAO1mT,KAAK9C,QAAQ8P,cAAc,aAE1C,MAVI9J,EAAOwnT,EAWX,OAAOxnT,CACX,EACAigT,EAAOtnT,UAAU2uT,eAAiB,SAAUttT,EAASyH,GACjD,IAAIgmT,EAAeztT,EAAUA,EAAQ4K,SAAW5K,EAAQ0zR,uBAAyB1zR,EAAQ0tT,mBAAqB,KAC9G,GAAID,EACA,KAAOztT,EAASA,EAAUA,EAAQyQ,WAC9B,GAAIzQ,aAAmB2F,SAAW8nT,EAAa5uT,KAAKmB,EAASyH,GAEzD,OAAOzH,EAInB,OAAO,IACX,EACAimT,EAAOtnT,UAAUuoT,aAAe,WAC5B,IAAIlnT,EAAU8C,KAAKyqT,iBAAiBzqT,KAAK9C,SACrCgG,EAAQ8vQ,GAAkB91Q,GAAqB8C,KAAK9C,QAAfA,EACrCspF,EAAYgmM,GAAQhmM,WACpBA,EAAUt3E,QAAQ,SAAW,GAAKs3E,EAAUt3E,QAAQ,YAAc,IAClElP,KAAK9C,QAAQm1E,QAEjBnvE,EAAKmvE,QACLryE,KAAKkoT,YAAYloT,KAAK9C,SACtB8C,KAAK6qT,UAAU7qT,KAAK9C,QACxB,EACAimT,EAAOtnT,UAAUgvT,UAAY,SAAU3tT,GACnCixR,GAAaj7P,IAAIh2B,EAAS,UAAW8C,KAAKi0H,QAASj0H,KACvD,EACAmjT,EAAOtnT,UAAUqsT,YAAc,SAAUhrT,GACrCixR,GAAa9pN,OAAOnnE,EAAS,UAAW8C,KAAKi0H,QACjD,EACAkvL,EAAOtnT,UAAUivT,sBAAwB,WAChC9qT,KAAKmlT,yBACNnlT,KAAKsmT,WAAWr5S,UAAYjN,KAAK4pT,eAAe5pT,KAAKqN,SAE7D,EACA81S,EAAOtnT,UAAUspT,qBAAuB,WACpC,OAAOvxC,MAAc5zQ,KAAK84Q,gBAC9B,EAOAqqC,EAAOtnT,UAAU+2R,cAAgB,WAC7B,MAAO,QACX,EASAuwB,EAAOtnT,UAAUy2R,kBAAoB,SAAUmF,EAASC,GACpD,GAAK13R,KAAK9C,QAAQ2rE,UAAUsJ,SAAS2vO,IAGrC,IAAK,IAAI3mS,EAAK,EAAGpV,EAAKnK,OAAOwB,KAAKq6R,GAAUt8Q,EAAKpV,EAAGpC,OAAQwX,IAAM,CAE9D,OADWpV,EAAGoV,IAEV,IAAK,UACI63P,GAAkBhzQ,KAAKqN,UAA6B,KAAjBrN,KAAKqN,QA6BnC2lQ,GAAkBhzQ,KAAKsmT,cAC7BzkM,GAAO7hH,KAAKsmT,YACZtmT,KAAKsmT,WAAa,OA9BdtmT,KAAKmlT,yBACLnlT,KAAKsmT,WAAatmT,KAAK9C,QAAQ8P,cAAc,mBAE5CgmQ,GAAkBhzQ,KAAKsmT,aAAwD,WAAzCtmT,KAAKsmT,WAAWt6L,aAAa,QAmB/DhsH,KAAKmlT,yBACNnyC,GAAkBhzQ,KAAK9C,QAAQ8P,cAAc,oBAC7ChN,KAAKq6S,cApBJr6S,KAAKmlT,yBACNnlT,KAAKsmT,WAAWr5S,UAAY,IAEF,oBAAlBjN,KAAKqN,SACbrN,KAAK+/R,cAAc,CAAC,YACpBl+K,GAAO7hH,KAAKsmT,YACZtmT,KAAKsmT,WAAa,KAClBtmT,KAAKq6S,cAIqB,kBAAlBr6S,KAAKqN,QAAyBrN,KAAKmlT,wBAAyD,KAA9BnlT,KAAKsmT,WAAWx2O,UAClF9vE,KAAKsmT,WAAWyE,mBAAmB,YAAa/qT,KAAK4pT,eAAe5pT,KAAKqN,UACzErN,KAAK8qT,wBAA0B9qT,KAAKsmT,WAAWrvS,YAAYjX,KAAKqN,SAExErN,KAAK+mT,iBAab,MACJ,IAAK,SACmB,KAAhB/mT,KAAK60H,QAAiBm+I,GAAkBhzQ,KAAK60H,QACzC70H,KAAKgqT,YACLnoM,GAAO7hH,KAAKgqT,WACZhqT,KAAKgqT,UAAY,MAIhBhqT,KAAKmlT,yBACNnyC,GAAkBhzQ,KAAK9C,QAAQ8P,cAAc,2BAC7ChN,KAAK8+N,YAGb,MACJ,IAAK,iBACD,GAA4B,KAAxB9+N,KAAKqnT,gBAAyBr0C,GAAkBhzQ,KAAKqnT,gBAAiB,CACtE,IAAKrnT,KAAKqmT,mBACN,OAEJxkM,GAAO7hH,KAAKqmT,oBACZrmT,KAAKqmT,mBAAqB,KAC1BrmT,KAAKuhJ,QAAU,CAAC,CAAC,EACrB,MAESvhJ,KAAKmlT,yBACNnyC,GAAkBhzQ,KAAK9C,QAAQ8P,cAAc,uBAC7ChN,KAAKunT,oBAETvnT,KAAKuhJ,QAAU,CAAC,CAAC,GAErB,MACJ,IAAK,gBACGvhJ,KAAK9C,QAAQixM,uBAAuBi0G,IAAgBz+S,OAAS,EACxD3D,KAAKkqT,eAAkC,KAAhBlqT,KAAK60H,SAAiBm+I,GAAkBhzQ,KAAK60H,QAI/D70H,KAAKkqT,cAIPlqT,KAAKmlT,wBACLnlT,KAAK8pS,aAJTjoL,GAAO7hH,KAAKmqT,YAJZtoM,GAAO7hH,KAAK4jT,eACZ5jT,KAAK4jT,cAAgB,OAYpB5jT,KAAKmlT,wBACNnlT,KAAKonT,kBAETpnT,KAAK8pS,cAET,MACJ,IAAK,SACG9pS,KAAKkqT,eACLlqT,KAAKqqT,iBAET,MACJ,IAAK,UAEDrqT,KAAKsgG,QAAUtgG,KAAK2hH,OAAS3hH,KAAKwhH,OAClC,MACJ,IAAK,UACDxhH,KAAKgrT,gBACL,MACJ,IAAK,SACDx6B,GAAkBxwR,KAAK9C,QAAS,CAAE,OAAU82Q,GAAWyjB,EAAQt2N,UAC/D,MACJ,IAAK,QACDqvN,GAAkBxwR,KAAK9C,QAAS,CAAE,MAAS82Q,GAAWyjB,EAAQv2N,SAC9D,MACJ,IAAK,SACDlhE,KAAK+nT,SAAS1+O,OAASrpE,KAAKqpE,OACxBrpE,KAAKwlT,SACLxlT,KAAKwoT,iBAAiBxoT,KAAKqpE,QAE3BrpE,KAAK9C,QAAQgU,MAAMm4D,SAAWrpE,KAAKqpE,OAAOvtE,aAC1CkE,KAAKknT,iBAAkB,GAE3B,MACJ,IAAK,WACDlnT,KAAK8mT,YAAYpvB,EAAQqd,UACzB,MACJ,IAAK,UACD,IAAIkW,EAAcjrT,KAAKuhJ,QAAQ59I,OAC1BqvQ,GAAkBhzQ,KAAKqmT,qBAAwBrmT,KAAKmlT,yBACrDtjM,GAAO7hH,KAAKqmT,oBACZrmT,KAAKqmT,mBAAqB,MAE9B,IAAK,IAAIxhT,EAAI,EAAGA,EAAIomT,EAAapmT,IACxBmuQ,GAAkBhzQ,KAAKuhJ,QAAQ18I,GAAGgiT,eACnC7mT,KAAKqnT,eAAiB,GACtBrnT,KAAKsnT,aAGb,MAEJ,IAAK,gBACGtnT,KAAKwnT,gBAAmBx0C,GAAkBhzQ,KAAK4jT,eAC/C5jT,KAAKynT,mBAGLznT,KAAK8oT,QAAQ3gT,UAEjB,MACJ,IAAK,SACDnI,KAAKkrT,UAAUzzB,EAAQ36R,QACvB,MACJ,IAAK,WAED,GADAkD,KAAKqkT,oBACDrkT,KAAKwlT,QAAS,CACd,IAAI3P,EAAY7iC,GAAkB0kB,EAAQ1jR,SAASynC,GAAKz7C,KAAKgU,SAASynC,EAAIi8O,EAAQ1jR,SAASynC,EACvFq6P,EAAY9iC,GAAkB0kB,EAAQ1jR,SAAS0rJ,GAAK1/J,KAAKgU,SAAS0rJ,EAAIg4H,EAAQ1jR,SAAS0rJ,EACvF1/J,KAAK2nT,aAAa9+O,UAAUsJ,SAAS,SAAW0jO,EAAY,IAAMC,IAClE91S,KAAK2nT,aAAa9+O,UAAUxE,OAAO,SAAWwxO,EAAY,IAAMC,EAExE,CACA91S,KAAKsoT,iBACL,MACJ,IAAK,YACDtoT,KAAKuoT,eACL,MACJ,IAAK,eACDvoT,KAAKsjT,YACL,MACJ,IAAK,YACsB,KAAnBtjT,KAAK4tE,YACL5tE,KAAK9C,QAAQgU,MAAM08D,UAAYomM,GAAWh0Q,KAAK4tE,YAI/D,CACJ,EACAu1O,EAAOtnT,UAAUqvT,UAAY,SAAUpuT,GACnCkD,KAAK+nT,SAAS/M,SAAWl+S,EACzBkD,KAAKlD,OAASA,EACdkD,KAAKggT,UAAsC,kBAAjBhgT,KAAKlD,OAC3B6P,SAASK,cAAchN,KAAKlD,QAAUkD,KAAKlD,OAC3CkD,KAAK8oT,UACL9oT,KAAK8oT,QAAQlkB,SAAW5kS,KAAKggT,WAEjChgT,KAAK+mT,eACD/mT,KAAKwlT,SACLxlT,KAAKgrT,gBAELhrT,KAAKqjT,cACLrjT,KAAKsjT,WAEb,EACAH,EAAOtnT,UAAUmvT,cAAgB,WAE7B,GADAhrT,KAAK9C,QAAQ6Z,aAAa,aAAc/W,KAAKwlT,QAAU,OAAS,SAC5DxlT,KAAKwlT,QACDxyC,GAAkBhzQ,KAAK4nT,cACvB5nT,KAAK0nT,aACL1nT,KAAK9C,QAAQgU,MAAM+5D,IAAM,MACzBjrE,KAAK9C,QAAQgU,MAAM85D,KAAO,MACrBgoM,GAAkBhzQ,KAAKggT,YACxBhgT,KAAKggT,UAAU/oS,YAAYjX,KAAK2nT,mBAIvC,CAID,IAHAn4B,GAAY,CAACxvR,KAAK9C,SAAUilT,IAC5B3yB,GAAY,CAAC7iR,SAASiwE,MAAO,CAACylO,GAAYC,KAC1CzgM,GAAO7hH,KAAK4nT,YACL5nT,KAAK2nT,aAAanxL,YACrBx2H,KAAK2nT,aAAane,cAActrI,aAAal+J,KAAK2nT,aAAanxL,WAAYx2H,KAAK2nT,cAEpF3nT,KAAK2nT,aAAane,cAAc57R,YAAY5N,KAAK2nT,aACrD,CACI3nT,KAAKsgG,SACLtgG,KAAK2hH,OAET3hH,KAAKsoT,iBACDtoT,KAAKwlT,SAAWxlT,KAAK4nT,YACrBz5B,GAAaj7P,IAAIlzB,KAAK4nT,WAAY,QAAS5nT,KAAKikT,4BAA6BjkT,KAErF,EACAmjT,EAAOtnT,UAAUorT,UAAY,SAAU3J,EAAe6N,GAClD,IAAI7G,EAAetkT,KAAKkxR,oBACxBlxR,KAAKkxR,qBAAsB,EAC3B,IAAIk6B,EAAgB7N,GAAiBD,GACrCt9S,KAAKqpE,OAAS+hP,EAAgBprT,KAAKqpE,OAAS+hP,EAAgBprT,KAAKqpE,OACjErpE,KAAKkxR,oBAAsBozB,EACvB6G,IACAnrT,KAAK+nT,SAAS1+O,OAASrpE,KAAKqpE,OAEpC,EACA85O,EAAOtnT,UAAUwvT,oBAAsB,WDrsBpC,IAAqB5vT,ICssBRuE,KAAKggT,UAAUvyK,YDrsB/Bt9D,GAAW10E,EAOR,SAAsBA,GACzB20E,GAAY30E,CAChB,CC6rBQsrT,CAAa/mT,KAAKggT,UAAUryK,cAC5B3tI,KAAK+mT,cACT,EAOA5D,EAAOtnT,UAAUgkS,eAAiB,WAC9B,OAAO7/R,KAAKmgS,aAAa,GAC7B,EAMAgjB,EAAOtnT,UAAUsM,QAAU,WACvB,IAAInI,KAAK6xR,YAAT,CAGA,IAAIy5B,EAAa,CAACvJ,GAAKI,GAAWY,GAAeC,GAAyBR,GAAYD,IAClF1rS,EAAQ,CAAC,OAAQ,aAAc,kBAAmB,mBAAoB,eAAgB,WAAY,SAStG,GARA24Q,GAAY,CAACxvR,KAAKggT,WAAY,CAACqC,GAAYC,MACtCtvC,GAAkBhzQ,KAAK9C,UAAY8C,KAAK9C,QAAQ2rE,UAAUsJ,SAASqwO,KACpEhzB,GAAY,CAAC7iR,SAASiwE,MAAO,CAACylO,GAAYC,KAE1CtiT,KAAKwlT,SACLh2B,GAAY,CAAGxc,GAAkBhzQ,KAAKggT,WAA8BrzS,SAASiwE,KAA1B58E,KAAKggT,WAA6BsC,IAEzFtiT,KAAKw1S,gBACAxiC,GAAkBhzQ,KAAKomT,QACxB,IAAK,IAAIvhT,EAAI,EAAGA,EAAI7E,KAAKomT,OAAOziT,OAAQkB,IACpC7E,KAAKomT,OAAOvhT,GAAGsD,UA6BvB,GA1BK6qQ,GAAkBhzQ,KAAKoqT,kBACxBpqT,KAAKoqT,gBAAgBjiT,UAEpB6qQ,GAAkBhzQ,KAAK8oT,UACxB9oT,KAAK8oT,QAAQ3gT,WAEZ6qQ,GAAkBhzQ,KAAK+nT,SAAS7qT,UAAY8C,KAAK+nT,SAAS7qT,QAAQ2rE,UAAUsJ,SAjqCxE,YAkqCLnyE,KAAK+nT,SAAS5/S,UAElBqnR,GAAY,CAACxvR,KAAK9C,SAAUouT,GACvBt4C,GAAkBhzQ,KAAK+0S,WAA+B,KAAlB/0S,KAAK+0S,UAC1CvlB,GAAY,CAACxvR,KAAK9C,SAAU8C,KAAK+0S,SAASziS,MAAM,MAE/C0gQ,GAAkBhzQ,KAAK8nT,aAAgB90C,GAAkBhzQ,KAAK8nT,WAAWte,iBAC1ExpS,KAAK8nT,WAAWte,cAActrI,aAAcl+J,KAAKwlT,QAAUxlT,KAAK2nT,aAAe3nT,KAAK9C,QAAU8C,KAAK8nT,YACnGjmM,GAAO7hH,KAAK8nT,YACZ9nT,KAAK8nT,gBAAaxnT,GAElBN,KAAKwlT,UAAYxlT,KAAKmlT,yBACtBtjM,GAAO7hH,KAAK4nT,YACZ5nT,KAAK2nT,aAAah6S,WAAWuwJ,aAAal+J,KAAK9C,QAAS8C,KAAK2nT,cAC7D9lM,GAAO7hH,KAAK2nT,eAEX3nT,KAAKmlT,yBACNnlT,KAAK9C,QAAQ+P,UAAYjN,KAAK+jT,UAAU92S,WAExCjN,KAAKmlT,yBACAnyC,GAAkBhzQ,KAAK9C,QAAQ2G,UAChC,IAASgB,EAAI,EAAGA,GAAK7E,KAAK9C,QAAQ2G,SAASF,OAAQkB,IAC/CA,GAAQA,EACRg9G,GAAO7hH,KAAK9C,QAAQ2G,SAASgB,IAIzC,IAASA,EAAI,EAAGA,EAAIgS,EAAMlT,OAAQkB,IAC9B7E,KAAK9C,QAAQqmH,gBAAgB1sG,EAAMhS,IAElC7E,KAAKmlT,uBAINnlT,KAAK6xR,aAAc,EAHnBhsR,EAAOhK,UAAUsM,QAAQpM,KAAKiE,MAM9BA,KAAKurT,SACLvrT,KAAK+/R,eA7DT,CA+DJ,EACAojB,EAAOtnT,UAAUmqT,sBAAwB,WACrC7+S,OAAO0zD,iBAAiB,SAAU76D,KAAKqrT,oBAAoBzqP,KAAK5gE,MACpE,EACAmjT,EAAOtnT,UAAUoqT,wBAA0B,WACvC9+S,OAAO2zD,oBAAoB,SAAU96D,KAAKqrT,oBAAoBzqP,KAAK5gE,MACvE,EAOAmjT,EAAOtnT,UAAUiuS,WAAa,WACtB9pS,KAAKmlT,wBAA0BnlT,KAAKkqT,gBACpClqT,KAAKmqT,UAAYnqT,KAAK9C,QAAQixM,uBAAuB,uBAAuB,IAE5EnuM,KAAKkqT,eACL/7B,GAAaj7P,IAAIlzB,KAAKmqT,UAAW,QAASnqT,KAAKgkT,2BAA4BhkT,MAE3EA,KAAKwlT,SAAWxlT,KAAK4nT,YACrBz5B,GAAaj7P,IAAIlzB,KAAK4nT,WAAY,QAAS5nT,KAAKikT,4BAA6BjkT,KAErF,EAOAmjT,EAAOtnT,UAAU25S,aAAe,WAO5B,GANIx1S,KAAKkqT,eACL/7B,GAAa9pN,OAAOrkE,KAAKmqT,UAAW,QAASnqT,KAAKgkT,4BAElDhkT,KAAKwlT,SACLr3B,GAAa9pN,OAAOrkE,KAAK4nT,WAAY,QAAS5nT,KAAKikT,6BAEnDjkT,KAAKuhJ,QAAQ59I,OAAS,IAAMqvQ,GAAkBhzQ,KAAKuhJ,QAAQ,GAAGslK,cAAwC,KAAxB7mT,KAAKqnT,eACnF,IAAK,IAAIxiT,EAAI,EAAGA,EAAI7E,KAAKuhJ,QAAQ59I,OAAQkB,IACE,oBAA3B7E,KAAKuhJ,QAAQ18I,GAAGy7H,OACxB6tJ,GAAa9pN,OAAOrkE,KAAKqmT,mBAAmBxiT,SAASgB,GAAI,QAAS7E,KAAKuhJ,QAAQ18I,GAAGy7H,MAIlG,EAMA6iL,EAAOtnT,UAAUu+S,gBAAkB,WAC/Bp6S,KAAK+nT,SAAS3N,iBAClB,EAOA+I,EAAOtnT,UAAU2vT,aAAe,WAG5B,MAAO,CAAEtqP,MAFSlhE,KAAK9C,QAAQsgM,YAEFr8H,OADVnhE,KAAK9C,QAAQugM,aAEpC,EAQA0lH,EAAOtnT,UAAU8lH,KAAO,SAAU8pM,GAC9B,IAAI3lT,EAAQ9F,KACZ,GAAKA,KAAK9C,QAAQ2rE,UAAUsJ,SAAS2vO,IAArC,CAGA,IAAK9hT,KAAK9C,QAAQ2rE,UAAUsJ,SAASuwO,MAAe1vC,GAAkBy4C,GAAgB,CAC7Ez4C,GAAkBy4C,IACnBzrT,KAAK0rT,WAAWD,GAEpB,IAAIE,EAAc/3C,KAAa,CAC3Bz5P,QAAQ,EACRjd,QAAS8C,KAAK9C,QACd+6E,UAAWj4E,KAAKwlT,QAAUxlT,KAAK2nT,aAAe3nT,KAAK9C,QACnDkzE,UAAWpwE,KAAK9C,QAAQgU,MAAMk/D,WAC9B,CACAj2D,QAAQ,EACRjd,QAAS8C,KAAK9C,QACd+6E,UAAWj4E,KAAKwlT,QAAUxlT,KAAK2nT,aAAe3nT,KAAK9C,QACnDJ,OAAQkD,KAAKlD,OACbszE,UAAWpwE,KAAK9C,QAAQgU,MAAMk/D,WAElCpwE,KAAKw0H,QAAQ,aAAcm3L,GAAa,SAAUC,GAC9C,IAAKA,EAAezxS,OAAQ,CACpBrU,EAAM5I,QAAQgU,MAAMk/D,YAAcu7O,EAAYv7O,YAC9CtqE,EAAM+9S,gBAAiB,EACvB/9S,EAAM5I,QAAQgU,MAAMk/D,UAAYu7O,EAAYv7O,WAEhDtqE,EAAMuiT,mBAAqB17S,SAASylE,cACpCtsE,EAAM5I,QAAQmyE,UAAY,EACtBvpE,EAAM0/S,UAAaxyC,GAAkBltQ,EAAM8hT,cAC3C9hT,EAAM8hT,WAAW12S,MAAMyyG,QAAU,QACjC79G,EAAM6hT,aAAaz2S,MAAMyyG,QAAU,OACnC6rK,GAAY,CAAC1pR,EAAM8hT,YAAa,UAC3B50C,GAAkBltQ,EAAMk6S,WAYzB7wB,GAAS,CAACxiR,SAASiwE,MAAO,CAACylO,GAAYC,MAXnCx8S,EAAMk6S,YAAcrzS,SAASiwE,KAC7B92E,EAAM6hT,aAAaz2S,MAAM8C,SAAW,QAGpClO,EAAM6hT,aAAaz2S,MAAM8C,SAAW,WAExClO,EAAM8hT,WAAW12S,MAAM8C,SAAW,WAClClO,EAAM5I,QAAQgU,MAAM8C,SAAW,WAC/Bm7Q,GAAS,CAACrpR,EAAMk6S,WAAY,CAACqC,GAAYC,OAMjD,IAAIuJ,EAAgB,CAChBlpT,KAAMmD,EAAMy9S,kBAAkBC,OAAS,KACvCrkR,SAAUr5B,EAAMy9S,kBAAkBpkR,SAClCg7B,MAAOr0D,EAAMy9S,kBAAkBppP,OAE/BmjP,EAAiBx3S,EAAM0/S,QAAW1/S,EAAM5I,QAAQssS,cAAgB1jS,EAAM5I,QACtE4I,EAAMohT,kBACNphT,EAAMmhT,UAAU3J,GAAe,GAC/B9sB,GAAkB1qR,EAAM5I,QAAS,CAAE,OAAU4I,EAAMujE,SAC/CvjE,EAAM0/S,SACN1/S,EAAM0iT,iBAAiB1iT,EAAMujE,SAIF,SAAnCvjE,EAAMy9S,kBAAkBC,OAAoB19S,EAAMiiT,SAASpmM,OAAS77G,EAAMiiT,SAASpmM,KAAKkqM,GACxF/lT,EAAMgmT,YAAa,EACnB,IAAIxH,EAAex+S,EAAMorR,oBACzBprR,EAAMorR,qBAAsB,EAC5BprR,EAAMw6F,SAAU,EAChBx6F,EAAMg+S,mBAAoB,EAC1Bh+S,EAAMorR,oBAAsBozB,CAChC,CACJ,GACJ,CAEItkT,KAAKurT,SACLvrT,KAAK8/R,sBAtET,CAwEJ,EAOAqjB,EAAOtnT,UAAU2lH,KAAO,SAAU7mD,GAC9B,IAAI70D,EAAQ9F,KACZ,GAAKA,KAAK9C,QAAQ2rE,UAAUsJ,SAAS2vO,KAGjC9hT,KAAK8jT,kBAAmB,CACxB,IAAIh5B,EAAYlX,KAAa,CACzBz5P,QAAQ,EACR4xS,eAAcpxP,EACdz9D,QAAS8C,KAAK9C,QACd+6E,UAAWj4E,KAAKwlT,QAAUxlT,KAAK2nT,aAAe3nT,KAAK9C,QACnDy9D,MAAOA,GACP,CACAxgD,QAAQ,EACR4xS,eAAcpxP,EACdz9D,QAAS8C,KAAK9C,QACdJ,OAAQkD,KAAKlD,OACbm7E,UAAWj4E,KAAKwlT,QAAUxlT,KAAK2nT,aAAe3nT,KAAK9C,QACnDy9D,MAAOA,EACPqxP,SAAUhsT,KAAK2jT,aAEnB3jT,KAAKmoT,UAAYr9B,EACjB9qR,KAAKw0H,QAAQ,cAAes2J,GAAW,SAAUmhC,GAC7C,IAAKA,EAAgB9xS,OAAQ,CACrBrU,EAAM0/S,UACDxyC,GAAkBltQ,EAAMk6S,YACzBxwB,GAAY,CAAC1pR,EAAMk6S,WAAY,CAACqC,GAAYC,MAGhD31S,SAASiwE,KAAK/T,UAAUsJ,SAASkwO,KACjC11S,SAASiwE,KAAK/T,UAAUsJ,SAASmwO,KACjC9yB,GAAY,CAAC7iR,SAASiwE,MAAO,CAACylO,GAAYC,KAE9C,IAAI4J,EAAiB,CACjBvpT,KAAMmD,EAAMy9S,kBAAkBC,OAAS,MACvCrkR,SAAUr5B,EAAMy9S,kBAAkBpkR,SAClCg7B,MAAOr0D,EAAMy9S,kBAAkBppP,OAGA,SAAnCr0D,EAAMy9S,kBAAkBC,OAAoB19S,EAAMiiT,SAASvmM,OAAS17G,EAAMiiT,SAASvmM,KAAK0qM,GACxFpmT,EAAMgmT,YAAa,EACnB,IAAIxH,EAAex+S,EAAMorR,oBACzBprR,EAAMorR,qBAAsB,EAC5BprR,EAAMw6F,SAAU,EAChBx6F,EAAMg+S,mBAAoB,EAC1Bh+S,EAAMorR,oBAAsBozB,CAChC,CACAx+S,EAAM69S,YAAcT,EACxB,GACJ,CACJ,EAQAC,EAAOtnT,UAAU6vT,WAAa,SAAUlyS,GAE1BxZ,KAAK9C,QAAQuiM,UACZz/L,KAAK9C,QAAQwiM,WAExB,GAAIlmL,EAAM,CACNxZ,KAAK9C,QAAQgU,MAAM+5D,IAAMt+D,SAASg7R,iBAAiBpgJ,UAAY,KAC/D4nI,GAAS,CAACnvR,KAAK9C,SAAUslT,IACzB,IAAI7+L,EAAU3jH,KAAK9C,QAAQgU,MAAMyyG,QACjC3jH,KAAK9C,QAAQgU,MAAMyyG,QAAU,OAC7B3jH,KAAK9C,QAAQgU,MAAMk/D,UAAc4iM,GAAkBhzQ,KAAKlD,QACZqK,OAAOk7G,YAAe,KAA7DriH,KAAKggT,UAAUviH,aAAgB,KACpCz9L,KAAK9C,QAAQgU,MAAMyyG,QAAUA,EAC7BwrK,GAAS,CAACxiR,SAASiwE,MAAO,CAACylO,GAAYC,KACnCtiT,KAAKwnT,gBAAkBx0C,GAAkBhzQ,KAAK8oT,UAC9C9oT,KAAK8oT,QAAQ3gT,SAErB,MAEIqnR,GAAY,CAACxvR,KAAK9C,SAAUslT,IAC5BhzB,GAAY,CAAC7iR,SAASiwE,MAAO,CAACylO,GAAYC,KACtCtiT,KAAKwnT,gBAAmBx0C,GAAkBhzQ,KAAK4jT,gBAC/C5jT,KAAKynT,mBAGb,OAAOjuS,CACX,EAQA2pS,EAAOtnT,UAAUswT,WAAa,SAAUv9S,GACpC,OAAKokQ,GAAkBpkQ,GAGhB5O,KAAKomT,OAFDpmT,KAAKomT,OAAOx3S,EAG3B,EACAmnR,GAAW,CACPnB,GAAS,KACVuuB,EAAOtnT,UAAW,eAAW,GAChCk6R,GAAW,CACPnB,IAAS,IACVuuB,EAAOtnT,UAAW,2BAAuB,GAC5Ck6R,GAAW,CACPnB,IAAS,IACVuuB,EAAOtnT,UAAW,qBAAiB,GACtCk6R,GAAW,CACPnB,IAAS,IACVuuB,EAAOtnT,UAAW,eAAW,GAChCk6R,GAAW,CACPnB,GAAS,KACVuuB,EAAOtnT,UAAW,cAAU,GAC/Bk6R,GAAW,CACPnB,IAAS,IACVuuB,EAAOtnT,UAAW,eAAW,GAChCk6R,GAAW,CACPnB,IAAS,IACVuuB,EAAOtnT,UAAW,oBAAgB,GACrCk6R,GAAW,CACPnB,GAAS,CAAC,gBACXuuB,EAAOtnT,UAAW,qBAAiB,GACtCk6R,GAAW,CACPnB,GAAS,SACVuuB,EAAOtnT,UAAW,cAAU,GAC/Bk6R,GAAW,CACPnB,GAAS,KACVuuB,EAAOtnT,UAAW,iBAAa,GAClCk6R,GAAW,CACPnB,GAAS,SACVuuB,EAAOtnT,UAAW,aAAS,GAC9Bk6R,GAAW,CACPnB,GAAS,KACVuuB,EAAOtnT,UAAW,gBAAY,GACjCk6R,GAAW,CACPnB,GAAS,MACVuuB,EAAOtnT,UAAW,cAAU,GAC/Bk6R,GAAW,CACPnB,GAAS,OACVuuB,EAAOtnT,UAAW,cAAU,GAC/Bk6R,GAAW,CACPnB,GAAS,KACVuuB,EAAOtnT,UAAW,sBAAkB,GACvCk6R,GAAW,CACPnB,IAAS,IACVuuB,EAAOtnT,UAAW,qBAAiB,GACtCk6R,GAAW,CACPf,GAAW,CAAC,CAAC,GAAI4sB,KAClBuB,EAAOtnT,UAAW,eAAW,GAChCk6R,GAAW,CACPnB,IAAS,IACVuuB,EAAOtnT,UAAW,qBAAiB,GACtCk6R,GAAW,CACPhB,GAAQ,CAAC,EAAG8sB,KACbsB,EAAOtnT,UAAW,yBAAqB,GAC1Ck6R,GAAW,CACPhB,GAAQ,CAAEt5O,EAAG,SAAUikH,EAAG,UAAYs6I,KACvCmJ,EAAOtnT,UAAW,gBAAY,GACjCk6R,GAAW,CACPxnK,MACD40L,EAAOtnT,UAAW,eAAW,GAChCk6R,GAAW,CACPxnK,MACD40L,EAAOtnT,UAAW,YAAQ,GAC7Bk6R,GAAW,CACPxnK,MACD40L,EAAOtnT,UAAW,0BAAsB,GAC3Ck6R,GAAW,CACPxnK,MACD40L,EAAOtnT,UAAW,kBAAc,GACnCk6R,GAAW,CACPxnK,MACD40L,EAAOtnT,UAAW,aAAS,GAC9Bk6R,GAAW,CACPxnK,MACD40L,EAAOtnT,UAAW,mBAAe,GACpCk6R,GAAW,CACPxnK,MACD40L,EAAOtnT,UAAW,iBAAa,GAClCk6R,GAAW,CACPxnK,MACD40L,EAAOtnT,UAAW,gBAAY,GACjCk6R,GAAW,CACPxnK,MACD40L,EAAOtnT,UAAW,YAAQ,GAC7Bk6R,GAAW,CACPxnK,MACD40L,EAAOtnT,UAAW,oBAAgB,GACrCk6R,GAAW,CACPxnK,MACD40L,EAAOtnT,UAAW,mBAAe,GACpCk6R,GAAW,CACPxnK,MACD40L,EAAOtnT,UAAW,gBAAY,GACjCk6R,GAAW,CACPxnK,MACD40L,EAAOtnT,UAAW,kBAAc,GACnCk6R,GAAW,CACPxnK,MACD40L,EAAOtnT,UAAW,iBAAa,GAClCsnT,EAASptB,GAAW,CAChBX,IACD+tB,EAEP,CAhhD4B,CAghD1Bx+K,KAOF,SAAWg9K,GA0GP,SAASyK,EAAa7vT,EAASW,GAC3B,IAAImvT,EAAe,IAAIlJ,GAAO5mT,GAE9B,OADA8vT,EAAajuB,SAASlhS,GACfmvT,CACX,CAkBA,SAASC,EAAY/vT,EAAS02H,GAgB1B,OAfA12H,EAAQs4H,OAAUm+I,GAAkB//I,EAAOtJ,OAAwBg5L,GAAf1vL,EAAOtJ,MAC3DptH,EAAQ8Q,QAAW2lQ,GAAkB//I,EAAO5lH,SAA4B,GAAjB4lH,EAAO5lH,QAC9D9Q,EAAQipT,UAAWxyC,GAAkB//I,EAAOuyL,UAAWvyL,EAAOuyL,QAC9DjpT,EAAQ2tT,eAAiBl3C,GAAkB//I,EAAOi3L,gBAAiBj3L,EAAOi3L,cAC1E3tT,EAAQirT,eAAiBx0C,GAAkB//I,EAAOs5L,cAAet5L,EAAOs5L,YACxEhwT,EAAQkqT,eAAiBzzC,GAAkB//I,EAAOwzL,gBAAiBxzL,EAAOwzL,cAC1ElqT,EAAQyX,SAAYg/P,GAAkB//I,EAAOj/G,UAA8B,CAAEynC,EAAG,SAAUikH,EAAG,OAApCzsC,EAAOj/G,SAChEzX,EAAQgnT,kBAAqBvwC,GAAkB//I,EAAOswL,mBAClD,CAAEC,OAAQ,OAAQrkR,SAAU,IAAKg7B,MAAO,GAD+B84D,EAAOswL,kBAElFhnT,EAAQw4S,SAAY/hC,GAAkB//I,EAAO8hL,UAA8B,GAAlB9hL,EAAO8hL,SAChEx4S,EAAQ8sE,OAAU2pM,GAAkB//I,EAAO5pD,QAA0B,IAAhB4pD,EAAO5pD,OAE5D9sE,EAAQwkF,KAAQiyL,GAAkB//I,EAAOlyC,MAAsB,KAAdkyC,EAAOlyC,KACxDxkF,EAAQ2kE,MAAS8xM,GAAkB//I,EAAO/xD,OAAwB,OAAf+xD,EAAO/xD,MAC1D3kE,EAAQ4kE,OAAU6xM,GAAkB//I,EAAO9xD,QAA0B,OAAhB8xD,EAAO9xD,OACrD5kE,CACX,CA8CA,SAASiwT,EAAgB3F,EAAa5zL,EAAQw5L,GAC1C,IAAIC,EAAcD,EAalB,OAZKz5C,GAAkB//I,EAAO3vH,QAC1BopT,EAAY7F,YAAYx5S,QAAU4lH,EAAO3vH,MAExC0vQ,GAAkB//I,EAAOqpD,QAC1BowI,EAAY7F,YAAYzR,QAAUniL,EAAOqpD,MAExC02F,GAAkB//I,EAAO8hL,YAC1B2X,EAAY7F,YAAY9R,SAAW9hL,EAAO8hL,UAEzC/hC,GAAkB//I,EAAOqN,SAC1BosL,EAAYpsL,MAAQrN,EAAOqN,OAExBosL,CACX,CA5JA/K,EAAc1zC,MApCd,SAAez0P,GAEX,IAGImzS,EAFAC,EAAgBx/S,GAAc,MAAO,CAAE,UAAay1S,KA+BxD,OA9BAl2S,SAASiwE,KAAK3lE,YAAY21S,GAStBD,EAAiBP,EADC,kBAAV5yS,EACsB,CAAEnM,QAASmM,EACrCxF,SAAU,CAAEynC,EAAG,SAAUikH,EAAG,OAC5B8lJ,SAAS,EAAM3wL,OAAQ8tL,GACvBphK,QAVY,CAAC,CACbslK,YAAa,CAAE1iK,WAAW,EAAM92I,QAAS,MACzCizH,MAAO,WACHtgI,KAAKwhH,MACT,KAwFZ,SAAsByR,GAClB,IAAI12H,EAAU,CACdA,QAAkB,IAGlB,OAFAA,EAAU+vT,EAAY/vT,EAAS02H,GAC/B12H,EA+BJ,SAA6BA,EAAS02H,GAClC,IAAI45L,EAAmB,CAAC,CAChBhG,YAAa,CAAE1iK,WAAW,EAAM92I,QAAS,MACzCizH,MAAO,WACHtgI,KAAKwhH,MACT,IAEHwxJ,GAAkB//I,EAAO65L,UAI1BvwT,EAAQglJ,QAAUsrK,EAHlBtwT,EAAQglJ,QAAQ,GAAKirK,EAAgBjwT,EAAQglJ,QAAQ,GAAItuB,EAAO65L,SAAUD,EAAiB,IAK/F,OAAOtwT,CACX,CA7CcwwT,CAAoBxwT,EAAS02H,GAChC12H,CACX,CArFsCywT,CAAaxzS,GAHbozS,GAKlCD,EAAe5tP,MAAQ,WACfvlD,GAAQA,EAAKulD,OACbvlD,EAAKulD,MAAM/5D,MAAM2nT,GAErBA,EAAexkT,UACXwkT,EAAezvT,QAAQ2rE,UAAUsJ,SAAS,gBAC1Cw6O,EAAezvT,QAAQssS,cAAcnlO,SACrCsoP,EAAe7vT,OAAO+rE,UAAUxE,OAAOu+O,KAGvC+J,EAAezvT,QAAQmnE,QAE/B,EACOsoP,CACX,EAuDAhL,EAAcsL,QAxCd,SAAiBzzS,GAEb,IAGI0zS,EAFAN,EAAgBx/S,GAAc,MAAO,CAAE,UAAa01S,KAmCxD,OAlCAn2S,SAASiwE,KAAK3lE,YAAY21S,GActBM,EAAmBd,EADD,kBAAV5yS,EACwB,CAAExF,SAAU,CAAEynC,EAAG,SAAUikH,EAAG,OAASryJ,QAASmM,EAAMgsS,SAAS,EAC3F3wL,OAAQ8tL,GAAwBphK,QAbd,CAAC,CACnBslK,YAAa,CAAE1iK,WAAW,EAAM92I,QAAS,MACzCizH,MAAO,WACHtgI,KAAKwhH,MACT,GACD,CACCqlM,YAAa,CAAEx5S,QAAS,UACxBizH,MAAO,WACHtgI,KAAKwhH,MACT,KAyCZ,SAAwByR,GACpB,IAAI12H,EAAU,CACdA,QAAkB,IAGlB,OAFAA,EAAU+vT,EAAY/vT,EAAS02H,GAC/B12H,EAuCJ,SAA+BA,EAAS02H,GACpC,IAAIk6L,EAAgB,CAChBtG,YAAa,CAAE1iK,WAAW,EAAM92I,QAAS,MACzCizH,MAAO,WACHtgI,KAAKwhH,MACT,GAEA4rM,EAAoB,CACpBvG,YAAa,CAAEx5S,QAAS,UACxBizH,MAAO,WACHtgI,KAAKwhH,MACT,GAECwxJ,GAAkB//I,EAAO65L,UAI1BvwT,EAAQglJ,QAAQ,GAAK4rK,EAHrB5wT,EAAQglJ,QAAQ,GAAKirK,EAAgBjwT,EAAQglJ,QAAQ,GAAItuB,EAAO65L,SAAUK,GAKzEn6C,GAAkB//I,EAAOo6L,cAI1B9wT,EAAQglJ,QAAQ,GAAK6rK,EAHrB7wT,EAAQglJ,QAAQ,GAAKirK,EAAgBjwT,EAAQglJ,QAAQ,GAAItuB,EAAOo6L,aAAcD,GAKlF,OAAO7wT,CACX,CAjEc+wT,CAAsB/wT,EAAS02H,GAClC12H,CACX,CAvCwCgxT,CAAe/zS,GAH5CozS,GAKPM,EAAiBnuP,MAAQ,WACjBvlD,GAAQA,EAAKulD,OACbvlD,EAAKulD,MAAM/5D,MAAMkoT,GAErBA,EAAiB/kT,UACb+kT,EAAiBhwT,QAAQ2rE,UAAUsJ,SAAS,gBAC5C+6O,EAAiBhwT,QAAQssS,cAAcnlO,SACvC6oP,EAAiBpwT,OAAO+rE,UAAUxE,OAAOu+O,KAGzCsK,EAAiBhwT,QAAQmnE,QAEjC,EACO6oP,CACX,CAwGH,CA/MD,CA+MGvL,KAAkBA,GAAgB,CAAC,ICh1DtC,IAAI6L,GAA2B,WAM3B,SAASA,EAAUC,EAAWC,GAC1B,IAAI5nT,EAAQ9F,KAEZA,KAAK2tT,gBAAkB,GAKvB3tT,KAAK4tT,eAAiB,GAItB5tT,KAAKmhQ,kBAAoB,WACrBr7P,EAAM+nT,aAAarsM,MACvB,EACAxhH,KAAKytT,UAAYA,EACjBztT,KAAK0tT,cAAgBA,CACzB,CAspBA,OA7oBAF,EAAU3xT,UAAUiyT,aAAe,SAAUl8P,EAAY8U,EAAWC,EAAYonP,GAC5E,IACIC,EAUJ,OAXcrhT,SAAS8gM,eAAeztM,KAAKytT,UAAUvwT,QAAQ+0D,GAAK,cAAgBL,MAG9Eo8P,EAAY5gT,GAAc,MAAO,CAAE6kD,GAAIjyD,KAAKytT,UAAUvwT,QAAQ+0D,GAAK,cAAgBL,EAAYwd,UAAW,qBAChGl+D,MAAMgwD,MAAQwF,EAAY,KACpCsnP,EAAU98S,MAAMiwD,OAASwF,EAAa,KAClConP,GACAA,EAAQ92S,YAAY+2S,IAG5BhuT,KAAK0tT,cAAcO,mBAAmBD,EAAWp8P,GAC1Co8P,CACX,EAUAR,EAAU3xT,UAAUqyT,mBAAqB,SAAUt8P,EAAYu8P,EAAcC,EAAYx5P,EAAUy5P,GAC/F,IAIIC,EACAC,EALAP,EAAYrhT,SAAS8gM,eAAeztM,KAAKytT,UAAUvwT,QAAQ+0D,GAAK,cAAgBL,GAChF48P,EAAgBphT,GAAc,UAC9BqhT,EAAa,GACbC,EAAc,GAGdN,EAAWzqT,OAAS,IACQ,IAAxByqT,EAAW,GAAGO,OAAeP,EAAWzqT,OAAS,GACjD2qT,EAASF,EAAW,GAAG1uJ,EACvB6uJ,EAAcH,EAAW,GAAGQ,SAG5BN,EAASF,EAAW,GAAG1uJ,EACvB6uJ,EAAcH,EAAW,GAAGQ,SAGpC,IAAIC,EAAW,EACf,GAAIL,GAAiBR,GAA6C,IAAhCA,EAAU1gT,WAAW3J,OACnD,IAAK,IAAIkB,EAAI,EAAGA,EAAIspT,EAAaxqT,OAAQkB,IAErC,GAAOspT,EAAatpT,GAAG8/C,SAAS,SAAcwpQ,EAAatpT,GAAG8/C,SAAS,SAAe9/C,GAAKupT,EAAWzqT,OAAS,GAAkB,IAAbixD,GAAmBy5P,EAUlI,CACDI,EAAW1rT,KAAKqrT,EAAW72S,SAAS1S,EAAE/I,WAAY,MAClD4yT,EAAY3rT,KAAKorT,EAAa52S,SAAS1S,EAAE/I,WAAY,MACjDwyT,EAASF,EAAW72S,SAAS1S,EAAE/I,WAAY,KAAK4jK,GAAsD,IAAjD0uJ,EAAW72S,SAAS1S,EAAE/I,WAAY,KAAK6yT,QAC5FL,EAASF,EAAW72S,SAAS1S,EAAE/I,WAAY,KAAK4jK,GAEhD6uJ,EAAcH,EAAW72S,SAAS1S,EAAE/I,WAAY,KAAK8yT,QAA2D,IAAjDR,EAAW72S,SAAS1S,EAAE/I,WAAY,KAAK6yT,QACtGJ,EAAcH,EAAW72S,SAAS1S,EAAE/I,WAAY,KAAK8yT,QAEzD,IAAK,IAAI/2R,EAAI,EAAGA,EAAI42R,EAAW9qT,OAAQk0B,IAAK,CACxC,IAAIsvB,EAASsnQ,EAAWl3S,SAASsgB,EAAE/7B,WAAY,KAE3CyhH,EAAUnwG,GAAc,MAAO,CAAE6kD,GAAIjyD,KAAKytT,UAAUvwT,QAAQ+0D,GAAK,SAAWL,EAAa,IAAMi9P,EAAUz/O,UAAW,YAAav4D,MAAO,CAAE,SAAY,QACtJwhD,EAAcq2P,EAAYn3S,SAASsgB,EAAE/7B,WAAY,KACjC,MAAhBu8D,GAAuBxgC,GAAK42R,EAAW9qT,OAAS,GAAU,GAALk0B,IACrDsvB,EAAOynQ,OAASH,EAAW52R,EAAI,GAAG+2R,OAClCznQ,EAAOu4G,EAAI+uJ,EAAW52R,EAAI,GAAG6nI,GAEjCniD,EAAQllD,YAAcA,EAAYxmD,QAAQ,UAAW,KAGrC,MADF68S,EAAY72R,GAAGhmB,QAAQ,OAAQ,OAEzC0rG,EAAQrsG,MAAM49S,WAAa,OAEV,IAAjB3nQ,EAAOwnQ,OAAe92R,GAAK42R,EAAW9qT,OAAS,GAAU,GAALk0B,GAChD42R,EAAW52R,EAAI,GAAG4jB,GAAKgzQ,EAAW52R,EAAI,GAAG4jB,EAAIgzQ,EAAW52R,EAAI,GAAG82R,OAAS,KAAQD,EAAY72R,EAAI,GAAG8sB,SAAS,UAAawpQ,EAAa52S,SAASsgB,EAAE/7B,WAAY,KAAK6oD,SAAS,UAC3KwC,EAAOwnQ,MAAQF,EAAW52R,EAAI,GAAG4jB,GAAKgzQ,EAAW52R,EAAI,GAAG4jB,EAAIgzQ,EAAW52R,EAAI,GAAG82R,OAC9ExnQ,EAAO1L,EAAIgzQ,EAAW52R,EAAI,GAAG4jB,EAAIgzQ,EAAW52R,EAAI,GAAG82R,MAC/CxnQ,EAAOwnQ,MAAQ,EACfxnQ,EAAOwnQ,MAAQ,EAGfpxM,EAAQrsG,MAAM49S,WAAa,QAI7B,GAALj3R,GAAU42R,EAAW9qT,OAAS,IAAM,GAAMwjD,EAAOu4G,EAAI4uJ,EAAU,IAAsB,GAAhBnnQ,EAAOwnQ,QAA2B,GAAZE,IAAmBT,EAAWS,EAAW,GAAGnvJ,EAAI0uJ,EAAW72S,SAASs3S,EAAS/yT,WAAY,KAAK4jK,EAAK,IAAQ0uJ,EAAW72S,SAASs3S,EAAS/yT,WAAY,KAAK4jK,EAAI0uJ,EAAWS,EAAW,GAAGnvJ,EAAK,KAAmD,KAA3CgvJ,EAAYn3S,SAASsgB,EAAE/7B,WAAY,OAClUwyT,EAASG,EAAWl3S,SAASsgB,EAAE/7B,WAAY,KAAK4jK,EAChD6uJ,EAAcE,EAAWl3S,SAASsgB,EAAE/7B,WAAY,KAAK8yT,QAErDznQ,IACAA,EAAOu4G,EAAI4uJ,EACXnnQ,EAAOynQ,OAASL,EAChBvuT,KAAK+uT,kBAAkBxxM,EAASp2D,EAAO1L,EAAG0L,EAAOu4G,EAAGv4G,EAAO6nQ,OAAQ7nQ,EAAOwnQ,MAAOxnQ,EAAOynQ,SAE5F5uT,KAAKivT,yBAAyB1xM,GAC9B,IAAIt4C,EAAUupP,EAAcj7O,WAAW,MACvCtO,EAAQxE,KAAO88C,EAAQrsG,MAAMo5E,SAAW,IAAMizB,EAAQrsG,MAAMm2E,WAC5D,IAAI6nO,EAAejqP,EAAQu3B,YAAYkyN,EAAYn3S,SAASsgB,EAAE/7B,WAAY,KAAK+V,QAAQ,iBAAkB,KAAKqvD,MAC9G,GAAI/Z,EAAQ,CACR,IAAIwN,EAAQxN,EAAOwnQ,MAAQ3uT,KAAK0tT,cAAcyB,gBAAkBD,EAChElvT,KAAKovT,kBAAkBz6P,EAAO4oD,EAAS3oD,EAAUzN,EAAOkoQ,SAC5D,CACArB,EAAU/2S,YAAYsmG,GACtBv9G,KAAKsvT,gBAAgBtB,EAAWzwM,GAE5Bv9G,KAAKytT,UAAU8B,qBAAuBvvT,KAAKytT,UAAU+B,sBAAwBxvT,KAAK0tT,cAAc+B,yBAAiD,2BAAtBlyM,EAAQnuC,WAC1G,oCAAtBmuC,EAAQnuC,WAAyE,8CAAtBmuC,EAAQnuC,WACtEmuC,EAAQ10C,UAAU31C,IAAI,eAE1B27R,GACJ,CACAJ,EAAa,GACbC,EAAc,GACV7pT,EAAIupT,EAAWzqT,OAAS,IACQ,IAA5ByqT,EAAWvpT,EAAI,GAAG8pT,OAAgB37C,GAAkBo7C,EAAWvpT,EAAI,KAKnEypT,EAASF,EAAWvpT,EAAI,GAAG66J,EAC3B6uJ,EAAcH,EAAWvpT,EAAI,GAAG+pT,SALhCN,EAASF,EAAWvpT,EAAI,GAAG66J,EAC3B6uJ,EAAcH,EAAWvpT,EAAI,GAAG+pT,QAO5C,MAnFIH,EAAW1rT,KAAKqrT,EAAW72S,SAAS1S,EAAE/I,WAAY,MAClD4yT,EAAY3rT,KAAKorT,EAAa52S,SAAS1S,EAAE/I,WAAY,MACjDwyT,EAASF,EAAW72S,SAAS1S,EAAE/I,WAAY,KAAK4jK,GAAsD,IAAjD0uJ,EAAW72S,SAAS1S,EAAE/I,WAAY,KAAK6yT,QAC5FL,EAASF,EAAW72S,SAAS1S,EAAE/I,WAAY,KAAK4jK,GAEhD6uJ,EAAcH,EAAW72S,SAAS1S,EAAE/I,WAAY,KAAK8yT,QAA2D,IAAjDR,EAAW72S,SAAS1S,EAAE/I,WAAY,KAAK6yT,QACtGJ,EAAcH,EAAW72S,SAAS1S,EAAE/I,WAAY,KAAK8yT,OAgFzE,EAeApB,EAAU3xT,UAAU6zT,mBAAqB,SAAU99P,EAAYu8P,EAAcC,EAAYx5P,EAAU+6P,GAC/F,IAAI3B,EAAYhuT,KAAK0tT,cAAckC,WAAW,cAAgBh+P,GAC1D48P,EAAgBphT,GAAc,UAClC,GAAIohT,EACA,IAAK,IAAI3pT,EAAI,EAAGA,EAAImpT,EAAU1gT,WAAW3J,OAAQkB,IAAK,CAElD,IAAIsiD,OAAS,EACTo2D,EAAUv9G,KAAK0tT,cAAckC,WAAW,SAAWh+P,EAAa,IAAM/sD,GAC1E,GAAImuQ,GAAkBz1J,GAClB,MAEA6wM,IACAjnQ,EAASinQ,EAAW72S,SAAS1S,EAAE/I,WAAY,OAEvCkE,KAAK+uT,kBAAkBxxM,EAASp2D,EAAO1L,EAAG0L,EAAOu4G,EAAGv4G,EAAO6nQ,OAAQ7nQ,EAAOwnQ,MAAOxnQ,EAAOynQ,QAGhG5uT,KAAKivT,yBAAyB1xM,GAC9B,IAAIt4C,EAAUupP,EAAcj7O,WAAW,MACvCtO,EAAQxE,KAAO88C,EAAQrsG,MAAMo5E,SAAW,IAAMizB,EAAQrsG,MAAMm2E,WAC5D,IAAI6nO,OAAe,EACnB,GAAIf,EAAc,CACd,IAAI91P,EAAc81P,EAAa52S,SAAS1S,EAAE/I,WAAY,KAClDu8D,IACA62P,EAAejqP,EAAQu3B,YAAYnkC,EAAYxmD,QAAQ,iBAAkB,KAAKqvD,MAEtF,MAEIguP,EAAejqP,EAAQu3B,YAAY+gB,EAAQllD,YAAYxmD,QAAQ,iBAAkB,KAAKqvD,MAE1F,GAAI/Z,EAAQ,CACR,IAAIwN,EAAQxN,EAAOwnQ,MAAQ3uT,KAAK0tT,cAAcyB,gBAAkBD,EAChElvT,KAAKovT,kBAAkBz6P,EAAO4oD,EAAS3oD,EAAUzN,EAAOkoQ,SAC5D,CACArvT,KAAKsvT,gBAAgBtB,EAAWzwM,EACpC,MAGAywM,EAAUxkB,cAAc57R,YAAYogT,GAEpChuT,KAAKytT,UAAUoC,aACVF,GACD3vT,KAAKytT,UAAUoC,WAAWC,qBAAqBl+P,GAG3D,EACA47P,EAAU3xT,UAAUuzT,kBAAoB,SAAUz6P,EAAO4oD,EAAS3oD,EAAUm7P,GACxE,IAAIC,EAAc,UAAYr7P,EAAQ,IACrB,IAAbC,EAEI2oD,EAAQrsG,MAAM2sC,UADdkyQ,GAAgB,GAAKA,GAAgB,GACXC,EAGA,UAAYD,EAAe,QAAUC,EAGjD,IAAbp7P,EAED2oD,EAAQrsG,MAAM2sC,UADG,IAAjBkyQ,EAC0B,iBAAmBC,GAEtB,KAAlBD,EACqBC,EAGA,UAAYD,EAAe,QAAUC,EAGjD,IAAbp7P,EAED2oD,EAAQrsG,MAAM2sC,UADG,IAAjBkyQ,EAC0B,kBAAoBC,EAExB,MAAjBD,EACqBC,EAGA,UAAYD,EAAe,QAAUC,EAGjD,IAAbp7P,IAED2oD,EAAQrsG,MAAM2sC,UADG,IAAjBkyQ,EAC0B,kBAAoBC,EAExB,KAAjBD,EACqBC,EAGA,UAAYD,EAAe,QAAUC,EAG3E,EACAxC,EAAU3xT,UAAUozT,yBAA2B,SAAU1xM,GACrDA,EAAQrsG,MAAMm2E,WAAa,QAC3Bk2B,EAAQrsG,MAAM++S,gBAAkB,IACpC,EAMAzC,EAAU3xT,UAAUq0T,yBAA2B,SAAUt+P,GAErD,IAKIgD,EALAu7P,EAAehpT,OAAO66O,eAAeJ,QAAQ5hP,KAAK0tT,cAAc0C,gBAAkB,IAAMx+P,EAAa,IAAM5xD,KAAKqwT,yBAEhHjC,EAAa,GACbD,EAAe,GAGnB,GAAIgC,EAAc,CAEd,IAAIltT,EAAOqiE,KAAK4U,MAAMi2O,GAEtB/B,EAAanrT,EAAiB,WAE9BkrT,EAAelrT,EAAkB,YAEjC2xD,EAAW3xD,EAAe,QAC9B,CACA,GAA0B,IAAtBmrT,EAAWzqT,OACX3D,KAAK2tT,gBAAgB5qT,KAAK,CAAE6uD,WAAYA,EAAYw8P,WAAYA,IAChEpuT,KAAK0vT,mBAAmB99P,EAAYu8P,EAAcC,EAAYx5P,OAE7D,CAED,IAAI07P,EAAetwT,KAAK2tT,gBAAgBrwT,QAAO,SAAUoV,GACrD,OAAOA,EAAIk/C,aAAeA,CAC9B,IACI0+P,GAC4B,IAAxBA,EAAa3sT,SAEbyqT,EAAakC,EAAa,GAAe,WACzCtwT,KAAK0vT,mBAAmB99P,EAAY,KAAMw8P,EAAYx5P,GAGlE,CACJ,EACA44P,EAAU3xT,UAAUyzT,gBAAkB,SAAUtB,EAAWzwM,GACvD,IAAIgzM,EAAoBvC,EAAUpjP,wBAC9B4lP,EAAkBjzM,EAAQ3yC,yBAEzB4lP,EAAgBtvP,MAAQsvP,EAAgBxlP,MAAUulP,EAAkBrvP,MAAQqvP,EAAkBvlP,MAAUwlP,EAAgBtvP,MAAQqvP,EAAkBrvP,SAEnJq8C,EAAQrsG,MAAMgwD,MAAQ,OAEtBq8C,EAAQrsG,MAAMgwD,MAAQq8C,EAAQkwB,YAAc,KAEpD,EAMA+/K,EAAU3xT,UAAU40T,gBAAkB,SAAUC,GAC5C,IAAIC,EAAiB3wT,KAAK0tT,cAAckD,kBAAoB,EAC5DD,EAAkBA,EAAiB,EAAKA,EAAiB,EACzD,IAAIE,EAAkB7wT,KAAK0tT,cAAckD,kBAAoB,EAC7DC,EAAmBA,EAAkB7wT,KAAK0tT,cAAcoD,UAAaD,EAAmB7wT,KAAK0tT,cAAcoD,UAAY,EAEvH,IADA,IAAIC,EAAapkT,SAASkB,iBAAiB,YAAc7N,KAAKytT,UAAUvwT,QAAQ+0D,GAAK,iBAC5EptD,EAAI,EAAGA,EAAIksT,EAAWptT,OAAQkB,IAEnC,GADAksT,EAAWx5S,SAAS1S,EAAE/I,WAAY,KAAKoV,MAAMyyG,QAAU,QACnD3jH,KAAK0tT,cAAcsD,iBAAmBhxT,KAAKixT,0BAA4BjxT,KAAKkxT,uBAAwB,CAEpG,IAAIt/P,EAAar6C,SAASw5S,EAAWx5S,SAAS1S,EAAE/I,WAAY,KAAKm2D,GAAG3/C,MAAM,eAAe,IACjFq+S,EAAiB,GAAM/+P,GAAgBA,GAAei/P,EAAkB,GAC5E7wT,KAAKktM,cAAc6jH,EAAWx5S,SAAS1S,EAAE/I,WAAY,KAAM40T,EAEnE,MACS1wT,KAAK0tT,cAAcyD,iBACxBnxT,KAAKktM,cAAc6jH,EAAWx5S,SAAS1S,EAAE/I,WAAY,KAAM40T,EAMvE,EACAlD,EAAU3xT,UAAUqxM,cAAgB,SAAUhwM,EAASwzT,GAC/CA,EACA1wT,KAAKoxT,qBAAqBl0T,GAGtBsvR,GAAQoC,KACJ1xR,EAAQssS,cACRtsS,EAAQssS,cAAc57R,YAAY1Q,GAE7BA,EAAQyQ,YACbzQ,EAAQyQ,WAAWC,YAAY1Q,GAInCA,EAAQmnE,QAGpB,EACAmpP,EAAU3xT,UAAUu1T,qBAAuB,SAAUl0T,GAEjD,IAAIm0T,EAAen0T,EAAQixM,uBAAuB,kBAClD,GAAIkjH,EACA,IAAK,IAAIxsT,EAAI,EAAGA,EAAIwsT,EAAa1tT,OAAQkB,IACrC,GAAI2nR,GAAQS,UAER,GAAyE,oBAArEokC,EAAa95S,SAAS1S,EAAE/I,WAAY,KAAK0tS,cAAcp6N,WAA+E,4BAA5CiiP,EAAa,GAAG7nB,cAAcp6N,UACxHlyE,EAAQ0Q,YAAYyjT,EAAa,SAEhC,GAAyE,4BAArEA,EAAa95S,SAAS1S,EAAE/I,WAAY,KAAK0tS,cAAcp6N,UAAyC,CACrG,IAAIkiP,EAAiB3kT,SAAS8gM,eAAe4jH,EAAa,GAAG7nB,cAAcv3O,IACvEq/P,GACAA,EAAe9nB,cAAcnlO,QAErC,MAGyE,oBAArEgtP,EAAa95S,SAAS1S,EAAE/I,WAAY,KAAK0tS,cAAcp6N,WACvDlyE,EAAQ0Q,YAAYyjT,EAAa,GAKrD,EAWA7D,EAAU3xT,UAAU01T,cAAgB,SAAU3/P,EAAY4/P,EAAOC,EAAYC,EAAUC,EAAYviP,GAC/F,IAAImuC,EAAUv9G,KAAK0tT,cAAckC,WAAW,SAAWh+P,EAAa,IAAM4/P,GACtEn5P,EAAcs5P,EAAW1iT,UAAUwiT,EAAYC,GAC/CxuT,EAAOyJ,SAAS23G,eAAejsD,GACnC,GAAI+W,EAAW,CACX,IAAIwiP,EAAcxkT,GAAc,QAChCwkT,EAAYxiP,UAAYA,EAAY,aACpCwiP,EAAY36S,YAAY/T,GACxBq6G,EAAQtmG,YAAY26S,EACxB,MAEIr0M,EAAQtmG,YAAY/T,EAE5B,EAWAsqT,EAAU3xT,UAAUg2T,sBAAwB,SAAUC,EAAWC,EAASC,EAAiBC,EAAgBlrK,EAAcE,GACrH,GAAIjnJ,KAAKytT,UAAU8B,oBACf,IAAK,IAAI1qT,EAAIitT,EAAWjtT,GAAKktT,EAASltT,IAAK,CACvC,IAAIqtT,OAAU,EACVC,OAAQ,EAERx1M,EAAW38G,KAAK0tT,cAAckC,WAAW,cAAgB/qT,GAAGyI,WAC5DzI,IAAMitT,GACNI,EAAUF,EACVG,EAAQx1M,EAASh5G,OAAS,GAErBkB,IAAMktT,GACXG,EAAU,EACVC,EAAQF,IAGRC,EAAU,EACVC,EAAQx1M,EAASh5G,OAAS,GAE1BmuT,IAAcC,IACdG,EAAUF,EACVG,EAAQF,GAEZ,IAAK,IAAIp6R,EAAIq6R,EAASr6R,GAAKs6R,EAAOt6R,IAAK,CACnC,IAAI0lF,EAAUv9G,KAAK0tT,cAAckC,WAAW,SAAW/qT,EAAI,IAAMgzB,GAC7Du6R,OAAS,EACTC,OAAS,EACTn4C,OAAW,EACf,GAAI38J,GAAWA,EAAQllD,YAAa,CAChC6hN,EAAW38J,EAAQllD,YAAY10D,OAC/B,IAAI00D,EAAcklD,EAAQllD,YAC1BklD,EAAQllD,YAAc,GAClBxgC,IAAMq6R,GAEFE,EADAvtT,IAAMitT,EACG/qK,EAGA,EAEbsrK,EAASn4C,EACTl6Q,KAAKuxT,cAAc1sT,EAAGgzB,EAAG,EAAGu6R,EAAQ/5P,EAAa,OAE5CxgC,IAAMs6R,GAASttT,IAAMktT,GAC1BK,EAAS,EACTC,EAASprK,IAGTmrK,EAAS,EACTC,EAASn4C,GAETg4C,IAAYC,GAASL,IAAcC,IACnCK,EAASrrK,EACTsrK,EAASprK,GAEbjnJ,KAAKuxT,cAAc1sT,EAAGgzB,EAAGu6R,EAAQC,EAAQh6P,EAAa,wBAClDxgC,IAAMs6R,GAASttT,IAAMktT,GACrB/xT,KAAKuxT,cAAc1sT,EAAGgzB,EAAGw6R,EAAQh6P,EAAY10D,OAAQ00D,EAAa,KAE1E,CACJ,CACJ,CAER,EAKAm1P,EAAU3xT,UAAUy2T,kBAAoB,WAEpC,IADA,IAAIvB,EAAapkT,SAASkB,iBAAiB,YAAc7N,KAAKytT,UAAUvwT,QAAQ+0D,GAAK,iBAC5EptD,EAAI,EAAGA,EAAIksT,EAAWptT,OAAQkB,IAEnC,IADA,IAAIyI,EAAayjT,EAAWx5S,SAAS1S,EAAE/I,WAAY,KAAKwR,WAC/CuqB,EAAI,EAAGA,EAAIvqB,EAAW3J,OAAQk0B,IAAK,CACxC,IAAI0lF,EAAUjwG,EAAWiK,SAASsgB,EAAE/7B,WAAY,KAEhD,GAA0B,2BAAtByhH,EAAQnuC,WAAgE,oCAAtBmuC,EAAQnuC,WAAyE,8CAAtBmuC,EAAQnuC,UAA2D,CAChL,IAAI/W,EAAcklD,EAAQllD,aAEtBklD,EAAQjwG,WAAW3J,OAAS,GAAmC,IAA9B45G,EAAQjwG,WAAW3J,QAAmD,SAAlC45G,EAAQjwG,WAAW,GAAGZ,WAC3F6wG,EAAQllD,YAAc,GACtBklD,EAAQllD,YAAcA,EAE9B,CACJ,CAER,EAEAm1P,EAAU3xT,UAAUkzT,kBAAoB,SAAUxxM,EAASvyC,EAAMC,EAAK85H,EAAQ7jI,EAAOC,GACjFo8C,EAAQrsG,MAAM85D,KAAOA,EAAOhrE,KAAK0tT,cAAcyB,gBAAkB,KACjE5xM,EAAQrsG,MAAM+5D,IAAMA,EAAMjrE,KAAK0tT,cAAcyB,gBAAkB,KAC/D,IAAIoD,EAAapxP,EAASnhE,KAAK0tT,cAAcyB,gBAC7C5xM,EAAQrsG,MAAMiwD,OAASoxP,EAAa,KACpCh1M,EAAQrsG,MAAMo5E,SAAWnpB,EAASnhE,KAAK0tT,cAAcyB,gBAAkB,IAC3E,EACA3B,EAAU3xT,UAAUo1T,uBAAyB,WACzC,QAAIjxT,KAAKytT,UAAU8B,qBACRvvT,KAAKytT,UAAU8B,oBAAoBiD,eAKlD,EAMAhF,EAAU3xT,UAAU42T,iBAAmB,SAAUC,GAE7C,IADA,IAAIC,EAAgBhmT,SAASkB,iBAAiB,YAAc7N,KAAKytT,UAAUvwT,QAAQ+0D,GAAK,iBAC/EptD,EAAI,EAAGA,EAAI8tT,EAAchvT,OAAQkB,IAEtC,IADA,IAAIyI,EAAaqlT,EAAcp7S,SAAS1S,EAAE/I,WAAY,KAAKwR,WAClDuqB,EAAI,EAAGA,EAAIvqB,EAAW3J,OAAQk0B,IAAK,CACxC,IAAI+6R,EAActlT,EAAWiK,SAASsgB,EAAE/7B,WAAY,KAEhD42T,GAAmC,2BAA1BE,EAAYxjP,WAAoE,oCAA1BwjP,EAAYxjP,WAA6E,8CAA1BwjP,EAAYxjP,UAC1IwjP,EAAY/pP,UAAU31C,IAAI,eAG1B0/R,EAAY/pP,UAAUxE,OAAO,cAErC,CAER,EAMAmpP,EAAU3xT,UAAUg3T,oBAAsB,SAAUhnE,GAChD,IAAI73O,EAAW63O,EAAU/kG,WAAWT,wBAAwBwlG,EAAU7kG,WAClE8rK,GAAW,EAIf,QAHK9+S,GAAY63O,EAAU9kG,aAAe8kG,EAAU5kG,aAAejzI,IAAatO,KAAKqtT,+BACjFD,GAAW,GAERA,CACX,EAMAtF,EAAU3xT,UAAUg2D,aAAe,SAAU30D,GACzC,IAEIssS,EAAgBtsS,EAAQssS,cAY5B,OAXKA,IACDA,EAAgBtsS,EAAQyQ,YAEI,oBAA5B67R,EAAcp6N,UAEL73D,SAASra,EAAQ+0D,GAAG3/C,MAAM,UAAU,IAIpCiF,SAASiyR,EAAcv3O,GAAG3/C,MAAM,UAAU,GAG3D,EAOAk7S,EAAU3xT,UAAUm3T,aAAe,SAAU91T,EAASy2D,GAClD,IAEI61O,EAAgBtsS,EAAQssS,cAY5B,OAXKA,IACDA,EAAgBtsS,EAAQyQ,YAEI,oBAA5B67R,EAAcp6N,UAEF73D,SAASra,EAAQ+0D,GAAG3/C,MAAM,SAAWqhD,EAAY,KAAK,IAItDp8C,SAASiyR,EAAcv3O,GAAG3/C,MAAM,SAAWqhD,EAAY,KAAK,GAGhF,EACA65P,EAAU3xT,UAAUw0T,sBAAwB,WACxC,OAAIrwT,KAAKytT,UAAUwF,oBACRjzT,KAAKytT,UAAUwF,oBAAoBC,mBAGnC,CAEf,EAKA1F,EAAU3xT,UAAUq1T,oBAAsB,WACtC,QAAIlxT,KAAKytT,UAAU0F,kBACRnzT,KAAKytT,UAAU0F,iBAAiBxD,YAK/C,EAMAnC,EAAU3xT,UAAUu3T,wBAA0B,SAAU9vT,GACpD,IAAIwC,EAAQ9F,KACZ,IAAKA,KAAKqzT,iBACN,GAAKz/C,KAkCA,CAED,IAAI0/C,EAAsB3mT,SAAS8gM,eAAeztM,KAAKytT,UAAUvwT,QAAQ+0D,GAAK,+BAC1EqhQ,IACAA,EAAoBj7P,YAAc/0D,EAClCgwT,EAAoBrmT,UAAY3J,GAEhCtD,KAAKytT,UAAU0F,mBACfnzT,KAAKytT,UAAUoC,WAAW0D,sBAAuB,GAErDvzT,KAAKytT,UAAU+F,gBAAgBC,kBAAkB,wBAAyBnwT,EAC9E,KA7CiB,CAEb,IAAIowT,EAAiBtmT,GAAc,MAAO,CAAE6kD,GAAIjyD,KAAKytT,UAAUvwT,QAAQ+0D,GAAK,UAAWmd,UAAW,4BAClGpvE,KAAK0tT,cAAciG,gBAAgB18S,YAAYy8S,GAC/C1zT,KAAK6tT,aAAe,IAAI1K,GAAO,CAC3B+G,eAAe,EAAMzD,eAAe,EAAOjB,SAAS,EAAM3wL,OAAQ70H,KAAKytT,UAAUmG,UAAU9nB,YAAY,aACvGvqJ,QAAS,CAAC,CACFslK,YAAa,CAAEx5S,QAASrN,KAAKytT,UAAUmG,UAAU9nB,YAAY,MAAO3nJ,WAAW,GAC/E7jB,MAAOtgI,KAAKmhQ,kBAAkBvgM,KAAK5gE,QAG3CqN,QAAS,+DAAiE/J,EAAO,SAAUxG,OAAQkD,KAAKytT,UAAUvwT,QAClH22T,YAAa,WAET,GADA/tT,EAAM+nT,aAAa1lT,UACfrC,EAAM2nT,UAAUvwT,QAChB,IACI4I,EAAM2nT,UAAUvwT,QAAQ0Q,YAAY8lT,EACxC,CACA,MAAOpxT,GACHoxT,EAAelqB,cAAc57R,YAAY8lT,EAC7C,CAEA5tT,EAAM2nT,UAAU0F,mBAChBrtT,EAAM2nT,UAAUoC,WAAW0D,sBAAuB,GAEtDztT,EAAMutT,kBAAmB,CAC7B,IAEArzT,KAAKytT,UAAUzvB,YACfh+R,KAAK6tT,aAAa7vB,WAAY,GAElCh+R,KAAK6tT,aAAazvB,SAASs1B,GAC3B1zT,KAAKqzT,kBAAmB,CAC5B,CAcR,EACO7F,CACX,CA9qB+B,GCHxB,SAASsG,GAAgB7wT,GAC5B,IACI40B,EADAtuB,EAAa,GAEbwqT,EA0ED,SAAuB9wT,GAC1B,IAAI+wT,EAAY,wCACZnlT,EAAU,GACVolT,EAAW,GACXjrT,EAAQ,CAAC,EACbgrT,EAAU5wS,UAAY,EACtB,IAAI8wS,GAAgB,EACpBlrT,EAAQgrT,EAAUp/S,KAAK3R,GACvB,KAAO+F,GAAO,CACV,GAAiB,MAAbA,EAAM,GAAY,CAElBkrT,GAAgB,CACpB,MACSlrT,EAAM,IACoB,OAA3BA,EAAM,GAAGyE,eACLoB,EAAQlL,QACRswT,EAASlxT,KAAK8L,GAElBolT,EAASlxT,KAAK,CAAC,MACf8L,EAAU,CAAC7F,EAAM,GAAGiG,UAAU,EAAG,MAG7BJ,EAAQlL,QACRswT,EAASlxT,KAAK8L,GAElBA,EAAU,CAAC7F,EAAM,KAErBkrT,GAAgB,IAGXrlT,EAAQlL,SACTkL,EAAU,IAETqlT,GACDrlT,EAAQ9L,KAAKwX,OAAOvR,EAAM,KAE9BkrT,GAAgB,GAEpBlrT,EAAQgrT,EAAUp/S,KAAK3R,EAC3B,CACI4L,EAAQlL,QACRswT,EAASlxT,KAAK8L,GAElB,OAAOolT,CACX,CAtH0BE,CAAclxT,GACpC,GAAI8wT,EAAgBpwT,OAAS,EACzB,IAAK,IAAIkB,EAAI,EAAGA,EAAIkvT,EAAgBpwT,OAAQkB,IAAK,CAC7C,IAAIqvI,EAAK6/K,EAAgBlvT,GACrBilJ,EAAO,GAEX,QADAA,EAAO5V,EAAG,IACGzmI,eACT,IAAK,IACD,IAAKoqB,EAAI,EAAGA,EAAIq8G,EAAGvwI,OAAQk0B,IACvBtuB,EAAWxG,KAAK,CAAEqxT,QAAStqK,EAAM36H,EAAG+kH,EAAGr8G,GAAI7S,EAAGkvH,EAAGr8G,EAAI,KACrDA,GAAQ,EACK,MAATiyH,EACAA,EAAO,IAEO,MAATA,IACLA,EAAO,KAGf,MACJ,IAAK,IACL,IAAK,IACD,IAAKjyH,EAAI,EAAGA,EAAIq8G,EAAGvwI,OAAQk0B,IACvBtuB,EAAWxG,KAAK,CAAEqxT,QAAStqK,EAAM36H,EAAG+kH,EAAGr8G,GAAI7S,EAAGkvH,EAAGr8G,EAAI,KACrDA,GAAQ,EAEZ,MACJ,IAAK,IACD,IAAKA,EAAI,EAAGA,EAAIq8G,EAAGvwI,OAAQk0B,IACvBtuB,EAAWxG,KAAK,CAAEqxT,QAAStqK,EAAM36H,EAAG+kH,EAAGr8G,KAE3C,MACJ,IAAK,IACD,IAAKA,EAAI,EAAGA,EAAIq8G,EAAGvwI,OAAQk0B,IACvBtuB,EAAWxG,KAAK,CAAEqxT,QAAStqK,EAAM9kI,EAAGkvH,EAAGr8G,KAE3C,MACJ,IAAK,IACDtuB,EAAWxG,KAAK,CAAEqxT,QAAStqK,IAC3B,MACJ,IAAK,IACD,IAAKjyH,EAAI,EAAGA,EAAIq8G,EAAGvwI,OAAQk0B,IACvBtuB,EAAWxG,KAAK,CACZqxT,QAAStqK,EAAMljG,GAAIstF,EAAGr8G,GAAIgvB,GAAIqtF,EAAGr8G,EAAI,GAAIivB,GAAIotF,EAAGr8G,EAAI,GAAIkvB,GAAImtF,EAAGr8G,EAAI,GAAI1I,EAAG+kH,EAAGr8G,EAAI,GAAI7S,EAAGkvH,EAAGr8G,EAAI,KAEnGA,GAAQ,EAEZ,MACJ,IAAK,IACD,IAAKA,EAAI,EAAGA,EAAIq8G,EAAGvwI,OAAQk0B,IACvBtuB,EAAWxG,KAAK,CAAEqxT,QAAStqK,EAAMhjG,GAAIotF,EAAGr8G,GAAIkvB,GAAImtF,EAAGr8G,EAAI,GAAI1I,EAAG+kH,EAAGr8G,EAAI,GAAI7S,EAAGkvH,EAAGr8G,EAAI,KACnFA,GAAQ,EAEZ,MACJ,IAAK,IACD,IAAKA,EAAI,EAAGA,EAAIq8G,EAAGvwI,OAAQk0B,IACvBtuB,EAAWxG,KAAK,CAAEqxT,QAAStqK,EAAMljG,GAAIstF,EAAGr8G,GAAIgvB,GAAIqtF,EAAGr8G,EAAI,GAAI1I,EAAG+kH,EAAGr8G,EAAI,GAAI7S,EAAGkvH,EAAGr8G,EAAI,KACnFA,GAAQ,EAEZ,MACJ,IAAK,IACD,IAAKA,EAAI,EAAGA,EAAIq8G,EAAGvwI,OAAQk0B,IACvBtuB,EAAWxG,KAAK,CACZqxT,QAAStqK,EAAMuqK,GAAIngL,EAAGr8G,GAAIy8R,GAAIpgL,EAAGr8G,EAAI,GAAIszC,MAAO+oE,EAAGr8G,EAAI,GAAI08R,SAAUrgL,EAAGr8G,EAAI,GAC5E28R,MAAOtgL,EAAGr8G,EAAI,GAAI1I,EAAG+kH,EAAGr8G,EAAI,GAAI7S,EAAGkvH,EAAGr8G,EAAI,KAE9CA,GAAQ,EAIxB,CAEJ,OAAOtuB,CACX,CAiFO,SAASkrT,GAAsBlrT,GAClC,IAAIm9C,EACAC,EACAC,EACAC,EACAC,EACAC,EACA53B,EACAnK,EACArhB,EACAkB,EAGAsvM,EAAW,GACf,IAAKhlL,EAAI,EAAGnK,EAAI,EAAGngB,EAAI,EAAGlB,EAAS4F,EAAW5F,OAAQkB,EAAIlB,IAAUkB,EAAG,CACnE,IAEIilJ,EADA4qK,EADMnrT,EAAW1E,GAGrBilJ,EAAO4qK,EAAIN,QACP,OAAQM,IACR7tQ,EAAK6tQ,EAAI7tQ,IAET,OAAQ6tQ,IACR3tQ,EAAK2tQ,EAAI3tQ,IAET,OAAQ2tQ,IACR9tQ,EAAK8tQ,EAAI9tQ,IAET,OAAQ8tQ,IACR5tQ,EAAK4tQ,EAAI5tQ,IAET,MAAO4tQ,IACPvlS,EAAIulS,EAAIvlS,GAER,MAAOulS,IACP1vS,EAAI0vS,EAAI1vS,GAEZ,IAAIpmB,EAAOu1M,EAASA,EAASxwM,OAAS,GACtC,OAAQmmJ,GACJ,IAAK,IACDqqD,EAASpxM,KAAK,CAAEqxT,QAAS,IAAKjlS,EAAGA,EAAGnK,EAAGA,IACvC,MACJ,IAAK,IACDmvL,EAASpxM,KAAK,CAAEqxT,QAAS,IAAK1tQ,GAAIA,EAAIC,GAAIA,EAAIx3B,EAAGA,EAAGnK,EAAGA,IACvD,MACJ,IAAK,IACDmvL,EAASpxM,KAAK,CAAEqxT,QAAS,IAAK1tQ,GAAIA,EAAIC,GAAIA,EAAIx3B,EAAGA,EAAGnK,EAAG2hC,IACvD,MACJ,IAAK,IACDwtJ,EAASpxM,KAAK,CAAEqxT,QAAS,IAAK1tQ,GAAIA,EAAIC,GAAIA,EAAIx3B,EAAGu3B,EAAI1hC,EAAGA,IACxD,MACJ,IAAK,IACDmvL,EAASpxM,KAAK,CAAEqxT,QAAS,IAAK1tQ,GAAIA,EAAIC,GAAIA,EAAIC,GAAIA,EAAIC,GAAIA,EAAIC,GAAIA,EAAIC,GAAIA,EAAI53B,EAAGA,EAAGnK,EAAGA,IACvF,MACJ,IAAK,IACD,GAAIpmB,EAAM,CACN,IAAI+1T,OAAO,EAOPC,EAAO,CAAEzlS,EAAG,EAAIu3B,GALhBiuQ,EADiB,MAAjB/1T,EAAKw1T,SAAoC,MAAjBx1T,EAAKw1T,QACtB,CAAEjlS,EAAGvwB,EAAKkoD,GAAI9hC,EAAGpmB,EAAKmoD,IAGtB,CAAE53B,EAAGu3B,EAAI1hC,EAAG2hC,IAEOx3B,EAAGnK,EAAG,EAAI2hC,EAAKguQ,EAAK3vS,GAClDmvL,EAASpxM,KAAK,CAAEqxT,QAAS,IAAK1tQ,GAAIA,EAAIC,GAAIA,EAAIC,GAAIguQ,EAAKzlS,EAAG03B,GAAI+tQ,EAAK5vS,EAAG8hC,GAAIA,EAAIC,GAAIA,EAAI53B,EAAGA,EAAGnK,EAAGA,GACnG,CACA,MACJ,IAAK,IAEDmvL,EAASpxM,KAAK,CAAEqxT,QAAS,IAAK1tQ,GAAIA,EAAIC,GAAIA,EAAIC,GAAIA,EAAIC,GAAIA,EAAI13B,EAAGA,EAAGnK,EAAGA,IACvE,MACJ,IAAK,IACD,GAAIpmB,EAAM,CACF+1T,OAAO,EAOPC,EAAO,CAAEzlS,EAAG,EAAIu3B,GALhBiuQ,EADiB,MAAjB/1T,EAAKw1T,QACE,CAAEjlS,EAAGvwB,EAAKgoD,GAAI5hC,EAAGpmB,EAAKioD,IAGtB,CAAE13B,EAAGu3B,EAAI1hC,EAAG2hC,IAEOx3B,EAAGnK,EAAG,EAAI2hC,EAAKguQ,EAAK3vS,GAClDmvL,EAASpxM,KAAK,CAAEqxT,QAAS,IAAK1tQ,GAAIA,EAAIC,GAAIA,EAAIC,GAAIguQ,EAAKzlS,EAAG03B,GAAI+tQ,EAAK5vS,EAAGmK,EAAGA,EAAGnK,EAAGA,GACnF,CACA,MACJ,IAAK,IACD,IAAI6vS,EAASH,EACbG,EAAOT,QAAU,IACjBjgH,EAASpxM,KAAK8xT,GACd,MACJ,IAAK,IACL,IAAK,IACD1gH,EAASpxM,KAAK,CAAEqxT,QAAS,MACzBjlS,EAAIu3B,EACJ1hC,EAAI2hC,EAGC,MAATmjG,GAAyB,MAATA,GAER9kI,EAEZ0hC,EAAKv3B,EACLw3B,EAAK3hC,CACT,CACA,OAAOmvL,CACX,CA2FO,SAAS2gH,GAAe9/G,EAASlrD,EAAMp3I,EAAKqiT,EAASC,EAAIC,GAC5D,OAAQnrK,GACJ,IAAK,IAIL,IAAK,IA8BL,IAAK,IACDkrD,EAAQ7lL,EAAIzc,EAAIyc,EAChB6lL,EAAQhwL,EAAItS,EAAIsS,EAChB,MA7BJ,IAAK,IACDgwL,EAAQ7lL,EAAIzc,EAAIyc,EAChB,MACJ,IAAK,IACD6lL,EAAQhwL,EAAItS,EAAIsS,EAChB,MACJ,IAAK,IACDgwL,EAAQ7lL,EAAIzc,EAAIyc,EAChB6lL,EAAQhwL,EAAItS,EAAIsS,EAChBgwL,EAAQpuJ,GAAKl0C,EAAIk0C,GACjBouJ,EAAQnuJ,GAAKn0C,EAAIm0C,GACjBmuJ,EAAQluJ,GAAKp0C,EAAIo0C,GACjBkuJ,EAAQjuJ,GAAKr0C,EAAIq0C,GACjB,MACJ,IAAK,IACDiuJ,EAAQ7lL,EAAIzc,EAAIyc,EAChB6lL,EAAQhwL,EAAItS,EAAIsS,EAChBgwL,EAAQluJ,GAAKp0C,EAAIo0C,GACjBkuJ,EAAQjuJ,GAAKr0C,EAAIq0C,GACjB,MACJ,IAAK,IACDiuJ,EAAQ7lL,EAAIzc,EAAIyc,EAChB6lL,EAAQhwL,EAAItS,EAAIsS,EAChBgwL,EAAQpuJ,GAAKl0C,EAAIk0C,GACjBouJ,EAAQnuJ,GAAKn0C,EAAIm0C,GACjB,MAKJ,IAAK,IACD,IAAIwtQ,EAAK3hT,EAAI2hT,GACTC,EAAK5hT,EAAI4hT,GACTS,IACAriT,EAAI2hT,GAAKA,GAAWW,EACpBtiT,EAAI4hT,GAAKA,GAAWW,GAExBjgH,EAAQ7lL,EAAIzc,EAAIyc,EAChB6lL,EAAQhwL,EAAItS,EAAIsS,EAChBgwL,EAAQq/G,GAAK3hT,EAAI2hT,GACjBr/G,EAAQs/G,GAAK5hT,EAAI4hT,GACjB,MACJ,IAAK,IACL,IAAK,IACDt/G,EAAU,CAAEo/G,QAAS,KAG7B,OAAOp/G,CACX,CAEO,SAASkgH,GAAcx4T,EAAK6/G,EAAa44M,EAAWC,GAevD,OAdI14T,IAAQy4T,EAEJz4T,EADA04T,IAAcD,EACLz4T,EAAM6/G,GAAgBhiG,OAAO46S,GAAa54M,EAAchiG,OAAO46S,KACjEC,EAAY76S,OAAO46S,IAGlB56S,OAAO7d,GAAO6/G,GAAgBhiG,OAAO46S,GAAa54M,EAAchiG,OAAO46S,IAI/EC,IAAcD,IACdz4T,EAAM04T,GAGP76S,OAAO7d,EAAIozC,QAAQ,GAC9B,CAEO,SAASulR,GAAqBtB,GACjC,IAAIrtQ,EACAC,EACAC,EACAC,EACAC,EACAC,EACA53B,EACAnK,EACArhB,EACAkB,EACJ,IAAKsqB,EAAI,EAAGnK,EAAI,EAAGngB,EAAI,EAAGlB,EAASowT,EAAgBpwT,OAAQkB,EAAIlB,IAAUkB,EAAG,CACxE,IACI6vT,EADOX,EAAgBlvT,GAEvBilJ,EAAO4qK,EAAIN,QACf,GAAI,cAAc1mT,KAAKo8I,GACf,MAAO4qK,IACPA,EAAIvlS,EAAIA,EAAIulS,EAAIvlS,GAEhB,MAAOulS,IACPA,EAAI1vS,EAAIA,EAAI0vS,EAAI1vS,OAGnB,CACG,OAAQ0vS,IACRA,EAAI9tQ,GAAKA,EAAKz3B,EAAIulS,EAAI9tQ,IAEtB,OAAQ8tQ,IACRA,EAAI5tQ,GAAKA,EAAK33B,EAAIulS,EAAI5tQ,IAEtB,OAAQ4tQ,IACRA,EAAI7tQ,GAAKA,EAAK7hC,EAAI0vS,EAAI7tQ,IAEtB,OAAQ6tQ,IACRA,EAAI3tQ,GAAKA,EAAK/hC,EAAI0vS,EAAI3tQ,IAEtB,MAAO2tQ,IACPA,EAAIvlS,EAAIA,GAAKulS,EAAIvlS,GAEjB,MAAOulS,IACPA,EAAI1vS,EAAIA,GAAK0vS,EAAI1vS,GAErB,IAAI6vS,OAAS,EACb,OAAQ/qK,GACJ,IAAK,IACL,IAAK,IACD+qK,EAAS,CAAET,QAAS,IAAKjlS,EAAGA,EAAGnK,EAAGA,GAClC,MACJ,IAAK,IACL,IAAK,IACD6vS,EAAS,CAAET,QAAS,IAAKjlS,EAAGA,EAAGnK,EAAGA,GAClC,MACJ,IAAK,IACL,IAAK,IACD6vS,EAAS,CAAET,QAAS,IAAKjlS,EAAGA,GAC5B,MACJ,IAAK,IACL,IAAK,IACD0lS,EAAS,CAAET,QAAS,IAAKpvS,EAAGA,GAC5B,MACJ,IAAK,IACL,IAAK,IACD6vS,EAAS,CAAET,QAAS,IAAKjlS,EAAGA,EAAGnK,EAAGA,EAAG4hC,GAAIA,EAAIC,GAAIA,EAAIC,GAAIA,EAAIC,GAAIA,GACjE,MACJ,IAAK,IACL,IAAK,IACD8tQ,EAAS,CAAET,QAAS,IAAKjlS,EAAGA,EAAGnK,EAAGA,EAAG8hC,GAAIA,EAAIC,GAAIA,GACjD,MACJ,IAAK,IACL,IAAK,IACD8tQ,EAAS,CAAET,QAAS,IAAKjlS,EAAGA,EAAGnK,EAAGA,EAAG4hC,GAAIA,EAAIC,GAAIA,GACjD,MACJ,IAAK,IACL,IAAK,IACDguQ,EAAS,CAAET,QAAS,IAAKjlS,EAAGA,EAAGnK,EAAGA,GAClC,MACJ,IAAK,IACL,IAAK,KACD6vS,EAAS,CAAET,QAAS,IAAKjlS,EAAGA,EAAGnK,EAAGA,IAC3BqvS,GAAKK,EAAIL,GAChBQ,EAAOP,GAAKI,EAAIJ,GAChBO,EAAO1pP,MAAQupP,EAAIvpP,MACnB0pP,EAAON,SAAWG,EAAIH,SACtBM,EAAOL,MAAQE,EAAIF,MACnB,MACJ,IAAK,IACL,IAAK,IACDK,EAAS,CAAET,QAAS,KACpBjlS,EAAIu3B,EACJ1hC,EAAI2hC,EACJkuQ,EAASd,EAAgBlvT,GAG7BgwT,IACAd,EAAgBlvT,GAAKgwT,EAE7B,CACa,MAAT/qK,GAAyB,MAATA,IAChBpjG,EAAKv3B,EACLw3B,EAAK3hC,EAEb,CACA,OAAO+uS,CACX,CAEO,SAASuB,GAAcvB,GAC1B,IACIlvT,EADA0wT,EAAe,GAEnB,IAAK1wT,EAAI,EAAGA,EAAIkvT,EAAgBpwT,OAAQkB,IAEhC0wT,GADM,IAAN1wT,EACgB2wT,GAAUzB,EAAgBlvT,IAG1B,IAAM2wT,GAAUzB,EAAgBlvT,IAGxD,OAAO0wT,CACX,CAEO,SAASC,GAAU9iT,GACtB,IAAI0S,EAAS,GACb,OAAQ1S,EAAI0hT,SACR,IAAK,IACL,IAAK,IACDhvS,EAAS1S,EAAI0hT,QACb,MACJ,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IA+BL,IAAK,IACL,IAAK,IACDhvS,EAAS1S,EAAI0hT,QAAU,IAAM1hT,EAAIyc,EAAI,IAAMzc,EAAIsS,QA9BnD,IAAK,IACL,IAAK,IACDI,EAAS1S,EAAI0hT,QAAU,IAAM1hT,EAAIk0C,GAAK,IAAMl0C,EAAIm0C,GAAK,IAAMn0C,EAAIo0C,GAAK,IAAMp0C,EAAIq0C,GAAK,IAAMr0C,EAAIyc,EAAI,IAAMzc,EAAIsS,EAC3G,MACJ,IAAK,IACL,IAAK,IACDI,EAAS1S,EAAI0hT,QAAU,IAAM1hT,EAAIk0C,GAAK,IAAMl0C,EAAIm0C,GAAK,IAAMn0C,EAAIyc,EAAI,IAAMzc,EAAIsS,EAC7E,MACJ,IAAK,IACL,IAAK,IACD,IAAIuoD,EAAM76D,EAAI0hT,QACVqB,EAAM/iT,EAAIy4D,MACVjxC,EAAKxnB,EAAI6hT,SAAW,IAAM,IAC1B3vT,EAAK8N,EAAI8hT,MAAQ,IAAM,IAC3BpvS,EAASmoD,EAAM,IAAM76D,EAAI2hT,GAAK,IAAM3hT,EAAI4hT,GAAK,IAAMmB,EAAM,IAAMv7R,EAAI,IAAMt1B,EAAI,IAAM8N,EAAIyc,EAAI,IAAMzc,EAAIsS,EACrG,MACJ,IAAK,IACL,IAAK,IACDI,EAAS1S,EAAI0hT,QAAU,IAAM1hT,EAAIyc,EACjC,MACJ,IAAK,IACL,IAAK,IACD/J,EAAS1S,EAAI0hT,QAAU,IAAM1hT,EAAIsS,EACjC,MACJ,IAAK,IACL,IAAK,IACDI,EAAS1S,EAAI0hT,QAAU,IAAM1hT,EAAIo0C,GAAK,IAAMp0C,EAAIq0C,GAAK,IAAMr0C,EAAIyc,EAAI,IAAMzc,EAAIsS,EAMrF,OAAOI,CACX,CCnlBA,IAsBWunO,GAtBPstD,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,SAAWttD,GACP,IAKI+oE,EACAC,GAAoB,EA+CxB,SAASC,EAAiBp8S,GACtBq8S,EAAgBr8S,EAAKs8S,eAAgBt8S,EAAKtc,SAC1Csc,EAAKtc,QAAQ29D,iBAAiB,SAAS,WACnC,IAAIt3D,EAASkzP,EAAcz2P,OACvBuD,EAAOslE,UAAUsJ,SAAS,kBAAoB5uE,EAAOslE,UAAUsJ,SAAS,cACrE5uE,EAAOslE,UAAUsJ,SAAS,cAC7B5uE,EAAOslE,UAAU31C,IAAI,iBAEzBpZ,YAAW,WACP6yO,EAAMopE,eAAev8S,EAAKtc,QAASqG,EACvC,GAAG,GACP,IACAiW,EAAKtc,QAAQ29D,iBAAiB,QAAQ,WAClC,IAAIt3D,EAASkzP,EAAcz2P,OACvBuD,EAAOslE,UAAUsJ,SAAS,kBAAoB5uE,EAAOslE,UAAUsJ,SAAS,cACrE5uE,EAAOslE,UAAUsJ,SAAS,cAC7B5uE,EAAOslE,UAAUxE,OAAO,iBAE5BvqD,YAAW,WACP6yO,EAAMopE,eAAev8S,EAAKtc,QAASqG,EACvC,GAAG,GACP,IACAiW,EAAKtc,QAAQ29D,iBAAiB,SAAS,WACnCg7P,EAAgBH,EAAWl8S,EAAKtc,QACpC,GACJ,CAEA,SAAS24T,EAAgBC,EAAgB34D,GACrC,IAAI/zH,EAAa+zH,EAAa1hQ,MACX,KAAf2tI,IAAsB4pI,GAAkB5pI,IAAe+zH,EAAaqsC,cACpErsC,EAAaqsC,cAAc3gO,UAAU31C,IAAI,iBAEjB,WAAnB4iS,GAA+B34D,EAAaqsC,eACjDrsC,EAAaqsC,cAAc3gO,UAAUxE,OAAO,gBAEpD,CACA,SAAS2xP,IACL,IAAIh5I,EAAQy5E,EAAcz2P,MAAMmuM,uBAAuB,gBAAgB,GAClE6kE,GAAkBh2F,KACnBmyG,GAAS,CAACnyG,GAAQi9H,IACdj9H,EAAMn0G,UAAUsJ,SAAS8nO,KACzBzqB,GAAY,CAACxyG,GAAQi9H,IAGjC,CACA,SAASgc,IACL,IAAI1yT,EAASkzP,EAAcz2P,MAC3B,GAAKuD,EAAOmT,qBAAqB,YAAY,GAA2D,KAArDnT,EAAOmT,qBAAqB,YAAY,GAAGjb,MACxC,KAAlD8H,EAAOmT,qBAAqB,SAAS,GAAGjb,MAAc,CACtD,IAAIuhL,EAAQz5K,EAAO4qM,uBAAuB,gBAAgB,GACrD6kE,GAAkBh2F,KACfA,EAAMn0G,UAAUsJ,SAAS8nO,KACzBzqB,GAAY,CAACxyG,GAAQi9H,IAEzB9qB,GAAS,CAACnyG,GAAQi9H,IAE1B,CACJ,CACA,SAASic,EAAmBh5T,GACxBA,EAAQ29D,iBAAiB,QAASm7P,GAClC94T,EAAQ29D,iBAAiB,OAAQo7P,EACrC,CAMA,SAASE,EAAoB38S,EAAM4O,EAAaguS,GAC5C,IAAIC,EAAerjD,GAAkBojD,GAAiDhpT,GAAxBgpT,EAClC,SAAxB58S,EAAKs8S,gBACLI,EAAmB18S,EAAKtc,SAExB81Q,GAAkB5qP,EAAY6vD,YAC9B7vD,EAAY6vD,UAAYq+O,EAAqB98S,EAAMygS,GAAuBA,GAA2B,MAAOoc,GACxG78S,EAAKtc,QAAQyQ,YACb6L,EAAKtc,QAAQyQ,WAAWuwJ,aAAa91I,EAAY6vD,UAAWz+D,EAAKtc,WAIhE81Q,GAAkBx5P,EAAK+8S,YACxBnuS,EAAY6vD,UAAUpP,UAAU31C,IAAI+mR,IAExC7xR,EAAY6vD,UAAUpP,UAAU31C,IAAI+mR,KAExC,IAAIuc,EAAkBH,EAAY,OAAQ,CAAEjnP,UAAW6qO,KACnDwc,EAAoBJ,EAAY,QAAS,CAAEjnP,UAAW6qO,KAgB1D,GAfKjnC,GAAkBx5P,EAAKtc,QAAQ+0D,KAA2B,KAApBz4C,EAAKtc,QAAQ+0D,KACpDwkQ,EAAkBxkQ,GAAK,SAAWz4C,EAAKtc,QAAQ+0D,GAAGpgD,QAAQ,KAAM,KAChEvD,GAAWkL,EAAKtc,QAAS,CAAE,kBAAmBu5T,EAAkBxkQ,MAE/D+gN,GAAkBx5P,EAAKtc,QAAQ2gL,cAA6C,KAA7BrkK,EAAKtc,QAAQ2gL,cAC7D44I,EAAkB3mP,UAAY4mP,EAAkBl9S,EAAKtc,QAAQ2gL,aAC7DrkK,EAAKtc,QAAQqmH,gBAAgB,gBAE5ByvJ,GAAkBx5P,EAAKiqB,aAAgBuvO,GAAkBx5P,EAAKiqB,WAAWo6I,cAC1C,KAAhCrkK,EAAKiqB,WAAWo6I,cAChB44I,EAAkB3mP,UAAY4mP,EAAkBl9S,EAAKiqB,WAAWo6I,cAE/D44I,EAAkB3mP,WACnB1nD,EAAY6vD,UAAUpP,UAAU31C,IAAI+mR,IAEpC7xR,EAAY6vD,UAAUpP,UAAUsJ,SAAS,qBAAsB,CAC/D,IAAIwkP,EAAYvuS,EAAY6vD,UAAUjrE,cAAc,oBACpD2pT,EAAU1/S,YAAYuC,EAAKtc,SAC3By5T,EAAU1/S,YAAYu/S,GACtBG,EAAU1/S,YAAYw/S,EAC1B,MAEIruS,EAAY6vD,UAAUhhE,YAAYuC,EAAKtc,SACvCkrB,EAAY6vD,UAAUhhE,YAAYu/S,GAClCpuS,EAAY6vD,UAAUhhE,YAAYw/S,GAEtCG,EAAiBp9S,EAAKtc,QAAQzB,MAAOg7T,GACT,WAAxBj9S,EAAKs8S,iBACDW,EAAkB5tP,UAAUsJ,SAAS8nO,KACrCzqB,GAAY,CAACinC,GAAoBxc,IAErC9qB,GAAS,CAACsnC,GAAoBxc,KAEN,SAAxBzgS,EAAKs8S,iBAELt8S,EAAKtc,QAAQ29D,iBAAiB,SAAS,SAAUF,GAC7Ci8P,EAAiBp9S,EAAKtc,QAAQzB,MAAOg7T,EAAmBj9S,EAAKtc,QACjE,IAEAsc,EAAKtc,QAAQ29D,iBAAiB,QAAQ,SAAUF,GAC5Ci8P,EAAiBp9S,EAAKtc,QAAQzB,MAAOg7T,EACzC,KAECzjD,GAAkBx5P,EAAKtc,QAAQ8uH,aAAa,QAC7CyqM,EAAkB1/S,aAAa,MAAOyC,EAAKtc,QAAQ8uH,aAAa,MAExE,CACA,SAAS6qM,EAAoB/2T,EAAMm4E,GAClB,WAATn4E,GAAqBm4E,EAAUpP,UAAUsJ,SAAS,cAClD8F,EAAUpP,UAAU31C,IAAI,gBAEhC,CA2BA,SAAS4jS,EAAgBr7T,EAAO2wE,EAAQw9C,GAChCnuH,IAAUmuH,EACV4lK,GAAY,CAACpjN,GAAS6tO,IAGtB9qB,GAAS,CAAC/iN,GAAS6tO,GAE3B,CACA,SAAS2c,EAAiBn7T,EAAOuhL,EAAO9/K,SACpB,IAAZA,IAAsBA,EAAU,MAChCzB,IACA0zR,GAAS,CAACnyG,GAAQi9H,IACdj9H,EAAMn0G,UAAUsJ,SAAS8nO,KACzBzqB,GAAY,CAACxyG,GAAQi9H,MAIK,MAAX/8S,GAAkBA,IAAYyP,SAASylE,iBAElD4qG,EAAMn0G,UAAUsJ,SAAS8nO,KACzBzqB,GAAY,CAACxyG,GAAQi9H,IAEzB9qB,GAAS,CAACnyG,GAAQi9H,IAG9B,CACA,SAASxjD,EAAcv5P,GACnB,IAAIyQ,EAAaqlQ,GAAkB91Q,EAAQyQ,YAAczQ,EACnDA,EAAQyQ,WAId,OAHIA,GAAcA,EAAWk7D,UAAUsJ,SAAS,qBAC5CxkE,EAAaA,EAAWA,YAErBA,CACX,CA0BA,SAASopT,EAAmB75T,EAASkvE,EAAQ6L,SAChB33E,GAArBq1T,GAAkCA,IAClCvpP,EAAOvR,iBAAiB,SAAS,SAAUF,GACjCz9D,EAAQ2rE,UAAUsJ,SAAS8nO,KAAuB/8S,EAAQ+zH,WAC5Dt2D,EAAMgP,iBACFzsE,IAAYyP,SAASylE,eACrBl1E,EAAQm1E,QAEZn1E,EAAQzB,MAAQ,GAChB0zR,GAAS,CAAC/iN,GAAS6tO,IAE3B,IAGJ/8S,EAAQ29D,iBAAiB,SAAS,SAAUF,GACxCm8P,EAAgB55T,EAAQzB,MAAO2wE,EACnC,IAEAlvE,EAAQ29D,iBAAiB,SAAS,SAAUF,GACxCm8P,EAAgB55T,EAAQzB,MAAO2wE,EAAQlvE,EAAQ+zH,SACnD,IAEA/zH,EAAQ29D,iBAAiB,QAAQ,SAAUF,GACvC7gD,YAAW,WACPq1Q,GAAS,CAAC/iN,GAAS6tO,GACvB,GAAG,IACP,GACJ,CAMA,SAAS+c,EAAc95T,EAAS44T,GAE5B,GADar/D,EAAcv5P,GAChB2rE,UAAUsJ,SAAS8nO,KAA6C,SAAnB6b,EAA2B,CAC/E,IAAI94I,EAAQy5E,EAAcv5P,GAASixM,uBAAuB,gBAAgB,GAC1EyoH,EAAiB15T,EAAQzB,MAAOuhL,EAAO9/K,EAC3C,CACJ,CAIA,SAASo5T,EAAqB98S,EAAM41D,EAAW6nP,EAAU52N,EAAK+1N,GAC1D,IACIn+O,EADAo+O,EAAerjD,GAAkBojD,GAAiDhpT,GAAxBgpT,EAU9D,OARKpjD,GAAkBx5P,EAAK+8S,WAKxBt+O,EAAYo+O,EAAYh2N,EAAK,CAAEjxB,UAAWA,KAJ1C6I,EAAYo+O,EAAY78S,EAAK+8S,UAAW,CAAEnnP,UAAWA,KAC3CvG,UAAU31C,IAAI+jS,GAK5Bh/O,EAAUpP,UAAU31C,IAAI,qBACjB+kD,CACX,CACA,SAASy+O,EAAkB74I,GACvB,IAAI13K,EAAS,GACb,IAAK6sQ,GAAkBn1F,IAAgC,KAAhBA,EAAoB,CACvD,IAAIq5I,EAAUvqT,SAASS,cAAc,QACrC8pT,EAAQjqT,UAAY,wBAA0B4wK,EAAc,MAE5D13K,EADmB+wT,EAAQrzT,SAAS,GACfg6K,WACzB,CACA,OAAO13K,CACX,CA8CA,SAASgxT,EAAYpiB,EAAUvnS,EAAU4pT,GAChCpkD,GAAkBokD,IAA0B,KAAbA,GAChC5nC,GAAYhiR,EAAU4pT,EAAS9kT,MAAM,MAEpC0gQ,GAAkB+hC,IAA0B,KAAbA,GAChC5lB,GAAS3hR,EAAUunS,EAASziS,MAAM,KAE1C,CAWA,SAASyjT,EAAe74T,EAAS+6E,EAAWo/O,GACxC,IAAItuM,EAA8B,gBAAfsuM,EAA+Bn6T,EAAUA,EAAQuwI,YAAcl2H,SAAS4wD,iBAAiBjrE,EAAS,MAAMkrE,iBAAiB,iBACvI4qM,GAAkB/6L,EAAUk2H,uBAAuB,wBAAwB,MACxEl2H,EAAUk2H,uBAAuB,wBAAwB,GAAGtlI,UAAUsJ,SAAS,0BAC/E8F,EAAUk2H,uBAAuB,wBAAwB,GAAGtlI,UAAUxE,OAAO,0BAE7E0kD,EAAe9wC,EAAUk2H,uBAAuB,wBAAwB,GAAG1gE,aAAe1kB,IAAiB9wC,EAAUk2H,uBAAuB,wBAAwB,GAAG1gE,cACvKx1D,EAAUk2H,uBAAuB,wBAAwB,GAAGtlI,UAAU31C,IAAI,yBAGtF,CA8BA,SAASokS,EAAez5I,EAAa3gL,GACjC2gL,EAAc64I,EAAkB74I,GAChC,IAAI2rH,EAAgB/yC,EAAcv5P,GAC9BssS,EAAc3gO,UAAUsJ,SAAS8nO,IAC5BjnC,GAAkBn1F,IAAgC,KAAhBA,GAMnC2rH,EAAc3gO,UAAU31C,IAAI+mR,IAC5BzQ,EAAcr7F,uBAAuB,wBAAwB,GAAKq7F,EAAcr7F,uBAAuB8rG,IAAsB,GAAGp2S,SAAS,GAAGw0D,YAAc,GAAKmxO,EAAcr7F,uBAAuB8rG,IAAsB,GAAG5hP,YAAc,KAN3OmxO,EAAcr7F,uBAAuB,wBAAwB,GAAKq7F,EAAcr7F,uBAAuB8rG,IAAsB,GAAGp2S,SAAS,GAAGw0D,YAAcwlH,EAAc2rH,EAAcr7F,uBAAuB8rG,IAAsB,GAAG5hP,YAAcwlH,EACpP2rH,EAAc3gO,UAAUxE,OAAO41O,IAC/B/8S,EAAQqmH,gBAAgB,gBAQvByvJ,GAAkBn1F,IAAgC,KAAhBA,EAInC3gL,EAAQqmH,gBAAgB,eAHxBj1G,GAAWpR,EAAS,CAAE,YAAe2gL,GAMjD,CAaA,SAAS05I,EAAYC,EAAYt6T,EAAS44T,GAClC0B,EACAlpT,GAAWpR,EAAS,CAAE0sH,SAAU,KAGhC1sH,EAAQqmH,gBAAgB,YAEvByvJ,GAAkB8iD,IACnBkB,EAAc95T,EAAS44T,EAE/B,CAaA,SAAS3b,EAAasd,EAAOjqT,GACrBiqT,EACAtoC,GAAS3hR,EAAUysS,IAGnBzqB,GAAYhiR,EAAUysS,GAE9B,CAaA,SAASyd,EAAWC,EAAUz6T,EAAS44T,EAAgB8B,GACnD,IAAIC,EAAgB,CAAE,SAAY,WAAY,gBAAiB,QAC3DC,GAAkB9kD,GAAkB4kD,GACpCD,GACAz6T,EAAQ2rE,UAAUxE,OAAO41O,IACzB8d,EAAiBF,EAAe36T,GAC5B46T,GACAtoC,GAAY,CAACooC,GAAiB3d,MAIlC/8S,EAAQ2rE,UAAU31C,IAAI+mR,IACtB+d,EAAcH,EAAe36T,GACzB46T,GACA3oC,GAAS,CAACyoC,GAAiB3d,KAG9BjnC,GAAkB8iD,IACnBkB,EAAc95T,EAAS44T,EAE/B,CAEA,SAASmC,EAAeC,EAASh7T,EAASkrB,EAAa+vS,EAAS/B,GAC5D,IAAIC,EAAerjD,GAAkBojD,GAAiDhpT,GAAxBgpT,EAC1D8B,EACA9vS,EAAYgwS,YAtSpB,SAA2Bl7T,EAASkrB,EAAa+vS,EAAS/B,GACtD,IACIhqP,GADe4mM,GAAkBojD,GAAiDhpT,GAAxBgpT,GACrC,OAAQ,CAAEhnP,UAAW6qO,KAC1ChiO,EAAY7vD,EAAY6vD,UAgB5B,OAfK+6L,GAAkBmlD,IAID/vS,EAAY6vD,UAAUpP,UAAUsJ,SAAS8nO,IACvD7xR,EAAY6vD,UAAUjrE,cAAc,IAAMitS,IAAwB/8S,GAC1D8vM,sBAAsB,WAAY5gI,GAL9C6L,EAAUhhE,YAAYm1D,IAOrB4mM,GAAkB/6L,IACnBA,EAAUpP,UAAUsJ,SAAS8nO,KAC7B9qB,GAAS,CAACl3M,GAAYgiO,IAE1B9qB,GAAS,CAAC/iN,GAAS6tO,IACnB8c,EAAmB75T,EAASkvE,GAC5BA,EAAOr1D,aAAa,aAAc,SAC3Bq1D,CACX,CAkRkCisP,CAAkBn7T,EAASkrB,EAAa+vS,EAAS9B,IAG3EhyP,GAAOj8C,EAAYgwS,aACnBhwS,EAAYgwS,YAAc,KAElC,CAaA,SAASL,EAAiBlhT,EAAO3Z,GAC7B,IAAK,IAAIie,EAAK,EAAGpV,EAAKnK,OAAOwB,KAAKyZ,GAAQsE,EAAKpV,EAAGpC,OAAQwX,IAAM,CAC5D,IAAIld,EAAM8H,EAAGoV,GACTquR,EAAgB/yC,EAAcv5P,GACtB,aAARe,GACAf,EAAQ2rE,UAAUxE,OAAO41O,IAEjB,aAARh8S,GAAsBurS,EAAc3gO,UAAUsJ,SAAS8nO,KACvDzQ,EAAc3gO,UAAUxE,OAAO41O,IAEvB,gBAARh8S,GAAyBurS,EAAc3gO,UAAUsJ,SAAS8nO,IAC1DzQ,EAAcr7F,uBAAuB8rG,IAAsB,GAAG5hP,YAAc,GAG5En7D,EAAQqmH,gBAAgBtlH,EAEhC,CACJ,CAaA,SAAS+5T,EAAcnhT,EAAO3Z,GAC1B,IAAK,IAAIie,EAAK,EAAGpV,EAAKnK,OAAOwB,KAAKyZ,GAAQsE,EAAKpV,EAAGpC,OAAQwX,IAAM,CAC5D,IAAIld,EAAM8H,EAAGoV,GACTquR,EAAgB/yC,EAAcv5P,GACtB,aAARe,GACAf,EAAQ2rE,UAAU31C,IAAI+mR,IAEd,aAARh8S,GAAsBurS,EAAc3gO,UAAUsJ,SAAS8nO,KACvDzQ,EAAc3gO,UAAU31C,IAAI+mR,IAEpB,gBAARh8S,GAAyBurS,EAAc3gO,UAAUsJ,SAAS8nO,IAC1DzQ,EAAcr7F,uBAAuB8rG,IAAsB,GAAG5hP,YAAcxhD,EAAM5Y,GAGlFf,EAAQ6Z,aAAa9Y,EAAK4Y,EAAM5Y,GAExC,CACJ,CA6EA,SAASq6T,EAAkBlwS,EAAaiuS,GACpC,GAAIjuS,EAAYygD,UAAUsJ,SAAS,cAAgB/pD,EAAY+lL,uBAAuB,gBAAgB,GAAI,CACtG,IAAIoqH,EAAmBlC,EAAY,OAAQ,CAAEjnP,UAAW6qO,KACxDse,EAAiBtrT,UAAYmb,EAAY+lL,uBAAuB,gBAAgB,GAAGlhM,UACnFmb,EAAY+lL,uBAAuB,gBAAgB,GAAGlhM,UAAY,GAClEmb,EAAY+lL,uBAAuB,gBAAgB,GAAGl3L,YAAYshT,EACtE,CACJ,CAmBA,SAASC,EAAgBC,EAAUxgP,EAAW7L,GAC1C,IAAIssP,EAAa,GACjBA,EAAW31T,KAAKqpE,GAChB,IAAIm1E,EAAUyxH,GAAkB5mM,GAC5B6L,EAAUpqE,iBAAiB,uBAAyB6qT,EACxD,GAAID,GAAYl3K,EAAQ59I,OAAS,EAC7B,IAAK,IAAIiL,EAAQ,EAAGA,EAAQ2yI,EAAQ59I,OAAQiL,IACxC2yI,EAAQ3yI,GAAOisD,iBAAiB,YAAa89P,GAAoB,GACjEp3K,EAAQ3yI,GAAOisD,iBAAiB,UAAW+9P,GAAkB,QAGhE,GAAIr3K,EAAQ59I,OAAS,EACtB,IAASiL,EAAQ,EAAGA,EAAQ2yI,EAAQ59I,OAAQiL,IACxC2yI,EAAQ3yI,GAAOksD,oBAAoB,YAAa69P,EAAoB34T,MACpEuhJ,EAAQ3yI,GAAOksD,oBAAoB,UAAW89P,EAAkB54T,KAG5E,CAMA,SAAS24T,IAIL,IAFA,IAPoB1gP,EAAW7L,EAQ3By7O,EAAY7nT,KAAKwpS,eACbqe,EAAUh/O,UAAUsJ,SAAS,kBACjC01O,EAAYA,EAAUre,cAVKp9N,EAOrBpsE,MAPUi4E,EAYL4vO,GAXAh/O,UAAUsJ,SAAS,eAAkB8F,EAAUjrE,cAAc,SAASikH,UACjF7kD,EAAOvD,UAAU31C,IAAI,qBAW7B,CACA,SAAS0lS,IAEL,IAAIvpC,EAAMrvR,KACV8Z,YAAW,WACPu1Q,EAAIxmN,UAAUxE,OAAO,qBACzB,GAAG,IACP,CACA,SAASw0P,EAAcnxD,EAAW2uD,GAC9B,IAAIjqP,EAASiqP,EAAY,OAAQ,CAAEjnP,UAAWs4L,IAE9C,OADAt7L,EAAOvD,UAAU31C,IAAI,sBACdk5C,CACX,CA+CA,SAAS0sP,EAAYpxD,EAAWzvL,EAAWklL,EAAci5D,GAErD,IAAIC,EAAerjD,GAAkBojD,GAAiDhpT,GAAxBgpT,EAC1DhqP,EAASysP,EAAcnxD,EAAW2uD,GACtCp+O,EAAUpP,UAAU31C,IAAI,qBACxB,IAAI6lS,EAAe9gP,EAAUjrE,cAAc,oBAC3C,GAAIgmQ,GAAkB+lD,GAAe,CACjCA,EAAe1C,EAAY,OAAQ,CAAEjnP,UAAW,oBAChD+tL,EAAaxvP,WAAWuwJ,aAAa66J,EAAc57D,GACnD,IAAIh3P,EAAS8xE,EAAUpqE,iBAAiBsvP,EAAazwP,QAAU,QAC/DqsT,EAAa9hT,YAAYkmP,GACzB,IAAK,IAAIt4P,EAAI,EAAGA,EAAIsB,EAAOxC,OAAQkB,IAC/Bk0T,EAAa9hT,YAAY9Q,EAAOtB,GAExC,CAMA,OALAk0T,EAAaprT,WAAWuwJ,aAAa9xF,EAAQ2sP,GACxC9gP,EAAUpP,UAAUsJ,SAAS8nO,KAC9BhiO,EAAUpP,UAAU31C,IAAI+mR,IAE5Bue,GAAgB,EAAMvgP,EAAW7L,GAC1BA,CACX,CAYA,SAAS4sP,EAAWtxD,EAAWzvL,EAAWm+O,GACtC,IACIhqP,EAASysP,EAAcnxD,EADRsL,GAAkBojD,GAAiDhpT,GAAxBgpT,GAS9D,OAPKn+O,EAAUpP,UAAUsJ,SAAS8nO,KAC9BhiO,EAAUpP,UAAU31C,IAAI+mR,KAEhBhiO,EAAUpP,UAAUsJ,SAAS,qBAAwB8F,EAAUjrE,cAAc,oBACrFirE,GACChhE,YAAYm1D,GACjBosP,GAAgB,EAAMvgP,EAAW7L,GAC1BA,CACX,CAEA,SAAS6sP,EAAkB7a,EAAkB5iS,GACtB,WAAfA,EAAM1b,KACNs+S,EAAiBv1O,UAAU31C,IAAI,YAE1BkrR,EAAiBv1O,UAAUsJ,SAAS,aACzCisO,EAAiBv1O,UAAUxE,OAAO,WAE1C,CAxyBAsoL,EAAMusE,YAtCN,SAAqB1/S,EAAM48S,GACvB,IAAIC,EAAerjD,GAAkBojD,GAAiDhpT,GAAxBgpT,EAC1DhuS,EAAc,CAAE6vD,UAAW,KAAMspE,QAAS,GAAI62K,YAAa,MAqB/D,GApBA1C,EAAYl8S,EAAKs8S,eACjBH,EAAoBn8S,EAAK2/S,gBACrBnmD,GAAkBx5P,EAAKs8S,iBAA2C,UAAxBt8S,EAAKs8S,gBAC/C1tS,EAAY6vD,UAAYq+O,EAAqB98S,EAAMygS,GAAuBA,GAA2B,OAAQoc,GAC7G78S,EAAKtc,QAAQyQ,WAAWuwJ,aAAa91I,EAAY6vD,UAAWz+D,EAAKtc,SACjEiyR,GAAS,CAAC31Q,EAAKtc,SAAU+8S,IACzB7xR,EAAY6vD,UAAUhhE,YAAYuC,EAAKtc,UAGvCi5T,EAAoB38S,EAAM4O,EAAaiuS,GAE3CT,EAAiBp8S,GACZw5P,GAAkBx5P,EAAKiqB,aAAgBuvO,GAAkBx5P,EAAKiqB,WAAW21R,mBAC1E5/S,EAAKiqB,WAAW21R,iBAA4C,aAAzB5/S,EAAKtc,QAAQwP,UAChDurT,EAAez+S,EAAKiqB,WAAW21R,gBAAiB5/S,EAAKtc,QAASkrB,GAAa,EAAMiuS,GACjFjuS,EAAYgwS,YAAYrhT,aAAa,OAAQ,UACzCqR,EAAY6vD,UAAUpP,UAAUsJ,SAAS8nO,KACzC9qB,GAAS,CAAC/mQ,EAAY6vD,WAAYgiO,MAGrCjnC,GAAkBx5P,EAAK+nI,UAAqC,aAAzB/nI,EAAKtc,QAAQwP,QACjD,IAAK,IAAI7H,EAAI,EAAGA,EAAI2U,EAAK+nI,QAAQ59I,OAAQkB,IACrCujB,EAAYm5H,QAAQx+I,KAAKi2T,EAAWx/S,EAAK+nI,QAAQ18I,GAAIujB,EAAY6vD,UAAWo+O,IAWpF,OARKrjD,GAAkBx5P,EAAKtc,UAAqC,aAAzBsc,EAAKtc,QAAQwP,SACjDyiR,GAAS,CAAC/mQ,EAAY6vD,WAAYgiO,IAEtCgf,EAAkB7wS,EAAY6vD,UAAWz+D,EAAKtc,SAC9CkrB,EAiJJ,SAA0B5O,EAAM4O,GAC5B,IAAK4qP,GAAkBx5P,EAAKiqB,YACxB,IAAK,IAAItoB,EAAK,EAAGpV,EAAKnK,OAAOwB,KAAKoc,EAAKiqB,YAAatoB,EAAKpV,EAAGpC,OAAQwX,IAAM,CAEtE,OADWpV,EAAGoV,IAEV,IAAK,WACDg8S,EAAY39S,EAAKiqB,WAAWsxQ,SAAU,CAAC3sR,EAAY6vD,YACnD4+O,EAAoBr9S,EAAKs8S,eAAgB1tS,EAAY6vD,WACrD,MACJ,IAAK,UACDy/O,EAAWl+S,EAAKiqB,WAAW+8B,QAAShnD,EAAKtc,QAASsc,EAAKs8S,eAAgB1tS,EAAY6vD,WACnF,MACJ,IAAK,YACDkiO,EAAa3gS,EAAKiqB,WAAWu6P,UAAW,CAAC51Q,EAAY6vD,YACrD,MACJ,IAAK,cACDq/O,EAAe99S,EAAKiqB,WAAWo6I,YAAarkK,EAAKtc,SACjD,MACJ,IAAK,WACDq6T,EAAY/9S,EAAKiqB,WAAWmmF,SAAUpwG,EAAKtc,SAGvD,CAEJ,OAAOkrB,CACX,CA1KkBixS,CAAiB7/S,EAAM4O,GACrCkwS,EAAkBlwS,EAAY6vD,UAAWo+O,GAGlCjuS,CACX,EA4BAukO,EAAMipE,iBAAmBA,EAoCzBjpE,EAAMupE,mBAAqBA,EA6L3BvpE,EAAMoqE,mBAAqBA,EAI3BpqE,EAAMxkP,QAHN,WACsB,IACtB,EAoEAwkP,EAAMpoL,SAtBN,SAAkB9oE,EAAOyB,EAAS44T,EAAgBsC,GAM9C,GALAl7T,EAAQzB,MAAQA,EAChBs6T,EAAe74T,EAASA,EAAQssS,eAC1Bx2B,GAAkB8iD,IAAuC,SAAnBA,GACxCkB,EAAc95T,EAAS44T,IAEtB9iD,GAAkBolD,IAAgBA,EAAa,CAChD,IAAI5uB,EAAgB/yC,EAAcv5P,GAClC,IAAK81Q,GAAkBw2B,GAAgB,CACnC,IAAIp9N,EAASo9N,EAAcr7F,uBAAuB8rG,IAAsB,GACnEjnC,GAAkB5mM,KACflvE,EAAQzB,QAAUu3Q,GAAkBw2B,IAAkBA,EAAc3gO,UAAUsJ,SAAS,iBACvFq9M,GAAY,CAACpjN,GAAS6tO,IAGtB9qB,GAAS,CAAC/iN,GAAS6tO,IAG/B,CACJ,CACA4b,EAAgBC,EAAgB54T,EACpC,EAqBAyvP,EAAMwqE,YAAcA,EAqBpBxqE,EAAMopE,eAAiBA,EAmBvBppE,EAAM4yD,SATN,SAAkBr+O,EAAO+W,GACA,kBAAV/W,EACP+W,EAAU/mE,MAAMgwD,MAAQ8yM,GAAW9yM,GAEb,kBAAVA,IACZ+W,EAAU/mE,MAAMgwD,MAASA,EAAMl4D,MAAM,WAAek4D,EAAU8yM,GAAW9yM,IAE7E60P,EAAe99O,EAAUu+C,WAAYv+C,EACzC,EAkCA00K,EAAM2qE,eAAiBA,EAuBvB3qE,EAAM4qE,YAAcA,EAoBpB5qE,EAAMwtD,aAAeA,EAiCrBxtD,EAAM+qE,WAAaA,EAWnB/qE,EAAMsrE,eAAiBA,EA8BvBtrE,EAAMorE,iBAAmBA,EA8BzBprE,EAAMqrE,cAAgBA,EAmBtBrrE,EAAM2sE,eAlBN,SAAwB99S,GACpB,IArf0Bte,EAqftB+6E,EAAYz8D,EAAMy8D,UACtB,IAAK+6L,GAAkB/6L,IAAcA,EAAUpP,UAAUsJ,SAAS8nO,IAAwB,CACtF,IAAIsf,EAAWthP,EAAUjrE,cAAc,YAAcirE,EAAUjrE,cAAc,YACzEirE,EAAUjrE,cAAc,SACxB6wK,EAAc5lG,EAAUjrE,cAAc,IAAMitS,IAAsB5hP,YAClE+/P,EAA2D,OAA7CngP,EAAUjrE,cAAc,iBAC1C60G,GAAO5pC,EAAUjrE,cAAc,IAAMitS,KACrCp4L,GAAO5pC,EAAUjrE,cAAc,IAAMitS,KACrCpxO,GAAUoP,EAAW,CAACgiO,IAAwB,CAACA,MA7fzB/8S,EA8fDq8T,GA7fjBz+P,oBAAoB,QAASk7P,GACrC94T,EAAQ49D,oBAAoB,OAAQm7P,GA6fhC3nT,GAAWirT,EAAU,CAAE,YAAe17I,IACtC07I,EAAS1wP,UAAU31C,IAAI+mR,IAClBme,GAAoC,UAArBmB,EAAS7sT,SACzB6sT,EAASh2M,gBAAgB,WAEjC,CACJ,EA8CAopI,EAAM6sE,YA5CN,SAAqBh+S,EAAO1b,EAAM+9K,EAAau4I,GAC3C,IAAIC,EAAerjD,GAAkBojD,GAAiDhpT,GAAxBgpT,EAC1Dn+O,EAAYvO,GAAQluD,EAAO,IAAMy+R,IAErC,GADAyb,EAAY51T,EACC,UAATA,EAAkB,CAClB,IAAIy2T,EAAYt+O,EAAUvrE,QAEtB8M,EAAO,CAAEtc,QAASse,EAAOs6S,eAAgBh2T,EACzCy2T,UAFJA,EAA0B,QAAdA,GAAqC,SAAdA,EAAuBA,EAAY,KAE5C9yR,WAAY,CAAEo6I,YAAaA,IACjD47I,EAAUxhP,EAAUjrE,cAAc,iBAClC0sT,EAAW,CAAEzhP,UAAWA,GAC5Bz8D,EAAMqtD,UAAUxE,OAAO41O,IACvBkc,EAAoB38S,EAAMkgT,EAAUrD,GACpCiC,EAAkBoB,EAASzhP,UAAWo+O,GACtCN,EAAev8S,EAAKtc,QAASw8T,EAASzhP,WACtC,IAAI0hP,EAAgB1hP,EAAUpP,UAAUsJ,SAAS,qBACjD,GAAI6gM,GAAkBymD,GAClB,GAAIE,EAEAF,EADgBxhP,EAAUjrE,cAAc,oBACpBA,cAAc,4BAGlCysT,EAAUxhP,EAAUjrE,cAAc,uBAG1C,GAAIgmQ,GAAkBymD,GACdE,IACAF,EAAUxhP,EAAUjrE,cAAc,wBAElCgmQ,GAAkBymD,IAClBxhP,EAAUpP,UAAUxE,OAAO41O,QAG9B,CACD,IAAI2f,EAAY3hP,EAAUjrE,cAAc,IAAMitS,IAC1C4f,EAAY5hP,EAAUjrE,cAAc,IAAMitS,IAC1Cv+O,EAAUi+P,EAAgB1hP,EAAUjrE,cAAc,oBAAsBirE,EAC5Evc,EAAQwiG,aAAa1iJ,EAAOi+S,GAC5B/9P,EAAQwiG,aAAa07J,EAAWH,GAChC/9P,EAAQwiG,aAAa27J,EAAWJ,EACpC,CACJ,CACA5C,EAAoB/2T,EAAM0b,EAAMguR,cACpC,EAqBA78C,EAAM2rE,kBAAoBA,EAiB1B3rE,EAAMmtE,UALN,SAAmBrB,EAAUiB,GACzB,IAAK,IAAI70T,EAAI,EAAGA,EAAI60T,EAAS/1T,OAAQkB,IACjC2zT,EAAgBC,EAAUiB,EAAS70T,GAAGozE,UAE9C,EA+EA00K,EAAMotE,QApBN,SAAiB/lT,EAAUgmT,EAAO/hP,EAAWz8D,EAAOy+S,GAEhD,IAAI9zT,EAA4B,kBAAX6zT,EAAsBA,EAAM1nT,MAAM,KACjD0nT,EACN,GAA+B,WAA3BhmT,EAASvG,cACT,IAAK,IAAI0N,EAAK,EAAG2gR,EAAW31R,EAAQgV,EAAK2gR,EAASn4R,OAAQwX,IAAM,CAE5D69S,EADWl9B,EAAS3gR,GACH88D,EAAWgiP,EAChC,MAGA,IAAK,IAAIl0T,EAAK,EAAGm0T,EAAW/zT,EAAQJ,EAAKm0T,EAASv2T,OAAQoC,IAAM,CAE5D+yT,EADWoB,EAASn0T,GACFkyE,EAAWz8D,EAAOy+S,EACxC,CAEAhiP,EAAUk2H,uBAAuB,sBAAsB,IAAMl2H,EAAUk2H,uBAAuB,yBAAyB,IACvHl2H,EAAUk2H,uBAAuB,yBAAyB,GAAGtlI,UAAU31C,IAAI,SAEnF,EAoCAy5N,EAAMmsE,YAAcA,EAuBpBnsE,EAAMqsE,WAAaA,EASnBrsE,EAAMssE,kBAAoBA,CAC7B,CA/1BD,CA+1BGtsE,KAAUA,GAAQ,CAAC,ICz3BtB,ICIWwtE,GDJPp2T,GAAyC,WACzC,IAAIC,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBpI,OAAOuI,gBAClB,CAAEC,UAAW,cAAgBzH,OAAS,SAAUsH,EAAGC,GAAKD,EAAEG,UAAYF,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAInD,KAAKmD,EAAOA,EAAEhG,eAAe6C,KAAIkD,EAAElD,GAAKmD,EAAEnD,GAAI,EACtEiD,EAAcC,EAAGC,EAC5B,EACA,OAAO,SAAUD,EAAGC,GAEhB,SAASK,IAAOvE,KAAKwE,YAAcP,CAAG,CADtCD,EAAcC,EAAGC,GAEjBD,EAAEpI,UAAkB,OAANqI,EAAatI,OAAOqE,OAAOiE,IAAMK,EAAG1I,UAAYqI,EAAErI,UAAW,IAAI0I,EACnF,CACJ,CAZ6C,GAazCwxR,GAA0C,SAAUC,EAAYl5R,EAAQmB,EAAKsC,GAC7E,IAA2H0D,EAAvH+Q,EAAIjQ,UAAUpB,OAAQshD,EAAIjwC,EAAI,EAAIlY,EAAkB,OAATyD,EAAgBA,EAAO3E,OAAO4E,yBAAyB1D,EAAQmB,GAAOsC,EACrH,GAAuB,kBAAZoxI,SAAoD,oBAArBA,QAAQskJ,SAAyBhxO,EAAI0sF,QAAQskJ,SAASD,EAAYl5R,EAAQmB,EAAKsC,QACpH,IAAK,IAAIsE,EAAImxR,EAAWryR,OAAS,EAAGkB,GAAK,EAAGA,KAASZ,EAAI+xR,EAAWnxR,MAAIogD,GAAKjwC,EAAI,EAAI/Q,EAAEghD,GAAKjwC,EAAI,EAAI/Q,EAAEnH,EAAQmB,EAAKgnD,GAAKhhD,EAAEnH,EAAQmB,KAASgnD,GAChJ,OAAOjwC,EAAI,GAAKiwC,GAAKrpD,OAAOsD,eAAepC,EAAQmB,EAAKgnD,GAAIA,CAChE,EAMIm1Q,GAAgB,gBAChBC,GAAgB,CAAC,QAAS,QAAS,SAanCC,GAAyB,SAAUz0T,GAQnC,SAASy0T,EAAQ/9T,EAASW,GACtB,IAAI4I,EAAQD,EAAO9J,KAAKiE,KAAMzD,EAASW,IAAY8C,KAQnD,OAPA8F,EAAMy0T,cAAgB,KACtBz0T,EAAM00T,WAAY,EAClB10T,EAAM20T,eAAgB,EACtB30T,EAAMolO,QAAS,EACfplO,EAAM40T,mBAAqB,KAC3B50T,EAAM+jT,OAAQ,EACd/jT,EAAM60T,eAAiBp+T,EAChBuJ,CACX,CAsrBA,OAvsBA/B,GAAUu2T,EAASz0T,GA0BnBy0T,EAAQz+T,UAAUy2R,kBAAoB,SAAUmF,EAASC,GACrD,IAAK,IAAIv8Q,EAAK,EAAGpV,EAAKnK,OAAOwB,KAAKq6R,GAAUt8Q,EAAKpV,EAAGpC,OAAQwX,IAAM,CAE9D,OADWpV,EAAGoV,IAEV,IAAK,iBACDwxO,GAAM2sE,eAAet5T,KAAK46T,gBAC1BjuE,GAAM6sE,YAAYx5T,KAAK66T,kBAAmB76T,KAAK81T,eAAgB91T,KAAK69K,aACpE,MACJ,IAAK,UACD8uE,GAAM+qE,WAAW13T,KAAKwgE,QAASxgE,KAAK66T,kBAAmB76T,KAAK81T,eAAgB91T,KAAK46T,eAAe3iP,WAChGj4E,KAAK86T,iBACL,MACJ,IAAK,QACDnuE,GAAM4yD,SAAS9nB,EAAQv2N,MAAOlhE,KAAK46T,eAAe3iP,WAClD,MACJ,IAAK,QAEG,IAAIqsO,EAAetkT,KAAKkxR,oBACxBlxR,KAAKkxR,qBAAsB,EACtBlxR,KAAKwoM,QAAQxoM,KAAKvE,SACnBuE,KAAKvE,MAAQuE,KAAKvE,MAAMK,YAE5BkE,KAAKkxR,oBAAsBozB,EAC3B33D,GAAMpoL,SAASvkE,KAAKvE,MAAOuE,KAAK66T,kBAAmB76T,KAAK81T,eAAgB91T,KAAKo5T,iBACzEp5T,KAAKy6T,gBACLz6T,KAAK9C,QAAQzB,MAAQuE,KAAK66T,kBAAkBp/T,OAEhDuE,KAAK06T,mBAAqB16T,KAAK66T,kBAAkBp/T,OAE5CuE,KAAKw6T,WAAax6T,KAAK6pT,SAAiC,IAAvB7pT,KAAK+6T,eACvC/6T,KAAKu6T,cAAgBv6T,KAAKw6T,UAAYx6T,KAAKvE,MAAQuE,KAAKu6T,cACxDv6T,KAAK+6T,eAAgB,IAEhB/nD,GAAkBhzQ,KAAKw6T,aAAex6T,KAAKw6T,WAC5Cx6T,KAAKw6T,YAAcx6T,KAAK+6T,eAAmB/6T,KAAKw6T,WAAaxnD,GAAkBhzQ,KAAK+6T,iBACxF/6T,KAAKg7T,mBAGb,MACJ,IAAK,iBAEGh7T,KAAKi7T,0BACLj7T,KAAKk7T,0BACLl7T,KAAKm7T,iBAAgB,GACrBxuE,GAAMssE,kBAAkBj5T,KAAK46T,eAAe3iP,UAAWj4E,KAAK9C,SAEhE,MACJ,IAAK,WACDyvP,GAAM4qE,YAAYv3T,KAAK4pH,SAAU5pH,KAAK66T,mBACtC,MACJ,IAAK,OACsC,aAAnC76T,KAAK66T,kBAAkBnuT,UACvB1M,KAAK66T,kBAAkB9jT,aAAa,OAAQ/W,KAAKF,MACjD6sP,GAAMssE,kBAAkBj5T,KAAK46T,eAAe3iP,UAAWj4E,KAAK9C,SAC5D8C,KAAKg7T,oBAET,MACJ,IAAK,kBACsC,aAAnCh7T,KAAK66T,kBAAkBnuT,UACvBigP,GAAMsrE,eAAej4T,KAAKo5T,gBAAiBp5T,KAAK66T,kBAAmB76T,KAAK46T,gBACxE56T,KAAK86T,kBAET,MACJ,IAAK,YACDnuE,GAAMwtD,aAAan6S,KAAKg+R,UAAW,CAACh+R,KAAK46T,eAAe3iP,YACxD,MACJ,IAAK,cACD00K,GAAM2qE,eAAet3T,KAAK69K,YAAa79K,KAAK66T,mBAC5CluE,GAAMopE,eAAe/1T,KAAK66T,kBAAmB76T,KAAK46T,eAAe3iP,WACjE,MACJ,IAAK,eACyB,OAAtBj4E,KAAKo7T,cAA+C,KAAtBp7T,KAAKo7T,aACnCp7T,KAAK66T,kBAAkBO,aAAep7T,KAAKo7T,aAG3Cp7T,KAAK+3T,iBAAiB,CAAC,iBAE3B,MACJ,IAAK,WACD/3T,KAAKq7T,eAAe5jC,EAAQsd,SAAUrd,EAAQqd,UAC9C,MACJ,IAAK,SACD/0S,KAAKs7T,UAAY,IAAIl2C,GAAqBplR,KAAKqc,QAC/Crc,KAAKgoE,KAAKyjO,UAAUzrS,KAAKqc,QACzBrc,KAAK4xR,cAAc,CAAE/zG,YAAa79K,KAAKgoE,KAAK8jO,YAAY,iBAAkB,GAC1En/C,GAAM2qE,eAAet3T,KAAK69K,YAAa79K,KAAK66T,mBAGxD,CACJ,EAOAP,EAAQz+T,UAAU+2R,cAAgB,WAC9B,MAAO,SACX,EACA0nC,EAAQz+T,UAAU2sM,QAAU,SAAU90L,GAClC,OAASA,GAAO,QAAQhG,KAAKgG,EACjC,EACA4mT,EAAQz+T,UAAU0iS,UAAY,WAO1B,GANAv+R,KAAK0R,aAAe1R,KAAK9C,QAAQ+H,WAAU,GAC3CjF,KAAKu7T,YAAc7xP,GAAQ1pE,KAAK9C,QAAS,QACpC81Q,GAAkBhzQ,KAAKu7T,eACxBv7T,KAAKkrO,QAAS,GAGW,gBAAzBlrO,KAAK9C,QAAQwP,QAA2B,CAMxC,IALA,IAAIsnS,EAAa7vO,GAAS,gBAAiBnkE,KAAK9C,SAC5CigQ,EAAen9P,KAAKw7T,UACpBx7T,KAAKoN,cAAc,YACnBpN,KAAKoN,cAAc,SACnBwB,EAAQ,EACAA,EAAQ5O,KAAK9C,QAAQoR,WAAW3K,OAAQiL,IAAS,CAEnC,QADlBwB,EAAgBpQ,KAAK9C,QAAQoR,WAAWM,GAAOG,WACH,UAAlBqB,GAC1B+sP,EAAapmP,aAAa3G,EAAepQ,KAAK9C,QAAQoR,WAAWM,GAAOI,WACxEmuP,EAAalwP,UAAYjN,KAAK9C,QAAQ+P,UAChB,SAAlBmD,GACApQ,KAAK9C,QAAQqmH,gBAAgB,SAGV,UAAlBnzG,GACL+sP,EAAapmP,aAAa3G,EAAepQ,KAAK9C,QAAQkyE,UAAU98D,MAAM,KAAKhV,QAAO,SAAUumC,GAAQ,OAA+B,IAAxBA,EAAK30B,QAAQ,MAAc,IAAGiR,KAAK,KAEtJ,CACAngB,KAAK9C,QAAQ+Z,YAAYkmP,GACzBn9P,KAAK9C,QAAUigQ,EACf54L,GAAS,gBAAiByvO,EAAYh0S,KAAK9C,QAC/C,CACA8C,KAAKi7T,0BACLj7T,KAAKm7T,iBAAgB,IAChBnoD,GAAkBhzQ,KAAK26T,sBAAqDr6T,IAAjCN,KAAK26T,eAAsB,OAA4C,KAAvB36T,KAAK9C,QAAQzB,OACzGuE,KAAK4xR,cAAc,CAAEn2R,MAAOuE,KAAK9C,QAAQzB,QAAS,GAEzB,aAAzBuE,KAAK9C,QAAQwP,SACb1M,KAAK9C,QAAQ6Z,aAAa,OAAQ/W,KAAKF,MAE3CE,KAAK9C,QAAQ6Z,aAAa,OAAQ,WAClC/W,KAAKs7T,UAAY,IAAIl2C,GAAqBplR,KAAKqc,QAC/C,IAAIo/S,EAAa,CAAE59I,YAAa79K,KAAK69K,aAWrC,GAVA79K,KAAKgoE,KAAO,IAAIsjO,GAAK,UAAWmwB,EAAYz7T,KAAKqc,QACJ,KAAzCrc,KAAKgoE,KAAK8jO,YAAY,gBACtB9rS,KAAK4xR,cAAc,CAAE/zG,YAAa79K,KAAK69K,aAAe79K,KAAKgoE,KAAK8jO,YAAY,iBAAkB,GAE7F9rS,KAAK9C,QAAQ22S,aAAa,OAC3B7zS,KAAK9C,QAAQ6Z,aAAa,KAAM88P,GAAY,YAE3C7zQ,KAAK9C,QAAQ22S,aAAa,SAC3B7zS,KAAK9C,QAAQ6Z,aAAa,OAAQ/W,KAAK9C,QAAQ8uH,aAAa,OAEnC,UAAzBhsH,KAAK9C,QAAQwP,SAAuB1M,KAAKw7T,UAAW,CACpDx7T,KAAKy6T,eAAgB,EACrBz6T,KAAK07T,SAAW17T,KAAKoN,cAAc,YACnCpN,KAAK9C,QAAQyQ,WAAWuwJ,aAAal+J,KAAK07T,SAAU17T,KAAK9C,SACzD8C,KAAK9C,QAAQ6Z,aAAa,OAAQ,UAClC/W,KAAK07T,SAAS3kT,aAAa,OAAQ/W,KAAK9C,QAAQ8uH,aAAa,SAC7DhsH,KAAK9C,QAAQqmH,gBAAgB,QAC7BvjH,KAAK07T,SAAS3kT,aAAa,OAAQ/W,KAAK9C,QAAQ8uH,aAAa,SAC7DhsH,KAAK9C,QAAQqmH,gBAAgB,QAC7BvjH,KAAK07T,SAAS3kT,aAAa,KAAM88P,GAAY,aAC7C,IAAI8nD,EAAgB,CAAC,cAAe,WAAY,QAAS,WAAY,OAAQ,gBAC7E,IAAS/sT,EAAQ,EAAGA,EAAQ5O,KAAK9C,QAAQoR,WAAW3K,OAAQiL,IAAS,CACjE,IAAIwB,EAAgBpQ,KAAK9C,QAAQoR,WAAWM,GAAOG,SAC/C/O,KAAK9C,QAAQ22S,aAAazjS,IAAkBiqT,GAAcnrT,QAAQkB,GAAiB,GAC/D,OAAlBA,GAA4C,SAAlBA,GAA8C,iBAAlBA,IAExDpQ,KAAK07T,SAAS3kT,aAAa3G,EAAepQ,KAAK9C,QAAQoR,WAAWM,GAAOI,WACrE2sT,EAAczsT,QAAQkB,GAAiB,IACvCpQ,KAAK9C,QAAQqmH,gBAAgBnzG,GAC7BxB,KAGZ,CACJ,CACJ,EACA0rT,EAAQz+T,UAAUs/T,gBAAkB,SAAUS,GAG1C,IAFA,IAESzgT,EAAK,EAAG0gT,EAFLD,EAAY5oD,GAAkBhzQ,KAAK87T,gBAAkB,GAAKlgU,OAAOwB,KAAK4C,KAAK87T,gBACnF,CAAC,cAAe,WAAY,QAAS,WAAY,OAAQ,gBAC3B3gT,EAAK0gT,EAAQl4T,OAAQwX,IAAM,CACzD,IAAIld,EAAM49T,EAAQ1gT,GAClB,IAAK63P,GAAkBhzQ,KAAK9C,QAAQ8uH,aAAa/tH,IAC7C,OAAQA,GACJ,IAAK,WACD,GAAK+0Q,GAAkBhzQ,KAAK26T,sBAAuDr6T,IAAnCN,KAAK26T,eAAwB,SAAqBiB,EAAW,CACzG,IAAIp7P,EAA6C,aAAnCxgE,KAAK9C,QAAQ8uH,aAAa/tH,IAA0D,KAAnC+B,KAAK9C,QAAQ8uH,aAAa/tH,IAClD,SAAnC+B,KAAK9C,QAAQ8uH,aAAa/tH,GAC9B+B,KAAK4xR,cAAc,CAAEpxN,QAASA,IAAYo7P,EAC9C,CACA,MACJ,IAAK,WACD,GAAK5oD,GAAkBhzQ,KAAK26T,sBAAwDr6T,IAApCN,KAAK26T,eAAyB,UAAqBiB,EAAW,CAC1G,IAAIhyM,EAA8C,aAAnC5pH,KAAK9C,QAAQ8uH,aAAa/tH,IAA0D,KAAnC+B,KAAK9C,QAAQ8uH,aAAa/tH,IAChD,SAAnC+B,KAAK9C,QAAQ8uH,aAAa/tH,GACjC+B,KAAK4xR,cAAc,CAAEhoK,SAAUA,IAAagyM,EAChD,CACA,MACJ,IAAK,eACI5oD,GAAkBhzQ,KAAK26T,sBAA2Dr6T,IAAvCN,KAAK26T,eAA4B,aAAqBiB,IAClG57T,KAAK4xR,cAAc,CAAE/zG,YAAa79K,KAAK9C,QAAQ2gL,cAAgB+9I,GAEnE,MACJ,IAAK,eACD,GAAK5oD,GAAkBhzQ,KAAK26T,sBAA4Dr6T,IAAxCN,KAAK26T,eAA6B,cAAqBiB,EAAW,CAC9G,IAAIG,EAAgD,QAA9B/7T,KAAK9C,QAAQk+T,aAAyB,MAAQ,KACpEp7T,KAAK4xR,cAAc,CAAEwpC,aAAcW,IAAoBH,EAC3D,CACA,MACJ,IAAK,SACK5oD,GAAkBhzQ,KAAK26T,sBAAqDr6T,IAAjCN,KAAK26T,eAAsB,OAAqBiB,IAAqC,KAAvB57T,KAAK9C,QAAQzB,OACxHuE,KAAK4xR,cAAc,CAAEn2R,MAAOuE,KAAK9C,QAAQzB,QAAUmgU,GAEvD,MACJ,IAAK,QACI5oD,GAAkBhzQ,KAAK26T,sBAAoDr6T,IAAhCN,KAAK26T,eAAqB,MAAqBiB,IAC3F57T,KAAK4xR,cAAc,CAAE9xR,KAAME,KAAK9C,QAAQ4C,OAAS87T,GAKrE,CACJ,EAOAtB,EAAQz+T,UAAUmP,OAAS,WACvB,IAAIgxT,EAAuBh8T,KAAK+0S,SAC3B/hC,GAAkBhzQ,KAAK+0S,WAA+B,KAAlB/0S,KAAK+0S,WAC1CinB,EAAuBh8T,KAAKi8T,uBAAuBj8T,KAAK+0S,WAE5D/0S,KAAK66T,kBAAqB76T,KAAKy6T,cAAiBz6T,KAAK07T,SAAW17T,KAAK9C,QACrE8C,KAAK46T,eAAiBjuE,GAAMusE,YAAY,CACpCh8T,QAAS8C,KAAK66T,kBACd/E,eAAgB91T,KAAK81T,eACrBryR,WAAY,CACR+8B,QAASxgE,KAAKwgE,QACdw9N,UAAWh+R,KAAKg+R,UAChB+W,SAAUinB,EACVpyM,SAAU5pH,KAAK4pH,SACfi0D,YAAa79K,KAAK69K,YAClBu7I,gBAAiBp5T,KAAKo5T,mBAG9Bp5T,KAAKk7T,0BACDl7T,KAAKy6T,eACLz6T,KAAK66T,kBAAkBltT,WAAWuwJ,aAAal+J,KAAK9C,QAAS8C,KAAK66T,mBAEtE76T,KAAK8pS,aACA92B,GAAkBhzQ,KAAKvE,SACxBkxP,GAAMpoL,SAASvkE,KAAKvE,MAAOuE,KAAK66T,kBAAmB76T,KAAK81T,eAAgB91T,KAAKo5T,iBACzEp5T,KAAKy6T,gBACLz6T,KAAK9C,QAAQzB,MAAQuE,KAAK66T,kBAAkBp/T,QAG/Cu3Q,GAAkBhzQ,KAAKvE,SACxBuE,KAAKurI,aAAevrI,KAAKvE,MACzBuE,KAAKk8T,mBAEiB,OAAtBl8T,KAAKo7T,cAA+C,KAAtBp7T,KAAKo7T,aACnCp7T,KAAK66T,kBAAkBO,aAAep7T,KAAKo7T,aAErCpoD,GAAkBhzQ,KAAK26T,sBAA4Dr6T,IAAxCN,KAAK26T,eAA6B,cACnF36T,KAAK+3T,iBAAiB,CAAC,iBAE3B/3T,KAAKu6T,cAAgBv6T,KAAKvE,MAC1BuE,KAAK06T,mBAAqB16T,KAAKvE,MAC/BuE,KAAK66T,kBAAkB5oT,aAAejS,KAAK66T,kBAAkBp/T,MAC7DkxP,GAAM4yD,SAASv/S,KAAKkhE,MAAOlhE,KAAK46T,eAAe3iP,YAC1C+6L,GAAkBtpM,GAAQ1pE,KAAK9C,QAAS,cAAgBwsE,GAAQ1pE,KAAK9C,QAAS,YAAY2sH,WAC3F7pH,KAAKwgE,SAAU,GAEnBxgE,KAAKm/R,gBACT,EACAm7B,EAAQz+T,UAAUq/T,wBAA0B,WACxC,IAAKloD,GAAkBhzQ,KAAK87T,gBACxB,IAAK,IAAI3gT,EAAK,EAAGpV,EAAKnK,OAAOwB,KAAK4C,KAAK87T,gBAAiB3gT,EAAKpV,EAAGpC,OAAQwX,IAAM,CAC1E,IAAIld,EAAM8H,EAAGoV,GACb,GAAIk/S,GAAcnrT,QAAQjR,IAAQ,EAC9B,GAAY,UAARA,EAAiB,CACjB,IAAIk+T,EAAqBn8T,KAAKi8T,uBAAuBj8T,KAAK87T,eAAe,GAAK79T,IACnD,KAAvBk+T,GACAhtC,GAAS,CAACnvR,KAAK46T,eAAe3iP,WAAYkkP,EAAmB7pT,MAAM,KAE3E,MACK,GAAY,UAARrU,EAAiB,CACtB,IAAIm+T,EAAWp8T,KAAK46T,eAAe3iP,UAAU+zC,aAAa/tH,GAC1Dm+T,EAAYppD,GAAkBopD,GAC1Bp8T,KAAK87T,eAAe,GAAK79T,GADcm+T,EAAWp8T,KAAK87T,eAAe,GAAK79T,GAE/E+B,KAAK46T,eAAe3iP,UAAUlhE,aAAa9Y,EAAKm+T,EACpD,MAEIp8T,KAAK46T,eAAe3iP,UAAUlhE,aAAa9Y,EAAK+B,KAAK87T,eAAe,GAAK79T,GAGrF,CAER,EACAq8T,EAAQz+T,UAAUo/T,wBAA0B,WACxC,IAAKjoD,GAAkBhzQ,KAAK87T,gBACxB,IAAK,IAAI3gT,EAAK,EAAGpV,EAAKnK,OAAOwB,KAAK4C,KAAK87T,gBAAiB3gT,EAAKpV,EAAGpC,OAAQwX,IAAM,CAC1E,IAAIld,EAAM8H,EAAGoV,GACTk/S,GAAcnrT,QAAQjR,GAAO,GAC7B+B,KAAK9C,QAAQ6Z,aAAa9Y,EAAK+B,KAAK87T,eAAe,GAAK79T,GAEhE,CAER,EACAq8T,EAAQz+T,UAAUw/T,eAAiB,SAAU5sH,EAAU2oH,GACnDzqE,GAAMwqE,YAAYn3T,KAAKi8T,uBAAuBxtH,GAAW,CAACzuM,KAAK46T,eAAe3iP,WAAYj4E,KAAKi8T,uBAAuB7E,GAC1H,EACAkD,EAAQz+T,UAAUogU,uBAAyB,SAAUI,GACjD,IAAIl2T,EAASk2T,EAIb,OAHKrpD,GAAkBqpD,IAAsC,KAAnBA,IACtCl2T,EAAUk2T,EAAexqT,QAAQ,OAAQ,KAAMC,QAE5C3L,CACX,EACAm0T,EAAQz+T,UAAUqgU,gBAAkB,WAC3Bl8T,KAAKw6T,WACNx6T,KAAK66T,kBAAkB9jT,aAAa,QAAS/W,KAAKurI,aAE1D,EACA+uL,EAAQz+T,UAAUiuS,WAAa,WAC3B3b,GAAaj7P,IAAIlzB,KAAK66T,kBAAmB,QAAS76T,KAAKs8T,aAAct8T,MACrEmuR,GAAaj7P,IAAIlzB,KAAK66T,kBAAmB,OAAQ76T,KAAKu8T,gBAAiBv8T,MACvEmuR,GAAaj7P,IAAIlzB,KAAK66T,kBAAmB,QAAS76T,KAAKw8T,aAAcx8T,MACrEmuR,GAAaj7P,IAAIlzB,KAAK66T,kBAAmB,SAAU76T,KAAKy8T,cAAez8T,MACnEA,KAAKkrO,QACLijD,GAAaj7P,IAAIlzB,KAAKu7T,YAAa,QAASv7T,KAAKmtH,UAAWntH,MAEhEA,KAAK86T,kBACA9nD,GAAkBhzQ,KAAK46T,eAAe3iP,UAAUjrE,cAAc,mBAA6C,SAAxBhN,KAAK81T,gBACtF91T,KAAK46T,eAAe3iP,UAAUpP,UAAUsJ,SAAS,eACpDnyE,KAAK46T,eAAe3iP,UAAUpP,UAAUsJ,SAAS,cACjDg8M,GAAaj7P,IAAKlzB,KAAK46T,eAAe3iP,UAAUjrE,cAAc,iBAAmB,iBAAkBhN,KAAK08T,iBAAkB18T,KAElI,EACAs6T,EAAQz+T,UAAU6gU,iBAAmB,WACjC18T,KAAK46T,eAAe3iP,UAAUpP,UAAU31C,IAAI,iBAC5C,IAAI8pJ,EAAQh9K,KAAK46T,eAAe3iP,UAAUjrE,cAAc,iBACnDgmQ,GAAkBh2F,KACnBA,EAAMn0G,UAAU31C,IAAI,eAChB8pJ,EAAMn0G,UAAUsJ,SAAS,mBACzB6qG,EAAMn0G,UAAUxE,OAAO,kBAGnC,EACAi2P,EAAQz+T,UAAU8gU,WAAa,SAAUlhU,GACrC,IAAI6oT,EAAetkT,KAAKkxR,oBACxBlxR,KAAKkxR,qBAAsB,EAC3BlxR,KAAKvE,MAAQA,EACbuE,KAAKkxR,oBAAsBozB,CAC/B,EACAgW,EAAQz+T,UAAUsxH,UAAY,WAO1B,GANIntH,KAAKw6T,UACLx6T,KAAK28T,WAAW,IAGhB38T,KAAK28T,WAAW38T,KAAKurI,eAEpBynI,GAAkBhzQ,KAAK46T,gBAAiB,CACzC,IAAI59I,EAAQh9K,KAAK46T,eAAe3iP,UAAUjrE,cAAc,iBACnDgmQ,GAAkBh2F,IAAkC,WAAxBh9K,KAAK81T,iBAC7B9iD,GAAkBhzQ,KAAKurI,eAAuC,KAAtBvrI,KAAKurI,cAC9CyxC,EAAMn0G,UAAU31C,IAAI,kBACpB8pJ,EAAMn0G,UAAUxE,OAAO,gBAEI,KAAtBrkE,KAAKurI,eACVyxC,EAAMn0G,UAAU31C,IAAI,eACpB8pJ,EAAMn0G,UAAUxE,OAAO,mBAGnC,CACJ,EACAi2P,EAAQz+T,UAAUygU,aAAe,SAAU9iT,GACvC,IAAIsxQ,EAAY,CACZ7yM,UAAWj4E,KAAK46T,eAAe3iP,UAC/Btd,MAAOnhD,EACP/d,MAAOuE,KAAKvE,OAEhBuE,KAAKw0H,QAAQ,QAASs2J,EAC1B,EACAwvC,EAAQz+T,UAAU0gU,gBAAkB,SAAU/iT,GACb,OAAvBxZ,KAAKu6T,eAAyC,OAAfv6T,KAAKvE,OAAmD,KAAjCuE,KAAK66T,kBAAkBp/T,OAC9EuE,KAAKu6T,gBAAkBv6T,KAAKvE,OAC7BuE,KAAKg7T,iBAAiBxhT,GAAM,GAEhC,IAAIsxQ,EAAY,CACZ7yM,UAAWj4E,KAAK46T,eAAe3iP,UAC/Btd,MAAOnhD,EACP/d,MAAOuE,KAAKvE,OAEhBuE,KAAKw0H,QAAQ,OAAQs2J,EACzB,EACAwvC,EAAQz+T,UAAU2gU,aAAe,SAAUhjT,GAEvC,IACIsxQ,EAAY,CACZnwN,MAAOnhD,EACP/d,MAAOuE,KAAK66T,kBAAkBp/T,MAC9B8+T,cAAev6T,KAAK06T,mBACpBziP,UAAWj4E,KAAK46T,eAAe3iP,WAEnCj4E,KAAK06T,mBAAqB16T,KAAK66T,kBAAkBp/T,MAE7CuE,KAAKw6T,YATQx6T,KAUF48T,YAAY,CAAEnhU,MAAOuE,KAAK66T,kBAAkBp/T,QACvDuE,KAAK+6T,eAAgB,GAErB/6T,KAAK6pT,QACL7pT,KAAK+6T,eAAgB,GAEzB/6T,KAAKw0H,QAAQ,QAASs2J,GACtBtxQ,EAAK81D,iBACT,EACAgrP,EAAQz+T,UAAU4gU,cAAgB,SAAUjjT,GACxCxZ,KAAK4xR,cAAc,CAAEn2R,MAAOuE,KAAK66T,kBAAkBp/T,QAAS,GAC5DuE,KAAKg7T,iBAAiBxhT,GAAM,GAC5BA,EAAK81D,iBACT,EACAgrP,EAAQz+T,UAAUm/T,iBAAmB,SAAUrgQ,EAAOkiQ,GAClD,IAAI/xC,EAAY,CACZnwN,MAAOA,EACPl/D,MAAOuE,KAAKvE,MACZ8+T,cAAev6T,KAAKu6T,cACpBtiP,UAAWj4E,KAAK46T,eAAe3iP,UAC/B6kP,cAAeD,IAA4B,EAC3C9Q,aAAc8Q,IAA4B,GAE9C78T,KAAK+6T,eAAgB,EACrB/6T,KAAKw0H,QAAQ,SAAUs2J,GACvB9qR,KAAKu6T,cAAgBv6T,KAAKvE,MAEG,UAAzBuE,KAAK9C,QAAQwP,SAAuB1M,KAAKw7T,WAAmC,YAAtBhvC,GAAQ5vN,KAAKj6D,OACnE3C,KAAK9C,QAAQzB,MAAQuE,KAAK66T,kBAAkBp/T,MAEpD,EACA6+T,EAAQz+T,UAAUi/T,eAAiB,WAC3B96T,KAAKo5T,iBAAsD,aAAnCp5T,KAAK66T,kBAAkBnuT,UAC3C1M,KAAKwgE,QACL2tN,GAAaj7P,IAAIlzB,KAAK46T,eAAexC,YAAa,uBAAwBp4T,KAAK+8T,kBAAmB/8T,MAGlGmuR,GAAa9pN,OAAOrkE,KAAK46T,eAAexC,YAAa,uBAAwBp4T,KAAK+8T,mBAG9F,EACAzC,EAAQz+T,UAAUkhU,kBAAoB,SAAUpiQ,GAE5C,GADAA,EAAMgP,kBACA3pE,KAAK46T,eAAexC,YAAYvvP,UAAUsJ,SAhfvC,sBAgfgEnyE,KAAK46T,eAAe3iP,UAAUpP,UAAUsJ,SAAS,kBAAmB,CACzIw6K,GAAMpoL,SAAS,GAAIvkE,KAAK66T,kBAAmB76T,KAAK81T,eAAgB91T,KAAKo5T,iBACjEp5T,KAAKy6T,gBACLz6T,KAAK9C,QAAQzB,MAAQuE,KAAK66T,kBAAkBp/T,OAEhDuE,KAAK4xR,cAAc,CAAEn2R,MAAOuE,KAAK66T,kBAAkBp/T,QAAS,GAC5D,IAAIqvR,EAAY,CACZnwN,MAAOA,EACPl/D,MAAOuE,KAAK66T,kBAAkBp/T,MAC9B8+T,cAAev6T,KAAK06T,mBACpBziP,UAAWj4E,KAAK46T,eAAe3iP,WAKnC,GAHAj4E,KAAKw0H,QAAQ,QAASs2J,GACtB9qR,KAAK06T,mBAAqB16T,KAAK66T,kBAAkBp/T,MACjDuE,KAAKg7T,iBAAiBrgQ,GAAO,GACzB+O,GAAQ1pE,KAAK9C,QAAS,QAAS,CAC/B,IAAIA,EAAU8C,KAAK9C,QACf8/T,EAAarwT,SAAS0nS,YAAY,iBACtC2oB,EAAW1oB,UAAU,SAAS,GAAO,GACrCp3S,EAAQoxH,cAAc0uM,EAC1B,CACJ,CACJ,EACA1C,EAAQz+T,UAAU25S,aAAe,WAC7BrnB,GAAa9pN,OAAOrkE,KAAK66T,kBAAmB,QAAS76T,KAAKs8T,cAC1DnuC,GAAa9pN,OAAOrkE,KAAK66T,kBAAmB,OAAQ76T,KAAKu8T,iBACzDpuC,GAAa9pN,OAAOrkE,KAAK66T,kBAAmB,QAAS76T,KAAKw8T,cAC1DruC,GAAa9pN,OAAOrkE,KAAK66T,kBAAmB,SAAU76T,KAAKy8T,eACvDz8T,KAAKkrO,QACLijD,GAAa9pN,OAAOrkE,KAAKu7T,YAAa,QAASv7T,KAAKmtH,YAEnD6lJ,GAAkBhzQ,KAAK46T,eAAe3iP,UAAUjrE,cAAc,mBAA6C,SAAxBhN,KAAK81T,gBACtF91T,KAAK46T,eAAe3iP,UAAUpP,UAAUsJ,SAAS,cACpDnyE,KAAK46T,eAAe3iP,UAAUpP,UAAUsJ,SAAS,eACjDg8M,GAAa9pN,OAAQrkE,KAAK46T,eAAe3iP,UAAUjrE,cAAc,iBAAmB,iBAAkBhN,KAAK08T,iBAEnH,EAQApC,EAAQz+T,UAAUsM,QAAU,WACxBnI,KAAKw1S,eACwB,UAAzBx1S,KAAK9C,QAAQwP,SAAuB1M,KAAKw7T,YACzC35M,GAAO7hH,KAAK46T,eAAe3iP,UAAUvhE,qBAAqB,YAAY,IACtE1W,KAAK66T,kBAAoB76T,KAAK9C,QAC9B8C,KAAK9C,QAAQqmH,gBAAgB,SAEjCvjH,KAAK66T,kBAAkBp/T,MAAQuE,KAAK66T,kBAAkB5oT,aACtDjS,KAAK66T,kBAAkBhyP,UAAUxE,OAAO,WACxCrkE,KAAK+3T,iBAAiB,CAAC,gBAAiB,gBAAiB,oBACpD/kD,GAAkBhzQ,KAAK46T,kBACxB56T,KAAK46T,eAAe3iP,UAAU+0H,sBAAsB,WAAYhtM,KAAK66T,mBACrEh5M,GAAO7hH,KAAK46T,eAAe3iP,YAE/Bj4E,KAAK46T,eAAiB,KACtBjuE,GAAMxkP,UACNtC,EAAOhK,UAAUsM,QAAQpM,KAAKiE,KAClC,EASAs6T,EAAQz+T,UAAUk+T,QAAU,SAAU/lT,EAAUgmT,GAC5CrtE,GAAMotE,QAAQ/lT,EAAUgmT,EAAOh6T,KAAK46T,eAAe3iP,UAAWj4E,KAAK66T,kBAAmB76T,KAAKoN,cAC/F,EAMAktT,EAAQz+T,UAAUgkS,eAAiB,WAE/B,OAAO7/R,KAAKmgS,aADI,CAAC,SAErB,EAQAm6B,EAAQz+T,UAAUm8T,cAAgB,SAAU1pT,GACxC,IAAK,IAAI6M,EAAK,EAAGpV,EAAKnK,OAAOwB,KAAKkR,GAAa6M,EAAKpV,EAAGpC,OAAQwX,IAAM,CACjE,IAAIld,EAAM8H,EAAGoV,GACD,aAARld,GACA+B,KAAK4xR,cAAc,CAAEpxN,SAAS,IAAS,GACvCmsL,GAAM+qE,WAAW13T,KAAKwgE,QAASxgE,KAAK66T,kBAAmB76T,KAAK81T,eAAgB91T,KAAK46T,eAAe3iP,YAEnF,aAARh6E,GACL+B,KAAK4xR,cAAc,CAAEhoK,UAAU,IAAQ,GACvC+iI,GAAM4qE,YAAYv3T,KAAK4pH,SAAU5pH,KAAK66T,oBAEzB,UAAR58T,EACL+B,KAAK66T,kBAAkBhyP,UAAU31C,IAAI5kB,EAAW,GAAKrQ,IAExC,gBAARA,GACL+B,KAAK4xR,cAAc,CAAE/zG,YAAavvK,EAAW,GAAKrQ,KAAQ,GAC1D0uP,GAAM2qE,eAAet3T,KAAK69K,YAAa79K,KAAK66T,qBAE/B,SAAR58T,GAAkB+B,KAAK66T,kBAAkBnuT,QAC9C1M,KAAK66T,kBAAkB9jT,aAAa9Y,EAAKqQ,EAAW,GAAKrQ,IAKjE,CACJ,EAOAq8T,EAAQz+T,UAAUk8T,iBAAmB,SAAUzpT,GAC3C,IAAK,IAAI6M,EAAK,EAAG8hT,EAAe3uT,EAAY6M,EAAK8hT,EAAat5T,OAAQwX,IAAM,CACxE,IAAIld,EAAMg/T,EAAa9hT,GACX,aAARld,GACA+B,KAAK4xR,cAAc,CAAEpxN,SAAS,IAAQ,GACtCmsL,GAAM+qE,WAAW13T,KAAKwgE,QAASxgE,KAAK66T,kBAAmB76T,KAAK81T,eAAgB91T,KAAK46T,eAAe3iP,YAEnF,aAARh6E,GACL+B,KAAK4xR,cAAc,CAAEhoK,UAAU,IAAS,GACxC+iI,GAAM4qE,YAAYv3T,KAAK4pH,SAAU5pH,KAAK66T,oBAEzB,gBAAR58T,GACL+B,KAAK4xR,cAAc,CAAE/zG,YAAa,OAAQ,GAC1C8uE,GAAM2qE,eAAet3T,KAAK69K,YAAa79K,KAAK66T,oBAG5C76T,KAAK66T,kBAAkBt3M,gBAAgBtlH,EAE/C,CACJ,EAMAq8T,EAAQz+T,UAAU45S,QAAU,WACpB9oS,SAASylE,gBAAkBpyE,KAAK66T,mBAAqB76T,KAAKwgE,UAC1DxgE,KAAK66T,kBAAkBxoP,SACnBryE,KAAK46T,eAAe3iP,UAAUpP,UAAUsJ,SAAS,kBAC9CnyE,KAAK46T,eAAe3iP,UAAUpP,UAAUsJ,SAAS,cACjDnyE,KAAK46T,eAAe3iP,UAAUpP,UAAUsJ,SAAS,cACpDg9M,GAAS,CAACnvR,KAAK46T,eAAe3iP,WAAY,CAACmiP,KAGvD,EAMAE,EAAQz+T,UAAUqhU,SAAW,WACrBvwT,SAASylE,gBAAkBpyE,KAAK66T,mBAAqB76T,KAAKwgE,UAC1DxgE,KAAK66T,kBAAkB/jP,QACnB92E,KAAK46T,eAAe3iP,UAAUpP,UAAUsJ,SAAS,kBAC9CnyE,KAAK46T,eAAe3iP,UAAUpP,UAAUsJ,SAAS,cACjDnyE,KAAK46T,eAAe3iP,UAAUpP,UAAUsJ,SAAS,cACpDq9M,GAAY,CAACxvR,KAAK46T,eAAe3iP,WAAY,CAACmiP,KAG1D,EACArkC,GAAW,CACPnB,GAAS,SACV0lC,EAAQz+T,UAAW,YAAQ,GAC9Bk6R,GAAW,CACPnB,IAAS,IACV0lC,EAAQz+T,UAAW,gBAAY,GAClCk6R,GAAW,CACPnB,GAAS,OACV0lC,EAAQz+T,UAAW,aAAS,GAC/Bk6R,GAAW,CACPnB,GAAS,UACV0lC,EAAQz+T,UAAW,sBAAkB,GACxCk6R,GAAW,CACPnB,GAAS,KACV0lC,EAAQz+T,UAAW,gBAAY,GAClCk6R,GAAW,CACPnB,GAAS,OACV0lC,EAAQz+T,UAAW,mBAAe,GACrCk6R,GAAW,CACPnB,GAAS,OACV0lC,EAAQz+T,UAAW,oBAAgB,GACtCk6R,GAAW,CACPnB,GAAS,CAAC,IACX0lC,EAAQz+T,UAAW,sBAAkB,GACxCk6R,GAAW,CACPnB,IAAS,IACV0lC,EAAQz+T,UAAW,iBAAa,GACnCk6R,GAAW,CACPnB,IAAS,IACV0lC,EAAQz+T,UAAW,eAAW,GACjCk6R,GAAW,CACPnB,IAAS,IACV0lC,EAAQz+T,UAAW,uBAAmB,GACzCk6R,GAAW,CACPnB,IAAS,IACV0lC,EAAQz+T,UAAW,yBAAqB,GAC3Ck6R,GAAW,CACPnB,GAAS,OACV0lC,EAAQz+T,UAAW,aAAS,GAC/Bk6R,GAAW,CACPxnK,MACD+rM,EAAQz+T,UAAW,eAAW,GACjCk6R,GAAW,CACPxnK,MACD+rM,EAAQz+T,UAAW,iBAAa,GACnCk6R,GAAW,CACPxnK,MACD+rM,EAAQz+T,UAAW,cAAU,GAChCk6R,GAAW,CACPxnK,MACD+rM,EAAQz+T,UAAW,YAAQ,GAC9Bk6R,GAAW,CACPxnK,MACD+rM,EAAQz+T,UAAW,aAAS,GAC/Bk6R,GAAW,CACPxnK,MACD+rM,EAAQz+T,UAAW,aAAS,GAC/By+T,EAAUvkC,GAAW,CACjBX,IACDklC,EAEP,CAzsB6B,CAysB3B31L,IE/uBE5gI,GAAyC,WACzC,IAAIC,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBpI,OAAOuI,gBAClB,CAAEC,UAAW,cAAgBzH,OAAS,SAAUsH,EAAGC,GAAKD,EAAEG,UAAYF,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAInD,KAAKmD,EAAOA,EAAEhG,eAAe6C,KAAIkD,EAAElD,GAAKmD,EAAEnD,GAAI,EACtEiD,EAAcC,EAAGC,EAC5B,EACA,OAAO,SAAUD,EAAGC,GAEhB,SAASK,IAAOvE,KAAKwE,YAAcP,CAAG,CADtCD,EAAcC,EAAGC,GAEjBD,EAAEpI,UAAkB,OAANqI,EAAatI,OAAOqE,OAAOiE,IAAMK,EAAG1I,UAAYqI,EAAErI,UAAW,IAAI0I,EACnF,CACJ,CAZ6C,GAazCwxR,GAA0C,SAAUC,EAAYl5R,EAAQmB,EAAKsC,GAC7E,IAA2H0D,EAAvH+Q,EAAIjQ,UAAUpB,OAAQshD,EAAIjwC,EAAI,EAAIlY,EAAkB,OAATyD,EAAgBA,EAAO3E,OAAO4E,yBAAyB1D,EAAQmB,GAAOsC,EACrH,GAAuB,kBAAZoxI,SAAoD,oBAArBA,QAAQskJ,SAAyBhxO,EAAI0sF,QAAQskJ,SAASD,EAAYl5R,EAAQmB,EAAKsC,QACpH,IAAK,IAAIsE,EAAImxR,EAAWryR,OAAS,EAAGkB,GAAK,EAAGA,KAASZ,EAAI+xR,EAAWnxR,MAAIogD,GAAKjwC,EAAI,EAAI/Q,EAAEghD,GAAKjwC,EAAI,EAAI/Q,EAAEnH,EAAQmB,EAAKgnD,GAAKhhD,EAAEnH,EAAQmB,KAASgnD,GAChJ,OAAOjwC,EAAI,GAAKiwC,GAAKrpD,OAAOsD,eAAepC,EAAQmB,EAAKgnD,GAAIA,CAChE,EAKIk4Q,GAAuB,SAAUt3T,GAEjC,SAASs3T,IACL,OAAkB,OAAXt3T,GAAmBA,EAAOb,MAAMhF,KAAM+E,YAAc/E,IAC/D,CA4GA,OA/GA+D,GAAUo5T,EAAOt3T,GAKjBs3T,EAAMj1T,OAAS,SAAUizG,EAAQiiN,GAC7B,OAAIjiN,IAAWiiN,MAGVjiN,IAAWiiN,MAGRjiN,IAAWiiN,GAAUjiN,EAAOhsF,IAAMiuS,EAAOjuS,GAAKgsF,EAAOn2F,IAAMo4S,EAAOp4S,EAC9E,EAIAm4S,EAAME,aAAe,SAAUjvP,GAC3B,OAAIA,EAAMj/C,IAAKi/C,EAAMppD,CAIzB,EAEAm4S,EAAMt/Q,UAAY,SAAUuwB,EAAOjD,EAAOxnE,GACtC,IAAI25T,EAAK,CAAEnuS,EAAG,EAAGnK,EAAG,GAGpB,OAFAs4S,EAAGnuS,EAAIrX,KAAK4nB,MAA6D,KAAtD0uC,EAAMj/C,EAAIxrB,EAASmU,KAAK6mG,IAAIxzC,EAAQrzD,KAAKkkC,GAAK,OAAe,IAChFshR,EAAGt4S,EAAIlN,KAAK4nB,MAA6D,KAAtD0uC,EAAMppD,EAAIrhB,EAASmU,KAAK4mG,IAAIvzC,EAAQrzD,KAAKkkC,GAAK,OAAe,IACzEshR,CACX,EAEAH,EAAMI,WAAa,SAAU34T,EAAGiH,GAE5B,OADaiM,KAAK+tC,KAAK/tC,KAAKoK,IAAKtd,EAAEuqB,EAAItjB,EAAEsjB,EAAI,GAAKrX,KAAKoK,IAAKtd,EAAEogB,EAAInZ,EAAEmZ,EAAI,GAE5E,EAEAm4S,EAAMK,UAAY,SAAUriN,EAAQiiN,GAChC,IAAIjyP,EAAQrzD,KAAK8lG,MAAMw/M,EAAOp4S,EAAIm2F,EAAOn2F,EAAGo4S,EAAOjuS,EAAIgsF,EAAOhsF,GAM9D,OALAg8C,EAAS,IAAMA,EAAQrzD,KAAKkkC,IAC5BmvB,GAAS,KACG,IACRA,GAAS,KAENA,CACX,EAEAgyP,EAAMM,eAAiB,SAAUC,EAAKC,GAClC,OAAO7lT,KAAK+tC,KAAK/tC,KAAKoK,IAAIy7S,EAAIxuS,EAAIuuS,EAAIvuS,EAAG,GAAKrX,KAAKoK,IAAIy7S,EAAI34S,EAAI04S,EAAI14S,EAAG,GAC1E,EAEAm4S,EAAMS,0BAA4B,SAAUx+N,GAExC,IADA,IAAIz7F,EAAS,EACJk0B,EAAI,EAAGA,EAAIunE,EAAOz7F,OAAS,EAAGk0B,IACnCl0B,GAAU3D,KAAKy9T,eAAer+N,EAAOvnE,GAAIunE,EAAOvnE,EAAI,IAExD,OAAOl0B,CACX,EAEAw5T,EAAMU,YAAc,SAAU9gU,EAAQD,EAAQghU,EAASn6T,GACnD,IACIwnE,EADAmyP,EAAKQ,EAAU,CAAE3uS,EAAGpyB,EAAOoyB,EAAGnK,EAAGjoB,EAAOioB,GAAM,CAAEmK,EAAGryB,EAAOqyB,EAAGnK,EAAGloB,EAAOkoB,GA4B3E,OA1BIjoB,EAAOoyB,IAAMryB,EAAOqyB,EAChBpyB,EAAOioB,EAAIloB,EAAOkoB,GAAK84S,GAAW/gU,EAAOioB,EAAIloB,EAAOkoB,IAAM84S,EAC1DR,EAAGt4S,GAAKrhB,EAGR25T,EAAGt4S,GAAKrhB,EAGP5G,EAAOioB,IAAMloB,EAAOkoB,EACrBjoB,EAAOoyB,EAAIryB,EAAOqyB,GAAK2uS,GAAW/gU,EAAOoyB,EAAIryB,EAAOqyB,IAAM2uS,EAC1DR,EAAGnuS,GAAKxrB,EAGR25T,EAAGnuS,GAAKxrB,EAIRm6T,GACA3yP,EAAQnrE,KAAKw9T,UAAUzgU,EAAQD,GAC/BwgU,EAAKt9T,KAAK69C,UAAU9gD,EAAQouE,EAAOxnE,KAGnCwnE,EAAQnrE,KAAKw9T,UAAU1gU,EAAQC,GAC/BugU,EAAKt9T,KAAK69C,UAAU/gD,EAAQquE,EAAOxnE,IAGpC25T,CACX,EAEAH,EAAMr6R,UAAY,SAAU46R,EAAKC,GAC7B,OAAI7lT,KAAKkK,IAAI27S,EAAIxuS,EAAIuuS,EAAIvuS,GAAKrX,KAAKkK,IAAI27S,EAAI34S,EAAI04S,EAAI14S,GACxC04S,EAAIvuS,EAAIwuS,EAAIxuS,EAAI,QAAU,OAG1BuuS,EAAI14S,EAAI24S,EAAI34S,EAAI,SAAW,KAE1C,EAKAm4S,EAAMthU,UAAU6uI,aAAe,WAC3B,MAAO,OACX,EACAqrJ,GAAW,CACPnB,GAAS,IACVuoC,EAAMthU,UAAW,SAAK,GACzBk6R,GAAW,CACPnB,GAAS,IACVuoC,EAAMthU,UAAW,SAAK,GAClBshU,CACX,CAjH2B,CAiHzBrjC,KDnIF,SAAWqgC,GACPA,EAAYA,EAAsB,SAAI,GAAK,WAC3CA,EAAYA,EAAyB,YAAI,GAAK,cAC9CA,EAAYA,EAAqB,QAAI,GAAK,UAC1CA,EAAYA,EAAqB,QAAI,GAAK,SAC7C,CALD,CAKGA,KAAgBA,GAAc,CAAC,IAElC,IAAI4D,GACA,SAAgBC,EAAKC,EAAKC,EAAKC,EAAKtpQ,EAASC,EAASh1D,GAClDE,KAAKg+T,IAAMA,EACXh+T,KAAKi+T,IAAMA,EACXj+T,KAAKk+T,IAAMA,EACXl+T,KAAKm+T,IAAMA,EACXn+T,KAAK60D,QAAUA,EACf70D,KAAK80D,QAAUA,EAMf90D,KAAKF,KAAOA,CAChB,EAKG,SAASs+T,KACZ,OAAO,IAAIL,GAAO,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG5D,GAAYkE,SACpD,CAEO,SAASC,GAAuB1gO,EAAQxvB,GAC3C,IAAIkvP,EA0DR,SAAuB1/N,EAAQzuE,EAAGnK,GAC9B,OAAQ44E,EAAO99F,MACX,KAAKq6T,GAAYkE,SAAU,MAC3B,KAAKlE,GAAYoE,YACbpvS,GAAKyuE,EAAO/oC,QACZ7vC,GAAK44E,EAAO9oC,QACZ,MACJ,KAAKqlQ,GAAYqE,QACbrvS,GAAKyuE,EAAOogO,IACZh5S,GAAK44E,EAAOugO,IACZ,MACJ,KAAKhE,GAAYoE,YAAcpE,GAAYqE,QACvCrvS,GAAKyuE,EAAOogO,IACZ7uS,GAAKyuE,EAAO/oC,QACZ7vC,GAAK44E,EAAOugO,IACZn5S,GAAK44E,EAAO9oC,QACZ,MACJ,QACI,IAAIuM,EAAMr8C,EAAI44E,EAAOsgO,IAAMtgO,EAAO/oC,QAC9B4pQ,EAAOtvS,EAAIyuE,EAAOqgO,IAAMrgO,EAAO9oC,QACnC3lC,GAAKyuE,EAAOogO,IACZ7uS,GAAKkyC,EACLr8C,GAAK44E,EAAOugO,IACZn5S,GAAKy5S,EAGb,MAAO,CAAEtvS,EAAGA,EAAGnK,EAAGA,EACtB,CArFa05S,CAAc9gO,EAAQxvB,EAAMj/C,EAAGi/C,EAAMppD,GAC9C,MAAO,CAAEmK,EAAGrX,KAAK4nB,MAAa,IAAP49R,EAAGnuS,GAAW,IAAKnK,EAAGlN,KAAK4nB,MAAa,IAAP49R,EAAGt4S,GAAW,IAC1E,CAWO,SAAS25S,GAAa/gO,EAAQzyB,EAAOyW,EAASC,GAEjD+8O,GAAehhO,EAgCnB,SAA+BzyB,EAAOyW,EAASC,GAC3C,IAAI17E,EAASi4T,KACT/8P,EAAMvpD,KAAK4mG,IAAIvzC,GACfszP,EAAO3mT,KAAK6mG,IAAIxzC,GAChBtW,EAAU+sB,GAAW,EAAM68O,GAAQ58O,EAAUxgB,EAC7CvM,EAAU+sB,GAAW,EAAM48O,GAAQ78O,EAAUvgB,EAGjD,OAFAl7D,EAAOrG,KAAOq6T,GAAY0E,QAC1BC,GAAU34T,EAAQs4T,EAAMp9P,GAAMA,EAAKo9P,EAAM5pQ,EAASC,GAC3C3uD,CACX,CAzC2B44T,CAA8B,qBADrD5zP,GAAS,KACkEyW,GAAoB,EAAGC,GAAoB,GAC1H,CAEO,SAASm9O,GAAYphO,EAAQU,EAAQC,EAAQ3c,EAASC,QACzC,IAAZD,IAAsBA,EAAU,QACpB,IAAZC,IAAsBA,EAAU,GACpC+8O,GAAehhO,EAmBnB,SAAuBU,EAAQC,EAAQ3c,EAASC,GAC5C,IAAI17E,EAASi4T,KAGb,OAFAj4T,EAAOrG,KAAS8hF,GAAWC,EAAiCs4O,GAAYqE,QAAUrE,GAAYoE,YAAxDpE,GAAYqE,QAClDM,GAAU34T,EAAQm4F,EAAQ,EAAK,EAAKC,EAAQ3c,EAAU0c,EAAS1c,EAASC,EAAU0c,EAAS1c,GACpF17E,CACX,CAxB2B84T,CAAc3gO,EAAQC,EAAQ3c,EAASC,GAClE,CAiEO,SAAS+8O,GAAeM,EAASC,GACpC,IAAIr/T,EAAOo/T,EAAQp/T,KACfs/T,EAAQD,EAAQr/T,KACpB,GAAIs/T,IAAUjF,GAAYkE,SAA1B,CAGA,GAAIv+T,IAASq6T,GAAYkE,SAGrB,OAFAgB,GAAaH,EAASC,QACtBD,EAAQp/T,KAAOq/T,EAAQr/T,MAG3B,GAAIs/T,IAAUjF,GAAYoE,YAMtB,OALAW,EAAQrqQ,SAAWsqQ,EAAQtqQ,QAC3BqqQ,EAAQpqQ,SAAWqqQ,EAAQrqQ,aACvBh1D,IAASq6T,GAAY0E,UACrBK,EAAQp/T,MAAQq6T,GAAYoE,cAIpC,GAAIz+T,IAASq6T,GAAYoE,YAAa,CAClC,IAAIl9P,EAAMvhE,GAAQ,EAAIs/T,EACtB,OAAQ/9P,GACJ,KAAK,GAGD,OAFA69P,EAAQlB,KAAOmB,EAAQnB,SACvBkB,EAAQf,KAAOgB,EAAQhB,KAE3B,KAAK,GAMD,OALAe,EAAQlB,KAAOmB,EAAQnB,IACvBkB,EAAQf,KAAOgB,EAAQhB,IACvBe,EAAQrqQ,QAAUsqQ,EAAQtqQ,QAC1BqqQ,EAAQpqQ,QAAUqqQ,EAAQrqQ,aAC1BoqQ,EAAQp/T,KAAQq6T,GAAYoE,YAAcpE,GAAYqE,SAE1D,KAAK,GAAI,MACT,QAEQ,OAAQn9P,GACJ,KAAK,GAKD,OAJA69P,EAAQlB,KAAOmB,EAAQnB,IACvBkB,EAAQf,KAAOgB,EAAQhB,IACvBe,EAAQrqQ,SAAWsqQ,EAAQnB,SAC3BkB,EAAQpqQ,SAAWqqQ,EAAQhB,KAE/B,KAAK,GAKD,OAJAe,EAAQlB,KAAOmB,EAAQnB,IACvBkB,EAAQf,KAAOgB,EAAQhB,IACvBe,EAAQrqQ,QAAUsqQ,EAAQnB,IAAMkB,EAAQrqQ,QAAUsqQ,EAAQtqQ,aAC1DqqQ,EAAQpqQ,QAAUqqQ,EAAQhB,IAAMe,EAAQpqQ,QAAUqqQ,EAAQrqQ,SAE9D,KAAK,GAAI,MACT,QACI,OAAQuM,GACJ,KAAK,GACL,KAAK,GACL,KAAK,GAAI,MACT,QAAS,SAOjC,IAAIl7D,EAASi4T,KAyBb,OAlBAU,GAAU34T,EANG+4T,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,EAAQrqQ,QAAUsqQ,EAAQnB,IAAMkB,EAAQpqQ,QAAUqqQ,EAAQjB,IAAMiB,EAAQtqQ,QACxEqqQ,EAAQrqQ,QAAUsqQ,EAAQlB,IAAMiB,EAAQpqQ,QAAUqqQ,EAAQhB,IAAMgB,EAAQrqQ,SAEpF3uD,EAAO+3T,KAAO/3T,EAAO83T,IACrB93T,EAAOrG,KAAOq6T,GAAY0E,UAGtB14T,EAAO63T,KAAsB,IAAf73T,EAAO63T,KAAe73T,EAAOg4T,KAAsB,IAAfh4T,EAAOg4T,OACzDh4T,EAAOrG,KAAOq6T,GAAYqE,UAE1Br4T,EAAO0uD,SAAW1uD,EAAO2uD,WACzB3uD,EAAOrG,MAAQq6T,GAAYoE,cAE1Bp4T,EAAOrG,MAAQq6T,GAAYoE,YAAcpE,GAAYqE,YAAcrE,GAAYkE,WAChFl4T,EAAOrG,KAAOq6T,GAAYkE,UAE9Bl4T,EAAOrG,KAAOq6T,GAAYqE,QAAUrE,GAAYoE,aAEpDc,GAAaH,EAAS/4T,QACtB+4T,EAAQp/T,KAAOqG,EAAOrG,KAE1B,CACA,IAAI+0D,EAAUqqQ,EAAQrqQ,QAClBC,EAAUoqQ,EAAQpqQ,QACtBoqQ,EAAQrqQ,QAAUA,EAAUsqQ,EAAQnB,IAAMlpQ,EAAUqqQ,EAAQjB,IAAMiB,EAAQtqQ,QAC1EqqQ,EAAQpqQ,QAAUD,EAAUsqQ,EAAQlB,IAAMnpQ,EAAUqqQ,EAAQhB,IAAMgB,EAAQrqQ,QACtEsqQ,IAAUjF,GAAY0E,QAI1BK,EAAQp/T,KAAQq6T,GAAYoE,YAAcpE,GAAYqE,QAHlDU,EAAQp/T,KAAOq6T,GAAY0E,OAzF/B,CA6FJ,CAEA,SAASC,GAAUQ,EAAKtB,EAAKC,EAAKC,EAAKC,EAAKhvS,EAAGnK,GAC3Cs6S,EAAItB,IAAMA,EACVsB,EAAIrB,IAAMA,EACVqB,EAAIpB,IAAMA,EACVoB,EAAInB,IAAMA,EACVmB,EAAIzqQ,QAAU1lC,EACdmwS,EAAIxqQ,QAAU9vC,CAClB,CAEA,SAASq6S,GAAaH,EAASC,GAC3BD,EAAQlB,IAAMmB,EAAQnB,IACtBkB,EAAQjB,IAAMkB,EAAQlB,IACtBiB,EAAQhB,IAAMiB,EAAQjB,IACtBgB,EAAQf,IAAMgB,EAAQhB,IACtBe,EAAQrqQ,QAAUsqQ,EAAQtqQ,QAC1BqqQ,EAAQpqQ,QAAUqqQ,EAAQrqQ,QAC1BoqQ,EAAQp/T,KAAOq/T,EAAQr/T,IAC3B,CEzOO,SAASy/T,GAAa7sT,GACzB,MAAgC,SAA5BA,EAAI8sT,qBAA8D,uBAA5B9sT,EAAI8sT,qBACX,aAA5B9sT,EAAI8sT,qBAAkE,YAA5B9sT,EAAI8sT,mBAIzD,CAOO,SAASC,GAAgB/sT,EAAKxV,GACjC,GAAIwV,GAAOxV,EACP,GAAIwV,EAAIgtT,yBACsC,IAAtChtT,EAAIu/C,GAAG/iD,QAAQ,mBACfhS,EAAQgU,MAAMqtC,KAAO,cACrBrhD,EAAQgU,MAAMslI,YAAc,EAC5Bt5I,EAAQgU,MAAMyuT,gBAAkBjtT,EAAIktT,kBAGpC1iU,EAAQgU,MAAMqtC,KAAO,cACrBrhD,EAAQgU,MAAMslI,YAAc,OAG/B,CACD,IAAItrD,EAA+B,cAAlBx4E,EAAIw4E,UAA4B,cAAgBx4E,EAAIw4E,UACrEhuF,EAAQgU,MAAMqtC,KAAO2sC,GAAwB,QAE7ChuF,EAAQgU,MAAMi6E,YAAcz4E,EAAIy4E,YAAcz4E,EAAIy4E,YAAcz4E,EAAIo2G,YAEpE5rH,EAAQgU,MAAMqlE,MAAQ7jE,EAAIy4E,YAAcz4E,EAAIy4E,YAAcz4E,EAAIo2G,YAC9D5rH,EAAQgU,MAAMslI,YAAc9jI,EAAIqqH,UACA,UAA5BrqH,EAAI8sT,qBAA+D,kBAA5B9sT,EAAI8sT,qBAAuE,mBAA5B9sT,EAAI8sT,sBAC1FtiU,EAAQgU,MAAMslI,YAAc,GAEhCt5I,EAAQgU,MAAMyuT,gBAAkBjtT,EAAIktT,gBACpC1iU,EAAQgU,MAAM8hE,QAAUtgE,EAAIsgE,OAChC,CAER,CAMO,SAAS6sP,GAAiBzgO,GAE7B,IADA,IAAIz7F,EAAS,EACJkB,EAAI,EAAGA,EAAIu6F,EAAOz7F,OAAS,EAAGkB,IACnClB,GAAUw5T,GAAMI,WAAWn+N,EAAO7nF,SAAS1S,EAAE/I,WAAY,KAAMsjG,EAAOv6F,EAAI,IAE9E,OAAOlB,CACX,CAgBO,SAASm8T,GAAuB5iU,EAAS2gD,GAC5C,IAAIkiR,EAAsB,CACtB7+P,MAAOhkE,EAAQ8iU,WAAW9+P,MAAOC,OAAQjkE,EAAQ8iU,WAAW7+P,OAC5DhyC,EAAGjyB,EAAQ23D,QAAU33D,EAAQ8iU,WAAW9+P,MAAQhkE,EAAQ+iU,MAAM9wS,EAAI,GAClEnK,EAAG9nB,EAAQ43D,QAAU53D,EAAQ8iU,WAAW7+P,OAASjkE,EAAQ+iU,MAAMj7S,EAAI,GACnEmmD,MAAOjuE,EAAQgjU,YAAchjU,EAAQijU,gBAAiB5hR,KAAMrhD,EAAQgU,MAAMqtC,KAAMF,OAAQnhD,EAAQgU,MAAMi6E,YACtGi1O,OAAQljU,EAAQ+iU,MAAM9wS,EAAGkxS,OAAQnjU,EAAQ+iU,MAAMj7S,EAAGwxH,YAAa,EAC/DxjE,QAAS91E,EAAQgU,MAAM8hE,QAAS4jB,UAAW15F,EAAQgU,MAAMyuT,iBAAmB,GAC5Er/N,QAASpjG,EAAQojG,QAASruC,GAAI/0D,EAAQ+0D,IAM1C,OAJIpU,IACAkiR,EAAoB5wS,GAAK0uB,EAAUosB,GACnC81P,EAAoB/6S,GAAK64B,EAAUqsB,IAEhC61P,CACX,CAwBO,SAASO,GAAY5tT,EAAK6tT,EAAgBtiU,GAE7C,IAlBwBxC,EAkBpBqiM,EAAY,CAAC,EAGjB,GAAIprL,EAAK,CACLzU,EAAMyU,EAAa,SACnB,IAAI8tT,EAAe9tT,EAAa,YAAKA,EACjC+wB,EAAa,GAEbg9R,EAAmB,GAEvB,IAHAh9R,EAAaA,EAAWzmC,OAAOpB,OAAOwB,KAAKojU,KAEhCz9T,KAAK,WACZ9E,EAAK,CACL,IAAIyiU,QA5BEpgU,KADU7E,EA6BiB8kU,IA3BhB,kBAAV9kU,IACPA,EAAQ0oE,GAAS1oE,EAAO0L,SAGzB1L,GAyBKglU,EADAC,EACmBA,EAAeziU,GAGf,GAEvBwlC,EAAaA,EAAWzmC,OAAOyjU,EACnC,CAGA,IAFA,IAAIE,EAmEL,SAA+BnwT,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,CAlF2BowT,CAAsB3iU,GAEhCkd,EAAK,EAAG0lT,EADjBp9R,EAAaA,EAAWzmC,OAAO2jU,GACaxlT,EAAK0lT,EAAal9T,OAAQwX,IAAM,CACxE,IAAIvd,EAAWijU,EAAa1lT,GAC5B,GAAiB,mBAAbvd,EACA,GAAiB,YAAbA,KAEsB8U,EAAI9U,KAAa8U,EAAIxU,eAAe,gBAElDwU,EAAI,GAAK9U,aAAqBjB,MAC9BmhM,EAAU,GAAKlgM,GAAYkjU,IAAgD,IAApCH,EAAazxT,QAAQtR,IAAoB8U,EAAI,GAAKzU,GAAQyU,EAAI,GAAKzU,GAAK,GAAKL,GAAY8U,EAAI,GAAK9U,GAAW2iU,EAAgB3iU,GAE/J8U,EAAI,GAAK9U,aAAqBjB,SAAU,GAAS+V,EAAI,GAAK9U,aAAqBwiG,YACpF09F,EAAU,GAAKlgM,GAAY8U,EAAI,GAAK9U,GAAUqH,WAAU,GAAM87T,UAEzDruT,EAAI,GAAK9U,aAAqBjB,SAAU,GAAS+V,EAAI,GAAK9U,aAAqBhC,OACpFkiM,EAAU,GAAKlgM,GAAY0iU,IAAiD,IAApCK,EAAazxT,QAAQtR,IAAoB8U,EAAI,GAAKzU,GAAQyU,EAAI,GAAKzU,GAAK,GAAKL,GAAY8U,EAAI,GAAK9U,IAG1IkgM,EAAU,GAAKlgM,GAAY8U,EAAI,GAAK9U,SAKxC8U,EAAI,GAAK9U,KACTkgM,EAAU,GAAKlgM,GAAY,CACvBoiU,WAAY,CACR9+P,MAAOxuD,EAAI,GAAK9U,GAAUoiU,WAAW9+P,MAAOC,OAAQzuD,EAAI,GAAK9U,GAAUoiU,WAAW7+P,QACnFtM,QAASniD,EAAI,GAAK9U,GAAUi3D,QAASC,QAASpiD,EAAI,GAAK9U,GAAUk3D,SAKxF,CACJ,CACA,OAAOgpI,CACX,CAQO,SAASgjI,GAAWE,EAAaT,EAAgBtiU,GACpD,IAAIgjU,EACJ,GAAID,EAAa,CACbC,EAAc,GACd,IAAK,IAAIp8T,EAAI,EAAGA,EAAIm8T,EAAYr9T,OAAQkB,IAChCm8T,EAAYzpT,SAAS1S,EAAE/I,WAAY,eAAgBa,MACnDskU,EAAYl+T,KAAKi+T,EAAYzpT,SAAS1S,EAAE/I,WAAY,MAE/CklU,EAAYzpT,SAAS1S,EAAE/I,WAAY,eAAgBF,OACxDqlU,EAAYl+T,KAAKu9T,GAAYU,EAAYzpT,SAAS1S,EAAE/I,WAAY,KAAMykU,EAAgBtiU,IAGtFgjU,EAAYl+T,KAAKi+T,EAAYzpT,SAAS1S,EAAE/I,WAAY,KAGhE,CACA,OAAOmlU,CACX,CCtMA,ICGWC,GAWAC,GAWAC,GAgBAC,GASAC,GAQAC,GAYAC,GAiCAC,GAYAC,GAWAC,GAkBAC,GAYAC,GAQAC,GDpKP/9T,GAAyC,WACzC,IAAIC,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBpI,OAAOuI,gBAClB,CAAEC,UAAW,cAAgBzH,OAAS,SAAUsH,EAAGC,GAAKD,EAAEG,UAAYF,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAInD,KAAKmD,EAAOA,EAAEhG,eAAe6C,KAAIkD,EAAElD,GAAKmD,EAAEnD,GAAI,EACtEiD,EAAcC,EAAGC,EAC5B,EACA,OAAO,SAAUD,EAAGC,GAEhB,SAASK,IAAOvE,KAAKwE,YAAcP,CAAG,CADtCD,EAAcC,EAAGC,GAEjBD,EAAEpI,UAAkB,OAANqI,EAAatI,OAAOqE,OAAOiE,IAAMK,EAAG1I,UAAYqI,EAAErI,UAAW,IAAI0I,EACnF,CACJ,CAZ6C,GAazCwxR,GAA0C,SAAUC,EAAYl5R,EAAQmB,EAAKsC,GAC7E,IAA2H0D,EAAvH+Q,EAAIjQ,UAAUpB,OAAQshD,EAAIjwC,EAAI,EAAIlY,EAAkB,OAATyD,EAAgBA,EAAO3E,OAAO4E,yBAAyB1D,EAAQmB,GAAOsC,EACrH,GAAuB,kBAAZoxI,SAAoD,oBAArBA,QAAQskJ,SAAyBhxO,EAAI0sF,QAAQskJ,SAASD,EAAYl5R,EAAQmB,EAAKsC,QACpH,IAAK,IAAIsE,EAAImxR,EAAWryR,OAAS,EAAGkB,GAAK,EAAGA,KAASZ,EAAI+xR,EAAWnxR,MAAIogD,GAAKjwC,EAAI,EAAI/Q,EAAEghD,GAAKjwC,EAAI,EAAI/Q,EAAEnH,EAAQmB,EAAKgnD,GAAKhhD,EAAEnH,EAAQmB,KAASgnD,GAChJ,OAAOjwC,EAAI,GAAKiwC,GAAKrpD,OAAOsD,eAAepC,EAAQmB,EAAKgnD,GAAIA,CAChE,EAKI88Q,GAAQ,UACRC,GAAW,sBACXC,GAAQ,UACRC,GAAgB,SAChBC,GAAQ,UACRC,GAAS,qBACTC,GAAc,iBACdC,GAAsB,gBACtBvgB,GAAM,QACNhO,GAAU,qBACVsmB,GAAgB,CAAC,QAAS,QAAS,QAAS,WAAY,WAAY,OAAQ,SAY5EkI,GAA0B,SAAU18T,GASpC,SAAS08T,EAAShmU,EAASW,GACvB,IAAI4I,EAAQD,EAAO9J,KAAKiE,KAAMzD,EAASW,IAAY8C,KAKnD,OAJA8F,EAAMq+M,WAAY,EAClBr+M,EAAM08T,cAAe,EACrB18T,EAAM28T,gBAAiB,EACvB38T,EAAM48T,YAAa,EACZ58T,CACX,CA8hBA,OA7iBA/B,GAAUw+T,EAAU18T,GAgBpB08T,EAAS1mU,UAAU8mU,YAAc,SAAU73N,EAAO83N,GAC9C,IACIxuB,EACAyuB,EAAY7iU,KAAK8iU,aAAa30H,uBAAuB8zH,IAAO,GAC5DhqC,KACAmc,EAAap0S,KAAK8iU,aAAa30H,uBAAuBi0H,IAAQ,IAEpD,UAAVt3N,GACA+3N,EAAUh6P,UAAUxE,OAAO69P,IAC3BW,EAAUh6P,UAAU31C,IAAI6uS,IACpB3tB,IACAA,EAAWvrO,UAAUxE,OAAOi+P,IAC5BluB,EAAWvrO,UAAU31C,IAAImvS,KAG7BriU,KAAK9C,QAAQk1H,SAAU,EACnBpyH,KAAK9C,QAAQ4sH,UAAY9pH,KAAK0iU,aAAeE,GAC7C5iU,KAAK9C,QAAQk1H,SAAU,EACvBpyH,KAAK0iU,YAAa,GAEb1iU,KAAK9C,QAAQ4sH,WAClB9pH,KAAK0iU,YAAa,IAGP,YAAV53N,GACL0kL,GAAY,CAACqzC,GAAY,CAACd,GAAOG,KAC7B9tB,GACA5kB,GAAY,CAAC4kB,GAAa,CAACiuB,GAAaC,KAG5CtiU,KAAK9C,QAAQk1H,SAAU,EACnBpyH,KAAK9C,QAAQ4sH,UAAY9pH,KAAK0iU,aAAeE,GAC7C5iU,KAAK9C,QAAQk1H,SAAU,EACvBpyH,KAAK0iU,YAAa,GAEb1iU,KAAK9C,QAAQ4sH,WAClB9pH,KAAK0iU,YAAa,KAItBG,EAAUh6P,UAAUxE,OAAO09P,IAC3Bc,EAAUh6P,UAAU31C,IAAIgvS,IACpB9tB,IACAA,EAAWvrO,UAAUxE,OAAOg+P,IAC5BjuB,EAAWvrO,UAAU31C,IAAIovS,KAG7BtiU,KAAK9C,QAAQ6lU,eAAgB,EAErC,EACAR,EAAS1mU,UAAU2wL,aAAe,SAAU7xH,GACxC,GAA6B,UAAzBA,EAAM79D,OAAO4P,SAAuB1M,KAAKyiU,eAKzC,OAJIziU,KAAK6pT,OACL7pT,KAAK2iU,YAAY3iU,KAAKoyH,QAAU,QAAU,gBAE9CpyH,KAAKyiU,gBAAiB,GAGG,SAAzB9nQ,EAAM79D,OAAO4P,SAA+C,UAAzBiuD,EAAM79D,OAAO4P,UAChD1M,KAAKyiU,gBAAiB,GAEtBziU,KAAKwiU,eACLxiU,KAAKu8T,kBACLv8T,KAAKwiU,cAAe,GAEpBxiU,KAAK+iU,eACL/iU,KAAK2iU,YAAY3iU,KAAKoyH,QAAU,QAAU,WAC1CpyH,KAAK+iU,eAAgB,EACrB/iU,KAAK9C,QAAQ6lU,eAAgB,GAExB/iU,KAAKoyH,SACVpyH,KAAK2iU,YAAY,WACjB3iU,KAAKoyH,SAAU,IAGfpyH,KAAK2iU,YAAY,SACjB3iU,KAAKoyH,SAAU,GAEnB,IAAI4wM,EAAkB,CAAE5wM,QAASpyH,KAAKijU,qBAAoB,GAAQtoQ,MAAOA,GACzE36D,KAAKw0H,QAAQ,SAAUwuM,GACvBroQ,EAAM2U,iBACV,EAMAizP,EAAS1mU,UAAUsM,QAAU,WACzB,IAAIrC,EAAQ9F,KACR07D,EAAU17D,KAAK8iU,aACnBj9T,EAAOhK,UAAUsM,QAAQpM,KAAKiE,MAC1BA,KAAK07D,UACLA,EAAU17D,KAAK07D,QACV17D,KAAK6pH,UACN7pH,KAAKw1S,eAEY,UAAjBx1S,KAAK0M,SACD1M,KAAK8iU,cAAgBpnQ,EAAQ/tD,YAC7B+tD,EAAQ/tD,WAAWuwJ,aAAal+J,KAAK9C,QAASw+D,GAElDmmD,GAAOnmD,GACP17D,KAAK9C,QAAQk1H,SAAU,EACnBpyH,KAAK+iU,gBACL/iU,KAAK9C,QAAQ6lU,eAAgB,GAEjC,CAAC,OAAQ,QAAS,YAAY/kU,SAAQ,SAAUC,GAC5C6H,EAAM5I,QAAQqmH,gBAAgBtlH,EAClC,MAGA,CAAC,SAASD,SAAQ,SAAUC,GACxBy9D,EAAQ6nD,gBAAgBtlH,EAC5B,IACAy9D,EAAQzuD,UAAY,IAGhC,EACAs1T,EAAS1mU,UAAUygU,aAAe,WAC9Bt8T,KAAKmkN,WAAY,CACrB,EACAo+G,EAAS1mU,UAAU0gU,gBAAkB,WACjC,IAAI7gQ,EAAU17D,KAAK8iU,aACfpnQ,GACAA,EAAQmN,UAAUxE,OAAO,WAE7BrkE,KAAKmkN,WAAY,CACrB,EAOAo+G,EAAS1mU,UAAU+2R,cAAgB,WAC/B,MAAO,UACX,EAOA2vC,EAAS1mU,UAAUgkS,eAAiB,WAChC,OAAO7/R,KAAKmgS,aAAa,CAAC,UAAW,iBACzC,EACAoiC,EAAS1mU,UAAUinU,WAAa,WAC5B,OAAI9iU,KAAK9C,SAAW8C,KAAK9C,QAAQssS,cACtBxpS,KAAK9C,QAAQssS,cAAcA,cAG3B,IAEf,EACA+4B,EAAS1mU,UAAUksE,WAAa,WACxBirM,GAAkBhzQ,KAAKkjU,uBACvBljU,KAAKkjU,oBAAsBljU,KAAKoyH,SAEhCpyH,KAAK2C,MACL3C,KAAK9C,QAAQ6Z,aAAa,OAAQ/W,KAAK2C,MAEvC3C,KAAKvE,QACLuE,KAAK9C,QAAQ6Z,aAAa,QAAS/W,KAAKvE,OACpCuE,KAAK6pT,OAA+B,mBAAf7pT,KAAKvE,QAAsC,IAAfuE,KAAKvE,OACtDuE,KAAK4xR,cAAc,CAAE,SAAW,IAAQ,IAG5C5xR,KAAKoyH,SACLpyH,KAAK2iU,YAAY,SAAS,GAE1B3iU,KAAK+iU,eACL/iU,KAAK2iU,cAEL3iU,KAAK6pH,UACL7pH,KAAKmjU,aAEb,EACAZ,EAAS1mU,UAAUunU,YAAc,WAC7B,IAAI1nQ,EAAU17D,KAAK9C,QAAQssS,cACtB9tO,EAAQmN,UAAUsJ,SAAS4hO,MAC5Br4O,EAAU17D,KAAKoN,cAAc,MAAO,CAChCgiE,UAAW2kO,KAEf/zS,KAAK9C,QAAQyQ,WAAWuwJ,aAAaxiG,EAAS17D,KAAK9C,UAEvD,IAAI8/K,EAAQh9K,KAAKoN,cAAc,QAAS,CAAEyJ,MAAO,CAAExa,IAAK2D,KAAK9C,QAAQ+0D,MACjE4wQ,EAAY7iU,KAAKoN,cAAc,OAAQ,CAAEgiE,UAAW,WAAa6yP,KAYrE,GAXAvmQ,EAAQmN,UAAU31C,IAAI,aAClBlzB,KAAKg+R,WACLtiO,EAAQmN,UAAU31C,IAAI6uR,IAEtB/hT,KAAK+0S,UACL5lB,GAAS,CAACzzN,GAAU17D,KAAK+0S,SAASljS,QAAQ,OAAQ,KAAKC,OAAOQ,MAAM,MAExEopD,EAAQzkD,YAAY+lK,GACpBA,EAAM/lK,YAAYjX,KAAK9C,Sd/FxB,SAAwB+lM,EAAO7jB,GAC9B6jB,EAAM/lM,QAAQ8uH,aAAa,YAC3BozD,EAAKnoK,YAAYgsL,EAAM71L,cAAc,QAAS,CAC1CyJ,MAAO,CAAE,KAAQosL,EAAMtgM,MAAQsgM,EAAM/lM,QAAQyF,KAAM,MAAS,QAAS,KAAQ,YAGzF,Cc0FQ0gU,CAAerjU,KAAMg9K,GACrBA,EAAM/lK,YAAY4rT,GACd5qC,GAAiB,CACjB,IAAImc,EAAap0S,KAAKoN,cAAc,OAAQ,CAAEgiE,UAAWgzP,KAC9B,WAAvBpiU,KAAKsjU,cACLtmJ,EAAM/lK,YAAYm9R,GAGlBp3H,EAAM9e,aAAak2I,EAAYyuB,GAEnClrC,GAAayc,EAAY,CAAEj1Q,SAAU,IAAK44P,gBAAgB,GAC9D,CACI/3R,KAAKg9K,OACLh9K,KAAK+jH,QAAQ/jH,KAAKg9K,MAE1B,EACAulJ,EAAS1mU,UAAU0nU,aAAe,WAC1BvjU,KAAKmkN,WACLnkN,KAAK8iU,aAAaj6P,UAAU31C,IAAI,UAExC,EACAqvS,EAAS1mU,UAAU2nU,sBAAwB,SAAU33T,GACjD7L,KAAKwiU,cAAe,EAEpBruB,GAAmBtoS,EADF7L,KAAK8iU,aAAa30H,uBAAuBi0H,IAAQ,GAEtE,EACAG,EAAS1mU,UAAU4nU,oBAAsB,SAAU53T,GAC/C7L,KAAKwiU,cAAe,EACpB,IAAIpuB,EAAap0S,KAAK8iU,aAAa30H,uBAAuBi0H,IAAQ,GAClE,GAAIhuB,EAAY,CAEZ,IADA,IAAIsvB,EAAatvB,EAAWvmS,iBAAiB,qBACpChJ,EAAI,EAAGA,EAAI6+T,EAAW//T,OAAS,EAAGkB,IACvCuvS,EAAWxmS,YAAYwmS,EAAW9mS,WAAWzI,IAEjDsvS,GAAmBtoS,EAAGuoS,EAC1B,CACJ,EAUAmuB,EAAS1mU,UAAUy2R,kBAAoB,SAAUmF,EAASC,GAEtD,IADA,IAAIh8N,EAAU17D,KAAK8iU,aACV3nT,EAAK,EAAGpV,EAAKnK,OAAOwB,KAAKq6R,GAAUt8Q,EAAKpV,EAAGpC,OAAQwX,IAAM,CAE9D,OADWpV,EAAGoV,IAEV,IAAK,UACDnb,KAAK+iU,eAAgB,EACrB/iU,KAAK9C,QAAQ6lU,eAAgB,EAC7B/iU,KAAK2iU,YAAYlrC,EAAQrlK,QAAU,QAAU,WAC7C,MACJ,IAAK,gBACGqlK,EAAQsrC,cACR/iU,KAAK2iU,eAGL3iU,KAAK9C,QAAQ6lU,eAAgB,EAC7B/iU,KAAK2iU,YAAY3iU,KAAKoyH,QAAU,QAAU,YAE9C,MACJ,IAAK,WACGqlK,EAAQ5tK,UACR7pH,KAAKmjU,cACLnjU,KAAK07D,QAAU17D,KAAK8iU,aACpB9iU,KAAKw1S,iBAGLx1S,KAAK9C,QAAQ2sH,UAAW,EACxBnuD,EAAQmN,UAAUxE,OAAO29P,IACzBtmQ,EAAQ3kD,aAAa,gBAAiB,SACtC/W,KAAK8pS,cAET,MACJ,IAAK,WACGpS,EAAQqd,UACRvlB,GAAY,CAAC9zN,GAAUg8N,EAAQqd,SAASziS,MAAM,MAE9CmlR,EAAQsd,UACR5lB,GAAS,CAACzzN,GAAU+7N,EAAQsd,SAASljS,QAAQ,OAAQ,KAAKC,OAAOQ,MAAM,MAE3E,MACJ,IAAK,YACGmlR,EAAQuG,UACRtiO,EAAQmN,UAAU31C,IAAI6uR,IAGtBrmP,EAAQmN,UAAUxE,OAAO09O,IAE7B,MACJ,IAAK,QACD/hT,KAAK+jH,QAAQ0zK,EAAQz6G,OACrB,MACJ,IAAK,gBACD,IAAIA,EAAQthH,EAAQyyI,uBAAuBg0H,IAAO,GAC9CwB,EAAYjoQ,EAAQhlD,qBAAqB,SAAS,GACtDmrG,GAAOm7D,GACuB,UAA1By6G,EAAQ6rC,cACRK,EAAU1sT,YAAY+lK,GAGtB2mJ,EAAUzlK,aAAa8e,EAAOthH,EAAQyyI,uBAAuB8zH,IAAO,IAExE,MAEJ,IAAK,OACDjiU,KAAK9C,QAAQ6Z,aAAa,OAAQ0gR,EAAQ90R,MAC1C,MACJ,IAAK,QACD,GAAI3C,KAAK6pT,OAAkC,kBAAlBpyB,EAAQh8R,MAC7B,MAEJuE,KAAK9C,QAAQ6Z,aAAa,QAAS0gR,EAAQh8R,OAC3C,MACJ,IAAK,iBACDuE,KAAK4jU,+BAGjB,CACJ,EAOArB,EAAS1mU,UAAU0iS,UAAY,WAC3B,IAAIrhS,EAAU8C,KAAK9C,QACnB8C,KAAK0M,QAAU1M,KAAK9C,QAAQwP,QAC5BxP,EAAU42S,GAAkB9zS,KAAKoN,cAAe,eAAgB,WAAYlQ,EAAS62S,IACrF/zS,KAAK9C,QAAUA,EAC2B,aAAtC8C,KAAK9C,QAAQ8uH,aAAa,SAC1BhsH,KAAK9C,QAAQ6Z,aAAa,OAAQ,YAEjC/W,KAAK9C,QAAQ+0D,KACdjyD,KAAK9C,QAAQ+0D,GAAK4hN,GAAY,KAAO7zQ,KAAK4yR,iBAElD,EAOA2vC,EAAS1mU,UAAUmP,OAAS,WACxBhL,KAAKojU,cACLpjU,KAAK+nE,aACA/nE,KAAK6pH,UACN7pH,KAAK8pS,aAET9pS,KAAK4jU,+BACL5jU,KAAKijU,qBAAoB,GACzBjjU,KAAKm/R,iBACLn/R,KAAK07D,QAAU17D,KAAK8iU,YACxB,EACAP,EAAS1mU,UAAUsnU,YAAc,WAC7B,IAAIznQ,EAAU17D,KAAK8iU,aACnB9iU,KAAK9C,QAAQ2sH,UAAW,EACxBnuD,EAAQmN,UAAU31C,IAAI8uS,IACtBtmQ,EAAQ3kD,aAAa,gBAAiB,OAC1C,EACAwrT,EAAS1mU,UAAUkoH,QAAU,SAAUzgH,GACnC,IAAIo4D,EAAU17D,KAAK8iU,aACnB,GAAKpnQ,EAAL,CAGA,IAAIshH,EAAQthH,EAAQyyI,uBAAuBg0H,IAAO,GAClD,GAAInlJ,EACAA,EAAM3kH,YAAc/0D,MAEnB,CACDA,EAAQtD,KAAKi1S,oBAAuB/B,GAAmBG,SAAS/vS,GAAQA,EACxE05K,EAAQh9K,KAAKoN,cAAc,OAAQ,CAAEgiE,UAAW+yP,GAAOl1T,UAAW3J,IAClE,IAAIqgU,EAAYjoQ,EAAQhlD,qBAAqB,SAAS,GAC3B,WAAvB1W,KAAKsjU,cACLK,EAAUzlK,aAAa8e,EAAOthH,EAAQyyI,uBAAuB8zH,IAAO,IAGpE0B,EAAU1sT,YAAY+lK,EAE9B,CAfA,CAgBJ,EACAulJ,EAAS1mU,UAAU4gU,cAAgB,SAAU5wT,GACzCA,EAAEyjE,iBACN,EACAizP,EAAS1mU,UAAUgoU,iBAAmB,WAClC7jU,KAAKoyH,QAAUpyH,KAAKkjU,oBACpBljU,KAAK9C,QAAQk1H,QAAUpyH,KAAKkjU,mBAChC,EACAX,EAAS1mU,UAAU25S,aAAe,WAC9B,IAAI95O,EAAU17D,KAAK07D,QACnByyN,GAAa9pN,OAAO3I,EAAS,QAAS17D,KAAKwsL,cAC3C2hG,GAAa9pN,OAAOrkE,KAAK9C,QAAS,QAAS8C,KAAKujU,cAChDp1C,GAAa9pN,OAAOrkE,KAAK9C,QAAS,QAAS8C,KAAKs8T,cAChDnuC,GAAa9pN,OAAOrkE,KAAK9C,QAAS,WAAY8C,KAAKu8T,iBACnD,IAAIv/I,EAAQthH,EAAQhlD,qBAAqB,SAAS,GAClDy3Q,GAAa9pN,OAAO24G,EAAO,YAAah9K,KAAKwjU,uBAC7Cr1C,GAAa9pN,OAAO24G,EAAO,UAAWh9K,KAAKyjU,qBAC3C,IAAIK,EAAWp6P,GAAQ1pE,KAAK9C,QAAS,QACjC4mU,GACA31C,GAAa9pN,OAAOy/P,EAAU,QAAS9jU,KAAK6jU,kBAE3B,iBAAjB7jU,KAAK0M,SACLyhR,GAAa9pN,OAAOrkE,KAAK9C,QAAS,SAAU8C,KAAKy8T,cAEzD,EACA8F,EAAS1mU,UAAUiuS,WAAa,WAC5B,IAAIpuO,EAAU17D,KAAK8iU,aACnB30C,GAAaj7P,IAAIwoC,EAAS,QAAS17D,KAAKwsL,aAAcxsL,MACtDmuR,GAAaj7P,IAAIlzB,KAAK9C,QAAS,QAAS8C,KAAKujU,aAAcvjU,MAC3DmuR,GAAaj7P,IAAIlzB,KAAK9C,QAAS,QAAS8C,KAAKs8T,aAAct8T,MAC3DmuR,GAAaj7P,IAAIlzB,KAAK9C,QAAS,WAAY8C,KAAKu8T,gBAAiBv8T,MACjE,IAAIg9K,EAAQthH,EAAQhlD,qBAAqB,SAAS,GAClDy3Q,GAAaj7P,IAAI8pJ,EAAO,YAAah9K,KAAKwjU,sBAAuBxjU,MACjEmuR,GAAaj7P,IAAI8pJ,EAAO,UAAWh9K,KAAKyjU,oBAAqBzjU,MAC7D,IAAI8jU,EAAWp6P,GAAQ1pE,KAAK9C,QAAS,QACjC4mU,GACA31C,GAAaj7P,IAAI4wS,EAAU,QAAS9jU,KAAK6jU,iBAAkB7jU,MAE1C,iBAAjBA,KAAK0M,SACLyhR,GAAaj7P,IAAIlzB,KAAK9C,QAAS,SAAU8C,KAAKy8T,cAAez8T,KAErE,EACAuiU,EAAS1mU,UAAUonU,oBAAsB,SAAU//P,GAC/C,GAAIljE,KAAK6pT,OAA+B,kBAAf7pT,KAAKvE,MAAoB,CAC9C,IAAIA,EAAQuE,KAAK9C,QAAQzB,MACzB,GAAIA,GAASuE,KAAKvE,MAAO,CACrB,IAAIynE,EAQC,CACD,IAAIt0D,EAAQ5O,KAAKvE,MAAMyT,QAAQzT,GAY/B,OAXIuE,KAAKoyH,QACDxjH,EAAQ,GACR5O,KAAKvE,MAAMsH,KAAKtH,GAIhBmT,GAAS,GACT5O,KAAKvE,MAAM2M,OAAOwG,EAAO,GAI1B5O,KAAKvE,KAChB,CArBI,IAAK,IAAIoJ,EAAI,EAAGA,EAAI7E,KAAKvE,MAAMkI,OAAQkB,IAC/BpJ,IAAUuE,KAAKvE,MAAMoJ,KACrB7E,KAAK2iU,YAAY,SACjB3iU,KAAK4xR,cAAc,CAAE,SAAW,IAAQ,GAmBxD,CACJ,CACA,OAAO5xR,KAAK0iU,WAAa1iU,KAAK9C,QAAQk1H,SAAWpyH,KAAK9C,QAAQk1H,OAClE,EACAmwM,EAAS1mU,UAAU+nU,6BAA+B,WAC9C,IAAK5wD,GAAkBhzQ,KAAK87T,gBACxB,IAAK,IAAI3gT,EAAK,EAAGpV,EAAKnK,OAAOwB,KAAK4C,KAAK87T,gBAAiB3gT,EAAKpV,EAAGpC,OAAQwX,IAAM,CAC1E,IAAIld,EAAM8H,EAAGoV,GACb,GAAIk/S,GAAcnrT,QAAQjR,IAAQ,EAAG,CACjC,IAAIy9D,EAAU17D,KAAK8iU,aACnB,GAAY,UAAR7kU,EACAkxR,GAAS,CAACzzN,GAAU17D,KAAK87T,eAAe,GAAK79T,GAAKqU,MAAM,WAEvD,GAAY,UAARrU,EACLy9D,EAAQ3kD,aAAa9Y,EAAK+B,KAAK87T,eAAe,GAAK79T,SAElD,GAAY,UAARA,EAAiB,CACN+B,KAAK8iU,aAAa30H,uBAAuB8zH,IAAO,GACtDlrT,aAAa9Y,EAAK+B,KAAK87T,eAAe,GAAK79T,GACzD,KACiB,aAARA,GACiC,SAAlC+B,KAAK87T,eAAe,GAAK79T,IACzB+B,KAAKmjU,cAETnjU,KAAK9C,QAAQ6Z,aAAa9Y,EAAK+B,KAAK87T,eAAe,GAAK79T,KAGxD+B,KAAK9C,QAAQ6Z,aAAa9Y,EAAK+B,KAAK87T,eAAe,GAAK79T,GAEhE,CACJ,CAER,EAQAskU,EAAS1mU,UAAUykI,MAAQ,WACvBtgI,KAAK9C,QAAQojI,OACjB,EAQAiiM,EAAS1mU,UAAU45S,QAAU,WACzBz1S,KAAK9C,QAAQm1E,OACjB,EACA0jN,GAAW,CACPxnK,MACDg0M,EAAS1mU,UAAW,cAAU,GACjCk6R,GAAW,CACPxnK,MACDg0M,EAAS1mU,UAAW,eAAW,GAClCk6R,GAAW,CACPnB,IAAS,IACV2tC,EAAS1mU,UAAW,eAAW,GAClCk6R,GAAW,CACPnB,GAAS,KACV2tC,EAAS1mU,UAAW,gBAAY,GACnCk6R,GAAW,CACPnB,IAAS,IACV2tC,EAAS1mU,UAAW,gBAAY,GACnCk6R,GAAW,CACPnB,IAAS,IACV2tC,EAAS1mU,UAAW,qBAAiB,GACxCk6R,GAAW,CACPnB,GAAS,KACV2tC,EAAS1mU,UAAW,aAAS,GAChCk6R,GAAW,CACPnB,GAAS,UACV2tC,EAAS1mU,UAAW,qBAAiB,GACxCk6R,GAAW,CACPnB,GAAS,KACV2tC,EAAS1mU,UAAW,YAAQ,GAC/Bk6R,GAAW,CACPnB,GAAS,KACV2tC,EAAS1mU,UAAW,aAAS,GAChCk6R,GAAW,CACPnB,IAAS,IACV2tC,EAAS1mU,UAAW,2BAAuB,GAC9Ck6R,GAAW,CACPnB,GAAS,CAAC,IACX2tC,EAAS1mU,UAAW,sBAAkB,GACzC0mU,EAAWxsC,GAAW,CAClBX,IACDmtC,EAEP,CA/iB8B,CA+iB5B59L,IE5lBE5gI,GAAyC,WACzC,IAAIC,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBpI,OAAOuI,gBAClB,CAAEC,UAAW,cAAgBzH,OAAS,SAAUsH,EAAGC,GAAKD,EAAEG,UAAYF,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAInD,KAAKmD,EAAOA,EAAEhG,eAAe6C,KAAIkD,EAAElD,GAAKmD,EAAEnD,GAAI,EACtEiD,EAAcC,EAAGC,EAC5B,EACA,OAAO,SAAUD,EAAGC,GAEhB,SAASK,IAAOvE,KAAKwE,YAAcP,CAAG,CADtCD,EAAcC,EAAGC,GAEjBD,EAAEpI,UAAkB,OAANqI,EAAatI,OAAOqE,OAAOiE,IAAMK,EAAG1I,UAAYqI,EAAErI,UAAW,IAAI0I,EACnF,CACJ,CAZ6C,GAazCwxR,GAA0C,SAAUC,EAAYl5R,EAAQmB,EAAKsC,GAC7E,IAA2H0D,EAAvH+Q,EAAIjQ,UAAUpB,OAAQshD,EAAIjwC,EAAI,EAAIlY,EAAkB,OAATyD,EAAgBA,EAAO3E,OAAO4E,yBAAyB1D,EAAQmB,GAAOsC,EACrH,GAAuB,kBAAZoxI,SAAoD,oBAArBA,QAAQskJ,SAAyBhxO,EAAI0sF,QAAQskJ,SAASD,EAAYl5R,EAAQmB,EAAKsC,QACpH,IAAK,IAAIsE,EAAImxR,EAAWryR,OAAS,EAAGkB,GAAK,EAAGA,KAASZ,EAAI+xR,EAAWnxR,MAAIogD,GAAKjwC,EAAI,EAAI/Q,EAAEghD,GAAKjwC,EAAI,EAAI/Q,EAAEnH,EAAQmB,EAAKgnD,GAAKhhD,EAAEnH,EAAQmB,KAASgnD,GAChJ,OAAOjwC,EAAI,GAAKiwC,GAAKrpD,OAAOsD,eAAepC,EAAQmB,EAAKgnD,GAAIA,CAChE,EAKI8+Q,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,SAAU9+T,GAQnC,SAAS8+T,EAAQpoU,EAASW,GACtB,OAAO2I,EAAO9J,KAAKiE,KAAMzD,EAASW,IAAY8C,IAClD,CAmbA,OA5bA+D,GAAU4gU,EAAS9+T,GAgBnB8+T,EAAQ9oU,UAAU0iS,UAAY,WAC1Bv+R,KAAK4kU,QAAUp4C,GAAQ5vN,KAAKj6D,KAC5B3C,KAAK6kU,aAAgC,YAAjB7kU,KAAK4kU,QACzB5kU,KAAKitR,SAAWT,GAAQS,SACxBjtR,KAAK8kU,YAAa,EAClB,IAAI5nU,EAAU8C,KAAK9C,QACnB8C,KAAK+kU,QAA2B,SAAjB/kU,KAAK4kU,SAAuC,SAAjB5kU,KAAK4kU,QAC/C5kU,KAAK+nE,aACc,KAAf7qE,EAAQ+0D,KACR/0D,EAAQ+0D,GAAK4hN,GAAY,WACzB7zQ,KAAKglU,UAAW,GAEpB9nU,EAAQgU,MAAMyyG,QAAU,QACpB3jH,KAAKg+R,WACL9gS,EAAQ2rE,UAAU31C,IAAI6wS,GAE9B,EAOAY,EAAQ9oU,UAAUmP,OAAS,WACvBhL,KAAKilU,YAAc,IAAIh5B,GAAMjsS,KAAK9C,QAAS,CAAEgoU,OAAQllU,KAAKmlU,aAAavkQ,KAAK5gE,MAAOyvL,MAAOzvL,KAAKolU,aAAaxkQ,KAAK5gE,QACjHmuR,GAAaj7P,IAAIlzB,KAAKqlU,UAAW,SAAUrlU,KAAKslU,cAAetlU,MAC1DA,KAAKitR,UAINjtR,KAAK9C,QAAQ2rE,UAAU31C,IAAIqxS,IAC3BvkU,KAAKulU,cAAcvlU,KAAK9C,UAJxB8C,KAAKwlU,cAAcxlU,KAAK9C,SAM5B8C,KAAKylU,gBACT,EACAd,EAAQ9oU,UAAU4pU,eAAiB,WAC3BzyD,GAAkBhzQ,KAAK0lU,aAAe1lU,KAAK0lU,WAAa,GACxD1lU,KAAK0lU,WAAa1lU,KAAKqlU,UAAU7nI,YACjCx9L,KAAK8kU,YAAa,GAGlB9kU,KAAK8kU,YAAa,CAE1B,EACAH,EAAQ9oU,UAAUksE,WAAa,WAC3B,IAAIs9P,EAAYrlU,KAAKoN,cAAc,MAAO,CAAEgiE,UAtF/B,sBAuFTy7K,EAAY7qP,KAAKoN,cAAc,MAAO,CAAEgiE,UAxF/B,kBAyFby7K,EAAU9zO,aAAa,WAAY,MAGnC,IAFA,IAAIs4Q,EAAMrvR,KAAK9C,QAENie,EAAK,EAAGwqT,EADF,GAAG9wT,MAAM9Y,KAAKszR,EAAIxrR,UACOsX,EAAKwqT,EAAWhiU,OAAQwX,IAAM,CAClE,IAAIyqT,EAAQD,EAAWxqT,GACvBkqT,EAAUpuT,YAAY2uT,EAC1B,CACA/6E,EAAU5zO,YAAYouT,GACtBh2C,EAAIp4Q,YAAY4zO,GAChBA,EAAU35O,MAAM8/G,UAAY,SAC5BhxH,KAAKqlU,UAAYx6E,EACjB7qP,KAAK6lU,YAAcR,CACvB,EACAV,EAAQ9oU,UAAUgkS,eAAiB,WAE/B,OAAO7/R,KAAKmgS,aADI,CAAC,cAErB,EAOAwkC,EAAQ9oU,UAAU+2R,cAAgB,WAC9B,MAAO,SACX,EAMA+xC,EAAQ9oU,UAAUsM,QAAU,WACxB,IAAIknR,EAAMrvR,KAAK9C,QACfmyR,EAAIn+Q,MAAMyyG,QAAU,GACpB0rK,EAAIxmN,UAAUxE,OA9HP,aA+HPgrN,EAAIxmN,UAAUxE,OAAOkgQ,IACrB,IAAIuB,EAAMhuP,GAAU,MAAQu3M,EAAIp9N,GAAK,QAAUmyQ,GAAgB/0C,GAC3D02C,EAAUjuP,GAAU,IAAM0sP,GAAan1C,GAC3C,GAAGx6Q,MAAM9Y,KAAKgqU,GAAS/nU,SAAQ,SAAUqxR,GACrCxtK,GAAOwtK,EACX,IACA,IAAK,IAAIl0Q,EAAK,EAAGpV,EAAK,GAAG8O,MAAM9Y,KAAKiE,KAAK6lU,YAAYhiU,UAAWsX,EAAKpV,EAAGpC,OAAQwX,IAAM,CAClF,IAAItb,EAAOkG,EAAGoV,GACdk0Q,EAAIp4Q,YAAYpX,EACpB,CACIG,KAAKglU,UACLhlU,KAAK9C,QAAQqmH,gBAAgB,MAEjC1B,GAAO7hH,KAAKqlU,WACRS,EAAIniU,OAAS,IACbk+G,GAAOikN,EAAI,IACN9yD,GAAkB8yD,EAAI,KACvBjkN,GAAOikN,EAAI,KAGnB33C,GAAa9pN,OAAOrkE,KAAKqlU,UAAW,SAAUrlU,KAAKslU,eACnDtlU,KAAKilU,YAAY98T,UACjBnI,KAAKilU,YAAc,KACnBp/T,EAAOhK,UAAUsM,QAAQpM,KAAKiE,KAClC,EAQA2kU,EAAQ9oU,UAAUi/E,QAAU,SAAUr/E,GAClC,IAAIuqU,EAAUluP,GAAU,sBAAwBksP,GAAc,IAAKhkU,KAAK9C,SACpEzB,EACAuE,KAAK9C,QAAQ2rE,UAAU31C,IAAI8wS,IAG3BhkU,KAAK9C,QAAQ2rE,UAAUxE,OAAO2/P,IAElC,GAAGnvT,MAAM9Y,KAAKiqU,GAAShoU,SAAQ,SAAU0+H,GACrCA,EAAG3lH,aAAa,WAAatb,EAAc,KAAN,IACzC,GACJ,EACAkpU,EAAQ9oU,UAAU0pU,cAAgB,SAAUroU,GACxC,IAAI+0D,EAAK/0D,EAAQ+0D,GAAGj1D,OAAO,QACvBipU,EAAkBjmU,KAAKoN,cAAc,MAAO,CAAEgiE,UAAWo1P,GAAc,IAAMC,KAC7EyB,EAAW,KAAOhpU,EAAQ+0D,GAAGj1D,OAAO,QAAUonU,GAAiB,IAAMC,IACrE8B,EAAWnmU,KAAKoN,cAAc,MAAO,CAAE6kD,GAAIA,EAAGj1D,OAAO,UAAWoyE,UAAW82P,IAC3EE,EAAUpmU,KAAKoN,cAAc,MAAO,CAAEgiE,UAAW80P,GAAoB,IAAMD,GAAe,aAC9FkC,EAASlvT,YAAYmvT,GACrB,IAAIC,EAAUrmU,KAAKoN,cAAc,MAAO,CAAEgiE,UAAWo1P,GAAc,IAAME,KACrE1kU,KAAK+kU,SACLoB,EAASt9P,UAAU31C,IAAI,cAE3Bh2B,EAAQ+Z,YAAYgvT,GACpB/oU,EAAQ+Z,YAAYkvT,GACpBjpU,EAAQghK,aAAamoK,EAASnpU,EAAQs5H,YACtCx2H,KAAKsmU,aAAa,CAACH,GACvB,EACAxB,EAAQ9oU,UAAU2pU,cAAgB,SAAUtoU,GACxC,IAAI+0D,EAAK/0D,EAAQ+0D,GAAGj1D,OAAO,QACvBkpU,EAAW,KAAOhpU,EAAQ+0D,GAAGj1D,OAAO,QAAUonU,GAAiB,IAAMC,IACrEkC,EAAkB,CAAE,KAAQ,SAAU,GAAMt0Q,EAAGj1D,OAAO,UAAW,aAAc,gBAC/E8oU,EAAM9lU,KAAKoN,cAAc,MAAO,CAAEgiE,UAAW82P,EAAUrvT,MAAO0vT,IAClET,EAAI/uT,aAAa,gBAAiB,SAClC,IAAIqvT,EAAUpmU,KAAKoN,cAAc,MAAO,CAAEgiE,UAAW80P,GAAoB,IAAMD,GAAe,aAC1FuC,EAAU,KAAOtpU,EAAQ+0D,GAAGj1D,OAAO,QAAUonU,GAAiB,IAAME,IACpEmC,EAAiB,CAAE,KAAQ,SAAU,GAAMx0Q,EAAGj1D,OAAO,SAAU,aAAc,eAC7E0pU,EAAS1mU,KAAKoN,cAAc,MAAO,CAAEgiE,UAAWo3P,EAAU,IAAMxC,GAAantT,MAAO4vT,IACxFC,EAAO3vT,aAAa,gBAAiB,QACrC,IAAI4vT,EAAc3mU,KAAKoN,cAAc,MAAO,CAAEgiE,UAAW+0P,GAAmB,IAAMF,GAAe,aACjGyC,EAAOzvT,YAAY0vT,GACnBb,EAAI7uT,YAAYmvT,GAChBlpU,EAAQ+Z,YAAY6uT,GACpB5oU,EAAQghK,aAAawoK,EAAQxpU,EAAQs5H,YACjCx2H,KAAK+kU,UACLe,EAAIj9P,UAAU31C,IAAI,cAClBwzS,EAAO79P,UAAU31C,IAAI,eAEzBlzB,KAAKsmU,aAAa,CAACR,EAAKY,GAC5B,EACA/B,EAAQ9oU,UAAU+qU,WAAa,SAAU/6T,GACrC,IAAI/F,EAAQ9F,KACZ,GAAc,UAAV6L,EAAE5N,IAAiB,CAKnB+B,KAAK6mU,SAAW1/T,OAAO2S,YAAW,WAH9BhU,EAAMghU,YAAa,EACnBhhU,EAAMihU,aAAa,GAAIl7T,EAAE/O,QAAQ,EAIrC,GAAG,IACP,CACJ,EACA6nU,EAAQ9oU,UAAUmrU,QAAU,SAAUn7T,GACpB,UAAVA,EAAE5N,MAGF+B,KAAK8mU,WACL9mU,KAAK8mU,YAAa,EAGlBj7T,EAAE/O,OAAOwjI,QAEblmH,aAAapa,KAAK6mU,UACtB,EACAlC,EAAQ9oU,UAAUyqU,aAAe,SAAUj3C,GACvC,IAAIvpR,EAAQ9F,KACZ,GAAG6U,MAAM9Y,KAAKszR,GAAKrxR,SAAQ,SAAU0+H,GACjC,IAAIuvK,GAAMvvK,EAAI,CAAEuqM,QAASnhU,EAAMohU,eAAetmQ,KAAK96D,GAAQs8R,iBAAkB,MAC7E1lK,EAAG7hE,iBAAiB,UAAW/0D,EAAM8gU,WAAWhmQ,KAAK96D,IACrD42H,EAAG7hE,iBAAiB,QAAS/0D,EAAMkhU,QAAQpmQ,KAAK96D,IAChD42H,EAAG7hE,iBAAiB,UAAW/0D,EAAMqhU,aAAavmQ,KAAK96D,IACvD42H,EAAG7hE,iBAAiB,WAAY/0D,EAAMqhU,aAAavmQ,KAAK96D,IACxD42H,EAAG7hE,iBAAiB,eAAe,SAAUhvD,GACzCA,EAAE89D,gBACN,IACAwkN,GAAaj7P,IAAIwpG,EAAI,QAAS52H,EAAMshU,kBAAmBthU,EAC3D,GACJ,EACA6+T,EAAQ9oU,UAAUsrU,aAAe,WAC7BrgM,cAAc9mI,KAAKuvM,QACvB,EACAo1H,EAAQ9oU,UAAUqrU,eAAiB,SAAUr7T,GACzC,IAAI/F,EAAQ9F,KACRqnU,EAAOx7T,EAAE0hS,cAAczwS,OAC3BuqU,EAAOrnU,KAAKmyE,SAASk1P,EAAMjD,IAAkBiD,EAAKt3C,kBAAoBs3C,EAKtErnU,KAAKuvM,QAAUpoM,OAAOy/H,aAAY,WAF9B9gI,EAAMihU,aAFM,GAEkBM,GAAM,EAIxC,GAAG,GACP,EACA1C,EAAQ9oU,UAAUs2E,SAAW,SAAUk9M,EAAKjgN,GACxC,OAAOigN,EAAIxmN,UAAUsJ,SAAS/C,EAClC,EACAu1P,EAAQ9oU,UAAUkrU,aAAe,SAAUO,EAAWD,EAAME,GACxD,IAAIC,EAAUxnU,KAAK9C,QACf2rE,EAAYw+P,EAAKx+P,UACjBA,EAAUsJ,SAASiyP,MACnBv7P,EAAYw+P,EAAKr6T,cAAc,IAAMi3T,IAAcp7P,WAEnD7oE,KAAKmyE,SAASq1P,EAASzD,KAAY/jU,KAAK6kU,eACxCyC,GAAaA,IAEXtnU,KAAKmyE,SAASq1P,EAASzD,KAAY/jU,KAAK6kU,cAAiB7kU,KAAK+kU,QAC5Dl8P,EAAUsJ,SAAS+xP,IACnBlkU,KAAKynU,mBAAmBH,EAAW,MAAOC,GAG1CvnU,KAAKynU,mBAAmBH,EAAW,GAAIC,GAIvC1+P,EAAUsJ,SAASgyP,IACnBnkU,KAAKynU,mBAAmBH,EAAW,MAAOC,GAG1CvnU,KAAKynU,mBAAmBH,EAAW,GAAIC,EAGnD,EACA5C,EAAQ9oU,UAAUurU,kBAAoB,SAAUv7T,GAC5C7L,KAAK+mU,aAAa/mU,KAAK0lU,WAAY75T,EAAE/O,QAAQ,EACjD,EACA6nU,EAAQ9oU,UAAUupU,aAAe,SAAUv5T,GACvC,IACIs4R,EADAujC,EAAW1nU,KAAKqlU,UAGhBlhC,EADAt4R,EAAE8hS,UAAY,EACH9hS,EAAE2hS,WAA0B,GAAb3hS,EAAE8hS,UAGjB9hS,EAAE2hS,UAAY3hS,EAAE8hS,SAE/B,IAAI15R,EAAQ,GACR2iR,EAAU,WACV,IAAI92M,EAAOhoE,KAAK4mG,IAAIzqG,GAChB6rE,GAAQ,EACR34E,OAAOqzP,qBAAqB16K,IAGH,SAArBj0E,EAAEizL,eACF4oI,EAASr2M,YAAc8yK,EAAWrkN,EAER,UAArBj0E,EAAEizL,iBACP4oI,EAASr2M,YAAc8yK,EAAWrkN,GAEtC7rE,GAAS,GACT9M,OAAOu8D,sBAAsBkzN,GAErC,EACAA,GACJ,EACA+tC,EAAQ9oU,UAAU8rU,eAAiB,SAAUC,EAAWr/T,GACrC,QAAXA,EACAvI,KAAKqlU,UAAUh0M,YAAcu2M,EAG7B5nU,KAAKqlU,UAAUh0M,YAAcu2M,EAE7B5nU,KAAKg+R,WAAah+R,KAAKqlU,UAAUh0M,WAAa,IAC9CrxH,KAAKqlU,UAAUh0M,WAAa,EAEpC,EACAszM,EAAQ9oU,UAAU4rU,mBAAqB,SAAUG,EAAWr/T,EAAQg/T,GAChE,IAAIzhU,EAAQ9F,KAEZ,GAAIunU,EACAvnU,KAAK2nU,eAAeC,EAAWr/T,OADnC,CAIKvI,KAAK8kU,YACN,GAAGjwT,MAAM9Y,KAAK+7E,GAAU,IAAM0sP,GAAaxkU,KAAK9C,UAAUc,SAAQ,SAAU0+H,GACxEkrM,GAAalrM,EAAG8gE,WACpB,IAEJ,IAAIo5F,EAAU,WACV,IAAIixC,EACAnC,EACA5/T,EAAMqsE,SAASrsE,EAAM5I,QAAS6mU,KAAYj+T,EAAM++T,cAChDgD,GAAeD,EACflC,GAfG,KAkBHmC,EAAcD,EACdlC,EAnBG,IAqBHmC,EArBG,GAsBH1gU,OAAOqzP,qBAAqBkrE,IAG5B5/T,EAAM6hU,eAAejC,EAAYn9T,GACjCq/T,GAAalC,EACbv+T,OAAOu8D,sBAAsBkzN,GAErC,EACAA,GA1BA,CA2BJ,EACA+tC,EAAQ9oU,UAAUspU,aAAe,SAAUt5T,GACvC,IAAIwjR,EAAMrvR,KAAKqlU,UACXlhC,EAAWt4R,EAAE2hS,UACZxtS,KAAK+kU,SAAY/kU,KAAKmyE,SAASnyE,KAAK9C,QAAS6mU,MAC9C5/B,GAAYA,GAEU,SAAtBt4R,EAAE6hS,gBACFre,EAAIh+J,WAAag+J,EAAIh+J,WAAa8yK,EAEP,UAAtBt4R,EAAE6hS,kBACPre,EAAIh+J,WAAag+J,EAAIh+J,WAAa8yK,EAE1C,EACAwgC,EAAQ9oU,UAAUisU,eAAiB,SAAUC,EAAYC,GACrD,GAAIhoU,KAAKitR,SAAU,CACf,IACIg7C,GADWj1D,GAAkB+0D,GAAcC,EAAgBD,GACtC/6T,cAAc,IAAMi3T,IACzCjxD,GAAkB+0D,GAClBl/P,GAAUo/P,EAAW,CAAC/D,IAAoB,CAACC,KAG3Ct7P,GAAUo/P,EAAW,CAAC9D,IAAmB,CAACD,IAElD,MACS6D,GAAcC,IACnBD,EAAWl/P,UAAU31C,IAAI8wS,IACzB+D,EAAWhxT,aAAa,gBAAiB,QACzCgxT,EAAWxkN,gBAAgB,YAC3BykN,EAAcn/P,UAAUxE,OAAO2/P,IAC/BgE,EAAcjxT,aAAa,gBAAiB,SAC5CixT,EAAcjxT,aAAa,WAAY,MAE3C/W,KAAKmnU,cACT,EACAxC,EAAQ9oU,UAAUypU,cAAgB,SAAUz5T,GACxC,IAAI/O,EAAS+O,EAAE/O,OACXokE,EAAQpkE,EAAO0gM,YAEf0qI,GADUloU,KAAK9C,QACF8C,KAAK9C,QAAQ8P,cAAc,IAAMs3T,KAC9C6D,EAAcnoU,KAAK9C,QAAQ8P,cAAc,IAAMq3T,IAC/C+D,EAAcpoU,KAAK9C,QAAQ8P,cAAc,IAAM03T,IAC/C2D,EAAeroU,KAAK9C,QAAQ8P,cAAc,IAAMy3T,IAChDpzM,EAAav0H,EAAOu0H,WAsBxB,GArBIA,GAAc,IACdA,GAAcA,GAEdrxH,KAAKitR,YACDjtR,KAAKg+R,WAAeh+R,KAAK6kU,cAAgB7kU,KAAK+kU,UAC9CqD,EAAcpoU,KAAK9C,QAAQ8P,cAAc,IAAMy3T,IAC/C4D,EAAeroU,KAAK9C,QAAQ8P,cAAc,IAAM03T,KAGhD0D,EAAYl3T,MAAMgwD,MADlBmwD,EAnZK,GAoZqBA,EAAa,KAGb,OAEzBv0H,EAAO2lS,YAAc3qR,KAAKsT,KAAK81C,EAAQmwD,GAzZnC,GA0ZLg3M,EAAan3T,MAAMgwD,MAASpkE,EAAO2lS,YAAc3qR,KAAKsT,KAAK81C,EAAQmwD,GAAe,KAGlFg3M,EAAan3T,MAAMgwD,MAAQ,QAGhB,IAAfmwD,EACArxH,KAAK8nU,eAAeI,EAAYC,QAE/B,GAAIrwT,KAAKsT,KAAK81C,EAAQmwD,EAAa,KAAOv0H,EAAO2lS,YAClDziS,KAAK8nU,eAAeK,EAAaD,OAEhC,CACD,IAAII,EAAStoU,KAAK9C,QAAQ8P,cAAc,IAAMo3T,GAAiB,IAAMJ,IACjEsE,IACAA,EAAOz/P,UAAUxE,OAAO2/P,IACxBsE,EAAOvxT,aAAa,gBAAiB,SACrCuxT,EAAOvxT,aAAa,WAAY,KAExC,CACJ,EASA4tT,EAAQ9oU,UAAUy2R,kBAAoB,SAAUmF,EAASC,GACrD,IAAK,IAAIv8Q,EAAK,EAAGpV,EAAKnK,OAAOwB,KAAKq6R,GAAUt8Q,EAAKpV,EAAGpC,OAAQwX,IAAM,CAE9D,OADWpV,EAAGoV,IAEV,IAAK,aACDnb,KAAKylU,iBACL,MACJ,IAAK,YACDhuC,EAAQuG,UAAYh+R,KAAK9C,QAAQ2rE,UAAU31C,IAAI6wS,IAAW/jU,KAAK9C,QAAQ2rE,UAAUxE,OAAO0/P,IAGpG,CACJ,EACAhuC,GAAW,CACPnB,GAAS,OACV+vC,EAAQ9oU,UAAW,kBAAc,GACpC8oU,EAAU5uC,GAAW,CACjBX,IACDuvC,EAEP,CA9b6B,CA8b3BhgM,IChfE5gI,GAAyC,WACzC,IAAIC,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBpI,OAAOuI,gBAClB,CAAEC,UAAW,cAAgBzH,OAAS,SAAUsH,EAAGC,GAAKD,EAAEG,UAAYF,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAInD,KAAKmD,EAAOA,EAAEhG,eAAe6C,KAAIkD,EAAElD,GAAKmD,EAAEnD,GAAI,EACtEiD,EAAcC,EAAGC,EAC5B,EACA,OAAO,SAAUD,EAAGC,GAEhB,SAASK,IAAOvE,KAAKwE,YAAcP,CAAG,CADtCD,EAAcC,EAAGC,GAEjBD,EAAEpI,UAAkB,OAANqI,EAAatI,OAAOqE,OAAOiE,IAAMK,EAAG1I,UAAYqI,EAAErI,UAAW,IAAI0I,EACnF,CACJ,CAZ6C,GAazCwxR,GAA0C,SAAUC,EAAYl5R,EAAQmB,EAAKsC,GAC7E,IAA2H0D,EAAvH+Q,EAAIjQ,UAAUpB,OAAQshD,EAAIjwC,EAAI,EAAIlY,EAAkB,OAATyD,EAAgBA,EAAO3E,OAAO4E,yBAAyB1D,EAAQmB,GAAOsC,EACrH,GAAuB,kBAAZoxI,SAAoD,oBAArBA,QAAQskJ,SAAyBhxO,EAAI0sF,QAAQskJ,SAASD,EAAYl5R,EAAQmB,EAAKsC,QACpH,IAAK,IAAIsE,EAAImxR,EAAWryR,OAAS,EAAGkB,GAAK,EAAGA,KAASZ,EAAI+xR,EAAWnxR,MAAIogD,GAAKjwC,EAAI,EAAI/Q,EAAEghD,GAAKjwC,EAAI,EAAI/Q,EAAEnH,EAAQmB,EAAKgnD,GAAKhhD,EAAEnH,EAAQmB,KAASgnD,GAChJ,OAAOjwC,EAAI,GAAKiwC,GAAKrpD,OAAOsD,eAAepC,EAAQmB,EAAKgnD,GAAIA,CAChE,EAKI8+Q,GAAU,QACVC,GAAc,YAGdC,GAAe,cACfsE,GAAiB,iBACjBC,GAAmB,mBACnBC,GAAiB,eACjBC,GAAmB,kBACnBC,GAAqB,oBACrBpE,GAAa,kBACbC,GAAc,mBACdoE,GAAgB,sBAChBC,GAAkB,wBAclBC,GAAyB,SAAUjjU,GAQnC,SAASijU,EAAQvsU,EAASW,GACtB,OAAO2I,EAAO9J,KAAKiE,KAAMzD,EAASW,IAAY8C,IAClD,CAwZA,OAjaA+D,GAAU+kU,EAASjjU,GAgBnBijU,EAAQjtU,UAAU0iS,UAAY,WAC1Bv+R,KAAK4kU,QAAUp4C,GAAQ5vN,KAAKj6D,KAC5B3C,KAAK6kU,aAAgC,YAAjB7kU,KAAK4kU,QACzB5kU,KAAKitR,SAAWT,GAAQS,SACxBjtR,KAAK8kU,YAAa,EAClB,IAAIz1C,EAAMrvR,KAAK9C,QACf8C,KAAK+kU,QAA2B,SAAjB/kU,KAAK4kU,SAAuC,SAAjB5kU,KAAK4kU,QAC/C5kU,KAAK+nE,aACU,KAAXsnN,EAAIp9N,KACJo9N,EAAIp9N,GAAK4hN,GAAY,WACrB7zQ,KAAKglU,UAAW,GAEpB31C,EAAIn+Q,MAAMyyG,QAAU,QAChB3jH,KAAKg+R,WACL3O,EAAIxmN,UAAU31C,IAAI6wS,GAE1B,EAOA+E,EAAQjtU,UAAUmP,OAAS,WACvBhL,KAAKilU,YAAc,IAAIh5B,GAAMjsS,KAAK9C,QAAS,CAAEgoU,OAAQllU,KAAKmlU,aAAavkQ,KAAK5gE,MAAOyvL,MAAOzvL,KAAKolU,aAAaxkQ,KAAK5gE,QACjHmuR,GAAaj7P,IAAIlzB,KAAKqlU,UAAW,SAAUrlU,KAAK+oU,mBAAoB/oU,MAC/DA,KAAKitR,UAINjtR,KAAK9C,QAAQ2rE,UAAU31C,IAAIqxS,IAC3BvkU,KAAKgpU,qBAAqBhpU,KAAK9C,UAJ/B8C,KAAKwlU,cAAcxlU,KAAK9C,SAM5B8C,KAAKylU,iBACLt3C,GAAaj7P,IAAIlzB,KAAK9C,QAAS,QAAS8C,KAAKipU,kBAAmBjpU,KACpE,EACA8oU,EAAQjtU,UAAU4pU,eAAiB,WAC3BzyD,GAAkBhzQ,KAAK0lU,aAAe1lU,KAAK0lU,WAAa,GACxD1lU,KAAK0lU,WAAa1lU,KAAKqlU,UAAU5nI,aACjCz9L,KAAK8kU,YAAa,GAGlB9kU,KAAK8kU,YAAa,CAE1B,EACAgE,EAAQjtU,UAAUksE,WAAa,WAC3B,IAAImhQ,EAAYC,GAAS,MAAO,CAAE/5P,UAvFrB,sBAwFTg6P,EAAYD,GAAS,MAAO,CAAE/5P,UAzFrB,kBA0Fbg6P,EAAUryT,aAAa,WAAY,MAGnC,IAFA,IAAIs4Q,EAAMrvR,KAAK9C,QAENie,EAAK,EAAGwqT,EADF,GAAG9wT,MAAM9Y,KAAKszR,EAAIxrR,UACOsX,EAAKwqT,EAAWhiU,OAAQwX,IAAM,CAClE,IAAIyqT,EAAQD,EAAWxqT,GACvB+tT,EAAUjyT,YAAY2uT,EAC1B,CACAwD,EAAUnyT,YAAYiyT,GACtB75C,EAAIp4Q,YAAYmyT,GAChBA,EAAUl4T,MAAM2L,SAAW,SAC3B7c,KAAKqlU,UAAY+D,EACjBppU,KAAK6lU,YAAcqD,CACvB,EACAJ,EAAQjtU,UAAUgkS,eAAiB,WAE/B,OAAO7/R,KAAKmgS,aADI,CAAC,cAErB,EAOA2oC,EAAQjtU,UAAU+2R,cAAgB,WAC9B,MAAO,SACX,EAMAk2C,EAAQjtU,UAAUsM,QAAU,WACxB,IAAIu0H,EAAK18H,KAAK9C,QACdw/H,EAAGxrH,MAAMyyG,QAAU,GACnB6rK,GAAY,CAACxvR,KAAK9C,SAAU,CA/HrB,YA+HgCqnU,KACvC,IAAI8E,EAAOvxP,GAAU,MAAQ4kD,EAAGzqE,GAAK,QAAUw2Q,GAAgB/rM,GAC3D4sM,EAAWxxP,GAAU,IAAM0sP,GAAa9nM,GAC5C,GAAG7nH,MAAM9Y,KAAKutU,GAAUtrU,SAAQ,SAAUqxR,GACtCxtK,GAAOwtK,EACX,IACA,IAAK,IAAIl0Q,EAAK,EAAGpV,EAAK,GAAG8O,MAAM9Y,KAAKiE,KAAK6lU,YAAYhiU,UAAWsX,EAAKpV,EAAGpC,OAAQwX,IAAM,CAClF,IAAItb,EAAOkG,EAAGoV,GACduhH,EAAGzlH,YAAYpX,EACnB,CACIG,KAAKglU,UACLhlU,KAAK9C,QAAQqmH,gBAAgB,MAEjC1B,GAAO7hH,KAAKqlU,WACRgE,EAAK1lU,OAAS,IACdk+G,GAAOwnN,EAAK,IACPr2D,GAAkBq2D,EAAK,KACxBxnN,GAAOwnN,EAAK,KAGpBl7C,GAAa9pN,OAAOrkE,KAAKqlU,UAAW,SAAUrlU,KAAK+oU,oBACnD/oU,KAAKilU,YAAY98T,UACjBnI,KAAKilU,YAAc,KACnBp/T,EAAOhK,UAAUsM,QAAQpM,KAAKiE,KAClC,EAQA8oU,EAAQjtU,UAAUi/E,QAAU,SAAUr/E,GAClC,IAAIirU,EAAS5uP,GAAU,sBAAwBksP,GAAc,IAAKhkU,KAAK9C,SACnEzB,EACAuE,KAAK9C,QAAQ2rE,UAAU31C,IAAI8wS,IAG3BhkU,KAAK9C,QAAQ2rE,UAAUxE,OAAO2/P,IAElC,GAAGnvT,MAAM9Y,KAAK2qU,GAAQ1oU,SAAQ,SAAU0+H,GACpCA,EAAG3lH,aAAa,WAAatb,EAAc,KAAN,IACzC,GACJ,EACAqtU,EAAQjtU,UAAUmtU,qBAAuB,SAAU9rU,GAC/C,IAAI+0D,EAAK/0D,EAAQ+0D,GAAGj1D,OAAO,QACvBusU,EAAiBJ,GAAS,MAAO,CAAE/5P,UAAWo1P,GAAc,IAAMqE,KAClEW,EAAU,KAAOtsU,EAAQ+0D,GAAGj1D,OAAO,QAAUyrU,GAAiB,IAAME,IACpEc,EAAUN,GAAS,MAAO,CAAEl3Q,GAAIA,EAAGj1D,OAAO,QAASoyE,UAAWo6P,IAC9DpD,EAAU+C,GAAS,MAAO,CAAE/5P,UAAWo5P,GAAmB,IAAMvE,GAAe,aACnFwF,EAAQxyT,YAAYmvT,GACpB,IAAIsD,EAAQP,GAAS,MAAO,CAAE/5P,UAAWo1P,GAAc,IAAMoE,KACzD5oU,KAAK+kU,SACL0E,EAAQ5gQ,UAAU31C,IAAI,cAE1Bh2B,EAAQ+Z,YAAYsyT,GACpBrsU,EAAQ+Z,YAAYwyT,GACpBvsU,EAAQghK,aAAawrK,EAAOxsU,EAAQs5H,YACpCx2H,KAAKsmU,aAAa,CAACmD,GACvB,EACAX,EAAQjtU,UAAU2pU,cAAgB,SAAUtoU,GACxC,IAAI+0D,EAAK/0D,EAAQ+0D,GAAGj1D,OAAO,QACvBwsU,EAAU,KAAOtsU,EAAQ+0D,GAAGj1D,OAAO,QAAUyrU,GAAiB,IAAME,IACpE7C,EAAMqD,GAAS,MAAO,CAAEl3Q,GAAIA,EAAGj1D,OAAO,SAAUoyE,UAAWo6P,IAC/D1D,EAAI/uT,aAAa,gBAAiB,SAClC,IAAIqvT,EAAU+C,GAAS,MAAO,CAAE/5P,UAAWo5P,GAAmB,IAAMvE,GAAe,aAC/E0F,EAAQ,KAAOzsU,EAAQ+0D,GAAGj1D,OAAO,QAAUyrU,GAAiB,IAAMC,IAClEkB,EAAaT,GAAS,MAAO,CAAEl3Q,GAAIA,EAAGj1D,OAAO,OAAQoyE,UAAWu6P,EAAQ,IAAM3F,KAClF4F,EAAW7yT,aAAa,gBAAiB,QACzC,IAAI8yT,EAAYV,GAAS,MAAO,CAAE/5P,UAAWm5P,GAAiB,IAAMtE,GAAe,aACnF2F,EAAW3yT,YAAY4yT,GACvB/D,EAAI7uT,YAAYmvT,GAChBN,EAAI/uT,aAAa,WAAY,KAC7B7Z,EAAQ+Z,YAAY6uT,GACpB5oU,EAAQghK,aAAa0rK,EAAY1sU,EAAQs5H,YACrCx2H,KAAK+kU,UACLe,EAAIj9P,UAAU31C,IAAI,cAClB02S,EAAW/gQ,UAAU31C,IAAI,eAE7BlzB,KAAKsmU,aAAa,CAACR,EAAK8D,GAC5B,EACAd,EAAQjtU,UAAU+qU,WAAa,SAAUkD,GACrC,IAAIhkU,EAAQ9F,KACZ,GAAe,UAAX8pU,EAAG7rU,IAAiB,CAKpB+B,KAAK6mU,SAAW1/T,OAAO2S,YAAW,WAH9BhU,EAAMghU,YAAa,EACnBhhU,EAAMihU,aAAa,GAAI+C,EAAGhtU,QAAQ,EAItC,GAAG,IACP,CACJ,EACAgsU,EAAQjtU,UAAUmrU,QAAU,SAAU8C,GACnB,UAAXA,EAAG7rU,MAGH+B,KAAK8mU,WACL9mU,KAAK8mU,YAAa,EAGlBgD,EAAGhtU,OAAOwjI,QAEdlmH,aAAapa,KAAK6mU,UACtB,EACAiC,EAAQjtU,UAAUyqU,aAAe,SAAUppU,GACvC,IAAI4I,EAAQ9F,KACZ,GAAG6U,MAAM9Y,KAAKmB,GAASc,SAAQ,SAAUqxR,GACrC,IAAI4c,GAAM5c,EAAK,CAAE43C,QAASnhU,EAAMohU,eAAetmQ,KAAK96D,GAAQs8R,iBAAkB,MAC9E/S,EAAIx0N,iBAAiB,UAAW/0D,EAAM8gU,WAAWhmQ,KAAK96D,IACtDupR,EAAIx0N,iBAAiB,QAAS/0D,EAAMkhU,QAAQpmQ,KAAK96D,IACjDupR,EAAIx0N,iBAAiB,UAAW/0D,EAAMqhU,aAAavmQ,KAAK96D,IACxDupR,EAAIx0N,iBAAiB,WAAY/0D,EAAMqhU,aAAavmQ,KAAK96D,IACzDupR,EAAIx0N,iBAAiB,eAAe,SAAUhvD,GAC1CA,EAAE89D,gBACN,IACAwkN,GAAaj7P,IAAIm8P,EAAK,QAASvpR,EAAMshU,kBAAmBthU,EAC5D,GACJ,EACAgjU,EAAQjtU,UAAUsrU,aAAe,WAC7BrgM,cAAc9mI,KAAKuvM,QACvB,EACAu5H,EAAQjtU,UAAUqrU,eAAiB,SAAU4C,GACzC,IAAIhkU,EAAQ9F,KACRqnU,EAAOyC,EAAGv8B,cAAczwS,OAC5BuqU,EAAOrnU,KAAKmyE,SAASk1P,EAAMoB,IAAkBpB,EAAKt3C,kBAAoBs3C,EAKtErnU,KAAKuvM,QAAUpoM,OAAOy/H,aAAY,WAF9B9gI,EAAMihU,aAFW,GAEkBM,GAAM,EAI7C,GAAG,GACP,EACAyB,EAAQjtU,UAAUs2E,SAAW,SAAUj1E,EAASkyE,GAC5C,OAAOlyE,EAAQ2rE,UAAUsJ,SAAS/C,EACtC,EACA05P,EAAQjtU,UAAUkrU,aAAe,SAAUO,EAAWD,EAAME,GACxD,IAAI1+P,EAAYw+P,EAAKx+P,UACjBA,EAAUsJ,SAASs2P,MACnB5/P,EAAYw+P,EAAKr6T,cAAc,IAAMi3T,IAAcp7P,WAEnDA,EAAUsJ,SAASq2P,IACnBxoU,KAAKynU,mBAAmBH,EAAW,MAAOC,GAErC1+P,EAAUsJ,SAASo2P,KACxBvoU,KAAKynU,mBAAmBH,EAAW,GAAIC,EAE/C,EACAuB,EAAQjtU,UAAUurU,kBAAoB,SAAUzsQ,GAC5C36D,KAAK+mU,aAAa/mU,KAAK0lU,WAAY/qQ,EAAM79D,QAAQ,EACrD,EACAgsU,EAAQjtU,UAAUotU,kBAAoB,SAAUp9T,GAC5CA,EAAE89D,iBACF3pE,KAAKynU,mBAAmBznU,KAAK0lU,WAAa75T,EAAE+iE,OAAS,EAAI,MAAQ,IAAK,EAC1E,EACAk6P,EAAQjtU,UAAUupU,aAAe,SAAUv5T,GACvC,IACIs4R,EADA4lC,EAAe/pU,KAAKqlU,UAGpBlhC,EADAt4R,EAAE8hS,UAAY,EACH9hS,EAAE4hS,WAA0B,GAAb5hS,EAAE8hS,UAGjB9hS,EAAE4hS,UAAY5hS,EAAE8hS,SAE/B,IAAI15R,EAAQ,GACR2iR,EAAU,WACV,IAAI92M,EAAOhoE,KAAK4mG,IAAIzqG,GAChB6rE,GAAQ,EACR34E,OAAOqzP,qBAAqB16K,IAGH,OAArBj0E,EAAEizL,eACFirI,EAAaxiL,WAAa48I,EAAWrkN,EAEX,SAArBj0E,EAAEizL,iBACPirI,EAAaxiL,WAAa48I,EAAWrkN,GAEzC7rE,GAAS,IACT9M,OAAOu8D,sBAAsBkzN,GAErC,EACAA,GACJ,EACAkyC,EAAQjtU,UAAU8rU,eAAiB,SAAUC,EAAWr/T,GACrC,QAAXA,EACAvI,KAAKqlU,UAAU99K,WAAaqgL,EAG5B5nU,KAAKqlU,UAAU99K,WAAaqgL,CAEpC,EACAkB,EAAQjtU,UAAU4rU,mBAAqB,SAAUI,EAAat/T,EAAQg/T,GAClE,IAAIzhU,EAAQ9F,KAEZ,GAAIunU,EACAvnU,KAAK2nU,eAAeE,EAAat/T,OADrC,CAIKvI,KAAK8kU,YACN,GAAGjwT,MAAM9Y,KAAK+7E,GAAU,IAAM0sP,GAAaxkU,KAAK9C,UAAUc,SAAQ,SAAU0+H,GACxEmrM,GAAenrM,EAAG+gE,YACtB,IAEJ,IAAIm5F,EAAU,WACNixC,EAXG,GAYH1gU,OAAOqzP,qBAZJ,KAeH10P,EAAM6hU,eAfH,GAewBp/T,GAC3Bs/T,GAhBG,GAiBH1gU,OAAOu8D,sBAAsBkzN,GAErC,EACAA,GAhBA,CAiBJ,EACAkyC,EAAQjtU,UAAUspU,aAAe,SAAUt5T,GACvC,IAAI6wH,EAAK18H,KAAKqlU,UACVlhC,EAAWt4R,EAAE4hS,UACS,OAAtB5hS,EAAE6hS,gBACFhxK,EAAG6qB,UAAY7qB,EAAG6qB,UAAY48I,EAEH,SAAtBt4R,EAAE6hS,kBACPhxK,EAAG6qB,UAAY7qB,EAAG6qB,UAAY48I,EAEtC,EACA2kC,EAAQjtU,UAAUisU,eAAiB,SAAUkC,EAAeC,GACxD,GAAIjqU,KAAKitR,SAAU,CACf,IACIg7C,GADWj1D,GAAkBg3D,GAAiBC,EAAmBD,GAC5Ch9T,cAAc,IAAMi3T,IACzCjxD,GAAkBg3D,GAClBnhQ,GAAUo/P,EAAW,CAACO,IAAmB,CAACD,KAG1C1/P,GAAUo/P,EAAW,CAACM,IAAiB,CAACC,IAEhD,MAEIwB,EAAcnhQ,UAAU31C,IAAI8wS,IAC5BgG,EAAcjzT,aAAa,gBAAiB,QAC5CizT,EAAczmN,gBAAgB,YAC9B0mN,EAAiBphQ,UAAUxE,OAAO2/P,IAClCiG,EAAiBlzT,aAAa,gBAAiB,SAC/CkzT,EAAiBlzT,aAAa,WAAY,KAE9C/W,KAAKmnU,cACT,EACA2B,EAAQjtU,UAAUktU,mBAAqB,SAAUl9T,GAC7C,IAAI/O,EAAS+O,EAAE/O,OACXqkE,EAASrkE,EAAO2gM,aAChBysI,EAAWlqU,KAAK9C,QAAQ8P,cAAc,IAAM07T,IAC5CyB,EAAanqU,KAAK9C,QAAQ8P,cAAc,IAAM27T,IAC9CyB,EAAYpqU,KAAK9C,QAAQ8P,cAAc,IAAM47T,IAC7CyB,EAAcrqU,KAAK9C,QAAQ8P,cAAc,IAAM67T,IAC/CthL,EAAYzqJ,EAAOyqJ,UAkBvB,GAjBIA,GAAa,IACbA,GAAaA,GAEbvnJ,KAAKitR,WAEDm9C,EAAUl5T,MAAMiwD,OADhBomF,EAnXK,GAoXoBA,EAAY,KAGZ,OAExBzqJ,EAAOylS,aAAezqR,KAAKsT,KAAK+1C,EAASomF,GAzXrC,GA0XL8iL,EAAYn5T,MAAMiwD,OAAUrkE,EAAOylS,aAAezqR,KAAKsT,KAAK+1C,EAASomF,GAAc,KAGnF8iL,EAAYn5T,MAAMiwD,OAAS,QAGjB,IAAdomF,EACAvnJ,KAAK8nU,eAAeoC,EAAUC,QAE7B,GAAIryT,KAAKsT,KAAK+1C,EAASomF,EAAY,KAAOzqJ,EAAOylS,aAClDviS,KAAK8nU,eAAeqC,EAAYD,OAE/B,CACD,IAAI5B,EAAStoU,KAAK9C,QAAQ8P,cAAc,IAAMy7T,GAAiB,IAAMzE,IACjEsE,IACAA,EAAOz/P,UAAUxE,OAAO2/P,IACxBsE,EAAOvxT,aAAa,gBAAiB,SACrCuxT,EAAOvxT,aAAa,WAAY,KAExC,CACJ,EASA+xT,EAAQjtU,UAAUy2R,kBAAoB,SAAUmF,EAASC,GACrD,IAAK,IAAIv8Q,EAAK,EAAGpV,EAAKnK,OAAOwB,KAAKq6R,GAAUt8Q,EAAKpV,EAAGpC,OAAQwX,IAAM,CAE9D,OADWpV,EAAGoV,IAEV,IAAK,aACDnb,KAAKylU,iBACL,MACJ,IAAK,YACGhuC,EAAQuG,UACRh+R,KAAK9C,QAAQ2rE,UAAU31C,IAAI6wS,IAG3B/jU,KAAK9C,QAAQ2rE,UAAUxE,OAAO0/P,IAI9C,CACJ,EACAhuC,GAAW,CACPnB,GAAS,OACVk0C,EAAQjtU,UAAW,kBAAc,GACpCitU,EAAU/yC,GAAW,CACjBX,IACD0zC,EAEP,CAna6B,CAma3BnkM,ICrdE5gI,GAAyC,WACzC,IAAIC,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBpI,OAAOuI,gBAClB,CAAEC,UAAW,cAAgBzH,OAAS,SAAUsH,EAAGC,GAAKD,EAAEG,UAAYF,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAInD,KAAKmD,EAAOA,EAAEhG,eAAe6C,KAAIkD,EAAElD,GAAKmD,EAAEnD,GAAI,EACtEiD,EAAcC,EAAGC,EAC5B,EACA,OAAO,SAAUD,EAAGC,GAEhB,SAASK,IAAOvE,KAAKwE,YAAcP,CAAG,CADtCD,EAAcC,EAAGC,GAEjBD,EAAEpI,UAAkB,OAANqI,EAAatI,OAAOqE,OAAOiE,IAAMK,EAAG1I,UAAYqI,EAAErI,UAAW,IAAI0I,EACnF,CACJ,CAZ6C,GAazCwxR,GAA0C,SAAUC,EAAYl5R,EAAQmB,EAAKsC,GAC7E,IAA2H0D,EAAvH+Q,EAAIjQ,UAAUpB,OAAQshD,EAAIjwC,EAAI,EAAIlY,EAAkB,OAATyD,EAAgBA,EAAO3E,OAAO4E,yBAAyB1D,EAAQmB,GAAOsC,EACrH,GAAuB,kBAAZoxI,SAAoD,oBAArBA,QAAQskJ,SAAyBhxO,EAAI0sF,QAAQskJ,SAASD,EAAYl5R,EAAQmB,EAAKsC,QACpH,IAAK,IAAIsE,EAAImxR,EAAWryR,OAAS,EAAGkB,GAAK,EAAGA,KAASZ,EAAI+xR,EAAWnxR,MAAIogD,GAAKjwC,EAAI,EAAI/Q,EAAEghD,GAAKjwC,EAAI,EAAI/Q,EAAEnH,EAAQmB,EAAKgnD,GAAKhhD,EAAEnH,EAAQmB,KAASgnD,GAChJ,OAAOjwC,EAAI,GAAKiwC,GAAKrpD,OAAOsD,eAAepC,EAAQmB,EAAKgnD,GAAIA,CAChE,EAYIqlR,GAAe,aACfC,GAAY,kBACZC,GAAW,iBACXzG,GAAU,QACV0G,GAAgB,cAChBC,GAAgB,kBAChBC,GAAgB,oBAChBC,GAAgB,eAChBC,GAAe,aACf7G,GAAc,YACd8G,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,SAAUvmU,GAEhC,SAASumU,IACL,OAAkB,OAAXvmU,GAAmBA,EAAOb,MAAMhF,KAAM+E,YAAc/E,IAC/D,CAuDA,OA1DA+D,GAAUqoU,EAAMvmU,GAIhBkwR,GAAW,CACPnB,GAAS,KACVw3C,EAAKvwU,UAAW,UAAM,GACzBk6R,GAAW,CACPnB,GAAS,KACVw3C,EAAKvwU,UAAW,YAAQ,GAC3Bk6R,GAAW,CACPnB,GAAS,SACVw3C,EAAKvwU,UAAW,aAAS,GAC5Bk6R,GAAW,CACPnB,GAAS,KACVw3C,EAAKvwU,UAAW,gBAAY,GAC/Bk6R,GAAW,CACPnB,IAAS,IACVw3C,EAAKvwU,UAAW,yBAAqB,GACxCk6R,GAAW,CACPnB,IAAS,IACVw3C,EAAKvwU,UAAW,gBAAY,GAC/Bk6R,GAAW,CACPnB,GAAS,KACVw3C,EAAKvwU,UAAW,kBAAc,GACjCk6R,GAAW,CACPnB,GAAS,KACVw3C,EAAKvwU,UAAW,kBAAc,GACjCk6R,GAAW,CACPnB,IAAS,IACVw3C,EAAKvwU,UAAW,eAAW,GAC9Bk6R,GAAW,CACPnB,GAAS,SACVw3C,EAAKvwU,UAAW,gBAAY,GAC/Bk6R,GAAW,CACPnB,GAAS,KACVw3C,EAAKvwU,UAAW,gBAAY,GAC/Bk6R,GAAW,CACPnB,GAAS,WACVw3C,EAAKvwU,UAAW,YAAQ,GAC3Bk6R,GAAW,CACPnB,GAAS,SACVw3C,EAAKvwU,UAAW,kBAAc,GACjCk6R,GAAW,CACPnB,GAAS,OACVw3C,EAAKvwU,UAAW,sBAAkB,GACrCk6R,GAAW,CACPnB,GAAS,KACVw3C,EAAKvwU,UAAW,mBAAe,GAClCk6R,GAAW,CACPnB,GAAS,SACVw3C,EAAKvwU,UAAW,aAAS,GAC5Bk6R,GAAW,CACPxnK,MACD69M,EAAKvwU,UAAW,aAAS,GAC5Bk6R,GAAW,CACPnB,IAAU,IACXw3C,EAAKvwU,UAAW,gBAAY,GACxBuwU,CACX,CA5D0B,CA4DxBtyC,IAYEuyC,GAAyB,SAAUxmU,GAQnC,SAASwmU,EAAQ9vU,EAASW,GACtB,IAAI4I,EAAQD,EAAO9J,KAAKiE,KAAMzD,EAASW,IAAY8C,KAgBnD,OAfA8F,EAAMwmU,cAAgBxmU,EAAMq5S,OAAOv+O,KAAK96D,GAIxCA,EAAM4kS,WAAa,CACf6hC,SAAU,YACVC,UAAW,aACXC,OAAQ,UACRC,SAAU,YACVC,UAAW,QACXC,WAAY,SACZC,IAAK,MACLC,KAAM,OACNz4T,IAAK,OAEFvO,CACX,CAglEA,OAzmEA/B,GAAUsoU,EAASxmU,GA+BnBwmU,EAAQxwU,UAAUsM,QAAU,WACxB,IAAIrC,EAAQ9F,MACRA,KAAKurT,SAAWvrT,KAAKw6T,YACrBx6T,KAAK+/R,gBAET,IAAIgtC,EAAW/sU,KAAK9C,QAAQ2Q,iBAAiB,oBAa7C,IAZA,GAAGgH,MAAM9Y,KAAKgxU,GAAU/uU,SAAQ,SAAU0+H,GACjCkjL,GAAMljL,IAAQkjL,GAAMljL,EAAGm2J,gBAAmB+sB,GAAMljL,EAAGm2J,cAAc,KAASn2J,EAAGm2J,cAAc,GAAGhB,aAC/Fn1J,EAAGm2J,cAAc,GAAG1qR,SAE5B,IACAnI,KAAKirS,eACLjrS,KAAKgtU,OAAOhvU,SAAQ,SAAUqxR,GACrBuwB,GAAM95S,EAAM5I,QAAQ8P,cAAcqiR,MACnC1iR,SAASiwE,KAAK3lE,YAAYnR,EAAM5I,QAAQ8P,cAAcqiR,IAAMn+Q,MAAMyyG,QAAU,OAEpF,IACA3jH,KAAKitU,eACEjtU,KAAK9C,QAAQgwU,kBAChBltU,KAAK9C,QAAQ0Q,YAAY5N,KAAK9C,QAAQgwU,kBAEtCltU,KAAKmtU,UACLntU,KAAK9C,QAAQ+Z,YAAYjX,KAAKotU,SAC9BptU,KAAKmtU,QAAU,KACfntU,KAAKotU,QAAU,MAEfptU,KAAKqtU,SACLrtU,KAAKqtU,OAAOllU,UACZ05G,GAAO7hH,KAAKqtU,OAAOnwU,UAEnB8C,KAAKooT,YACLpoT,KAAKooT,UAAY,MAErBpoT,KAAKqtU,OAAS,KACdrtU,KAAKstU,UAAY,KACjBttU,KAAKutU,aAAe,GACpBvtU,KAAKqkE,OAAOrkE,KAAK9C,QAAS,aACtB8C,KAAK+0S,UACLvlB,GAAY,CAACxvR,KAAK9C,SAAU8C,KAAK+0S,SAASziS,MAAM,MAEpDtS,KAAK9C,QAAQqmH,gBAAgB,SAC7B,CAAC,gBAAiB,mBAAoB,QAAQvlH,SAAQ,SAAUwvU,GAC5D,OAAO1nU,EAAM5I,QAAQqmH,gBAAgBiqN,EACzC,IACA3nU,EAAOhK,UAAUsM,QAAQpM,KAAKiE,KAClC,EAOAqsU,EAAQxwU,UAAU0iS,UAAY,WAC1B,IAAIzT,EAAY,CAAE2iD,gBAAiBztU,KAAKytU,gBAAiB/H,WAAY1lU,KAAK0lU,YAC1E1lU,KAAKw0H,QAAQ,eAAgBs2J,GAC7B9qR,KAAKytU,gBAAkB3iD,EAAU2iD,gBACjCztU,KAAK0lU,WAAa56C,EAAU46C,WAC5B1lU,KAAK0tU,aAAe,KACpB1tU,KAAKqtU,OAAS,KACdrtU,KAAKgtU,OAAS,GACdhtU,KAAKutU,aAAevtU,KAAKs4D,MACzBt4D,KAAK2tU,aAAa3tU,KAAK9C,QAAQ2rE,UAAUsJ,SAASm4P,IAClDtqU,KAAK4tU,gBAAiB,EACtB5tU,KAAK6tU,cAAgB,EACjB7tU,KAAKg+R,WACLh+R,KAAKkzB,IAAIlzB,KAAK9C,QAAS6mU,GAE/B,EACAsI,EAAQxwU,UAAUiuS,WAAa,WAC3B3b,GAAaj7P,IAAIlzB,KAAK9C,QAAS,QAAS8C,KAAKwsL,aAAcxsL,MAC3DmH,OAAO0zD,iBAAiB,SAAU76D,KAAKssU,eACnCtsU,KAAK8tU,eACL9tU,KAAK+tU,mBAEb,EACA1B,EAAQxwU,UAAUkyU,kBAAoB,WAClC/tU,KAAKguU,UAAY,IAAI5jC,GAAepqS,KAAK9C,QAAS,CAC9C8tS,UAAWhrS,KAAKiuU,iBAAiBrtQ,KAAK5gE,MACtC0qS,WAAY1qS,KAAK0qS,aAErBvc,GAAaj7P,IAAIlzB,KAAK9C,QAAS,UAAW8C,KAAKkuU,WAAYluU,MAC3DA,KAAKmuU,eAAe,IACxB,EACA9B,EAAQxwU,UAAUsyU,eAAiB,SAAU9+P,GACzC,IAAIggN,EAAMrvR,KAAK9C,QAAQ8P,cAAc,IAAMw9T,GAAW,SAAWxG,GAAc,WAAayG,GAAgB,WAAamB,GAAa,MACtI,IAAKhsB,GAAMvwB,KAASuwB,GAAMvwB,EAAIU,mBAAoB,CAC9C,IAAIq+C,EAAe/+C,EAAIU,kBAAkB/jK,aAAa,iBAClDoiN,GAAiC,OAAjBA,GAA2D,UAAlC/+C,EAAIU,kBAAkBrjR,SAC/D2iR,EAAIU,kBAAkBh5Q,aAAa,WAAYs4D,EAEvD,CACJ,EACAg9P,EAAQxwU,UAAUwyU,oBAAsB,WAChCruU,KAAKguU,YACL7/C,GAAa9pN,OAAOrkE,KAAK9C,QAAS,UAAW8C,KAAKkuU,YAClDluU,KAAKguU,UAAU7lU,UACfnI,KAAKguU,UAAY,KAEzB,EACA3B,EAAQxwU,UAAUqyU,WAAa,SAAUriU,GACrC,GAAyB,UAArBA,EAAE/O,OAAO4P,QAAb,CAGA,IAAI4hU,GAAY1uB,GAAM5/S,KAAKqtU,SAAW9sO,GAAUvgG,KAAKqtU,OAAOnwU,UAAkC,aAAtB8C,KAAKuuU,aAC3D,IAAd1iU,EAAE4zI,UAA8D,IAA7C5zI,EAAE/O,OAAO+rE,UAAUsJ,SAAS,cAAyBm8P,GACxEtuU,KAAKqtU,OAAO7rN,KAAK,CAAE7+G,KAAM,UAAWw8B,SAAU,OAEpB,KAAdtzB,EAAE4zI,SAAgC,KAAd5zI,EAAE4zI,SAAgC,KAAd5zI,EAAE4zI,SAAgC,KAAd5zI,EAAE4zI,UAE1E5zI,EAAE89D,gBAPN,CASJ,EACA0iQ,EAAQxwU,UAAUovS,aAAe,WAC7B9c,GAAa9pN,OAAOrkE,KAAK9C,QAAS,QAAS8C,KAAKwsL,cAChDxsL,KAAKwuU,gBACLxuU,KAAKquU,sBACLlnU,OAAO2zD,oBAAoB,SAAU96D,KAAKssU,eAC1Cn+C,GAAa9pN,OAAO13D,SAAU,SAAU3M,KAAKyuU,UAC7CtgD,GAAa9pN,OAAO13D,SAAU,QAAS3M,KAAKyuU,SAChD,EACApC,EAAQxwU,UAAU6yU,cAAgB,WAC9B1uU,KAAK2uU,QAAU,GACf3uU,KAAK4uU,WAAa,CAAEC,MAAO,GAAIC,QAAS,GAAIC,OAAQ,GACxD,EACA1C,EAAQxwU,UAAU4yU,SAAW,SAAU5iU,GACnC,IAAImjU,EAAStlQ,GAAQ79D,EAAE/O,OAAQ,YAC3BkD,KAAKqtU,QAAU9sO,GAAUvgG,KAAKqtU,OAAOnwU,WAAa8xU,GAAgC,UAAtBhvU,KAAKuuU,cACjEvuU,KAAKqtU,OAAO7rN,KAAK,CAAE7+G,KAAM,UAAWw8B,SAAU,KAEtD,EACAktS,EAAQxwU,UAAU2yU,cAAgB,WAC1BxuU,KAAK0tU,eACD1tU,KAAKstU,WACLttU,KAAKkzB,IAAIlzB,KAAK0tU,aAAaxwU,QAASmuU,IAExCrrU,KAAK0tU,aAAavlU,UAClBnI,KAAK0tU,aAAe,KAE5B,EACArB,EAAQxwU,UAAUoxU,aAAe,WAI7B,GAHIjtU,KAAK9C,SACL,GAAG2X,MAAM9Y,KAAKiE,KAAK9C,QAAQ2Q,iBAAiB,IAAM28T,KAAWxsU,SAAQ,SAAU0+H,GAAM7a,GAAO6a,EAAK,IAEjG18H,KAAKstU,UAAW,CAChB,IAAI2B,EAAYjvU,KAAK9C,QAAQ8P,cAAc,IAAMu9T,IACjD,GAAG11T,MAAM9Y,KAAKkzU,EAAUprU,UAAU7F,SAAQ,SAAU0+H,GAChD7a,GAAO6a,EACX,IACA18H,KAAKstU,WAAY,EACjBttU,KAAKqkE,OAAO4qQ,EAAW5D,GAC3B,CACArrU,KAAK0uU,eACT,EACArC,EAAQxwU,UAAUqzU,YAAc,WACxBlvU,KAAK0tU,eACL1tU,KAAKqkE,OAAOrkE,KAAK0tU,aAAaxwU,QAAS6mU,IACvC/jU,KAAKwuU,iBAETxuU,KAAKqkE,OAAOrkE,KAAK9C,QAASivU,IAC1BnsU,KAAKqkE,OAAOrkE,KAAK9C,QAAS+uU,IAC1B,IAAIkD,EAAUnvU,KAAK9C,QAAQ8P,cAAc,uBACrCmiU,GACAnvU,KAAKqkE,OAAO8qQ,EAAStD,IAErB7rU,KAAKqtU,QACLrtU,KAAKovU,aAAapvU,KAAKqtU,OAAOnwU,SAAS,EAE/C,EACAmvU,EAAQxwU,UAAUq3B,IAAM,SAAUm8P,EAAK3yR,GACnC2yR,EAAIxmN,UAAU31C,IAAIx2B,EACtB,EACA2vU,EAAQxwU,UAAUwoE,OAAS,SAAUgrN,EAAK3yR,GACtC2yR,EAAIxmN,UAAUxE,OAAO3nE,EACzB,EACA2vU,EAAQxwU,UAAUwzU,aAAe,SAAUhgD,GACvC,IAAIigD,EAASjgD,EAAIU,kBACbu/C,GACAA,EAAOj9P,QACPryE,KAAKuvU,gBAAgBlgD,IAGrBA,EAAIh9M,OAEZ,EACAg6P,EAAQxwU,UAAU2zU,YAAc,SAAUC,EAAWpI,GAWjD,OATIoI,GAAazvU,KAAKqtU,QAAU9sO,GAAUvgG,KAAKqtU,OAAOnwU,SAC3C8C,KAAKqtU,OAAOnwU,QAAQ8P,cAAc,IAAMw9T,IAE1CxqU,KAAK9C,UAAYmqU,GAAQoI,EACvBzvU,KAAK9C,QAAQ8P,cAAc,IAAMw9T,GAAW,SAAWxG,GAAc,WAAayG,GAAgB,WAAamB,GAAa,MAG5HliQ,GAAQ29P,EAAM,IAAMmD,GAGnC,EACA6B,EAAQxwU,UAAU6zU,YAAc,SAAUC,EAAM9jU,EAAGw7T,EAAMuI,EAAQC,GAC7D,IAIIxgD,EACA1gR,EALA0+T,EAASrtU,KAAKqtU,OACd7F,EAAUxnU,KAAK9C,QACf4yU,EAAa,CAAEntU,KAAM,UAAWw8B,SAAU,KAC1C1jC,EAAqB,WAAboQ,EAAEtD,OAAsB,WAAa,OAGjD,OAAQsD,EAAEtD,QACN,IAAK,YACD,GAAIvI,KAAK2tU,WACL,OAEAnG,IAAYH,EACZrnU,KAAKqvU,aAAaM,GAEZC,GACN5vU,KAAK+vU,SAASJ,EAAM,QAExB,MACJ,IAAK,WACD,GAAI3vU,KAAK2tU,WACL,OAECiC,GACD5vU,KAAK+vU,SAASJ,EAAM,YAExB,MACJ,IAAK,OACL,IAAK,MACD,GAAIA,EAAM,CACN,IAAIK,EAAatmQ,GAAQimQ,EAAM,YAC3BM,EAAgBjwU,KAAK9C,QAAQ8P,cAAc,IAAMk/T,IAC3B,aAAtBlsU,KAAKuuU,cAA+B0B,GAAiBA,EAAcpnQ,UAAUsJ,SAAS,kBACtF69P,EAA0B,QAAbnkU,EAAEtD,OAAmB0nU,EAAgB,MAElDD,EACIzvO,GAAUvgG,KAAKqtU,OAAOnwU,WACtByR,EAAQ,GAAGkG,MAAM9Y,KAAKi0U,EAAWnsU,UAE7BwrR,EADa,SAAbxjR,EAAEtD,OACIoG,EAAM,GAGNA,EAAMA,EAAMhL,OAAS,KAKnCgL,EAAQ3O,KAAK9C,QAAQ2Q,iBAAiB,IAAM08T,GAAY,KAAOC,GAAW,SAAWC,GAAgB,KAEjGp7C,EADa,SAAbxjR,EAAEtD,OACIoG,EAAM,GAGNA,EAAMA,EAAMhL,OAAS,IAG/B0rR,GACArvR,KAAKqvU,aAAahgD,EAE1B,CACA,MACJ,IAAK,SACL,IAAK,WACD,GAAKrvR,KAAK2tU,WAmBW,WAAb9hU,EAAEtD,OACFvI,KAAK+vU,SAASJ,EAAM,YAGpB3vU,KAAK+vU,SAASJ,EAAM,aAtBxB,GAAItC,GAAU3jQ,GAAQ29P,EAAM,YAAa,CACrC,IAAI2H,EAAS3B,EAAOnwU,QAChBgzU,EAAalB,EAAOj/C,kBACT,aAAVt0R,GAAwBy0U,IAAeP,EACxCX,EAAO9B,iBAAiB12M,WAAWnkD,QAEpB,SAAV52E,GAAoBuzU,EAAO9B,mBAAqByC,EACrDO,EAAW15M,WAAWnkD,QAGtBryE,KAAK+vU,SAASJ,EAAMl0U,EAE5B,KACsB,aAAboQ,EAAEtD,QAAyB8kU,GAAU9sO,GAAU8sO,EAAOnwU,UAC3D8C,KAAKqvU,aAAaM,GAW1B,MACJ,IAAK,MACD,IAAKE,IAAcD,EAAQ,CACvB,IAAIhK,EAAQ+J,EAAK5/C,kBACby3C,IAAYH,IACRrnU,KAAKooT,UACLpoT,KAAKooT,UAAU/1O,SAGfryE,KAAKmwU,gBAAgBvK,GACrBA,EAAMvzP,SAGlB,CACA,MACJ,IAAK,aACGg7P,GAAgC,aAAtBrtU,KAAKuuU,cACflB,EAAO7rN,KAAKsuN,GAEhB,MACJ,IAAK,YACD,IAAKF,EACD,OAEAvC,IAAW9sO,GAAU8sO,EAAOnwU,UAC5BmwU,EAAOnwU,QAAQgU,MAAM+5D,IAAMu8P,EAAQ/pI,aAAe,KAClD4vI,EAAO1rN,KAAK,CAAEh/G,KAAM,SAAUw8B,SAAU,OAGxCkuS,EAAO7rN,KAAKsuN,GAI5B,EACAzD,EAAQxwU,UAAUoyU,iBAAmB,SAAUpiU,GAC3C,IAAIw7T,EAAOx7T,EAAE/O,OACb,GAAqB,UAAjBuqU,EAAK36T,SAAwC,aAAjB26T,EAAK36T,UAA0B1M,KAAK9C,QAAQ2rE,UAAUsJ,SAAS6xP,IAA/F,CAGAn4T,EAAE89D,iBACF,IAAI8lQ,EAAYpI,EAAKx+P,UAAUsJ,SAAS+4P,IACpCkF,EAAgB/I,EAAKx+P,UAAUsJ,SAASg5P,IACxCwE,EAAO3vU,KAAKwvU,YAAYC,EAAWpI,IACnCsI,GAAQS,IACRpwU,KAAK0vU,YAAYC,EAAM9jU,EAAGw7T,EAAMoI,EAAWW,EAN/C,CAQJ,EAQA/D,EAAQxwU,UAAUi/E,QAAU,SAAUr/E,GAClC,IAAI+rU,EAAUxnU,KAAK9C,QACfzB,EACA+rU,EAAQ3+P,UAAU31C,IAAI8wS,IAGtBwD,EAAQ3+P,UAAUxE,OAAO2/P,IAEzBhkU,KAAKooT,WACLpoT,KAAKooT,UAAUrxS,aAAa,WAAY/W,KAAKooT,UAAUp8L,aAAa,kBAEpEhsH,KAAK0tU,cACL1tU,KAAK0tU,aAAa5yP,QAAQr/E,GAE1BuE,KAAKqtU,SACD9sO,GAAUvgG,KAAKqtU,OAAOnwU,UAAkC,aAAtB8C,KAAKuuU,cACvCvuU,KAAKqtU,OAAO7rN,OAEhBgmN,EAAQx6T,cAAc,IAAMw6T,EAAQv1Q,GAAK,QAAQl7C,aAAa,WAAatb,EAAc,KAAN,KAE3F,EACA4wU,EAAQxwU,UAAUw0U,YAAc,SAAU3zM,GACtC,OAAOA,EAAG7zD,UAAUsJ,SAASs4P,KAAkB/tM,EAAG7zD,UAAUsJ,SAAS6xP,KAAgBtnM,EAAG1Q,aAAa,aAAe0Q,EAAG7zD,UAAUsJ,SAASy5P,MAAgBrrO,GAAUm8B,KAAQA,EAAG7zD,UAAUsJ,SAASq4P,GACtM,EACA6B,EAAQxwU,UAAUk0U,SAAW,SAAUrmQ,EAASx0D,GAC5C,IAAIo7T,EAAM10U,OAAO8tE,GAASx0D,EAAM,kBAChC,GAAIo7T,EAAK,CAEL,GADctwU,KAAKqwU,YAAYC,GAG3B,YADAtwU,KAAK+vU,SAASO,EAAKp7T,GAGvBlV,KAAKqvU,aAAaiB,EACtB,MACK,GAAItwU,KAAKstU,UAAW,CACrB,IAAIztU,EAAOjE,OAAO8tE,EAAQ8/N,eAAet0R,EAAM,kBAI/C,GAHK0qS,GAAM//S,IAAkC,IAAzBA,EAAKgE,SAASF,SAC9B9D,EAAOjE,OAAOiE,GAAMqV,EAAM,oBAEzB0qS,GAAM//S,IAASA,EAAKgE,SAASF,OAAS,EACvC,GAAY,SAARuR,EAAgB,CAChB,IAAIwnH,EAAK78H,EAAKmN,cAAc,IAAMw9T,IAC9BxqU,KAAKqwU,YAAY3zM,GACjB18H,KAAK+vU,SAASrzM,EAAIxnH,IAGlBwnH,EAAGqzJ,kBAAkB19M,QACrBryE,KAAKuvU,gBAAgB7yM,GAE7B,KACK,CACGA,EAAK78H,EAAKqtU,iBACVltU,KAAKqwU,YAAY3zM,GACjB18H,KAAK+vU,SAASrzM,EAAIxnH,GAGlBlV,KAAKqvU,aAAa3yM,EAE1B,CAER,MACK,IAAKkjL,GAAMl2O,GAAU,CACtB,IAAI6mQ,EAAWvwU,KAAK9C,QAAQ2Q,iBAAiB,IAAM08T,GAAY,KAAOC,GAAW,SAAWC,GAA/C,UAAgFzG,GAAhF,UAA+G4H,GAAa,KAC7J,SAAR12T,GAAkBq7T,EAClBvwU,KAAKqvU,aAAakB,EAAS,IAEd,aAARr7T,GAAsBq7T,GAC3BvwU,KAAKqvU,aAAakB,EAASA,EAAS5sU,OAAS,GAErD,CACJ,EACA0oU,EAAQxwU,UAAU2wL,aAAe,SAAU3gL,GACvC,IAgBI2kU,EAhBA1qU,EAAQ9F,KACRqnU,EAAOx7T,EAAE/O,OACTuyR,EAAMrvR,KAAK9C,QACXuzU,GAAkB7wB,GAAMl2O,GAAQ29P,EAAM,IAAMkE,KAC5CmF,EAAUrJ,EAAKx+P,UACf8nQ,EAAWjnQ,GAAQ29P,EAAO,IAAM6D,IAC/ByF,IACDA,EAAWtJ,GAEVh4C,EAAIxrR,SAAS,GAAGglE,UAAUsJ,SAAS,cAAiBk9M,EAAIxrR,SAAS,GAAGglE,UAAUsJ,SAAS,eACpFu+P,EAAQv+P,SAAS+4P,MACrBwF,EAAUrJ,EAAKr6T,cAAc,YAAY67D,YAEzC6nQ,EAAQv+P,SAASu4P,KAAkBgG,EAAQv+P,SAASw4P,MACpD3qU,KAAK4wU,kBAAkBvhD,EAAKshD,EAAU5M,IAG1C,IAAI4L,EAAOjmQ,GAAQ79D,EAAE/O,OAAQ,IAAM0tU,IACnC,IAAK5qB,GAAM+vB,KAASA,EAAK9mQ,UAAUsJ,SAAS6xP,KAAkB2M,EAAS9nQ,UAAUsJ,SAAS+4P,IAA1F,CAGA,GAAIyE,EAEAa,EADexwU,KAAKs4D,MAAMt4D,KAAK2uU,QAAQz/T,QAAQygU,IAGnD,IAAI7kD,EAAY,CAAEyiB,cAAe1hS,EAAGg4B,KAAM2sS,GACtCA,IAAY5wB,GAAM4wB,EAAQlwM,QAC1BtgI,KAAKw0H,QAAQ,SAAWx0H,KAAK2uU,QAAQz/T,QAAQygU,GAAQ,UAAW7kD,GAE/DA,EAAU3wQ,QACXna,KAAKw0H,QAAQ,UAAWs2J,GAAW,SAAU+lD,IACpCjxB,GAAM95S,EAAMunU,SAAWoD,IAAmBI,EAAY12T,QAAiC,UAAvBrU,EAAMyoU,cACvEsC,EAAYhtS,MAAkC,UAA1BgtS,EAAYhtS,KAAK/jC,MACrCgG,EAAMunU,OAAO7rN,KAAK,CAAE7+G,KAAM,UAAWw8B,SAAU,KAEvD,GAfJ,CAiBJ,EACAktS,EAAQxwU,UAAU+0U,kBAAoB,SAAUvhD,EAAKshD,EAAU5M,GAC3D,IAAIsJ,EAASrtU,KAAKqtU,OACd9sO,GAAU8sO,EAAOnwU,UACjByzU,EAAS9nQ,UAAUxE,OAAOonQ,IAC1B4B,EAAO7rN,KAAK,CAAE7+G,KAAM,UAAWw8B,SAAU,QAGrCkwP,EAAIxmN,UAAUsJ,SAAS4xP,KACvBsJ,EAAOrvC,WAAY,EACnBqvC,EAAOr5T,SAAW,CAAEynC,EAAG,OAAQikH,EAAG,QAEf,IAAnB2tK,EAAOx4Q,SAAkBw6N,EAAIxmN,UAAUsJ,SAAS4xP,KAChDsJ,EAAOrvC,WAAY,EACnBqvC,EAAOr5T,SAAW,CAAEynC,EAAG,QAASikH,EAAG,QAEvC2tK,EAAOr7C,WACPq7C,EAAOjzB,kBACPizB,EAAOnwU,QAAQgU,MAAM+5D,IAAMjrE,KAAK8wU,oBAAsB,KAC5B,aAAtB9wU,KAAKuuU,eACLlB,EAAOnwU,QAAQgU,MAAM08D,UAAY,OAErC+iQ,EAAS9nQ,UAAU31C,IAAIu4S,IACvB4B,EAAO1rN,KAAK,CAAEh/G,KAAM,SAAUw8B,SAAU,MAEhD,EAOAktS,EAAQxwU,UAAUmP,OAAS,WACvBhL,KAAK+nE,aACL/nE,KAAK+wU,gBACL/wU,KAAK8pS,aACL9pS,KAAKm/R,gBACT,EACAktC,EAAQxwU,UAAUksE,WAAa,WAC3B,IAAI7G,EAAQ8yM,GAAWh0Q,KAAKkhE,OACxBC,EAAS6yM,GAAWh0Q,KAAKmhE,QACH,SAAtBqrN,GAAQ5vN,KAAKj6D,MAAmC,SAAhB3C,KAAKmhE,QAA2C,aAAtBnhE,KAAKuuU,cAC/DnS,GAASp8T,KAAK9C,QAAS,CAAE,OAAUikE,IAEvCi7P,GAASp8T,KAAK9C,QAAS,CAAE,MAASgkE,IAClC,IAAI8vQ,EAAW,CACX,KAAQ,UAAW,gBAAiB,QACpC,mBAAqBhxU,KAAK2tU,WAA4B,WAAf,cAE3Cr/T,GAAWtO,KAAK9C,QAAS8zU,GACrBhxU,KAAK+0S,UACL5lB,GAAS,CAACnvR,KAAK9C,SAAU8C,KAAK+0S,SAASziS,MAAM,KAErD,EACA+5T,EAAQxwU,UAAUk1U,cAAgB,WAC9B,IAAI1hD,EAAMrvR,KAAK9C,QACf8C,KAAKmtU,QAAW99C,EAAIxrR,SAASF,OAAS,EAAK0rR,EAAIriR,cAAc,OAAS,KACtEhN,KAAK4uU,WAAa,CAAEC,MAAO,GAAIC,QAAS,GAAIC,OAAQ,IACpD/uU,KAAKixU,cACLjxU,KAAKkxU,cACT,EACA7E,EAAQxwU,UAAUq1U,aAAe,WAC7BlxU,KAAKmxU,qBACDnxU,KAAKstU,WACLttU,KAAKoxU,kBAELpxU,KAAKqtU,QAAUrtU,KAAKqtU,OAAOnwU,QAAQm0U,kBAAoB,GAAKrxU,KAAKsxU,kBAAkBtxU,KAAK9C,QAAS8C,KAAKqtU,OAAOnwU,UAC7G8C,KAAKovU,aAAapvU,KAAKqtU,OAAOnwU,SAAS,GAE3C8C,KAAKkgC,WACT,EACAmsS,EAAQxwU,UAAU01U,WAAa,SAAUj5Q,EAAOk5Q,GAC5C,IAAIC,EACAC,EACC1xU,KAAK2uU,UACN3uU,KAAK2uU,QAAU,IAEnB,IAAK,IAAI9pU,EAAI,EAAGA,EAAIyzD,EAAM30D,OAAQkB,IAC9B4sU,EAAYzxU,KAAK2xU,mBAAmBr5Q,EAAM/gD,SAAS1S,EAAE/I,WAAY,KAAM+I,IAC9B,IAArC7E,KAAK2uU,QAAQz/T,QAAQuiU,IACrBzxU,KAAK2uU,QAAQ5rU,KAAK0uU,GAEjBzxU,KAAKstU,WACNttU,KAAK4xU,cAAct5Q,EAAM/gD,SAAS1S,EAAE/I,WAAY,KAAM01U,EAAY3sU,IAEtE6sU,EAAWF,EAAWxkU,cAAc,cAAgBsrD,EAAM/gD,SAAS1S,EAAE/I,WAAY,KAAK+1U,MAAMpkU,iBAElF6qD,EAAM/gD,SAAS1S,EAAE/I,WAAY,KAAKg2U,mBAAoE,SAA/Cx5Q,EAAM/gD,SAAS1S,EAAE/I,WAAY,KAAK+gB,UAC3F7c,KAAK4uU,YAAYt2Q,EAAM/gD,SAAS1S,EAAE/I,WAAY,KAAK+1U,MAAQ,KAAKpkU,eAAe1K,KAAK0uU,GAExFC,EAASz6T,YAAYw6T,IAGrBD,EAAWv6T,YAAYw6T,GAG/B,GAAIzxU,KAAKurT,QAAS,CAEdvrT,KAAK0oN,OAAO,gCAAiC1oN,KAAiB,SAC9DA,KAAK8/R,sBACT,CACJ,EAKAusC,EAAQxwU,UAAUk2U,kBAAoB,WAClC,IAAI1iD,EAAMrvR,KAAK9C,QACX8C,KAAK2tU,YACLt+C,EAAIxmN,UAAUxE,OAAOimQ,IACrBtqU,KAAK2tU,YAAa,EACE,SAAhB3tU,KAAKmhE,QAAqC,SAAhBnhE,KAAKmhE,SAC/BkuN,EAAIn+Q,MAAMiwD,OAASnhE,KAAKmhE,QAE5BkuN,EAAIt4Q,aAAa,mBAAoB,gBAGrCs4Q,EAAIxmN,UAAU31C,IAAIo3S,IAClBtqU,KAAK2tU,YAAa,EAClBt+C,EAAIt4Q,aAAa,mBAAoB,YACrCqlT,GAASp8T,KAAK9C,QAAS,CAAE,OAAU82Q,GAAWh0Q,KAAKmhE,QAAS,MAAS6yM,GAAWh0Q,KAAKkhE,UAEzFlhE,KAAKkvU,cACLlvU,KAAKgyU,iBACT,EACA3F,EAAQxwU,UAAUo2U,WAAa,SAAU/0U,EAASg1U,IACzClyU,KAAK0tU,cAAgB1tU,KAAK44B,cAAc17B,EAASg1U,EAAW,MACzDlyU,KAAKstU,WACLttU,KAAK9C,QAAQ8P,cAAc,IAAMu9T,GAAY,KAAOa,IAAgB7nN,gBAAgB,SAEpFvjH,KAAK2tU,WACL3tU,KAAK0tU,aAAe,IAAI5E,GAAQ,CAAEpD,WAAY1lU,KAAK0lU,WAAY1nC,UAAWh+R,KAAKg+R,WAAak0C,EAAW,IAGvGlyU,KAAK0tU,aAAe,IAAI/I,GAAQ,CAAEe,WAAY1lU,KAAK0lU,WAAY1nC,UAAWh+R,KAAKg+R,WAAak0C,EAAW,IAEvGlyU,KAAK+0S,UACL5lB,GAAS,CAAC+iD,EAAW,IAAKlyU,KAAK+0S,SAASziS,MAAM,MAElDtS,KAAKqkE,OAAOrkE,KAAK0tU,aAAaxwU,QAASmuU,IACvCjP,GAASp8T,KAAK9C,QAAS,CAAE2f,SAAU,WAE3C,EACAwvT,EAAQxwU,UAAUs2U,aAAe,SAAU75Q,GACvC,IAEIpnD,EAFApL,EAAQ9F,KACRkhE,EAAQ,EAUZ,MARA,GAAGrsD,MAAM9Y,KAAK+7E,GAAU,IAAM0yP,GAAUlyQ,IAAQt6D,SAAQ,SAAU0+H,GAC1Dn8B,GAAUm8B,KACVxrH,EAAQ/J,OAAOghE,iBAAiBu0D,GAChCx7D,GAASp7D,EAAM6nU,WAAajxM,EAAG+gE,aAAe/gE,EAAG8gE,YACjDt8H,GAASpiC,WAAWh5B,EAAM6nU,WAAaz8T,EAAMgvL,UAAYhvL,EAAMwyR,aAC/DxiO,GAASpiC,WAAWh5B,EAAM6nU,WAAaz8T,EAAMyyR,aAAezyR,EAAMivL,YAE1E,IACOj/H,CACX,EACAmrQ,EAAQxwU,UAAUu2U,gBAAkB,SAAUX,GAC1C,IAAIY,EAAYryU,KAAK2tU,WAAc,qBAAuB,qBAC1D,OAAO8D,EAAUzkU,cAAcqlU,EACnC,EACAhG,EAAQxwU,UAAU+8B,cAAgB,SAAU17B,EAASu0U,GACjD,GAAI7xB,GAAM1iT,IAAY0iT,GAAM6xB,KAAelxO,GAAUrjG,GACjD,OAAO,EAEX,IAAIo1U,EAAWtyU,KAAK2tU,WAAazwU,EAAQugM,aAAevgM,EAAQsgM,YAC5D+0I,EAAYvyU,KAAK2tU,WAAa8D,EAAUh0I,aAAeg0I,EAAUj0I,aACjEx9L,KAAKstU,WAAattU,KAAK0tU,cAAiB4E,IAAaC,KACrDA,EAAYvyU,KAAKmyU,aAAanyU,KAAK0tU,aAAe1tU,KAAKoyU,gBAAgBX,GAAaA,IAExF,IAAIe,EAASt1U,EAAQ8P,cAAc,IAAMk+T,IACrCuH,EAAYv1U,EAAQ8P,cAAc,IAAMm+T,IACxCuH,EAAc,EAOlB,OANIF,EACAE,EAAc1yU,KAAK2tU,WAAa6E,EAAO/0I,aAAe+0I,EAAOh1I,YAExDi1I,IACLC,EAAc1yU,KAAK2tU,WAAwC,EAA1B8E,EAAUh1I,aAA+C,EAAxBg1I,EAAUj1I,aAE5E+0I,EAAYD,EAAWI,CAM/B,EAQArG,EAAQxwU,UAAUm2U,gBAAkB,WAChChyU,KAAKm/S,QACT,EACAktB,EAAQxwU,UAAU82U,aAAe,SAAUT,GACnClyU,KAAKstU,YACLttU,KAAKkzB,IAAIg/S,EAAY7G,IACrBrrU,KAAKoxU,kBAEb,EACA/E,EAAQxwU,UAAUs1U,mBAAqB,WACnC,IAAI9hD,EAAMrvR,KAAK9C,QACXg1U,EAAa7iD,EAAIriR,cAAc,IAAMu9T,IACrCqI,EAAgB5yU,KAAK6tU,cAAgB,EACzC,GAAIx+C,GAAOA,EAAIxrR,SAASF,OAAS,EAM7B,OALA3D,KAAK6yU,UAAYxjD,EAAI7xF,YACrBx9L,KAAKqkE,OAAOrkE,KAAK9C,QAAS,aACA,SAAtBsvR,GAAQ5vN,KAAKj6D,MAAmC,SAAhB3C,KAAKmhE,SACrCkuN,EAAIn+Q,MAAMiwD,OAAS,IAEfnhE,KAAKuuU,cACT,IAAK,aACG3uB,GAAM5/S,KAAK0tU,eACX1tU,KAAKiyU,WAAW5iD,EAAK,GAAGx6Q,MAAM9Y,KAAKszR,EAAIlhF,uBAAuBo8H,MAElE,MACJ,IAAK,QACDvqU,KAAKkzB,IAAIlzB,KAAK9C,QAAS,aACnB8C,KAAKstU,WACLttU,KAAK8yU,qBAEL9yU,KAAK44B,cAAcy2P,EAAK6iD,IAAeU,IACvC5yU,KAAK+yU,sBAAsB1jD,GAE/BrvR,KAAK2yU,aAAaT,GAClB,MACJ,IAAK,WACDlyU,KAAKkzB,IAAIg/S,EAAYrG,IACjB7rU,KAAK44B,cAAcy2P,EAAK6iD,IAAelyU,KAAKstU,YAC5CttU,KAAK8yU,oBACL9yU,KAAKkzB,IAAIg/S,EAAYpG,KAEE,WAAvBz8C,EAAIn+Q,MAAM2L,WACVwyQ,EAAIn+Q,MAAM2L,SAAW,IAEC,SAAtB2vQ,GAAQ5vN,KAAKj6D,MAAwC,SAArB0sR,EAAIn+Q,MAAMiwD,SAC1CkuN,EAAIn+Q,MAAMiwD,OAAS,QAEvB,MACJ,IAAK,WACDnhE,KAAKkzB,IAAIlzB,KAAK9C,QAAS+uU,KACnBjsU,KAAK44B,cAAcy2P,EAAK6iD,IAAeU,KACnC5yU,KAAKstU,WACLttU,KAAK8yU,oBAET9yU,KAAK+yU,sBAAsB1jD,IAE/BrvR,KAAK2yU,aAAaT,GAGlC,EACA7F,EAAQxwU,UAAUk3U,sBAAwB,SAAU1jD,GAChDrvR,KAAKgzU,eAAe3jD,EAAK,GAAGx6Q,MAAM9Y,KAAK+7E,GAAU,IAAMyyP,GAAY,KAAOC,GAAUn7C,KAKpF/gR,GAAWtO,KAAK9C,QAAQ8P,cAAc,IAAMk+T,IAJ7B,CACX,SAAY,IAAK,KAAQ,SAAU,gBAAiB,OACpD,aAAc,YAGtB,EACAmB,EAAQxwU,UAAUqkC,UAAY,WAC1B,IAAIhjC,EAAU8C,KAAK9C,QACf+1U,EAAU,GAAGp+T,MAAM9Y,KAAKmB,EAAQ2Q,iBAAiB,IAAM48T,KACvDyI,EAAWh2U,EAAQ8P,cAAc,IAAM++T,IACvCoH,EAAYj2U,EAAQ8P,cAAc,IAAMg/T,IACxCoH,EAAsC,aAAtBpzU,KAAKuuU,aAA8B2E,EAAWC,EAC5C,OAAlBC,IAC0B,aAAtBpzU,KAAKuuU,aACL6E,EAAcvqQ,UAAUxE,OAAO0nQ,IAEJ,aAAtB/rU,KAAKuuU,cACV6E,EAAcvqQ,UAAUxE,OAAO2nQ,KAGvC,IAAK,IAAInnU,EAAI,EAAGA,GAAKouU,EAAQtvU,OAAS,EAAGkB,IACjCouU,EAAQ17T,SAAS1S,EAAE/I,WAAY,KAAK4jM,WAAa,IAAyD,IAAnDuzI,EAAQ17T,SAAS1S,EAAE/I,WAAY,KAAK4jM,aACjE,aAAtB1/L,KAAKuuU,aACL0E,EAAQ17T,SAAS1S,EAAE/I,WAAY,KAAK+sE,UAAU31C,IAAI64S,IAEvB,aAAtB/rU,KAAKuuU,cACV0E,EAAQ17T,SAAS1S,EAAE/I,WAAY,KAAK+sE,UAAU31C,IAAI84S,IAIlE,EACAK,EAAQxwU,UAAUm3U,eAAiB,SAAU3jD,EAAKgkD,GAC9C,IAAIC,EAAWjkD,EAAIriR,cAAc,IAAMk+T,IACnChwO,EAAWl7F,KAAK2tU,WACf2F,GACDtzU,KAAKuzU,gBAAgBlkD,GAEzBikD,EAAWjkD,EAAIriR,cAAc,IAAMk+T,IACnC,IAAIsI,EAAet4O,EAAWo4O,EAAS71I,aAAe61I,EAAS91I,YAC3D80I,GAAap3O,EAAWm0L,EAAI5xF,aAAe4xF,EAAI7xF,aAAgBg2I,EACnExzU,KAAK9C,QAAQ2rE,UAAUxE,OAAO,SAC9B+3P,GAASp8T,KAAK9C,QAAS,CAAE4lC,UAAW,YACpC9iC,KAAKyzU,cAAcpkD,EAAKgkD,EAAUf,GAAU,GACxCtyU,KAAKg+R,WACLh+R,KAAK9C,QAAQ2rE,UAAU31C,IAAI,SAE/BlzB,KAAK9C,QAAQgU,MAAMgoS,eAAe,aAClCl5S,KAAK0zU,aACT,EACArH,EAAQxwU,UAAU83U,iBAAmB,SAAUC,EAASC,EAAUxkD,EAAKykD,EAAWC,GAC9E,IAAI72U,EAAU02U,EAAQ12U,QAClB82U,EAAY,GAAGn/T,MAAM9Y,KAAK+7E,GAAU,IAAM0zP,GAAWtuU,EAAQ8P,cAAc,IAAMu9T,MACjF57T,EAAQmpE,GAAU,IAAMkzP,GAAkB37C,GAC1C4kD,EAAY,EACZC,EAAU,EACdF,EAAUh2U,SAAQ,SAAU0+H,EAAI9tH,GAC5BD,EAAQmpE,GAAU,IAAMkzP,GAAkB37C,GACtC3yJ,EAAG7zD,UAAUsJ,SAAS64P,KAAqBr8T,EAAMhL,OAAS,EACtDiwU,EAAQO,UAAYxlU,EAAMhL,OAASiL,GACnCygR,EAAInxH,aAAaxhC,EAAI/tH,EAAM4I,SAAS3I,EAAM9S,WAAY,QACpDo4U,IAGF7kD,EAAInxH,aAAaxhC,EAAI2yJ,EAAIxrR,SAAS8K,EAAMhL,WACtCuwU,GAGDx3M,EAAG7zD,UAAUsJ,SAAS64P,KAItB4I,EAAQO,UAAYz3M,EAAG7zD,UAAUsJ,SAAS84P,KAAoB57C,EAAIxrR,SAASF,OAAS,GAAsB,IAAjBgL,EAAMhL,QAHpG0rR,EAAInxH,aAAaxhC,EAAI2yJ,EAAI74J,cACvB09M,GAMGx3M,EAAG7zD,UAAUsJ,SAAS84P,IAC3B4I,EAAS9wU,KAAK25H,GAETk3M,EAAQO,UACb9kD,EAAInxH,aAAaxhC,EAAI2yJ,EAAI/hR,WAAW2mU,EAAYC,MAC9CD,GAGF5kD,EAAIp4Q,YAAYylH,GAEhBA,EAAG7zD,UAAUsJ,SAASs4P,IACtBrO,GAAS1/L,EAAI,CAAE/Y,QAAS,GAAIxiD,OAAQ4yQ,EAAY,OAGhD3X,GAAS1/L,EAAI,CAAE/Y,QAAS,GAAIxiD,OAAQ2yQ,EAAY,MAExD,IACAD,EAAS71U,SAAQ,SAAU0+H,GACvB2yJ,EAAIp4Q,YAAYylH,EACpB,IAEA,IADA,IAAIiyM,EAAU72P,GAAU,IAAM0yP,GAAUttU,EAAQ8P,cAAc,IAAMu9T,KAC3D1lU,EAAI8pU,EAAQhrU,OAAS,EAAGkB,GAAK,EAAGA,IAAK,CAC1C,IAAIuvU,EAAczF,EAAQp3T,SAAS1S,EAAE/I,WAAY,KACjD,IAAIs4U,EAAYvrQ,UAAUsJ,SAASs4P,KAAwC,aAAtBzqU,KAAKuuU,aAItD,MAHAnS,GAASgY,EAAa,CAAEzwN,QAAS,QAKzC,CACJ,EACA0oN,EAAQxwU,UAAU63U,YAAc,WAC5B,IACIK,EACAM,EAFAn3U,EAAU8C,KAAK9C,QAGO,aAAtB8C,KAAKuuU,eACL8F,EAAUn3U,EAAQ8P,cAAc,IAAMy9T,GAAgB,SAAWe,GAAY,KAC7EuI,EAAsC,SAAzB72U,EAAQgU,MAAMiwD,QAA8C,KAAzBjkE,EAAQgU,MAAMiwD,OAAiB,KAAOkzQ,EAAQ52I,cAElG,IAEI4xF,EAFA4jD,EAAU/1U,EAAQ8P,cAAc,IAAMw9T,GAAW,SAAWC,GAAgB,UAAYe,GAAY,KACpGsI,EAAsC,SAAzB52U,EAAQgU,MAAMiwD,QAA8C,KAAzBjkE,EAAQgU,MAAMiwD,OAAiB,KAAQ8xQ,GAAWA,EAAQx1I,aAG9G,GAAIxrH,GAAO,IAAM/0E,EAAQ+0D,GAAK,UAAYs5Q,GAAgBruU,GACtDmyR,EAAMp9M,GAAO,IAAM/0E,EAAQ+0D,GAAK,UAAYs5Q,GAAgBruU,OAE3D,CACD,IAAIo3U,EAAYt0U,KAAKoN,cAAc,MAAO,CACtC6kD,GAAI/0D,EAAQ+0D,GAAK,SAAUmd,UAAWm8P,GAAiB,IAAMW,KAE7DqI,EAAWv0U,KAAKoN,cAAc,MAAO,CAAE6kD,GAAI/0D,EAAQ+0D,GAAK,SAAUmd,UAAWm8P,KACjFl8C,EAA4B,aAAtBrvR,KAAKuuU,aAA8B+F,EAAYC,CACzD,CACAv0U,KAAK2zU,iBAAiB3zU,KAXP,GAWuBqvR,EAAKykD,EAAWC,GACtD/zU,KAAKw0U,UAAUt3U,EAASmyR,EAC5B,EACAg9C,EAAQxwU,UAAUi1U,kBAAoB,WAClC,MAA8B,aAAtB9wU,KAAKuuU,cAAwG,eAAzEpnU,OAAOghE,iBAAiBnoE,KAAK9C,SAASkrE,iBAAiB,cAC/FpoE,KAAK9C,QAAQywI,aAAe3tI,KAAK9C,QAAQugM,YACjD,EACA4uI,EAAQxwU,UAAU24U,UAAY,SAAUt3U,EAASmyR,GAC7C,GAAKrvR,KAAKqtU,OAsCL,CACD,IAAIkH,EAAWv0U,KAAKqtU,OAAOnwU,QAC3Bk/T,GAASmY,EAAU,CAAEnkQ,UAAW,GAAIuzC,QAAS,UAC7Cy4M,GAASmY,EAAU,CAAEnkQ,UAAWmkQ,EAAS92I,aAAe,KAAM95E,QAAS,IAC3E,KA1CkB,CACdzmH,EAAQ+Z,YAAYo4Q,GAChBrvR,KAAK+0S,UACL5lB,GAAS,CAACE,GAAMrvR,KAAK+0S,SAASziS,MAAM,MAExC8pT,GAASp8T,KAAK9C,QAAS,CAAE2f,SAAU,KACnC,IAAI43T,EAAYttU,OAAOghE,iBAAiBnoE,KAAK9C,SACzCmuH,EAAQ,IAAI6uL,GAAM,KAAM,CACxBc,SAAUh7S,KAAK9C,QACf43D,QAAU90D,KAAK2tU,WAAc,EAAI3tU,KAAK8wU,oBACtC9yC,UAAWh+R,KAAKg+R,UAChBj9M,KAAM/gF,KAAK2sU,UAAU/rQ,KAAK5gE,MAC1B++D,MAAO/+D,KAAK4sU,WAAWhsQ,KAAK5gE,MAC5Bi8S,UAAW,CAAEv8I,EAAG1/J,KAAKytU,gBAAkB,OAAS,QAChDz5T,SAAUhU,KAAKg+R,UAAY,CAAEviP,EAAG,OAAQikH,EAAG,OAAU,CAAEjkH,EAAG,QAASikH,EAAG,SAa1E,GAX0B,aAAtB1/J,KAAKuuU,eACLljN,EAAMnqD,MAAQpiC,WAAW21S,EAAUvzQ,OAAqD,EAA1CpiC,WAAW21S,EAAUC,kBACnErpN,EAAMx2D,QAAU,GAEpBw2D,EAAM+yK,SAAS/O,GACflB,GAAaj7P,IAAIvmB,SAAU,SAAU3M,KAAKyuU,SAAS7tQ,KAAK5gE,OACxDmuR,GAAaj7P,IAAIvmB,SAAU,SAAU3M,KAAKyuU,SAAS7tQ,KAAK5gE,OACxDqrH,EAAMnuH,QAAQgU,MAAMk/D,UAAYi7C,EAAMnuH,QAAQugM,aAAe,KACzDz9L,KAAK2tU,aACLtiN,EAAMnuH,QAAQgU,MAAMyrE,WAAa,UAEjC38E,KAAK4tU,eAAgB,CACrB,IAAI+C,EAAW3wU,KAAK9C,QAAQ8P,cAAc,IAAMk+T,IAChDyF,EAAS9nQ,UAAU31C,IAAIu4S,IACvB5iQ,GAAU8nQ,EAAS5gD,kBAAmB,CAAC26C,IAAgB,CAACC,KACxD3qU,KAAK9C,QAAQ8P,cAAc,IAAMk/T,IAAqBrjQ,UAAU31C,IAAI03S,GACxE,MAEIv/M,EAAM7J,OAEVxhH,KAAKqtU,OAAShiN,CAClB,CAMJ,EACAghN,EAAQxwU,UAAU84U,iBAAmB,SAAUhrM,GACjB,aAAtB3pI,KAAKuuU,eACD5kM,EACA3pI,KAAKkzB,IAAIlzB,KAAK9C,QAASivU,IAGvBnsU,KAAKqkE,OAAOrkE,KAAK9C,QAASivU,IAGtC,EAEAE,EAAQxwU,UAAU8wU,UAAY,SAAU9gU,GACpC,IAAIwhU,EAASrtU,KAAKqtU,OACbrtU,KAAK2tU,aACNN,EAAOv4Q,QAAU90D,KAAK8wU,oBACtBzD,EAAOr7C,YAEX,IAAIuiD,EAAWv0U,KAAKqtU,OAAOnwU,QACvB03U,EAAU50U,KAAKqtU,OAAOnwU,QAAQssS,cAC9BmnC,EAAWiE,EAAQ5nU,cAAc,IAAMk+T,IAC3CyF,EAAS55T,aAAa,gBAAiB,QACvCqlT,GAASiR,EAAOnwU,QAAS,CAAEikE,OAAQ,OAAQiP,UAAW,KACtDi9P,EAAOnwU,QAAQgU,MAAMk/D,UAAYi9P,EAAOnwU,QAAQugM,aAAe,KACrC,aAAtBz9L,KAAKuuU,eACLlB,EAAOnwU,QAAQgU,MAAM08D,UAAY,IAErC,IAAIinQ,EAAcN,EAAS90I,UAAY80I,EAAS92I,aAAek4G,GAAkBi/B,GAAS3pQ,IACtF6pQ,EAAUnE,EAAS5gD,kBACvB4gD,EAAS9nQ,UAAU31C,IAAIu4S,IACvB5iQ,GAAUisQ,EAAS,CAACpK,IAAgB,CAACC,KACrC3qU,KAAK20U,kBAAiB,GACtB,IAAI/M,EAAYhoB,GAAMz4S,OAAOu0S,SAAW,EAAIv0S,OAAOu0S,QACnD,IAAK17S,KAAK2tU,YAAgBxmU,OAAOk7G,YAAculN,EAAaiN,GAAiB70U,KAAK9C,QAAQuiM,UAAY80I,EAAS92I,aAAe,CAC1H,IAAIs3I,EAAkBR,EAAS92I,cAAiBo3I,EAAc1tU,OAAOk7G,YAAculN,EAAa,GAChGyF,EAAOlsQ,OAAS4zQ,EAAiB,KACjC,IAAK,IAAIlwU,EAAI,EAAGA,GAAK0vU,EAASlD,kBAAmBxsU,IAAK,CAClD,IAAIwqR,EAAMklD,EAAS1wU,SAAS0T,SAAS1S,EAAE/I,WAAY,KACnD,GAAIuzR,EAAI5vF,UAAY4vF,EAAI5xF,aAAes3I,EAAgB,CACnDA,EAAiB1lD,EAAI5vF,UACrB,KACJ,CACJ,CACA28H,GAASiR,EAAOnwU,QAAS,CAAEkzE,UAAW2kQ,EAAiB,MAC3D,MACK,GAAI/0U,KAAK2tU,WAAY,CACtB,IAAIqH,EAAYh1U,KAAK9C,QAAQ0tE,wBAC7BwxP,GAASiR,EAAOnwU,QAAS,CAAEkzE,UAAY4kQ,EAAU/pQ,IAAMjrE,KAAK9C,QAAQugM,aAAgB,KAAMsH,OAAQ,EAAGpoH,WAAY,IACrH,CACA,GAAI0wP,EAAQ,CACR,IAAI4H,EAAcV,EAAS3pQ,wBACvBqqQ,EAAY10I,MAAQ5zL,SAASI,gBAAgB0gI,aAAewnM,EAAY/zQ,MAAQ0zQ,EAAQhqQ,wBAAwB1J,QAChHmsQ,EAAOpxB,UAAY,CAAEv8I,EAAG,QACxB2tK,EAAOr7C,YAEXq7C,EAAOjzB,iBACX,CACJ,EAEAiyB,EAAQxwU,UAAU+wU,WAAa,SAAU/gU,GACrC,IACI8kU,EADU3wU,KAAK9C,QACI8P,cAAc,IAAMk+T,IAC3CyF,EAAS55T,aAAa,gBAAiB,SACvC,IAAI+9T,EAAUnE,EAAS5gD,kBACvB4gD,EAAS9nQ,UAAUxE,OAAOonQ,IAC1B5iQ,GAAUisQ,EAAS,CAACnK,IAAgB,CAACD,KACrC1qU,KAAK20U,kBAAiB,EAC1B,EACAtI,EAAQxwU,UAAU43U,cAAgB,SAAUpkD,EAAK6lD,EAAO5C,EAAU6C,GAkB9D,IAjBA,IAGIC,EAHAC,EAAcr1U,KAAK6tU,cAAgB,EAEnCyH,EAAShD,EAGTiD,EAAW,EACXC,EAAY,EACZC,EAAe,EACfC,EAAa,SAAUrmD,EAAK3yR,GAC5B,IAAIi5U,GAAO,EAMX,OALAj5U,EAAIsB,SAAQ,SAAU43U,GACdvmD,EAAIxmN,UAAUsJ,SAASyjQ,KACvBD,GAAO,EAEf,IACOA,CACX,EACS9wU,EAhBCqwU,EAAMvxU,OAgBG,EAAGkB,GAAK,EAAGA,IAAK,CAC/B,IAAIgxU,OAAO,EACPC,EAAa3uU,OAAOghE,iBAAiB+sQ,EAAM39T,SAAS1S,EAAE/I,WAAY,MAClEkE,KAAK2tU,YACLkI,EAAO/2S,WAAYg3S,EAAY51I,WAC/B21I,GAAQ/2S,WAAYg3S,EAAYnyC,gBAGhCkyC,EAAO/2S,WAAYg3S,EAAYpyC,aAC/BmyC,GAAQ/2S,WAAYg3S,EAAY31I,aAEpC,IAAI41I,EAAcb,EAAM39T,SAAS1S,EAAE/I,WAAY,OAASkE,KAAK2uU,QAAQ,GACjEoH,IACA/1U,KAAKg2U,YAAcH,GAEvBT,EAAYp1U,KAAK2tU,WAAauH,EAAM39T,SAAS1S,EAAE/I,WAAY,KAAK2hM,aAAey3I,EAAM39T,SAAS1S,EAAE/I,WAAY,KAAK0hM,YACjH,IAAIy4I,EAAWF,EAAeX,EAAYS,EAAQT,EAmBlD,GAlBIM,EAAWR,EAAM39T,SAAS1S,EAAE/I,WAAY,KAAM,CAAC6vU,MAAgB0J,IAC/DH,EAAM39T,SAAS1S,EAAE/I,WAAY,KAAK+sE,UAAU31C,IAAIs4S,IAC5CxrU,KAAK2tU,WACLvR,GAAS8Y,EAAM39T,SAAS1S,EAAE/I,WAAY,KAAM,CAAE6nH,QAAS,OAAQ/1C,UAAWqoQ,EAAW,OAGrF7Z,GAAS8Y,EAAM39T,SAAS1S,EAAE/I,WAAY,KAAM,CAAE6nH,QAAS,OAAQj2C,SAAUuoQ,EAAW,OAExFR,KAEAz1U,KAAK2tU,WAEAuH,EAAM39T,SAAS1S,EAAE/I,WAAY,KAAK2jM,UAAYy1I,EAAM39T,SAAS1S,EAAE/I,WAAY,KAAK2hM,aAAeo4I,EAAQvD,EAIvG4C,EAAM39T,SAAS1S,EAAE/I,WAAY,KAAK4jM,WAAaw1I,EAAM39T,SAAS1S,EAAE/I,WAAY,KAAK0hM,YAAcq4I,EAAQvD,EAE/F,CACb,GAAI4C,EAAM39T,SAAS1S,EAAE/I,WAAY,KAAK+sE,UAAUsJ,SAASs4P,KACrD,GAA0B,aAAtBzqU,KAAKuuU,aAA6B,CAClC,GAAIiH,IAAcC,EAEVC,EADAQ,EAAShB,EAAM39T,SAAS1S,EAAE/I,WAAY,KACnB,CAAC2uU,GAAeiB,OACnCwJ,EAAM39T,SAAS1S,EAAE/I,WAAY,KAAK+sE,UAAU31C,IAAIs4S,IAChDiK,KAGRD,GACJ,MACK,GAA0B,UAAtBx1U,KAAKuuU,aAA0B,CAEhC,IAAI2H,EADR,GAAIX,EAAW,GAAKC,IAAcC,EAE1BC,EADAQ,EAAShB,EAAMrwU,EAAI2wU,GAAaD,EAAW,IACxB,CAAC9K,GAAeiB,MACnCtP,GAAS8Z,EAAQ,CAAEvyN,QAAS,SAGpC4xN,IACAC,EAAY,EACZC,EAAe,CACnB,OAGAD,IAEAN,EAAM39T,SAAS1S,EAAE/I,WAAY,KAAK+sE,UAAUsJ,SAAS64P,KAAqBmK,GAIpEO,EAAWR,EAAM39T,SAAS1S,EAAE/I,WAAY,KAAM,CAAC2uU,GAAeiB,KAHpE4G,IAActyU,KAAK2tU,WAAauH,EAAM39T,SAAS1S,EAAE/I,WAAY,KAAK2hM,aAC9Dy3I,EAAM39T,SAAS1S,EAAE/I,WAAY,KAAK0hM,aAAgBq4I,GAGtDX,EAAM39T,SAAS1S,EAAE/I,WAAY,KAAK+sE,UAAU31C,IAAIs4S,IAC5CxrU,KAAK2tU,WACLvR,GAAS8Y,EAAM39T,SAAS1S,EAAE/I,WAAY,KAAM,CAAE6nH,QAAS,OAAQ/1C,UAAWqoQ,EAAW,OAGrF7Z,GAAS8Y,EAAM39T,SAAS1S,EAAE/I,WAAY,KAAM,CAAE6nH,QAAS,OAAQj2C,SAAUuoQ,EAAW,OAExFR,IAMR,CACJ,CACA,GAAIN,EAAK,CACL,IAAIgB,EAAWr+P,GAAU,IAAM0yP,GAAW,SAAWgB,GAAY,IAAKxrU,KAAK9C,SAC3E8C,KAAKyzU,cAAcpkD,EAAK8mD,EAAUb,GAAQ,EAC9C,CACJ,EACAjJ,EAAQxwU,UAAU03U,gBAAkB,SAAUr2U,GAC1C,IAAI+0D,EAAK/0D,EAAQ+0D,GAAGj1D,OAAO,QACvBoyE,EAAY,KAAOlyE,EAAQ+0D,GAAGj1D,OAAO,kBACzCoyE,EAAkC,aAAtBpvE,KAAKuuU,aAA8Bn/P,oBAAoCA,EACnF,IAAI02P,EAAM9lU,KAAKoN,cAAc,MAAO,CAAE6kD,GAAIA,EAAImd,UAAWA,IAC/B,SAAtBo9M,GAAQ5vN,KAAKj6D,MAAyC,SAAtB6pR,GAAQ5vN,KAAKj6D,MAC7CmjU,EAAIj9P,UAAU31C,IAAI,cAEtB,IAAIkzS,EAAUpmU,KAAKoN,cAAc,MAAO,CAAEgiE,UAAWu7P,GAAgB,aACrE7E,EAAI7uT,YAAYmvT,GAChBN,EAAI/uT,aAAa,WAAY,KAC7B+uT,EAAI/uT,aAAa,OAAQ,UACzB7Z,EAAQ+Z,YAAY6uT,EACxB,EACAuG,EAAQxwU,UAAUu6U,WAAa,SAAUlB,EAAOmB,EAAMC,EAAQ55M,EAAI65M,EAAKC,EAAOC,EAAKz1K,GAC/E,IAAI01K,EAAc11K,EACdguK,EAAShvU,KAAKqtU,OAAOnwU,QACrB6J,EAAQ,IAAMyjU,GAAW,SAAWC,GAAgB,UAAYO,GAAmB,IACnF2L,EAAY7+P,GAAU,IAAM0zP,GAAY,SAAWR,GAAmB,IAAKgE,GAAQrrU,OACnF+xU,EAAa,SAAUrmD,EAAK3yR,GAC5B,OAAO2yR,EAAIxmN,UAAUsJ,SAASz1E,EAClC,EACA,GAAuC,IAAnCo7E,GAAU/wE,EAAOmuU,GAAOvxU,OAAc,CACtC,IAAIizU,EAAS1B,EAAMrxU,SAASwyU,GAAQA,EAAOC,GAAU,GACjDO,GAAgBj3B,GAAMg3B,IAAWlB,EAAWkB,EAAQlL,IACxD,IAAM9rB,GAAMg3B,IAAWlB,EAAWkB,EAAQnM,MAAmBlqO,GAAUq2O,IAAYC,EAAa,CAE5FD,EAAO1lU,MAAMyyG,QAAU,UACvB,IAAImzN,EAAcF,EAAOp5I,YAAyE,EAA1D1+J,WAAW33B,OAAOghE,iBAAiByuQ,GAAQlzC,aAC/EqzC,EAAUH,EAAOI,uBAChBR,EAAQM,EAAeL,GAAOF,GAC/BrB,EAAMh3K,aAAaxhC,EAAIw4M,EAAMrxU,SAAUwyU,EAAOK,GAAgBL,EAAOC,KAChE12B,GAAMm3B,KACPA,EAAQ7lU,MAAMyyG,QAAU,KAIxBozN,EAAQluQ,UAAUsJ,SAASs4P,MAC3BsM,EAAQ7lU,MAAMyyG,QAZL,QAejBizN,EAAO1lU,MAAMyyG,QAAU,EAC3B,MAEIuxN,EAAMh3K,aAAaxhC,EAAIw4M,EAAMrxU,SAAUwyU,EAAOK,GAAgBL,EAAOC,IAE7E,MAEIpB,EAAMh3K,aAAaxhC,EAAIw4M,EAAMrxU,SAAUwyU,EAAOK,EAAeC,GAErE,EACAtK,EAAQxwU,UAAUuzU,aAAe,SAAUmF,EAAUpsU,GACjD,IAAIrC,EAAQ9F,KACRqvR,EAAMrvR,KAAK9C,QACX+5U,EAAQj3U,KAAK2tU,WACb0F,EAAWhkD,EAAIriR,cAAc,IAAMu9T,IACnCiI,EAASnjD,EAAIriR,cAAc,IAAMk+T,IACrC,IAAItrB,GAAM4yB,GAAV,CAKA,IAAI0E,EAFJ7D,EAAS9vN,gBAAgB,SACzBgxN,EAASrjU,MAAMyyG,QAAU,QAGrBuzN,EADAD,EACY5nD,EAAI5xF,cAAgB+0I,EAAO/0I,aAAe41I,EAAS51I,cAGnD4xF,EAAI7xF,aAAeg1I,EAAOh1I,YAAc61I,EAAS71I,aAEjE,IAAI25I,EAAgB,EACpB,GAAGtiU,MAAM9Y,KAAKw4U,EAAS1wU,UAAU7F,SAAQ,SAAU0+H,GAC/Cy6M,GAAiBrxU,EAAMqxU,cAAcz6M,GACrC0/L,GAAS1/L,EAAI,CAAE,SAAY,IAC/B,IACKw6M,GAAaD,EAAQzE,EAAO/0I,aAAe+0I,EAAOh1I,aAAiB25I,GAAyC,IAAvBn3U,KAAK6tU,gBAC3F1lU,GAAU,GAEdnI,KAAKo3U,gBAAgBF,EAAW3C,EAAUpsU,GAC1CosU,EAASrjU,MAAMyyG,QAAU,GACQ,IAA7B4wN,EAAS1wU,SAASF,QAAgB6uU,GAAUxyU,KAAKqtU,SACjDxrN,GAAO2wN,GACPA,EAAS,KACTxyU,KAAKqtU,OAAOllU,UACZ05G,GAAO7hH,KAAKqtU,OAAOnwU,SACnB8C,KAAKqtU,OAAS,KAzBlB,CA2BJ,EACAhB,EAAQxwU,UAAUw7U,eAAiB,SAAUzoU,EAAOykU,GAChD,IAAIiE,EAAY,GAAGziU,MAAM9Y,KAAKs3U,EAASxlU,iBAAiB,IAAM69T,KAC1D6L,EAAY,GACZzhP,EAAQ,EACZ,OAAIwhP,EAAU3zU,OAAS,GACnB2zU,EAAUt5U,SAAQ,SAAUqxR,GACxBkoD,EAAUx0U,KAAK,GAAG8R,MAAM9Y,KAAKs3U,EAASxvU,UAAUqL,QAAQmgR,GAC5D,IAKJkoD,EAAUv5U,SAAQ,SAAUtB,GACpBA,GAAOkS,GACPknF,GAER,IACOA,GAPI,CAQf,EACAu2O,EAAQxwU,UAAUy1U,kBAAoB,SAAU3vU,EAAMqtU,GAClDA,EAAO99T,MAAMyyG,QAAU,QACvB,IAAI6yN,EAAQx2U,KAAKm3U,cAAcnI,EAAOj/C,mBACtCi/C,EAAOj/C,kBAAkB7+Q,MAAMgoS,eAAe,YAC9C,IAAIs+B,EAAY71U,EAAK67L,YAAc77L,EAAKqL,cAAc,IAAMk+T,IAAa1tI,YACrEi6I,EAAe91U,EAAKqL,cAAc,IAAMu9T,IAAW/sI,YAEvD,OADAwxI,EAAO99T,MAAMgoS,eAAe,WACxBs+B,EAAahB,EAAQiB,CAI7B,EACApL,EAAQxwU,UAAUs7U,cAAgB,SAAUz6M,GACxCA,EAAGxrH,MAAM8C,SAAW,WACpB,IAAI0jU,EAAU13U,KAAK2tU,WAAajxM,EAAG+gE,aAAe/gE,EAAG8gE,YACjDm6I,EAAUj7M,EAAG1vH,cAAc,oBAC/B,GAAI0vH,EAAG7zD,UAAUsJ,SAAS,iBAAmBuqD,EAAG7zD,UAAUsJ,SAAS44P,IAAe,CAC9E,IAAI7hB,EAAMxsL,EAAG74H,SAAS,IACjB+7S,GAAM+3B,IAAYj7M,EAAG7zD,UAAUsJ,SAAS44P,IACzC4M,EAAQzmU,MAAMyyG,QAAU,QAElBi8L,GAAM+3B,IAAYj7M,EAAG7zD,UAAUsJ,SAAS24P,MAC9C6M,EAAQzmU,MAAMyyG,QAAU,SAE5BulM,EAAIh4S,MAAMw8D,SAAW,KACrBgqQ,EAAU54S,WAAY9+B,KAAK2tU,WAAiCjxM,EAAGxrH,MAAM08D,UAA7B8uD,EAAGxrH,MAAMw8D,UACjDw7O,EAAIh4S,MAAMw8D,SAAW,GACrBw7O,EAAIh4S,MAAM08D,UAAY,GACjBgyO,GAAM+3B,KACPA,EAAQzmU,MAAMyyG,QAAU,GAEhC,CACA,OAAO+zN,CACX,EACArL,EAAQxwU,UAAUu7U,gBAAkB,SAAUl2Q,EAAOqzQ,EAAUpsU,GA6D3D,IA5DA,IAEIwuU,EACA/nU,EAHAymU,EAAcr1U,KAAK6tU,cAAgB,EACnC+J,EAAY53U,KAAK2uU,QAGjB0E,EAAWrzU,KAAK9C,QAAQ8P,cAAc,IAAMu9T,IAC5CmM,EAAc,EACdnjE,EAAU,SAAU72I,GACpB,GAAIA,EAAG7zD,UAAUsJ,SAASw5P,KAAe0J,IAAgBltU,EACrD,MAAO,WAEX,IAAIuvU,EAAU92C,EAAOu2C,cAAcz6M,GAKnC,GAJIA,IAAOkkK,EAAO+tC,QAAQ,KACtB+I,GAAW92C,EAAOo1C,aAEtBt5M,EAAGxrH,MAAM8C,SAAW,KAChB0jU,EAAUx2Q,GAAS/4D,GAyCnB,MAAO,QAnCP,GALAi0T,GAAS1/L,EAAI,CAAEhvD,SAAU,GAAIvM,OAAQ,GAAIyM,UAAW,KAC/C8uD,EAAG7zD,UAAUsJ,SAAS84P,KACvBvuM,EAAG7zD,UAAUxE,OAAOmnQ,IAExB58T,EAAQgyR,EAAO+tC,QAAQz/T,QAAQwtH,GAC3BkkK,EAAO0sC,UAAW,CAClB,IAAIp4T,EAAM0rR,EAAOtoO,MAAM/gD,SAAS3I,EAAM9S,WAAY,KAAK+1U,MACvDjjU,EAAQgyR,EAAOguC,YAAY15T,EAAM,KAAKzH,eAAeyB,QAAQwtH,GAC7Dk7M,EAAYh3C,EAAOguC,YAAY15T,EAAM,KAAKzH,eAC1C4lU,EAAWzyC,EAAO1jS,QAAQ8P,cAAc,IAAMu9T,GAAN,eAAwCr1T,EAAIzH,cACxF,CACA,IAAIoqU,EAAiB,EACO,aAAxBj3C,EAAO2tC,cACPqJ,EAAU/iU,MAAM,EAAGjG,GAAO5Q,SAAQ,SAAU0+H,IACpCA,EAAG7zD,UAAUsJ,SAAS64P,KAAqBtuM,EAAG7zD,UAAUsJ,SAASs4P,OAC7D/tM,EAAG7zD,UAAUsJ,SAASs4P,MACtB/tM,EAAGxrH,MAAMyyG,QAAU,GACnBziD,GAASw7D,EAAG8gE,aAEhBq6I,IAER,IAEJnB,EAAc91C,EAAOy2C,eAAezoU,EAAOykU,GACvC32M,EAAG7zD,UAAUsJ,SAAS64P,KACtBpqC,EAAOw1C,WAAW/C,EAAUzkU,EAAOipU,EAAgBn7M,EAAIv0H,EAASuvU,EAASx2Q,EAAOw1Q,GAChFx1Q,GAASw7D,EAAG8gE,aAEG,IAAV5uL,GACLykU,EAASn1K,aAAaxhC,EAAI22M,EAAS78M,YACnCt1D,GAASw7D,EAAG8gE,cAGZm5I,EAAY7+P,GAAU,IAAMkzP,GAAkBpqC,EAAOysC,OAAOnwU,SAASyG,OACrE0vU,EAASn1K,aAAaxhC,EAAI22M,EAASxvU,SAAU+K,EAAQ8nU,EAAeC,IACpEz1Q,GAASw7D,EAAG8gE,aAEhB9gE,EAAGxrH,MAAMiwD,OAAS,EAK1B,EACIy/N,EAAS5gS,KACJmb,EAAK,EAAGpV,EAAK,GAAG8O,MAAM9Y,KAAKw4U,EAAS1wU,UAAWsX,EAAKpV,EAAGpC,OAAQwX,IAAM,CAG1E,GAAgB,UADFo4P,EADLxtQ,EAAGoV,IAGR,KACR,CACoBnb,KAAK44B,cAAc54B,KAAK9C,QAAS8C,KAAK9C,QAAQixM,uBAAuBo8H,IAAW,MAC9EpiU,GAClBnI,KAAKmxU,oBAEb,EACA9E,EAAQxwU,UAAUi3U,kBAAoB,WAClC,IAAIjvS,EAAO7jC,KAAK9C,QAAQ8P,cAAc,IAAMu9T,IAC5C,IAAI3qB,GAAM/7Q,IAAUA,EAAKglC,UAAUsJ,SAASk5P,IAA5C,CAGArrU,KAAKqkE,OAAOxgC,EAAMwnS,IAClB,IAAIoG,EAAY,GAAG58T,MAAM9Y,KAAK8nC,EAAKv2B,YACnCmkU,EAAU,GAAGluN,gBAAgB,SAC7BkuN,EAAU,GAAGluN,gBAAgB,QAJ7B,CAKJ,EACA8oN,EAAQxwU,UAAUi8U,mBAAqB,WACnC,IAAIj0S,EAAO7jC,KAAK9C,QAAQ8P,cAAc,IAAMu9T,IAC5CvqU,KAAKkzB,IAAI2Q,EAAMwnS,IACfrrU,KAAKoxU,iBACT,EACA/E,EAAQxwU,UAAUu1U,gBAAkB,WAChC,IACIzxE,EADA97N,EAAO7jC,KAAK9C,QAAQ8P,cAAc,IAAMu9T,IAE5C,IAAI3qB,GAAM/7Q,IAAUA,EAAKglC,UAAUsJ,SAASk5P,IAA5C,CAGA,IACIoG,EADAd,EAAW3wU,KAAK9C,QAAQ8P,cAAc,IAAMk+T,IAEhD,GAAIlrU,KAAK0tU,aAAc,CACnB,IAAI2E,EAAYryU,KAAK2tU,WAx4CZ,oBADA,oBA04CT8D,EAAY,GAAG58T,MAAM9Y,KAAK8nC,EAAK72B,cAAc,IAAMqlU,GAAUxuU,SACjE,MAEI4tU,EAAY,GAAG58T,MAAM9Y,KAAK8nC,EAAKv2B,YAG/BqyP,EADA3/P,KAAK2tU,WACI8D,EAAU,GAAGh0I,aAAeg0I,EAAU,GAAGh0I,aAGzCg0I,EAAU,GAAGj0I,YAAci0I,EAAU,GAAGj0I,YAErD,IAAIu6I,EAAU/3U,KAAK2tU,WAAa3tU,KAAK9C,QAAQugM,aAAez9L,KAAK9C,QAAQsgM,YACzE,GAAImzI,EAAU,CACVoH,GAAY/3U,KAAK2tU,WAAagD,EAASlzI,aAAekzI,EAASnzI,YAC/D,IAAIw6I,GAAUh4U,KAAK2tU,WAAagD,EAASlzI,aAAekzI,EAASnzI,aAAe,KAChFi0I,EAAU,GAAGluN,gBAAgB,SACzBvjH,KAAK2tU,WACD3tU,KAAKg+R,UACLyzC,EAAU,GAAGvgU,MAAM+5D,IAAM+sQ,EAGzBvG,EAAU,GAAGvgU,MAAM6zL,OAASizI,EAI5Bh4U,KAAKg+R,UACLyzC,EAAU,GAAGvgU,MAAM85D,KAAOgtQ,EAG1BvG,EAAU,GAAGvgU,MAAMqvL,MAAQy3I,CAGvC,CACA,KAAID,GAAWp4E,GAAf,CAGA,IAAIlkQ,GAAWs8U,EAAUp4E,GAAa3/P,KAAK2tU,WAAwC8D,EAAU,GAAGh0I,aAAxCg0I,EAAU,GAAGj0I,cAA4C,EACjHi0I,EAAU,GAAGluN,gBAAgB,SAC7B,IAAIsyN,GAAU71U,KAAK2tU,WAAwC8D,EAAU,GAAGh0I,aAAxCg0I,EAAU,GAAGj0I,aAA2C/hM,EAAS,KAC7FuE,KAAK2tU,WACD3tU,KAAKg+R,UACLyzC,EAAU,GAAGvgU,MAAMyyR,aAAekyC,EAGlCpE,EAAU,GAAGvgU,MAAMgvL,UAAY21I,EAI/B71U,KAAKg+R,UACLyzC,EAAU,GAAGvgU,MAAMwyR,YAAcmyC,EAGjCpE,EAAU,GAAGvgU,MAAMivL,WAAa01I,CAjBxC,CAxCA,CA4DJ,EACAxJ,EAAQxwU,UAAU+1U,cAAgB,SAAU/tS,EAAMo0S,EAAS/iU,GACvD,IAAIpP,EAAQ9F,KACZ,IAAI6jC,EAAKiuS,mBAAuC,SAAlBjuS,EAAKhnB,SAAnC,CAGA,IAAIq7T,EAAW,GAIf,GAHAA,EAASn1U,KAAK/C,KAAKoN,cAAc,MAAO,CAAEgiE,UA38C/B,oBA48CX8oQ,EAASn1U,KAAK/C,KAAKoN,cAAc,MAAO,CAAEgiE,UAAWg8P,MACrD8M,EAASn1U,KAAK/C,KAAKoN,cAAc,MAAO,CAAEgiE,UA98C9B,qBA+8CA,IAARl6D,GAA4B,SAAf2uB,EAAKguS,MAClBqG,EAASl6U,SAAQ,SAAUqxR,GACvB4oD,EAAQhhU,YAAYo4Q,EACxB,IACArvR,KAAKstU,WAAY,EACjBttU,KAAKkzB,IAAI+kT,EAAS5M,SAEjB,GAAmB,SAAfxnS,EAAKguS,MAAkB,CAC5B,IAAIsG,EAAWF,EAAQ3qU,WACnB8qU,EAAcF,EAAS,GAC3B,GAAGrjU,MAAM9Y,KAAKo8U,GAAUn6U,SAAQ,SAAU0+H,GACtC52H,EAAM8oU,WAAWC,MAAM9rU,KAAK25H,GAC5B07M,EAAYnhU,YAAYylH,EAC5B,IACAu7M,EAAQhhU,YAAYmhU,GACpBH,EAAQhhU,YAAYihU,EAAS,IAC7BD,EAAQhhU,YAAYihU,EAAS,IAC7Bl4U,KAAKstU,WAAY,EACjBttU,KAAKkzB,IAAI+kT,EAAS5M,GACtB,CAxBA,CAyBJ,EACAgB,EAAQxwU,UAAUw8U,aAAe,WAC7B,IAAIvyU,EAAQ9F,KACZA,KAAKotU,QAAUptU,KAAKmtU,QAAQloU,WAAU,GACtCjF,KAAKkzB,IAAIlzB,KAAKmtU,QAAS5C,IACvBvqU,KAAK2uU,QAAU,GACA,GAAG95T,MAAM9Y,KAAKiE,KAAKmtU,QAAQtpU,UACjC7F,SAAQ,SAAUqxR,GACH,QAAhBA,EAAI3iR,UACJ5G,EAAM6oU,QAAQ5rU,KAAKssR,GACnBA,EAAIt4Q,aAAa,gBAAiB,SAClCjR,EAAMotB,IAAIm8P,EAAKm7C,IAEvB,GACJ,EACA6B,EAAQxwU,UAAUo1U,YAAc,WAC5B,IAAI5hD,EAAMrvR,KAAK9C,QACXo7D,EAAQt4D,KAAKs4D,MACjB,GAAoB,MAAhBt4D,KAAKmtU,QACLntU,KAAKq4U,oBAEJ,GAAIhpD,GAAO/2N,EAAM30D,OAAS,EAAG,CAC9B,IAAI6tU,OAAa,EACbniD,GAAOA,EAAIxrR,SAASF,OAAS,IAC7B6tU,EAAaniD,EAAIriR,cAAc,IAAMu9T,KAEpCiH,IACDA,EAAaxxU,KAAKoN,cAAc,MAAO,CAAEgiE,UAAWm7P,MAExDvqU,KAAKuxU,WAAWj5Q,EAAOk5Q,GACvBniD,EAAIp4Q,YAAYu6T,EACpB,CACJ,EACAnF,EAAQxwU,UAAUy8U,QAAU,SAAUxhU,EAAM5Z,GAGxC,IAFA,IACImuS,EADAptS,EAAMrC,OAAOwB,KAAK0Z,GAEbjS,EAAI,EAAGA,EAAI5G,EAAI0F,OAAQkB,IAEb,WADfwmS,EAASptS,EAAIsZ,SAAS1S,EAAE/I,WAAY,MAEhCkE,KAAKkzB,IAAIh2B,EAAS4Z,EAAK,GAAKu0R,IAG5BnuS,EAAQ6Z,aAAas0R,EAAQv0R,EAAK,GAAKu0R,GAGnD,EASAghC,EAAQxwU,UAAU08U,YAAc,SAAUjgR,EAAOq/P,GAC7C,IAEItoC,EAFA7hR,EAAW8qD,EACXlqD,EAAMZ,EAAS7J,OAEfi8S,GAAM+X,KACNA,GAAW,GAEf,IAAI98O,EAAS,SAAU88O,EAAUtoC,GACzBsoC,GACAtoC,EAAIxmN,UAAUxE,OAAO2/P,IACrB30C,EAAIt4Q,aAAa,gBAAiB,WAGlCs4Q,EAAIxmN,UAAU31C,IAAI8wS,IAClB30C,EAAIt4Q,aAAa,gBAAiB,QAE1C,EACA,IAAK6oS,GAAMxxS,IAAQA,GAAO,EAAG,CACzB,IAAK,IAAIsN,EAAI,EAAGxe,EAAU,GAAG2X,MAAM9Y,KAAKyR,GAAWkO,EAAItN,EAAKsN,IAAK,CAC7D,IAAI88T,EAAct7U,EAAQqa,SAASmE,EAAE5f,WAAY,KACjD,GAA6B,kBAAjB08U,EAA2B,CAEnC,GAAI54B,GADJvwB,EAAMrvR,KAAKy4U,kBAAkBD,IAEzB,OAGAhrU,EAAS+J,SAASmE,EAAE5f,WAAY,KAAOuzR,CAE/C,MAEIA,EAAMmpD,EAEV39P,EAAO88O,EAAUtoC,EACrB,CACIsoC,EACAnoC,GAAYhiR,EAAUw2T,IAGtB70C,GAAS3hR,EAAUw2T,GAE3B,KACK,CACD,GAA0B,kBAAdx2T,GAER,GAAIoyS,GADJvwB,EAAMrvR,KAAKy4U,kBAAkBjrU,IAEzB,YAIJ6hR,EAAM/2N,EAEVuiB,EAAO88O,EAAUtoC,EACrB,CACJ,EACAg9C,EAAQxwU,UAAU48U,kBAAoB,SAAU7pU,GAC5C,OAAI5O,KAAK2uU,QAAQp3T,SAAS3I,EAAM9S,WAAY,KACjCkE,KAAK2uU,QAAQp3T,SAAS3I,EAAM9S,WAAY,KAE5C,IACX,EAQAuwU,EAAQxwU,UAAU68U,SAAW,SAAUpgR,EAAO1pD,GAC1C,IAAIsjU,EACJlyU,KAAK24U,eACL,IAAIC,EAAW54U,KAAK9C,QAAQ8P,cAAc,IAAMu9T,IAChD,GAAI3qB,GAAMg5B,GACN54U,KAAK64U,cAAcvgR,OADvB,CAIA,IAAI+6Q,EACAyF,EAAU,OACVl5B,GAAMhxS,KACNA,EAAQ,GAEZ0pD,EAAMt6D,SAAQ,SAAU6N,GACf+zS,GAAM/zS,EAAEgmU,QAAsB,SAAZhmU,EAAEgmU,OAAgC,SAAZiH,IACzCA,EAAUjtU,EAAEgmU,MAEpB,IACA,IAAK,IAAI12T,EAAK,EAAG49T,EAAUzgR,EAAOn9C,EAAK49T,EAAQp1U,OAAQwX,IAAM,CACzD,IAAI0oB,EAAOk1S,EAAQ59T,GAOnB,GANIykS,GAAM/7Q,EAAK/jC,QACX+jC,EAAK/jC,KAAO,UAEhBoyU,EAAap6P,GAAU,IAAM0yP,GAAUxqU,KAAK9C,SAC5C2mC,EAAKguS,MAAQiH,EACbzF,EAAWrzU,KAAK2xU,mBAAmB9tS,EAAMj1B,GACrC5O,KAAK2uU,QAAQhrU,QAAUiL,GAASsjU,EAAWvuU,QAAU,EAAG,CACpDi8S,GAAM5/S,KAAK0tU,eACX1tU,KAAKkvU,cAET,IAAI8J,EAA6B,MAAlBn1S,EAAKguS,MAAM,GAAa,EAAsB,MAAlBhuS,EAAKguS,MAAM,GAAa,EAAI,EACnExiD,OAAM,EACLrvR,KAAKstU,WAAyB,SAAZwL,EAQd94U,KAAKstU,YACVj+C,EAAM3lN,GAAQwoQ,EAAW,GAAI,IAAM3H,IAAW1mU,SAAS0T,SAASyhU,EAASl9U,WAAY,MACjFoiK,aAAam1K,EAAUhkD,EAAIxrR,SAAS0T,SAAS3I,EAAM9S,WAAY,MACnEkE,KAAK4uU,YAAY/qS,EAAKguS,MAAQ,KAAKpkU,eAAerF,OAAOwG,EAAO,EAAGykU,GACnErzU,KAAK83U,sBAEsB,IAAtB5F,EAAWvuU,QAChBuuU,EAAap6P,GAAU,IAAMyyP,GAAWvqU,KAAK9C,UAClC,GAAG+Z,YAAYo8T,GAG1BnB,EAAW,GAAGvkU,WAAWuwJ,aAAam1K,EAAUnB,EAAW36T,SAAS3I,EAAM9S,WAAY,OAlBtFkE,KAAK4xU,cAAc/tS,EAAM+0S,EAAU,GACnC54U,KAAKstU,WAAY,GACjBj+C,EAAM3lN,GAAQwoQ,EAAW,GAAI,IAAM3H,IAAW1mU,SAAS0T,SAASyhU,EAASl9U,WAAY,MACjFmb,YAAYo8T,GAChBrzU,KAAK4uU,YAAY/qS,EAAKguS,MAAQ,KAAKpkU,eAAe1K,KAAKswU,GACvDrzU,KAAK83U,sBAeT93U,KAAKs4D,MAAMlwD,OAAOwG,EAAO,EAAGi1B,GACxBA,EAAK12B,UACLnN,KAAK2uU,QAAQvmU,OAAOpI,KAAK2uU,QAAQhrU,OAAS,EAAG,GAEjD3D,KAAK2uU,QAAQvmU,OAAOwG,EAAO,EAAGykU,GAC9BzkU,IACA5O,KAAK6yU,UAAY+F,EAASp7I,WAC9B,CACJ,CACAo7I,EAAS1nU,MAAMgwD,MAAQ,GACvBlhE,KAAKmxU,qBACDnxU,KAAKurT,SACLvrT,KAAK8/R,sBA1DT,CA4DJ,EAQAusC,EAAQxwU,UAAUo9U,YAAc,SAAUz/T,GACtC,IACI5K,EADApB,EAAWgM,EAEX04T,EAAa,GAAGr9T,MAAM9Y,KAAK+7E,GAAU,IAAM0yP,GAAUxqU,KAAK9C,UAC9D,GAA0B,kBAAdsQ,EACRoB,EAAQ2I,SAASiC,EAAK1d,WAAY,IAClCkE,KAAKk5U,kBAAkBtqU,EAAOsjU,QAG9B,GAAI1kU,GAAYA,EAAS7J,OAAS,EAC9B,IAAK,IAAIwX,EAAK,EAAGpV,EAAK,GAAG8O,MAAM9Y,KAAKyR,GAAW2N,EAAKpV,EAAGpC,OAAQwX,IAAM,CACjE,IAAIk0Q,EAAMtpR,EAAGoV,GACbvM,EAAQ5O,KAAK2uU,QAAQz/T,QAAQmgR,GAC7BrvR,KAAKk5U,kBAAkBtqU,EAAOsjU,GAC9BA,EAAap6P,GAAU,IAAM0yP,GAAUxqU,KAAK9C,QAChD,KAEC,CACGmyR,EAAO7hR,GAAYA,EAAS7J,QAA8B,IAApB6J,EAAS7J,OAAgB6J,EAAS,GAAKgM,EACjF5K,EAAQsjU,EAAWhjU,QAAQmgR,GAC3BrvR,KAAKk5U,kBAAkBtqU,EAAOsjU,EAClC,CAEJlyU,KAAKm/S,QACT,EACAktB,EAAQxwU,UAAUq9U,kBAAoB,SAAUtqU,EAAOsjU,GACnD,GAAIlyU,KAAK2uU,QAAQp3T,SAAS3I,EAAM9S,WAAY,MAAQo2U,EAAW36T,SAAS3I,EAAM9S,WAAY,KAAM,CAC5F,IAAIq9U,EAASn5U,KAAK2uU,QAAQz/T,QAAQgjU,EAAW36T,SAAS3I,EAAM9S,WAAY,MACxE,GAAIkE,KAAKstU,UAAW,CAChB,IAAI8L,EAAWp5U,KAAK4uU,YAAY5uU,KAAKs4D,MAAM/gD,SAAS4hU,EAAOr9U,WAAY,KAAK+1U,MAAQ,KAAKpkU,eAAeyB,QAAQlP,KAAK2uU,QAAQp3T,SAAS4hU,EAAOr9U,WAAY,MACzJkE,KAAK4uU,YAAY5uU,KAAKs4D,MAAM/gD,SAAS4hU,EAAOr9U,WAAY,KAAK+1U,MAAQ,KAAKpkU,eAAerF,OAAOmP,SAAS6hU,EAASt9U,WAAY,IAAK,EACvI,CACIkE,KAAKurT,SACLvrT,KAAK+/R,gBAET,IAAIs5C,EAAUnH,EAAW36T,SAAS3I,EAAM9S,WAAY,KAAKkR,cAAc,oBAClE4yS,GAAMy5B,IAAaz5B,GAAMy5B,EAAQxmD,cAAc,KAASwmD,EAAQxmD,cAAc,GAAGhB,aAClFwnD,EAAQxmD,cAAc,GAAG1qR,UAE7B05G,GAAOqwN,EAAW36T,SAAS3I,EAAM9S,WAAY,MAC7CkE,KAAKs4D,MAAMlwD,OAAO+wU,EAAQ,GAC1Bn5U,KAAK2uU,QAAQvmU,OAAO+wU,EAAQ,EAChC,CACJ,EACA9M,EAAQxwU,UAAUy9U,eAAiB,SAAUC,EAAclG,EAAUxvS,EAAMj1B,GACvE,IAEI4qU,EAFA38J,EAAWh5I,EAAK/jC,KAChBgmS,EAASyzC,EAKb,GAH8B,kBAAlBA,IACRC,EAA2C,oBAArB1zC,EAAO1H,UAEH,kBAAlBm7C,GAA+BC,GA0CtC,GAAiB,UAAb38J,EAAsB,CACvBwyG,EAAMrvR,KAAKoN,cAAc,SACzBy2B,EAAKouB,GACLo9N,EAAIp9N,GAAKpuB,EAAKouB,GAGdo9N,EAAIp9N,GAAK4hN,GAAY,WAEzBw/D,EAASp8T,YAAYo4Q,GACrByW,EAAO1H,SAAS/O,EACpB,MApDwD,CACpD,IACI3yR,EADA+sT,OAAa,EAEbgwB,EAAQ,IAAIh5T,OAAO,uEACvB/jB,EAAiC,kBAAlB68U,EAA8BA,EAAaznU,OAASynU,EACnE,IACI,GAA8B,kBAAlBA,GAA+B35B,GAAM25B,EAAa7sU,SAGzD,GAA8B,kBAAlB6sU,GAA8BE,EAAM/rU,KAAKhR,GACtD22U,EAASpmU,UAAYvQ,OAEpB,GAAIiQ,SAASkB,iBAAiBnR,GAAKiH,OAAQ,CAC5C,IAAI0rR,EACA2iB,GADA3iB,EAAM1iR,SAASK,cAActQ,IACfysT,UAAUr3S,OAC5BuhU,EAASp8T,YAAYo4Q,GACrBA,EAAIn+Q,MAAMyyG,QAAU,GACfi8L,GAAM5N,IACPhyS,KAAKgtU,OAAOjqU,KAAKrG,EAEzB,MAEI+sT,EAAaiwB,GAAiBh9U,QAf9B22U,EAASp8T,YAAYsiU,EAiB7B,CACA,MAAO1tU,IACH49S,EAAaiwB,GAAiBh9U,EAClC,CACA,IAAIi9U,OAAY,EAChB,IAAK/5B,GAAM6J,GAEPkwB,EAAYlwB,EAAW,CAAC,EAAGzpT,KAAM,WADTA,KAAK9C,QAAQ+0D,GAAKrjD,EAAQ,YACc5O,KAAK69R,mBAEpE+hB,GAAM+5B,IAAcA,EAAUh2U,OAAS,GACxC,GAAGkR,MAAM9Y,KAAK49U,GAAW37U,SAAQ,SAAUqxR,GAClCuwB,GAAMvwB,EAAI3iR,WACX2iR,EAAIn+Q,MAAMyyG,QAAU,IAExB0vN,EAASp8T,YAAYo4Q,EACzB,GAER,CAYArvR,KAAKkzB,IAAImgT,EAAUxI,IACnB7qU,KAAK2uU,QAAQ5rU,KAAKswU,EACtB,EACAhH,EAAQxwU,UAAU+9U,gBAAkB,SAAU/1S,EAAMwvS,GAChD,IAAI3xU,EAAM1B,KAAKoN,cAAc,SAAU,CAAEgiE,UAtxD/B,eAuxDV1tE,EAAIqV,aAAa,OAAQ,UACzB,IACIq+R,EACAykC,EAFAC,EAAUj2S,EAAKvgC,KAGfugC,EAAKouB,GACLvwD,EAAIuwD,GAAKpuB,EAAKouB,GAGdvwD,EAAIuwD,GAAK4hN,GAAY,aAEzB,IAAIkmE,EAAS/5U,KAAKoN,cAAc,OAAQ,CAAEgiE,UAAW,oBACjD0qQ,GACAC,EAAO9sU,UAAYjN,KAAKi1S,oBAAsB/B,GAAmBG,SAASymC,GAAWA,EACrFp4U,EAAIuV,YAAY8iU,GAChBr4U,EAAImnE,UAAU31C,IAAI,eAGlBlzB,KAAKkzB,IAAImgT,EAAU,iBAEnBxvS,EAAKm2S,YAAcn2S,EAAKo2S,cACnBp2S,EAAKm2S,YAAcn2S,EAAKo2S,YAAep2S,EAAKm2S,YAC7C5kC,EAAUvxQ,EAAKm2S,WAAa,WAC5BH,EAAU,SAGVzkC,EAAUvxQ,EAAKo2S,WAAa,WAC5BJ,EAAU,UAGlB,IAAIzzB,EAAS,IAAIvR,GAAO,CAAEO,QAASA,EAASC,aAAcwkC,IAM1D,OALAzzB,EAAOh5S,cAAgBpN,KAAKoN,cAC5Bg5S,EAAOhoB,SAAS18R,GACZmiC,EAAKq9B,OACLk7P,GAAS16T,EAAK,CAAE,MAASsyQ,GAAWnwO,EAAKq9B,SAEtCx/D,CACX,EACA2qU,EAAQxwU,UAAU81U,mBAAqB,SAAU9tS,EAAMj1B,GACnD,IAAIlN,EACA2xU,EAAWrzU,KAAKoN,cAAc,MAAO,CAAEgiE,UAAWo7P,KACtD6I,EAASt8T,aAAa,gBAAiB,SACvC,IAAImjU,EAAUl6U,KAAKoN,cAAc,MAAO,CACpCH,UAAWjN,KAAKi1S,oBAAsB/B,GAAmBG,SAASxvQ,EAAKs2S,aAAet2S,EAAKs2S,cAc/F,GAZKn6U,KAAK2uU,UACN3uU,KAAK2uU,QAAU,IAEf9qS,EAAKi4R,gBACL97T,KAAKs4U,QAAQz0S,EAAKi4R,eAAgBuX,GAElCxvS,EAAKs2S,aACL9G,EAASt8T,aAAa,QAASmjU,EAAQ7hR,aAEvCx0B,EAAKkxQ,WACLs+B,EAASjkQ,UAAYikQ,EAASjkQ,UAAY,IAAMvrC,EAAKkxQ,UAErDlxQ,EAAK12B,SACLnN,KAAKs5U,eAAez1S,EAAK12B,SAAUkmU,EAAUxvS,EAAMj1B,QAGnD,OAAQi1B,EAAK/jC,MACT,IAAK,UACD4B,EAAM1B,KAAK45U,gBAAgB/1S,EAAMwvS,IAC7Bt8T,aAAa,WAAY6oS,GAAM/7Q,EAAKwrC,UAAY,KAAOxrC,EAAKwrC,SAASvzE,YACzE4F,EAAIqV,aAAa,gBAAiB6oS,GAAM/7Q,EAAKwrC,UAAY,KAAOxrC,EAAKwrC,SAASvzE,YAC9E4F,EAAIqV,aAAa,aAAe8sB,EAAKvgC,MAAQugC,EAAKs2S,aAClD9G,EAASp8T,YAAYvV,GACrB2xU,EAASx4Q,iBAAiB,QAAS76D,KAAKo6U,UAAUx5Q,KAAK5gE,OACvD,MACJ,IAAK,YACDA,KAAKkzB,IAAImgT,EAAU5I,IAI/B,GAAI5mS,EAAKw2S,WAAY,CACjB,IAAIC,EAAOz2S,EAAKw2S,WACH,YAATC,GACAt6U,KAAKkzB,IAAImgT,EAAUvI,IACnB9qU,KAAKkzB,IAAImgT,EAAU,iBAEL,aAATiH,GACLt6U,KAAKkzB,IAAImgT,EAAUtI,GAE3B,CACA,GAAIlnS,EAAKhnB,SAAU,CACf,IAAIA,EAAWgnB,EAAKhnB,SACH,SAAbA,EACA7c,KAAKkzB,IAAImgT,EAAUrI,IAED,SAAbnuT,IACAw2T,EAASxqQ,UAAUsJ,SAASs4P,KAC7BzqU,KAAKkzB,IAAImgT,EAAUpI,IAG/B,CAWA,MAVsB,SAAlBpnS,EAAKhnB,UAAuBgnB,EAAKiuS,oBAAsBuB,EAASxqQ,UAAUsJ,SAASs4P,MACnFzqU,KAAKkzB,IAAImgT,EAAU1H,IACnB3rU,KAAK6tU,iBAELhqS,EAAKgmF,UACL7pH,KAAKkzB,IAAImgT,EAAUrP,KAEF,IAAjBngS,EAAKy8D,SACLtgG,KAAKkzB,IAAImgT,EAAUzH,IAEhByH,CACX,EACAhH,EAAQxwU,UAAU0+U,gBAAkB,SAAUlrD,GAC1C,OAAOuwB,GAAMvwB,EAAIrjK,aAAa,kBAAoB,KAAOqjK,EAAIrjK,aAAa,gBAC9E,EACAqgN,EAAQxwU,UAAUu+U,UAAY,SAAUvuU,GACpC7L,KAAKuvU,gBAAgB1jU,EAAEtE,cAC3B,EACA8kU,EAAQxwU,UAAU0zU,gBAAkB,SAAUlgD,GAC1CrvR,KAAKmwU,gBAAgB9gD,EAAIU,mBACzB/vR,KAAKooT,UAAU/1O,OACnB,EACAg6P,EAAQxwU,UAAUs0U,gBAAkB,SAAUqK,GACrC56B,GAAM5/S,KAAKooT,YACZpoT,KAAKooT,UAAUrxS,aAAa,WAAY/W,KAAKu6U,gBAAgBv6U,KAAKooT,YAEtEpoT,KAAKooT,UAAYoyB,EAC4B,OAAzCx6U,KAAKu6U,gBAAgBv6U,KAAKooT,aACtBxI,GAAM5/S,KAAKmtU,WAAaqN,EAAOhxC,cAAc3gO,UAAUsJ,SAAS04P,KAChE7qU,KAAKmuU,eAAe,MACpBqM,EAAOj3N,gBAAgB,aAGvBvjH,KAAKooT,UAAUrxS,aAAa,WAAY/W,KAAKu6U,gBAAgBv6U,KAAKooT,YAG9E,EACAikB,EAAQxwU,UAAUgkS,eAAiB,WAC/B,OAAO7/R,KAAKmgS,aAAa,GAC7B,EAOAksC,EAAQxwU,UAAU+2R,cAAgB,WAC9B,MAAO,SACX,EACAy5C,EAAQxwU,UAAUg9U,cAAgB,SAAUphD,GACxCz3R,KAAKs4D,MAAQt4D,KAAKutU,cACdvtU,KAAKurT,SAAWvrT,KAAKw6T,YACrBx6T,KAAK+/R,gBAET//R,KAAKkvU,cACLlvU,KAAKitU,eACLjtU,KAAKs4D,MAAQm/N,EACbz3R,KAAKutU,aAAevtU,KAAKs4D,MACzBt4D,KAAKixU,cACLjxU,KAAKmxU,qBACDnxU,KAAKurT,SACLvrT,KAAK8/R,sBAEb,EACAusC,EAAQxwU,UAAUsjT,OAAS,WACvB,IAAI9vB,EAAMrvR,KAAK9C,QACf8C,KAAKm0U,UAAW,EACZn0U,KAAKstU,WACLttU,KAAKoxU,kBAELpxU,KAAKqtU,QAAgC,UAAtBrtU,KAAKuuU,cACpBvuU,KAAKqtU,OAAO7rN,OAEhB,IAAI5oF,EAAgB54B,KAAK44B,cAAcy2P,EAAKA,EAAIlhF,uBAAuBo8H,IAAW,IAClF,IAAK3xS,EAAe,CAChB54B,KAAKwuU,gBACL,IAAIiM,EAAcprD,EAAIriR,cAAc,IAAMu9T,IACrC3qB,GAAM66B,KACPz6U,KAAKqkE,OAAOo2Q,EAAa3O,IACrB9rU,KAAKstU,WACLttU,KAAKkzB,IAAIunT,EAAapP,IAGlC,CACA,IAAIzyS,IAAiB54B,KAAK0tU,cAAiB1tU,KAAK6yU,YAAcxjD,EAAI7xF,YAAlE,CAMA,IAHIx9L,KAAK6yU,UAAYxjD,EAAI7xF,aAAe5kK,IACpC54B,KAAKmxU,qBAELnxU,KAAKqtU,OAAQ,CACb,GAA0B,aAAtBrtU,KAAKuuU,aAA6B,CAClC,IAAIkG,EAAYttU,OAAOghE,iBAAiBnoE,KAAK9C,SAC7C8C,KAAKqtU,OAAOnsQ,MAAQpiC,WAAW21S,EAAUvzQ,OAAqD,EAA1CpiC,WAAW21S,EAAUC,iBAC7E,CACI10U,KAAKstU,WACLttU,KAAK8yU,oBAET9yU,KAAKovU,aAAapvU,KAAKqtU,OAAOnwU,SAAS,GACnC8C,KAAKstU,WACLttU,KAAK83U,oBAEb,CACI93U,KAAK9C,QAAQ8P,cAAc,IAAMs+T,MACjCtrU,KAAK0lU,WAAa1lU,KAAK9C,QAAQ8P,cAAc,IAAMs+T,IAAgB9tI,aAEvEx9L,KAAK6yU,UAAYxjD,EAAI7xF,YACrBx9L,KAAKm0U,UAAW,EAChBn0U,KAAKkgC,WAtBL,CAuBJ,EACAmsS,EAAQxwU,UAAU88U,aAAe,WAC7B,IAAIrI,EAAMtwU,KAAK9C,QAAQ8P,cAAc,IAAMk/T,IACjB,aAAtBlsU,KAAKuuU,cAA+B+B,IACpCtwU,KAAK4tU,eAAiB0C,EAAIznQ,UAAUsJ,SAASy4P,IAErD,EACAyB,EAAQxwU,UAAU6+U,sBAAwB,SAAUrrD,EAAKvwH,EAAU2J,EAAWkyK,EAAUzI,GAChFzpK,IACAkyK,EAAWzI,EAAWhjU,QAAQmgR,IAGlC,IADA,IAAIurD,EAAU1I,IAAayI,GACpBC,GAAS,CAEZ,IADc56U,KAAKqwU,YAAYuK,GACjB,CACV,IAAIxM,EAAewM,EAAQ7qD,kBAAkB/jK,aAAa,iBACtD8yC,GAA6B,OAAjBsvK,EACZwM,EAAQ7qD,kBAAkBh5Q,aAAa,WAAY,KAE9Cq3T,IAAiBwM,EAAQ7qD,kBAAkB/jK,aAAa,aAC7D4uN,EAAQ7qD,kBAAkBh5Q,aAAa,WAAYq3T,GAEvD,KACJ,CACAwM,EAAU1I,IAAayI,EAC3B,CACJ,EASAtO,EAAQxwU,UAAUy2R,kBAAoB,SAAUmF,EAASC,GACrD,IAAImjD,EAAO76U,KAAK9C,QACZu5U,EAAMoE,EAAKr9I,YACfx9L,KAAK24U,eACL,IAAK,IAAIx9T,EAAK,EAAGpV,EAAKnK,OAAOwB,KAAKq6R,GAAUt8Q,EAAKpV,EAAGpC,OAAQwX,IAAM,CAE9D,OADWpV,EAAGoV,IAEV,IAAK,QACD,GAAMs8Q,EAAQn/N,iBAAiB37D,OAAS+6R,EAAQp/N,iBAAiB37D,MAmC7DqD,KAAK64U,cAAcphD,EAAQn/N,YAjC3B,IADA,IAAIwiR,EAAcl/U,OAAOwB,KAAKq6R,EAAQn/N,OAC7BzzD,EAAI,EAAGA,EAAIi2U,EAAYn3U,OAAQkB,IAAK,CACzC,IAAI+J,EAAQ2I,SAAS3b,OAAOwB,KAAKq6R,EAAQn/N,OAAO/gD,SAAS1S,EAAE/I,WAAY,KAAM,IACzE8B,EAAWhC,OAAOwB,KAAKq6R,EAAQn/N,MAAM/gD,SAAS3I,EAAM9S,WAAY,MAAM,GACtEi/U,EAAcn/U,OAAO67R,EAAQn/N,MAAM/gD,SAAS3I,EAAM9S,WAAY,MAAM,GAAK8B,GAC7E,GAA2B,oBAAhBm9U,EAA4B,CACnC,GAAI/6U,KAAKstU,WAA0B,UAAb1vU,EAAsB,CACxCoC,KAAK6iM,UACL7iM,KAAKw0H,QAAQ,WACb,KACJ,CACA,IAAIwmN,EAA6B,sBAAbp9U,IAAqCm9U,EACrDE,EAA4B,aAAbr9U,GAAkD,IAAvBoC,KAAK6tU,eAC9CmN,GAAmBh7U,KAAKs4D,MAAM/gD,SAAS3I,EAAM9S,WAAY,KAAKg2U,mBAAsBmJ,MACnFj7U,KAAK6tU,cAEPjuB,GAAM5/S,KAAK0tU,eACX1tU,KAAKkvU,cAET,IAAIgM,EAAU,GAAGrmU,MAAM9Y,KAAK+7E,GAAU,IAAMyyP,GAAY,KAAOC,GAAUqQ,IACrE76U,KAAKurT,SAAWvrT,KAAKs4D,MAAM/gD,SAAS3I,EAAM9S,WAAY,KAAKqR,UAC3DnN,KAAK+/R,gBAETl+K,GAAOq5N,EAAQ3jU,SAAS3I,EAAM9S,WAAY,MAC1CkE,KAAK2uU,QAAQvmU,OAAOwG,EAAO,GAC3B5O,KAAK04U,SAAS,CAAC14U,KAAKs4D,MAAM/gD,SAAS3I,EAAM9S,WAAY,MAAO8S,GAC5D5O,KAAKs4D,MAAMlwD,OAAOwG,EAAO,GACrB5O,KAAKs4D,MAAM/gD,SAAS3I,EAAM9S,WAAY,KAAKqR,UAC3CnN,KAAK2uU,QAAQvmU,OAAOpI,KAAKs4D,MAAM30D,OAAQ,EAE/C,CACJ,CAKJ,MACJ,IAAK,QACDy4T,GAASye,EAAM,CAAE,MAAS7mE,GAAWyjB,EAAQv2N,SAC7ClhE,KAAKmxU,qBACDnxU,KAAKqtU,QAAUoJ,EAAMoE,EAAKr9I,aAC1Bx9L,KAAKovU,aAAapvU,KAAKqtU,OAAOnwU,SAAS,GAE3C,MACJ,IAAK,SACDk/T,GAASp8T,KAAK9C,QAAS,CAAE,OAAU82Q,GAAWyjB,EAAQt2N,UACtD,MACJ,IAAK,eACDnhE,KAAKkvU,cACLlvU,KAAKmxU,qBACDnxU,KAAKg+R,WACLh+R,KAAKkzB,IAAI2nT,EAAM9W,IAEnB/jU,KAAKgyU,kBACL,MACJ,IAAK,YACGv6C,EAAQuG,UACRh+R,KAAKkzB,IAAI2nT,EAAM9W,IAGf/jU,KAAKqkE,OAAOw2Q,EAAM9W,IAEjBnkB,GAAM5/S,KAAK0tU,gBACRj2C,EAAQuG,UACRh+R,KAAKkzB,IAAIlzB,KAAK0tU,aAAaxwU,QAAS6mU,IAGpC/jU,KAAKqkE,OAAOrkE,KAAK0tU,aAAaxwU,QAAS6mU,KAG1CnkB,GAAM5/S,KAAKqtU,UACR51C,EAAQuG,UACRh+R,KAAKkzB,IAAIlzB,KAAKqtU,OAAOnwU,QAAS6mU,IAG9B/jU,KAAKqkE,OAAOrkE,KAAKqtU,OAAOnwU,QAAS6mU,KAGrC/jU,KAAKstU,WACLttU,KAAKoxU,kBAET,MACJ,IAAK,aACGpxU,KAAK0tU,eACL1tU,KAAK0tU,aAAahI,WAAa1lU,KAAK0lU,YAExC,MACJ,IAAK,kBACG1lU,KAAKqtU,SACLrtU,KAAKqtU,OAAOpxB,UAAY,CAAEv8I,EAAG1/J,KAAKytU,gBAAkB,OAAS,SAEjE,MACJ,IAAK,WACG/1C,EAAQqd,UACRvlB,GAAY,CAACxvR,KAAK9C,SAAUw6R,EAAQqd,SAASziS,MAAM,MAEnDmlR,EAAQsd,UACR5lB,GAAS,CAACnvR,KAAK9C,SAAUu6R,EAAQsd,SAASziS,MAAM,MAEpD,MACJ,IAAK,gBACDtS,KAAKquU,sBACD52C,EAAQq2C,eACR9tU,KAAK+tU,oBAIrB,CACJ,EAQA1B,EAAQxwU,UAAUs/U,SAAW,SAAUvsU,EAAOnT,GAC1C,IAEI4zR,EAFA5mH,EAAgC,kBAAX75J,EACrB+rU,EAAW/rU,EAEf,GAAK65J,IAAam3I,GAAM+6B,GAAxB,CAGA,IAAIzI,EAAa,GAAGr9T,MAAM9Y,KAAK+7E,GAAU,IAAM0yP,GAAUxqU,KAAK9C,UAC9D,GAAIurK,EACA4mH,EAAMzgR,OAEL,GAAI5O,KAAK2uU,QAAQp3T,SAASojU,EAAS7+U,WAAY,KAAM,CAEtDuzR,EADmB,GAAGx6Q,MAAM9Y,KAAK+7E,GAAU,IAAM0yP,GAAUxqU,KAAK9C,UAC7Cqa,SAASojU,EAAS7+U,WAAY,IACrD,CACIuzR,IACI5zR,GACA4zR,EAAIxmN,UAAU31C,IAAI04S,IACbv8C,EAAIxmN,UAAUsJ,SAASs4P,MACpB7qB,GAAMvwB,EAAIU,kBAAkB/jK,aAAa,cACU,OAAnDqjK,EAAIU,kBAAkB/jK,aAAa,cACnChsH,KAAK06U,sBAAsBrrD,EAAK5zR,EAAOgtK,EAAWkyK,EAAUzI,KAKpE7iD,EAAIxmN,UAAUxE,OAAOunQ,IAChBv8C,EAAIxmN,UAAUsJ,SAASs4P,KACxBzqU,KAAK06U,sBAAsBrrD,EAAK5zR,EAAOgtK,EAAWkyK,EAAUzI,IAGpElyU,KAAKgyU,kBAzBT,CA2BJ,EACAj8C,GAAW,CACPf,GAAW,GAAIo3C,KAChBC,EAAQxwU,UAAW,aAAS,GAC/Bk6R,GAAW,CACPnB,GAAS,SACVy3C,EAAQxwU,UAAW,aAAS,GAC/Bk6R,GAAW,CACPnB,GAAS,SACVy3C,EAAQxwU,UAAW,cAAU,GAChCk6R,GAAW,CACPnB,GAAS,KACVy3C,EAAQxwU,UAAW,gBAAY,GAClCk6R,GAAW,CACPnB,GAAS,eACVy3C,EAAQxwU,UAAW,oBAAgB,GACtCk6R,GAAW,CACPnB,MACDy3C,EAAQxwU,UAAW,kBAAc,GACpCk6R,GAAW,CACPnB,IAAS,IACVy3C,EAAQxwU,UAAW,uBAAmB,GACzCk6R,GAAW,CACPnB,IAAS,IACVy3C,EAAQxwU,UAAW,2BAAuB,GAC7Ck6R,GAAW,CACPnB,IAAS,IACVy3C,EAAQxwU,UAAW,qBAAiB,GACvCk6R,GAAW,CACPxnK,MACD89M,EAAQxwU,UAAW,eAAW,GACjCk6R,GAAW,CACPxnK,MACD89M,EAAQxwU,UAAW,eAAW,GACjCk6R,GAAW,CACPxnK,MACD89M,EAAQxwU,UAAW,iBAAa,GACnCk6R,GAAW,CACPxnK,MACD89M,EAAQxwU,UAAW,oBAAgB,GACtCwwU,EAAUt2C,GAAW,CACjBX,IACDi3C,EAEP,CA3mE6B,CA2mE3B1nM,IC5vEE5gI,GAAyC,WACzC,IAAIC,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBpI,OAAOuI,gBAClB,CAAEC,UAAW,cAAgBzH,OAAS,SAAUsH,EAAGC,GAAKD,EAAEG,UAAYF,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAInD,KAAKmD,EAAOA,EAAEhG,eAAe6C,KAAIkD,EAAElD,GAAKmD,EAAEnD,GAAI,EACtEiD,EAAcC,EAAGC,EAC5B,EACA,OAAO,SAAUD,EAAGC,GAEhB,SAASK,IAAOvE,KAAKwE,YAAcP,CAAG,CADtCD,EAAcC,EAAGC,GAEjBD,EAAEpI,UAAkB,OAANqI,EAAatI,OAAOqE,OAAOiE,IAAMK,EAAG1I,UAAYqI,EAAErI,UAAW,IAAI0I,EACnF,CACJ,CAZ6C,GAazCwxR,GAA0C,SAAUC,EAAYl5R,EAAQmB,EAAKsC,GAC7E,IAA2H0D,EAAvH+Q,EAAIjQ,UAAUpB,OAAQshD,EAAIjwC,EAAI,EAAIlY,EAAkB,OAATyD,EAAgBA,EAAO3E,OAAO4E,yBAAyB1D,EAAQmB,GAAOsC,EACrH,GAAuB,kBAAZoxI,SAAoD,oBAArBA,QAAQskJ,SAAyBhxO,EAAI0sF,QAAQskJ,SAASD,EAAYl5R,EAAQmB,EAAKsC,QACpH,IAAK,IAAIsE,EAAImxR,EAAWryR,OAAS,EAAGkB,GAAK,EAAGA,KAASZ,EAAI+xR,EAAWnxR,MAAIogD,GAAKjwC,EAAI,EAAI/Q,EAAEghD,GAAKjwC,EAAI,EAAI/Q,EAAEnH,EAAQmB,EAAKgnD,GAAKhhD,EAAEnH,EAAQmB,KAASgnD,GAChJ,OAAOjwC,EAAI,GAAKiwC,GAAKrpD,OAAOsD,eAAepC,EAAQmB,EAAKgnD,GAAIA,CAChE,EAQIm2R,GAAU,QACVC,GAAa,eAEbC,GAAc,YACdC,GAAW,WAEX/Q,GAAW,SACXK,GAAe,aACf9G,GAAU,QACVyX,GAAa,WACbxX,GAAc,YACd4H,GAAa,WACb6P,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,aAEfhY,GAAc,YAGdiY,GAAW,iBACXnS,GAAe,aACfoS,GAAY,kBACZC,GAAa,mBACbC,GAAc,sBACdC,GAAW,cACXC,GAAgB,WAChBC,GAA0B,wBAI1BC,GAAmC,SAAUn3U,GAE7C,SAASm3U,IACL,OAAkB,OAAXn3U,GAAmBA,EAAOb,MAAMhF,KAAM+E,YAAc/E,IAC/D,CAUA,OAbA+D,GAAUi5U,EAAmBn3U,GAI7BkwR,GAAW,CACPnB,GAAS,gBACVooD,EAAkBnhV,UAAW,cAAU,GAC1Ck6R,GAAW,CACPnB,GAAS,MACVooD,EAAkBnhV,UAAW,gBAAY,GAC5Ck6R,GAAW,CACPnB,GAAS,SACVooD,EAAkBnhV,UAAW,cAAU,GACnCmhV,CACX,CAfuC,CAerCljD,IAKEmjD,GAAsC,SAAUp3U,GAEhD,SAASo3U,IACL,OAAkB,OAAXp3U,GAAmBA,EAAOb,MAAMhF,KAAM+E,YAAc/E,IAC/D,CAOA,OAVA+D,GAAUk5U,EAAsBp3U,GAIhCkwR,GAAW,CACPhB,GAAQ,CAAEyuB,OAAQ,cAAerkR,SAAU,IAAKovJ,OAAQ,QAAUyuJ,KACnEC,EAAqBphV,UAAW,gBAAY,GAC/Ck6R,GAAW,CACPhB,GAAQ,CAAEyuB,OAAQ,eAAgBrkR,SAAU,IAAKovJ,OAAQ,QAAUyuJ,KACpEC,EAAqBphV,UAAW,YAAQ,GACpCohV,CACX,CAZ0C,CAYxCnjD,IAKEojD,GAAwB,SAAUr3U,GAElC,SAASq3U,IACL,OAAkB,OAAXr3U,GAAmBA,EAAOb,MAAMhF,KAAM+E,YAAc/E,IAC/D,CAUA,OAbA+D,GAAUm5U,EAAQr3U,GAIlBkwR,GAAW,CACPnB,GAAS,KACVsoD,EAAOrhV,UAAW,YAAQ,GAC7Bk6R,GAAW,CACPnB,GAAS,KACVsoD,EAAOrhV,UAAW,eAAW,GAChCk6R,GAAW,CACPnB,GAAS,SACVsoD,EAAOrhV,UAAW,oBAAgB,GAC9BqhV,CACX,CAf4B,CAe1BpjD,IAKEqjD,GAAyB,SAAUt3U,GAEnC,SAASs3U,IACL,OAAkB,OAAXt3U,GAAmBA,EAAOb,MAAMhF,KAAM+E,YAAc/E,IAC/D,CAyBA,OA5BA+D,GAAUo5U,EAASt3U,GAInBkwR,GAAW,CACPhB,GAAQ,CAAC,EAAGmoD,KACbC,EAAQthV,UAAW,cAAU,GAChCk6R,GAAW,CACPnB,GAAS,OACVuoD,EAAQthV,UAAW,sBAAkB,GACxCk6R,GAAW,CACPnB,GAAS,KACVuoD,EAAQthV,UAAW,eAAW,GACjCk6R,GAAW,CACPnB,GAAS,KACVuoD,EAAQthV,UAAW,gBAAY,GAClCk6R,GAAW,CACPnB,IAAS,IACVuoD,EAAQthV,UAAW,gBAAY,GAClCk6R,GAAW,CACPnB,IAAS,IACVuoD,EAAQthV,UAAW,eAAW,GACjCk6R,GAAW,CACPnB,MACDuoD,EAAQthV,UAAW,UAAM,GAC5Bk6R,GAAW,CACPnB,IAAU,IACXuoD,EAAQthV,UAAW,gBAAY,GAC3BshV,CACX,CA9B6B,CA8B3BrjD,IAaEsjD,GAAqB,SAAUv3U,GAQ/B,SAASu3U,EAAI7gV,EAASW,GAClB,IAAI4I,EAAQD,EAAO9J,KAAKiE,KAAMzD,EAASW,IAAY8C,KA0BnD,OAzBA8F,EAAM67G,KAAO,CAAC,EACd77G,EAAM07G,KAAO,CAAC,EACd17G,EAAMsqE,UAAY,EAClBtqE,EAAM6jH,MAAQ,QACd7jH,EAAMimT,cAAe,EACrBjmT,EAAMsd,UAAY,EAClBtd,EAAM4sT,OAAQ,EACd5sT,EAAMu3U,aAAc,EACpBv3U,EAAMw3U,eAAiB,GACvBx3U,EAAMwmU,cAAgBxmU,EAAMy3U,uBAAuB38Q,KAAK96D,GAIxDA,EAAM4kS,WAAa,CACfmiC,IAAK,MACLC,KAAM,OACNz4T,IAAK,MACLmpU,MAAO,QACPC,MAAO,QACP1mR,OAAQ,SACRw1Q,SAAU,YACVC,UAAW,aACXC,OAAQ,UACRC,SAAU,aAEP5mU,CACX,CA8pEA,OAjsEA/B,GAAUq5U,EAAKv3U,GAyCfu3U,EAAIvhV,UAAUsM,QAAU,WAWpB,IAVInI,KAAKurT,SAAWvrT,KAAKw6T,YACrBx6T,KAAK+/R,gBAEJ6f,GAAM5/S,KAAK09U,SACZ19U,KAAK09U,MAAMv1U,UACXnI,KAAK09U,MAAQ,MAEjB19U,KAAKw1S,eACLx1S,KAAK9C,QAAQqmH,gBAAgB,iBAC7BvjH,KAAK29U,qBACA39U,KAAK49U,WAKL,CACD,IAAIC,EAAS5rQ,GAAO,aAAyBqpQ,GAAat7U,KAAK9C,SAC/D8C,KAAK9C,QAAQ2rE,UAAUxE,OAAOwmQ,IACzBjrB,GAAMi+B,KACPA,EAAO5wU,UAAYjN,KAAK8wS,IAEhC,MAVI,KAAO9wS,KAAK9C,QAAQ6yR,mBAChB1rN,GAAOrkE,KAAK9C,QAAQ6yR,mBAyB5B,GAfI/vR,KAAK89U,SACL99U,KAAK89U,OAAS,MAElB99U,KAAK+9U,OAAS,KACd/9U,KAAK69U,OAAS,KACd79U,KAAKg+U,QAAU,KACfh+U,KAAKi+U,OAAS,KACdj+U,KAAKk+U,MAAQ,KACbl+U,KAAKm+U,SAAW,KAChBn+U,KAAKgvU,OAAS,KACdhvU,KAAKo+U,QAAU,KACfp+U,KAAKqN,QAAU,KACfrN,KAAKq+U,SAAW,KAChBr+U,KAAK0R,aAAe,KACpB1R,KAAKs+U,cAAgB,GACjBt+U,KAAKs9U,gBAAkBt9U,KAAKs9U,eAAe35U,OAAS,EAAG,CACvD,IAAK,IAAIkB,EAAI,EAAGA,EAAI7E,KAAKs9U,eAAe35U,OAAQkB,IAC5C7E,KAAKs9U,eAAez4U,GAAGsD,UACvBnI,KAAKs9U,eAAez4U,GAAK,KAE7B7E,KAAKs9U,eAAiB,EAC1B,CACAz3U,EAAOhK,UAAUsM,QAAQpM,KAAKiE,MAC9BA,KAAKw0H,QAAQ,YACjB,EAMA4oN,EAAIvhV,UAAUgnM,QAAU,WAChB7iM,KAAKurT,SACLvrT,KAAK+/R,gBAETl6R,EAAOhK,UAAUgnM,QAAQ9mM,KAAKiE,MAC1BA,KAAKurT,SACLvrT,KAAK8/R,sBAEb,EAOAs9C,EAAIvhV,UAAU0iS,UAAY,WACtB,IAAIggD,EAAS70Q,GAAQ1pE,KAAK9C,QAAS,IAAMo+U,IACzCt7U,KAAKw+U,UAAY,EACjBx+U,KAAKy+U,UAAW,EAChBz+U,KAAK0+U,SAAU,EACf1+U,KAAKojT,YAAa,EAClBpjT,KAAK2+U,WAAY,EACjB3+U,KAAK4+U,eAAiB,GACtB5+U,KAAK6+U,YAAc,GACf7+U,KAAK8+U,mBACL9+U,KAAK4kS,SAAYgb,GAAM5/S,KAAK4kS,UAA4B,IAAM5kS,KAAK9C,QAAQ+0D,GAAnB,KAAqCopR,GAArDr7U,KAAK4kS,UAE5Cgb,GAAM2+B,KACPA,EAAO/0C,cAAc3gO,UAAU31C,IAAIqoT,IACnCv7U,KAAKy+U,UAAW,GAEpB,IAAI97U,EAAO6pR,GAAQ5vN,KAAKj6D,KACpBklF,EAAgB,SAATllF,EAAmB,OAAmB,SAATA,EAAmB,SAAqB,WAATA,EAAqB,WAAa,GACzGy5T,GAASp8T,KAAK9C,QAAS,CAAE,MAAS82Q,GAAWh0Q,KAAKkhE,OAAQ,OAAU8yM,GAAWh0Q,KAAKmhE,UACpFnhE,KAAKm3T,YAAYn3T,KAAK9C,QAAS8C,KAAK+0S,UAAU,GAC9CzmS,GAAWtO,KAAK9C,QAAS,CAAE,gBAAiB,UAC5C8C,KAAKm3T,YAAYn3T,KAAK9C,QAAS2qF,GAAK,GACpC7nF,KAAK++U,0BACT,EAOA3B,EAAIvhV,UAAUmP,OAAS,WACnBhL,KAAK89U,OAAS99U,KAAKoN,cAAc,OAAQ,CAAEgiE,UAAWssQ,GAAY,IAAMG,GAAgBhlU,MAAO,CAAE8yG,MAAO3pH,KAAK2pH,SAC7G3pH,KAAKg/U,MAAQh/U,KAAK9C,QAAQ+0D,GAAGtuD,OAAS,EAAK,IAAM3D,KAAK9C,QAAQ+0D,GAAMsgP,KACpEvyS,KAAKi/U,kBACLj/U,KAAK8pS,aACL9pS,KAAKojT,YAAa,CACtB,EACAg6B,EAAIvhV,UAAUojV,gBAAkB,WAC5B,IAAI5vD,EAAMrvR,KAAK9C,QAMf,GALA8C,KAAKs4D,MAAMt6D,SAAQ,SAAU6lC,EAAMj1B,GAC3BgxS,GAAM/7Q,EAAKouB,MAAQ2tP,GAAM/7Q,EAAK+tP,gBAC9B/tP,EAAK+tP,cAAc,CAAE3/N,GAAI6qR,GAAgBluU,EAAM9S,aAAc,EAErE,IACIkE,KAAKs4D,MAAM30D,OAAS,GAA6B,IAAxB0rR,EAAIxrR,SAASF,OACtC0rR,EAAIp4Q,YAAYjX,KAAKoN,cAAc,MAAO,CAAEgiE,UAAWksQ,MACvDt7U,KAAKk/U,eAAel/U,KAAKm/U,gBAAiBn/U,KAAKoN,cAAc,MAAO,CAAEgiE,UAAWisQ,MACjFr7U,KAAK49U,YAAa,OAEjB,GAAI59U,KAAK9C,QAAQ2G,SAASF,OAAS,EAAG,CACvC3D,KAAK49U,YAAa,EAClBvuD,EAAIxmN,UAAU31C,IAAI23S,IAClB,IAAIh2M,EAASw6J,EAAIriR,cAAc,IAAMquU,IACjCxmN,GAAmC,WAAzB70H,KAAKm/U,iBACfn/U,KAAKk/U,eAAel/U,KAAKm/U,gBAAiBtqN,EAElD,CACA,IAAK+qL,GAAM3tO,GAAO,IAAMopQ,GAAYr7U,KAAK9C,YAAc0iT,GAAM3tO,GAAO,IAAMqpQ,GAAat7U,KAAK9C,UAAW,CAOnG,GANA8C,KAAKomI,eACLpmI,KAAKg+U,QAAU/rQ,GAAO,IAAMopQ,GAAa,KAAOe,GAAcp8U,KAAK9C,SAC9D0iT,GAAM5/S,KAAKg+U,UACZrmD,GAAa33R,KAAKg+U,QAAS,CAAE7xI,SAAU,gBAE3CnsM,KAAKiyQ,gBACDn6L,GAAU,IAAMukQ,GAAar8U,KAAK9C,SAASyG,OAAS,EAAG,CACvD3D,KAAKg+U,QAAU/rQ,GAAO,IAAMopQ,GAAa,KAAOe,GAAcp8U,KAAK9C,SACnE8C,KAAKo+U,QAAUp+U,KAAKoN,cAAc,MAAO,CAAEgiE,UAAW4sQ,GAAgB,IAAMpQ,GAAtBoQ,cACtD,IAAIoD,EAASntQ,GAAO,IAAMjyE,KAAKq/U,YAAar/U,KAAKg+U,SAC5Cp+B,GAAMw/B,GAIPp/U,KAAKg+U,QAAQ9/K,aAAal+J,KAAKo+U,QAASp+U,KAAKg+U,QAAQxnN,YAHrD4oN,EAAOlhL,aAAal+J,KAAKo+U,QAASgB,EAAO5oN,YAK7Cx2H,KAAKs/U,kBAAiB,GACtBt/U,KAAKiyE,OAAOjyE,KAAKu/U,aACrB,CAEA,GADAv/U,KAAKi+U,OAASnmQ,GAAU,IAAMukQ,GAAar8U,KAAK+9U,SAC3Cn+B,GAAM5/S,KAAKi+U,QACZ,IAAK,IAAIp5U,EAAI,EAAGA,EAAI7E,KAAKs4D,MAAM30D,OAAQkB,IACnC,GAAI7E,KAAKi+U,OAAOp5U,GAAI,CAChB,IAAI26U,EAAQx/U,KAAKs4D,MAAMzzD,GAAGotD,GAC1BjyD,KAAKi+U,OAAOp5U,GAAGkS,aAAa,UAAWyoU,EAC3C,CAGRx/U,KAAKy/U,OAAOz/U,KAAKg+R,UACrB,CACJ,EACAo/C,EAAIvhV,UAAUuqI,aAAe,WACzB,IAAItgI,EAAQ9F,KACR0/U,EAAW1/U,KAAKm/U,gBAChBQ,EAAW,GAGf,GAFA3/U,KAAK+9U,OAAS/9U,KAAK4/U,eACnB5/U,KAAK6/U,mBACA7/U,KAAK49U,WAGL,CACG59U,KAAK9C,QAAQ2G,SAASF,OAAS,GAAK3D,KAAK9C,QAAQ2G,SAAS,GAAGglE,UAAUsJ,SAASkpQ,KAChFr7U,KAAK4xR,cAAc,CAAEutD,gBAAiB,WAAY,GAItD,IAFA,IAAIrpP,EAAQ91F,KAAK+9U,OAAOl6U,SAASF,OAC7Bm8U,EAAW,GACNj7U,EAAI,EAAGA,EAAIixF,EAAOjxF,IACvBi7U,EAAS/8U,KAAK/C,KAAK+9U,OAAOl6U,SAASggC,KAAKh/B,GAAGoI,WAE/C,GAAI6oF,EAAQ,EAAG,CACX,KAAO91F,KAAK+9U,OAAOhuD,mBACfluK,GAAO7hH,KAAK+9U,OAAOhuD,mBAEvB,IAAIgwD,EAAa//U,KAAKoN,cAAc,MAAO,CAAEgiE,UA1W7C,YA2WApvE,KAAK+9U,OAAO9mU,YAAY8oU,GACxBD,EAAS9hV,SAAQ,SAAU6lC,EAAMj1B,GAC7B9I,EAAMsd,UAAYxU,EAClB,IAAIkI,EAAO,CACPs4D,UAAWo7P,GAAUv4Q,GAAIu4Q,GAAW1kU,EAAMk5U,MAAQ,IAAMpwU,GAExDoxU,EAAMl6U,EAAMsH,cAAc,OAAQ,CAClCgiE,UAAW2sQ,GAAU9uU,UAAW42B,EAAMhtB,MAAO,CAAE,KAAQ,kBACxDsyS,UACC82B,EAAOn6U,EAAMsH,cAAc,MAAO,CAClCgiE,UAAW8sQ,GAAejvU,UAAW+yU,EAAMl6U,EAAMg4U,OAAO30B,YACzDA,UACC/pI,EAAOt5K,EAAMsH,cAAc,MAAO,CAClCgiE,UAAW6sQ,GAAUhvU,UAAWgzU,EAChCppU,MAAO,CAAEwnK,KAAM,MAAOhvG,SAAU,KAAM,gBAAiB,QAAS,gBAAiBisQ,GAAcx1U,EAAMk5U,MAAQ,IAAMpwU,KAEvHmxU,EAAW9oU,YAAYnR,EAAMsH,cAAc,MAAO0J,IAClDghE,GAAU,IAAM0yP,GAAUuV,GAAYnxU,GAAOqI,YAAYmoK,EAC7D,GACJ,CACJ,MApCIugK,EAAW3/U,KAAKkgV,YAAYlgV,KAAKs4D,MAAO,GAqC5Ct4D,KAAK09U,MAAQ,IAAIrR,GAAQ,CACrBnrQ,MAAqB,SAAbw+Q,GAAoC,UAAbA,EAAwB,OAAS,OAChEv+Q,OAAsB,SAAbu+Q,GAAoC,UAAbA,EAAwB,OAAS,OACjEnR,aAAcvuU,KAAKuuU,aACnBj2Q,MAA4B,IAApBqnR,EAASh8U,OAAgBg8U,EAAW,GAC5CQ,QAASngV,KAAKwsL,aAAa5rH,KAAK5gE,MAChC0lU,WAAY1lU,KAAK0lU,WACjBzwB,oBAAqBj1S,KAAKi1S,oBAC1BF,SAAU/0S,KAAK+0S,WAEnB/0S,KAAK09U,MAAM7/C,kBAAmB,EAC9B79R,KAAK09U,MAAMtwU,cAAgBpN,KAAKoN,cAChCpN,KAAK09U,MAAMt/C,SAASp+R,KAAK+9U,QACzBzvU,GAAWtO,KAAK+9U,OAAQ,CAAE1/J,KAAM,YAC3BuhI,GAAM5/S,KAAK9C,QAAQ8uH,aAAa,eAI3B4zL,GAAM5/S,KAAK9C,QAAQ8uH,aAAa,sBACtChsH,KAAK+9U,OAAOhnU,aAAa,kBAAmB/W,KAAK9C,QAAQ8uH,aAAa,oBACtEhsH,KAAK9C,QAAQqmH,gBAAgB,qBAL7BvjH,KAAK+9U,OAAOhnU,aAAa,aAAc/W,KAAK9C,QAAQ8uH,aAAa,eACjEhsH,KAAK9C,QAAQqmH,gBAAgB,eAMjCvjH,KAAKogV,eAAepgV,KAAKqgV,iBACzB,IAAIC,EAAgBtgV,KAAK09U,MAAMxgV,QAAQ8P,cAAc,IAAMovU,IACtDx8B,GAAM0gC,KACH1gC,GAAM0gC,EAAcruR,KAA4B,KAArBquR,EAAcruR,MACzCquR,EAAcruR,GAAKjyD,KAAK9C,QAAQ+0D,GAAbjyD,oBAG/B,EACAo9U,EAAIvhV,UAAUo2Q,cAAgB,WAC1BjyQ,KAAK69U,OAAS5rQ,GAAO,IAAMqpQ,GAAat7U,KAAK9C,SAC7C,IAAIqjV,EAAUzoQ,GAAU,IAAMukQ,GAAar8U,KAAK9C,SAChD,GAAI8C,KAAK49U,WAAY,CACjB59U,KAAK8wS,IAAO9wS,KAAK69U,OAAOh6U,SAASF,OAAS,EAAK3D,KAAK69U,OAAO5wU,UAAY,GAEvE,IADA,IAAI8nH,EAAW/0H,KAAK69U,OAAOh6U,SAClBgB,EAAI,EAAGA,EAAI07U,EAAQ58U,OAAQkB,IAC5BkwH,EAASpxH,OAAS,GAAKkB,IACvBsqR,GAAS,CAACp6J,EAASlxF,KAAKh/B,IAAK2lU,IAC7Bl8T,GAAWymH,EAASlxF,KAAKh/B,GAAI,CAAE,KAAQ,WAAY,kBAAmB2lU,GAAWxqU,KAAKg/U,MAAQ,IAAMn6U,IACpGkwH,EAASlxF,KAAKh/B,GAAGotD,GAAKqpR,GAAct7U,KAAKg/U,MAAQ,IAAMn6U,EAGnE,CACJ,EACAu4U,EAAIvhV,UAAU2kV,cAAgB,WAC1BxgV,KAAKi/U,kBACAr/B,GAAM5/S,KAAK69U,UACZ79U,KAAKilU,YAAc,IAAIh5B,GAAMjsS,KAAK69U,OAAQ,CAAEpuJ,MAAOzvL,KAAKolU,aAAaxkQ,KAAK5gE,QAElF,EACAo9U,EAAIvhV,UAAUqkV,YAAc,SAAU5nR,EAAO1pD,GACzC,IAAI9I,EAAQ9F,KACRg+U,EAAUlmQ,GAAU,kBAAoBukQ,GAAar8U,KAAK9C,SAC1DujV,EAAQzgV,KAAKojB,UACjB,IAAKpjB,KAAK0gV,WAAa1C,EAAQr6U,OAAS,EAAG,CACvC,IAAIg9U,EAAW,GACf3C,EAAQhgV,SAAQ,SAAU6lC,GACtB88S,EAAS59U,KAAK+C,EAAM86U,gBAAgB/8S,EAAKouB,IAC7C,IACAwuR,EAAQ3oU,KAAKC,IAAI/S,MAAM8S,KAAM6oU,EACjC,CACA,IACIE,EADAC,EAAS,GAETC,EAAc,GA4FlB,OA1FAzoR,EAAMt6D,SAAQ,SAAU6lC,EAAMh/B,GAC1B,IAAIqQ,EAAO0qS,GAAM/7Q,EAAKgxF,SAAW+qL,GAAM/7Q,EAAKgxF,OAAOwgL,cAAiB,GAAKxxQ,EAAKgxF,OAAOwgL,aACjFxtN,EAAO+3N,GAAM/7Q,EAAKgxF,SAAW+qL,GAAM/7Q,EAAKgxF,OAAOugL,SAAY,GAAKvxQ,EAAKgxF,OAAOugL,QAChF,GAAKwK,GAAM/7Q,EAAKm9S,kBAAqBphC,GAAM/7Q,EAAKgxF,SAAW+qL,GAAM/7Q,EAAKgxF,OAAOvxH,OAC3C,IAA5BugC,EAAKgxF,OAAOvxH,KAAKK,QAA2B,KAARkkF,GACtCk5P,EAAYh+U,KAAK8B,OAFrB,CAKA,IAIIo8U,EAJAjB,EAAMn8S,EAAKm9S,gBAAkBn9S,EAAKgxF,OAAOvxH,KAC1B,kBAAR08U,GAAoBl6U,EAAMmvS,sBACjC+qC,EAAM9sC,GAAmBG,SAAS2sC,IAGlCl6U,EAAM46U,YAAc9gC,GAAM95S,EAAMo7U,OAAwB,KAAfp7U,EAAMo7U,MAC/CD,EAAY1pU,SAASzR,EAAMo7U,KAAKjyU,UAAUnJ,EAAMo7U,KAAKntU,YAAY,KAAO,GAAI,IAC5EjO,EAAMo7U,KAAO,IAGbD,EAAYryU,EAAQ/J,EAExBiB,EAAMsd,UAAiC,IAAnB46T,EAAQr6U,OAAgBkB,EAAMiB,EAAM46U,UAAcO,EAAcR,EAAQ,EAAI57U,EAChG,IAAIglH,EAAYhmF,EAAKgmF,SAAY,IAAMm6M,GAAc,IAAMQ,GAAc,GACrEhyP,GAA2B,IAAjB3uC,EAAKy8D,QAAqB,IAAMsrO,GAAa,GAC3DiV,EAAa/6U,EAAMsH,cAAc,MAAO,CAAEgiE,UAAW2sQ,GAAUllU,MAAO,CAAE,KAAQ,kBAChF,IAAIsqU,EAAUnB,aAAepkV,OAAUokV,EAAI72B,UAAY62B,EACnDoB,GAAaxhC,GAAMuhC,IAAoB,KAAVA,EAC5BvhC,GAAMogC,EAAItzU,SAIX5G,EAAMu7U,kBAAkBR,EAAYb,EAAKn7U,GAHzCg8U,EAAW5pU,YAAY+oU,GAM3B,IAAI1jK,EAAOx2K,EAAMsH,cAAc,OAAQ,CACnCgiE,UAAWssQ,GAAY,IAAMS,GAAe,IAAMR,GAAW,IAAMzmU,EAAM,IAAM2yE,IAE/Ey5P,EAAQx7U,EAAMsH,cAAc,MAAO,CAAEgiE,UAAW8sQ,KACpDoF,EAAMrqU,YAAY4pU,GACL,KAARb,QAAsB1/U,IAAR0/U,GAA8B,KAARn4P,GACxB,SAAR3yE,GAA0B,QAARA,EACnBosU,EAAMpjL,aAAaoe,EAAMglK,EAAMvxD,mBAG/BuxD,EAAMrqU,YAAYqlK,GAGtBx2K,EAAMu3U,aAAc,IAGH,KAARx1P,EAAcg5P,EAAavkK,KACvBA,IACTz6D,GAAOg/N,GACPS,EAAMrqU,YAAYqlK,GAClBx2K,EAAMu3U,aAAc,GAG5B,IAAIhuQ,EAAWuwO,GAAM/7Q,EAAKwrC,UAAY,KAAOxrC,EAAKwrC,SAASvzE,WACvDylV,EAAa19S,EAAKgmF,SAAY,CAAC,EAAI,CAAEx6C,SAAUA,EAAU,gBAAiBA,EAAUgvG,KAAM,MAAO,gBAAiB,SACtHijK,EAAMrqU,YAAYnR,EAAMg4U,OAAO74U,WAAU,IACzC,IAAIm6K,EAAOt5K,EAAMsH,cAAc,MAAO,CAAEgiE,UAAW6sQ,GAAUplU,MAAO0qU,IACpEniK,EAAKnoK,YAAYqqU,GACbx7U,EAAM84U,iBAAmB,GACzB94U,EAAM84U,eAAe77U,KAAKynU,GAAW1kU,EAAMk5U,MAAQ,IAAMl5U,EAAMsd,WAG/Dtd,EAAM84U,eAAex2U,OAAQwG,EAAQ/J,EAAI,EAAG2lU,GAAW1kU,EAAMk5U,MAAQ,IAAMl5U,EAAMsd,WAErF,IAGIo+T,EAAQ,CAAE1lB,eAHA,CACV7pQ,GAAIu4Q,GAAW1kU,EAAMk5U,MAAQ,IAAMl5U,EAAMsd,WAENjW,SAAUiyK,GACjDoiK,EAAMzsC,eAA+Bz0S,IAAlBujC,EAAKkxQ,SAA0BlxQ,EAAKkxQ,SAAW,KAAO,IAAMlrL,EAAW,IAAMr3C,EAAS,KACzF,KAARqV,EAAc,MAAQ3yE,EAAM,IAAM,KAASksU,EAAuB,GAAXzF,IACnD,QAARzmU,GAAyB,WAARA,GACjBpP,EAAM5I,QAAQ2rE,UAAU31C,IAAI,mBAEhC4tT,EAAO/9U,KAAKy+U,GACZ38U,GAtEA,CAuEJ,IACK7E,KAAK0yT,OACNquB,EAAY/iV,SAAQ,SAAUyjV,GAC1B37U,EAAMwyD,MAAMlwD,OAAOq5U,EAAiB,EACxC,IAEAzhV,KAAKq9U,YACLr9U,KAAK9C,QAAQ2rE,UAAU31C,IAAI0oT,IAG3B57U,KAAK9C,QAAQ2rE,UAAUxE,OAAOu3Q,IAE3BkF,CACX,EACA1D,EAAIvhV,UAAU6lV,kBAAoB,WAC9B,IAAIC,EAAY3hV,KAAK4/U,eACrB,GAAI+B,EAAW,CACX,IAAIhC,EAAW7nQ,GAAU,IAAMukQ,GAAc,IAAMb,GAAYmG,GAC/D,GAAG9sU,MAAM9Y,KAAK4jV,GAAU3hV,SAAQ,SAAUkF,GAAQ,OAAOA,EAAK2lE,UAAUxE,OAAOm3Q,GAAa,IAC5F,GAAG3mU,MAAM9Y,KAAK4jV,GAAU3hV,SAAQ,SAAUkF,GAAQ,OAAOA,EAAK6sR,kBAAkBh5Q,aAAa,gBAAiB,QAAU,GAC5H,CACJ,EACAqmU,EAAIvhV,UAAU+lV,mBAAqB,SAAUvyD,GACzCrvR,KAAKk+U,MAAQjsQ,GAAO,IAAMqqQ,GAAYt8U,KAAK9C,SAC3C,IAAI43U,EAAU7iQ,GAAO,aAAcjyE,KAAK9C,SACpCqzU,EAAWt+P,GAAO,IAAMmqQ,GAAcp8U,KAAK9C,SAC3Cy1H,EAAY49M,EAAS59M,UACrBkvN,GAAa,EAYjB,QAXK7hV,KAAK2tU,eAAkB3tU,KAAKg+R,WAAe82C,EAAQp1I,WAAao1I,EAAQt3I,YAAe+yI,EAAS7wI,aAC5F1/L,KAAKg+R,WAAa82C,EAAQp1I,WAAa6wI,EAAS/yI,cAGhDx9L,KAAK2tU,cAAiBmH,EAAQr1I,UAAY9sE,EAAU8sE,UAAY9sE,EAAU8qE,gBAF/EokJ,GAAa,GAKbA,IACAxyD,EAAIxmN,UAAU31C,IAAIqpT,IAClBv8U,KAAKk+U,MAAMhgL,aAAamxH,EAAKv3M,GAAU,IAAMykQ,GAAcv8U,KAAKk+U,OAAO,MAEpE,CACX,EACAd,EAAIvhV,UAAUimV,aAAe,SAAUhlV,GACnC,IAAIilV,EAASjlV,EAAOkQ,cAAc,qBAC7B4yS,GAAMmiC,KACPA,EAAO54B,UAAY,GACnBrsT,EAAOkQ,cAAc,IAAMivU,IAAUpzQ,UAAUxE,OAAO,aAE1DrkE,KAAKi+U,OAASnmQ,GAAU,IAAMskQ,GAAe,KAAOC,GAAar8U,KAAK+9U,QACtE,IAAIprN,EAAY3yH,KAAKi+U,OAAOj+U,KAAKi+U,OAAOt6U,OAAS,GACjD,GAA2B,IAAvB3D,KAAKi+U,OAAOt6U,OAAc,CAK1B,GAJA7G,EAAO+rE,UAAUxE,OAAOk4Q,IACxBz/U,EAAOymH,gBAAgB,SACvBvjH,KAAKg+U,QAAQ/mU,YAAYna,GACzBkD,KAAKgiV,SAAWllV,EAAOm1D,GACnBjyD,KAAK4hV,mBAAmBjvN,GAAY,CACpC,IAAIsvN,EAAUjiV,KAAKg+U,QAAQrrN,UAAUqkN,uBACrCh3U,KAAK4hV,mBAAmBK,EAC5B,CACAjiV,KAAK0+U,SAAU,CACnB,CACA,OAAO5mQ,GAAU,IAAMukQ,GAAar8U,KAAKg+U,SAASr6U,OAAS,CAC/D,EACAy5U,EAAIvhV,UAAUukV,eAAiB,SAAU1jV,GACrC,IAAIwlV,EAAMjwQ,GAAO,IAAMopQ,GAAYr7U,KAAK9C,UAC5B,IAARR,EACAwlV,EAAIr5Q,UAAU31C,IAAI4oT,IAGlBoG,EAAIr5Q,UAAUxE,OAAOy3Q,IAEzB97U,KAAK09U,MAAM1L,kBACXhyU,KAAKu9U,wBACT,EACAH,EAAIvhV,UAAUsmV,iBAAmB,SAAUvjV,EAAMiQ,GAE9B7O,KAAKg+R,WAAah+R,KAAK9C,QAAQ2rE,UAAUsJ,SAAS4xP,IAuBjE,OAtBI/jU,KAAK0+U,SAAW9/U,GAAQiQ,EACe,gBAAnC7O,KAAKmoJ,UAAUyjE,SAAS43F,OACZ,CACR7gT,KAAM,eACNw8B,SAAUn/B,KAAKmoJ,UAAUyjE,SAASzsL,SAAUo4P,eAAgBv3R,KAAKmoJ,UAAUyjE,SAASr9B,QAI5E,KAImB,iBAA/BvuL,KAAKmoJ,UAAUtpJ,KAAK2kT,OACR,CACR7gT,KAAM,gBACNw8B,SAAUn/B,KAAKmoJ,UAAUtpJ,KAAKsgC,SAAUo4P,eAAgBv3R,KAAKmoJ,UAAUtpJ,KAAK0vL,QAIpE,IAIxB,EACA6uJ,EAAIvhV,UAAUumV,qBAAuB,SAAUC,EAAQ7D,GACnD,IAAI14U,EAAQ9F,KACRsiV,EAAatiV,KAAKmiV,iBAAiB3D,EAAWx+U,KAAKu/U,cAClD3/B,GAAM0iC,GAmBPD,EAAOx5Q,UAAUxE,OAAOm3Q,KAlBxB8G,EAAWhyR,MAAQ,WACf8rQ,GAASimB,EAAQ,CAAE,SAAY,aAC/BA,EAAOx5Q,UAAU31C,IAAIspT,IACrB6F,EAAOx5Q,UAAU31C,IAAI,SACzB,EACAovT,EAAWjuU,IAAM,WACbguU,EAAOnxU,MAAMyyG,QAAU,OACvB0+N,EAAOx5Q,UAAUxE,OAAOm3Q,IACxB6G,EAAOx5Q,UAAUxE,OAAOm4Q,IACxB6F,EAAOx5Q,UAAUxE,OAAO,UACxB+3P,GAASimB,EAAQ,CAAE,QAAW,GAAI,SAAY,KACb,IAA7BA,EAAO/0U,WAAW3J,QAAiBmC,EAAM83U,YACzC/7N,GAAOwgO,EAEf,EACA,IAAInsD,GAAUosD,GAAY1rD,QAAQyrD,GAK1C,EACAjF,EAAIvhV,UAAU0mV,iBAAmB,SAAUtwR,EAAIx2D,GAC3C,IAEI4mV,EAFAv8U,EAAQ9F,KACRw+U,EAAYx+U,KAAKw+U,UAEA,GAAG3pU,MAAM9Y,KAAKiE,KAAK9C,QAAQ8P,cAAc,IAAMsuU,IAAaz3U,UAClE7F,SAAQ,SAAU6lC,GACzBA,EAAKouB,KAAOnsD,EAAM08U,gBAClBH,EAASx+S,EAEjB,IACA,IAAIo+S,EAAUjiV,KAAKi+U,OAAOO,GACtBiE,EAASziV,KAAK0iV,cAAc1iV,KAAK69U,OAAQ79U,KAAK2iV,SAAS1wR,IAC3D,GAAI2tP,GAAMyiC,KAAYziC,GAAMqiC,GAAU,CAClC,IAAIW,EAAO5iV,KAAK2iV,SAASV,EAAQhwR,IACjCowR,EAASriV,KAAK0iV,cAAc1iV,KAAK69U,OAAQ+E,EAC7C,CACKhjC,GAAM6iC,KACPziV,KAAKwiV,cAAgBC,EAAOxwR,IAEhC,IAAI4wR,EAAYjjC,GAAM5/S,KAAKmoJ,YAAcnoJ,KAAKmoJ,UAAUtpJ,OAAS,CAAC,GAAKmB,KAAKmoJ,UAAUyjE,WAAa,CAAC,GAC7Fg0F,GAAM5/S,KAAKmoJ,UAAUtpJ,KAAK2kT,SAAW5D,GAAM5/S,KAAKmoJ,UAAUyjE,SAAS43F,SACjC,QAAlCxjT,KAAKmoJ,UAAUyjE,SAAS43F,QAAkD,QAA9BxjT,KAAKmoJ,UAAUtpJ,KAAK2kT,OACvE,GAAIxjT,KAAKojT,aAAwB,IAAV3nT,GAAmBuE,KAAKmoJ,YAAc,CAAC,GAAK06L,EAC3DR,GAAUA,IAAWI,GACrBJ,EAAOx5Q,UAAUxE,OAAOm3Q,QAFhC,CAMA,IACI8G,EADAxxC,EAAM7+N,GAAO,IAAMqpQ,GAAat7U,KAAK9C,SAEzC,GAAI8C,KAAKw+U,UAAYx+U,KAAKu/U,eAAiBv/U,KAAK0+U,QAAS,CACrD,IAAIoE,EAAU9iV,KAAKmoJ,UAAUyjE,SAAS43F,OACtC8+B,EAAa,CACT3/U,KAAoB,SAAZmgV,EAAsB,GAAmB,gBAAZA,EAA6BA,EAAU,cAC5E3jT,SAAUn/B,KAAKmoJ,UAAUyjE,SAASzsL,SAClCo4P,eAAgBv3R,KAAKmoJ,UAAUyjE,SAASr9B,OAEhD,MACK,GAAIvuL,KAAK0+U,SAAW1+U,KAAKw+U,UAAYx+U,KAAKu/U,cAAgBv/U,KAAKw+U,YAAcx+U,KAAKu/U,aAAc,CACjG,IAAIwD,EAAS/iV,KAAKmoJ,UAAUtpJ,KAAK2kT,OACjC8+B,EAAa,CACT3/U,KAAmB,SAAXogV,EAAqB,GAAkB,iBAAXA,EAA6BA,EAAS,eAC1E5jT,SAAUn/B,KAAKmoJ,UAAUtpJ,KAAKsgC,SAC9Bo4P,eAAgBv3R,KAAKmoJ,UAAUtpJ,KAAK0vL,OAE5C,CACA+zJ,EAAW/3K,SAAW,WAClBumI,EAAIjoO,UAAU31C,IAAIspT,IAClB12U,EAAMk9U,iBACV,EACAV,EAAWjuU,IAAM,WACby8R,EAAIjoO,UAAUxE,OAAOm4Q,IACrBiG,EAAO55Q,UAAU31C,IAAIsoT,GACzB,EACKx7U,KAAKojT,YAAexD,GAAMyiC,IAC3BriV,KAAKoiV,qBAAqBC,EAAQ7D,GAEtCx+U,KAAK0+U,SAAU,EACS,KAApB4D,EAAW3/U,KACX8/U,EAAO55Q,UAAU31C,IAAIsoT,IAGrB,IAAItlD,GAAUosD,GAAY1rD,QAAQ6rD,EAnCtC,CAqCJ,EACArF,EAAIvhV,UAAUonV,WAAa,SAAUf,GACjC,IAAIgB,EAAYx5Q,GAAQw4Q,EAAK,IAAM7G,GAAa,KAAOgB,IACnD8G,EAAWnjV,KAAKojV,YAAYF,IAC3BtjC,GAAM5/S,KAAKgvU,SAAWkT,EAAIr5Q,UAAUsJ,SAAS,aAC7CnyE,KAAKgvU,OAAOnmQ,UAAUsJ,SA3rBd,gBA2rB0CnyE,KAAKqtU,OAAO7rN,KAAKxhH,KAAKwhH,MAAQxhH,KAAKqtU,OAAO1rN,KAAK3hH,KAAK2hH,MAElGugO,EAAIr5Q,UAAUsJ,SAAS,gBAC5B+vQ,EAAI5hN,QAGCs/K,GAAMsjC,KAA2D,IAA7CA,EAAUr6Q,UAAUsJ,SAASqpQ,MAClDx7U,KAAKqjV,UAAUF,EAAU,MAAM,GAC1BvjC,GAAM5/S,KAAKgvU,SACZhvU,KAAKqtU,OAAO7rN,KAAKxhH,KAAKwhH,MAItC,EACA47N,EAAIvhV,UAAU+jV,aAAe,WACzB,IAAIhgC,GAAM5/S,KAAK9C,SAAf,CAGA,IAAIwwG,EAAU,GAAG74F,MAAM9Y,KAAKiE,KAAK9C,QAAQ2G,UAAUvG,QAAO,SAAUuO,GAAK,OAAOA,EAAEg9D,UAAUsJ,SAASkpQ,GAAa,IAClH,GAAI3tO,EAAQ/pG,OAAS,EACjB,OAAO+pG,EAAQ,GAGf,IAAI0xE,EAAO,GAAGvqK,MAAM9Y,KAAKiE,KAAK9C,QAAQ2G,UAAUvG,QAAO,SAAUuO,GAAK,OAAQA,EAAEg9D,UAAUsJ,SA5uBpF,kBA4uB2G,IAAG,GACpH,GAAKitG,EAGL,MAAO,GAAGvqK,MAAM9Y,KAAKqjL,EAAKv7K,UAAUvG,QAAO,SAAUuO,GAAK,OAAOA,EAAEg9D,UAAUsJ,SAASkpQ,GAAa,IAAG,EAV1G,CAYJ,EACA+B,EAAIvhV,UAAUunV,YAAc,SAAUv/S,GAClC,OAAOlnC,MAAMd,UAAUqT,QAAQnT,KAAK+7E,GAAU,IAAMukQ,GAAar8U,KAAK4/U,gBAAiB/7S,EAC3F,EACAu5S,EAAIvhV,UAAU8mV,SAAW,SAAU1wR,GAC/B,OAAOA,EAAGpgD,QAAQ24T,GAAWxqU,KAAKg/U,MAAQ,IAAK,GACnD,EACA5B,EAAIvhV,UAAU8hV,mBAAqB,WAC/B,IAAI73U,EAAQ9F,KACZA,KAAK6+U,YAAY7gV,SAAQ,SAAUslV,GAC1B1jC,GAAM95S,EAAM5I,QAAQ8P,cAAcs2U,MACnC32U,SAASiwE,KAAK3lE,YAAYnR,EAAM5I,QAAQ8P,cAAcs2U,IAASpyU,MAAMyyG,QAAU,OAEvF,GACJ,EACAy5N,EAAIvhV,UAAU0nV,gBAAkB,SAAUl0D,EAAKyhB,EAAKliS,GAChD,IAAIugU,EAAUnvU,KAAKoN,cAAc,OACjCpN,KAAKwjV,eAAerU,EAASr+B,EAAK,UAAWliS,GACX,IAA9BugU,EAAQ7hU,WAAW3J,QACnB0rR,EAAIp4Q,YAAYk4T,GAEhBnvU,KAAKurT,SACLvrT,KAAK8/R,sBAEb,EACAs9C,EAAIvhV,UAAU2nV,eAAiB,SAAUn0D,EAAK3yR,EAAK2Y,EAAMzG,GACrD,IAAI66S,EAaAg6B,EAZe,kBAAR/mV,GACPA,EAAMA,EAAIoV,OACN9R,KAAK6pT,MACLJ,EAAaj5D,GAAQ0iD,GAAmBG,SAAS32S,IAGjD2yR,EAAIpiR,UAAYimS,GAAmBG,SAAS32S,IAIhD+sT,EAAaj5D,GAAQ9zP,GAGpBkjT,GAAM6J,KACPg6B,EAAch6B,EAAW,CAAC,EAAGzpT,KAAMqV,KAElCuqS,GAAM6J,IAAeg6B,EAAY9/U,OAAS,GAC3C,GAAGkR,MAAM9Y,KAAK0nV,GAAazlV,SAAQ,SAAU0+H,GACzC2yJ,EAAIp4Q,YAAYylH,EACpB,GAER,EACA0gN,EAAIvhV,UAAUwlV,kBAAoB,SAAUnkV,EAASoG,EAAMsL,GACvD5O,KAAKwjV,eAAetmV,EAASoG,EAAM,iBAAkBsL,EACzD,EACAwuU,EAAIvhV,UAAU6nV,WAAa,SAAUr0D,EAAKyhB,EAAK6yC,EAAU/0U,GACrD,IAAI00U,EAEJ,GAAmB,kBADnBxyC,EAAM8O,GAAM9O,GAAO,GAAKA,IACO8O,GAAM9O,EAAI7jS,WAIrC,GAHmB,kBAAR6jS,GAAoB9wS,KAAKi1S,sBAChCnE,EAAMoC,GAAmBG,SAASvC,IAEvB,MAAXA,EAAI,IAAyB,MAAXA,EAAI,GACtB,GAAInkS,SAASkB,iBAAiBijS,GAAKntS,OAAQ,CACvC,IAAIigV,EAASj3U,SAASK,cAAc8jS,GACpCwyC,EAASM,EAAOz6B,UAAUr3S,OACT,UAAb6xU,EACAt0D,EAAIp4Q,YAAY2sU,EAAO3+U,WAAU,KAGjCoqR,EAAIp4Q,YAAY2sU,GAChBA,EAAO1yU,MAAMyyG,QAAU,GAE/B,MAEI3jH,KAAKujV,gBAAgBl0D,EAAKyhB,EAAKliS,QAInC5O,KAAKujV,gBAAgBl0D,EAAKyhB,EAAKliS,QAInCygR,EAAIp4Q,YAAY65R,GAEf8O,GAAM0jC,KAC2C,IAA9CtjV,KAAK6+U,YAAY3vU,QAAQ4hS,EAAIh1S,aAC7BkE,KAAK6+U,YAAY97U,KAAK+tS,EAAIh1S,WAGtC,EACAshV,EAAIvhV,UAAU6mV,cAAgB,SAAU7E,EAAQviE,GAQ5C,OANIt7Q,KAAK9C,QAAQ2rE,UAAUsJ,SAASopQ,IAC1BtpQ,GAAO,IAAMspQ,GAAW,MAAQD,GAAc,OAASA,GAAct7U,KAAKg/U,MAAQ,IAAM1jE,EAAIt7Q,KAAK9C,SAGjG8C,KAAK6jV,QAAQhG,EAAOh6U,SAAUy3U,GAAct7U,KAAKg/U,MAAQ,IAAM1jE,EAG7E,EACA8hE,EAAIvhV,UAAUgoV,QAAU,SAAUvrR,EAAOr6D,GAErC,IADA,IAAIoxR,EACKxqR,EAAI,EAAGA,EAAIyzD,EAAM30D,OAAQkB,IAC9B,GAAIyzD,EAAMzzD,GAAGotD,KAAOh0D,EAAK,CACrBoxR,EAAM/2N,EAAMzzD,GACZ,KACJ,CAEJ,OAAOwqR,CACX,EACA+tD,EAAIvhV,UAAU8xU,WAAa,WACvB,IAAIA,EAAuC,SAAzB3tU,KAAKm/U,iBAAuD,UAAzBn/U,KAAKm/U,gBAE1D,OADAn/U,KAAKq/U,YAAe1R,EAh0BV,oBADA,oBAk0BHA,CACX,EACAyP,EAAIvhV,UAAUgkV,iBAAmB,WAC7B,GAAI7/U,KAAK2tU,aAAc,CACnB,IAAImW,EAAkC,SAAzB9jV,KAAKm/U,gBAA8BzC,GAAYC,GAC5DxtD,GAAS,CAACnvR,KAAK+9U,QAAS,CAACzT,GAAcwZ,IAClC9jV,KAAK9C,QAAQ2rE,UAAUsJ,SAASopQ,IAIjCpsD,GAAS,CAACnvR,KAAK+9U,QAAS,CAACtB,GAAUqH,IAHnC30D,GAAS,CAACnvR,KAAK9C,SAAU,CAACu/U,GAAUqH,GAK5C,CAC6B,WAAzB9jV,KAAKm/U,iBACLhwD,GAAS,CAACnvR,KAAK+9U,QAAS,CAACnB,IAEjC,EACAQ,EAAIvhV,UAAUkjV,yBAA2B,WACrC/+U,KAAK2hH,KAAO,CAAEh/G,KAAO3C,KAAK2tU,aAAe,SAAW,YAAcxuS,SAAU,KAC5En/B,KAAKwhH,KAAO,CAAE7+G,KAAO3C,KAAK2tU,aAAe,UAAY,UAAYxuS,SAAU,IAC/E,EACAi+S,EAAIvhV,UAAUk2U,kBAAoB,SAAUgS,GACxC/jV,KAAKk/U,eAAe6E,EAAO/jV,KAAK+9U,QAChC,IAAIiG,EAAYhkV,KAAK+9U,OAAO/wU,cAAc,IAAMwuU,IAC5C7N,IAAa3tU,KAAK+9U,OAAOl1Q,UAAUsJ,SAASm4P,IAChD96C,GAAY,CAACxvR,KAAK9C,SAAU,CAACu/U,KAC7BjtD,GAAY,CAACxvR,KAAK+9U,QAAS,CAACzT,GAAcoS,GAAWC,KACjDhP,IAAe3tU,KAAK2tU,eACpB3tU,KAAKikV,4BACArkC,GAAMokC,IAAcA,EAAUn7Q,UAAUsJ,SAASoqQ,KAClDv8U,KAAK8hV,aAAakC,IAG1BhkV,KAAK6/U,mBACL7/U,KAAKgjV,kBACLhjV,KAAKkkV,WACT,EACA9G,EAAIvhV,UAAUqoV,UAAY,WACtB,IAAIC,EAAalyQ,GAAO,KAAOu4P,GAAWxqU,KAAKg/U,MAAQ,IAAMh/U,KAAKu/U,aAAcv/U,KAAK+9U,QAChFn+B,GAAMukC,IACPA,EAAWp0D,kBAAkB19M,OAErC,EACA+qQ,EAAIvhV,UAAUooV,yBAA2B,WACrCjkV,KAAK09U,MAAM9rD,cAAc,CAAEzwN,OAASnhE,KAAK2tU,aAAe,OAAS,OAASzsQ,MAAQlhE,KAAK2tU,aAAe,OAAS,SAAW,GAC1H3tU,KAAK09U,MAAM3L,oBACX/xU,KAAK++U,0BACT,EACA3B,EAAIvhV,UAAUqjV,eAAiB,SAAU6E,EAAO10D,GAC5C,IAAI+0D,EAAYznV,MAAMd,UAAUqT,QAAQnT,KAAKiE,KAAK9C,QAAQ2G,SAAUwrR,GAChEg1D,EAAa1nV,MAAMd,UAAUqT,QAAQnT,KAAKiE,KAAK9C,QAAQ2G,SAAU7D,KAAK9C,QAAQ8P,cAAc,IAAMsuU,KACxF,WAAVyI,GAAuBM,EAAaD,EACpCpkV,KAAK9C,QAAQ+Z,YAAYo4Q,IAGzBG,GAAY,CAACH,GAAM,CAACutD,KACpB58U,KAAK9C,QAAQghK,aAAamxH,EAAKp9M,GAAO,IAAMqpQ,GAAat7U,KAAK9C,UAEtE,EACAkgV,EAAIvhV,UAAUs7T,YAAc,SAAU9nC,EAAKumD,EAAKl5U,GAC5C,GAAY,KAARk5U,EAIJ,IADA,IAAI34J,EAAO24J,EAAItjU,MAAM,KACZzN,EAAI,EAAGA,EAAIo4K,EAAKt5K,OAAQkB,IACzBnI,EACA2yR,EAAIxmN,UAAU31C,IAAI+pJ,EAAKp4K,IAGvBwqR,EAAIxmN,UAAUxE,OAAO44G,EAAKp4K,GAGtC,EACAu4U,EAAIvhV,UAAUyjV,iBAAmB,SAAU5iV,GAIvC,GAHIsD,KAAK9C,QAAQ2rE,UAAUsJ,SAAS0qQ,KAChCrtD,GAAY,CAACxvR,KAAK9C,SAAU,CAAC2/U,MAE7Bj9B,GAAM5/S,KAAK69U,QAAf,CAGA,IAAIE,EAAS/9U,KAAK4/U,eAClB,GAA8B,SAA1B5/U,KAAKskV,iBAA6B,CAClC,GAAoB,SAAhBtkV,KAAKmhE,OACL,OAGKnhE,KAAK2tU,cACNvR,GAASp8T,KAAK69U,OAAQ,CAAE,OAAW79U,KAAK9C,QAAQywI,aAAeowM,EAAOtgJ,aAAgB,MAGlG,MACK,GAA8B,SAA1Bz9L,KAAKskV,iBACVn1D,GAAS,CAACnvR,KAAK9C,SAAU,CAAC2/U,KAC1BzgB,GAASp8T,KAAK9C,QAAS,CAAE,OAAU,SACnC8C,KAAK69U,OAAO3sU,MAAMiwD,OAAS,eAAiBnhE,KAAK+9U,OAAOtgJ,aAAe,WAEtE,GAA8B,SAA1Bz9L,KAAKskV,iBAA6B,CACvC,IAAwB,IAApBtkV,KAAK49U,WAEL,IADA,IAAI9sC,EAAMh5N,GAAU,IAAMwjQ,GAAc,OAAS9Q,GAAUxqU,KAAK9C,SACvD2H,EAAI,EAAGA,EAAIisS,EAAIntS,OAAQkB,IAC5BisS,EAAIjsS,GAAGkS,aAAa,QAAS,sCAC7B/W,KAAKowE,UAAYt4D,KAAKC,IAAI/X,KAAKowE,UAAWpwE,KAAKozL,UAAU09G,EAAIjsS,KAC7DisS,EAAIjsS,GAAGqM,MAAMgoS,eAAe,WAC5BpI,EAAIjsS,GAAGqM,MAAMgoS,eAAe,kBAG/B,CACDl5S,KAAK69U,OAAS5rQ,GAAO,IAAMqpQ,GAAat7U,KAAK9C,UACjC,IAARR,GACAsD,KAAK69U,OAAO5mU,YAAYjX,KAAKoN,cAAc,MAAO,CAC9C6kD,GAAKqpR,GAAct7U,KAAKg/U,MAAnB1D,KAAqClsQ,UAAWo7P,GAAW,IAAMgR,GACtE3kU,MAAO,CAAE,KAAQ,WAAY,kBAAmB2zT,GAAWxqU,KAAKg/U,MAAhBxU,SAGxD,IAAIn7C,EAAMrvR,KAAK69U,OAAOh6U,SAASggC,KAAK,GACpC,IAASh/B,EAAI,EAAGA,EAAI7E,KAAKs4D,MAAM30D,OAAQkB,IAGnC,IAFA7E,KAAK0jV,WAAWr0D,EAAKrvR,KAAKs4D,MAAMzzD,GAAGwI,QAAS,QAASxI,GACrD7E,KAAKowE,UAAYt4D,KAAKC,IAAI/X,KAAKowE,UAAWpwE,KAAKozL,UAAUi8F,IAClDA,EAAI74J,YACP64J,EAAIzhR,YAAYyhR,EAAI74J,YAGxBx2H,KAAKurT,SACLvrT,KAAK+/R,cAAc,CAAC,YAExB//R,KAAK6+U,YAAc,GACnB7+U,KAAK0jV,WAAWr0D,EAAKrvR,KAAKs4D,MAAM,GAAGjrD,QAAS,SAAU,GAClDrN,KAAKw+U,YAAcx+U,KAAKu/U,cACxBlwD,EAAIxmN,UAAUxE,OAAOm3Q,GAE7B,CACApf,GAASp8T,KAAK69U,OAAQ,CAAE,OAAU79U,KAAKowE,UAAY,MACvD,MAEIgsP,GAASp8T,KAAK69U,OAAQ,CAAE,OAAU,QAvDtC,CAyDJ,EACAT,EAAIvhV,UAAUu3L,UAAY,SAAUi8F,GAChC,IAAI9qL,EAAKp9F,OAAOghE,iBAAiBknN,GACjC,OAAOA,EAAI5xF,aAAe3+J,WAAWylE,EAAGn8B,iBAAiB,gBAAkBtpC,WAAWylE,EAAGn8B,iBAAiB,mBACtGtpC,WAAWylE,EAAGn8B,iBAAiB,eAAiBtpC,WAAWylE,EAAGn8B,iBAAiB,iBACvF,EACAg1Q,EAAIvhV,UAAUmnV,gBAAkB,WAC5B,IAAIuB,EAAYvkV,KAAK4/U,eACjBsC,EAAMjwQ,GAAO,IAAMoqQ,GAAc,IAAMb,GAAY+I,GACvD,IAAI3kC,GAAMsiC,GAAV,CAGKliV,KAAKwkV,iBAQDD,GACLA,EAAU17Q,UAAUxE,OAAO04Q,KARvBmF,EAAIr5Q,UAAUsJ,SAASoqQ,MAAkBv8U,KAAKo+U,QAAQv1Q,UAAUsJ,SAASy5P,KACzE5rU,KAAKo+U,QAAQv1Q,UAAU31C,IAAI04S,IAE3B2Y,IAAcA,EAAU17Q,UAAUsJ,SAAS4qQ,KAC3CwH,EAAU17Q,UAAU31C,IAAI6pT,KAMhC,IAAIp7U,EAAO+nE,GAAQw4Q,EAAK,IAAM9G,IAC9B,GAAIp7U,KAAK9C,UAAYyE,EAArB,CAGA3B,KAAKg+U,QAAU/rQ,GAAO,IAAMmqQ,GAAcmI,GAC1C,IAAIE,EAAMxyQ,GAAO,IAAM+pQ,GAAeuI,GAClCrb,EAAYj3P,GAAO,IAAMmqQ,GAAe,KAAOp8U,KAAKq/U,YAAakF,GACrE,GAAIvkV,KAAK2tU,aAAc,CACnBvR,GAASqoB,EAAK,CAAE,KAAQ,GAAI,MAAS,KAGjCroB,GAASqoB,EADI,KADD7kC,GAAMspB,GAAclpU,KAAKg+U,QAAQvgJ,aAAeyrI,EAAUzrI,cAExD,CAAE,IAAOykJ,EAAIziJ,UAAY,KAAM,OAAUyiJ,EAAIzkJ,aAAe,MAG5D,CAAE,IAAO,EAAG,OAAU,GAE5C,KACK,CACD,GAA0B,aAAtBz9L,KAAKuuU,aAELnS,GAASqoB,EAAK,CAAE,KADqB,WAAzBzkV,KAAKm/U,gBAA+B+C,EAAIziJ,UAAYyiJ,EAAIzkJ,aAAeykJ,EAAIziJ,WACxD,KAAM,OAAU,UAG/C28H,GAASqoB,EAAK,CAAE,IAAO,GAAI,OAAU,KAEzC,IAAIC,EAAW9kC,GAAMspB,GAAclpU,KAAKg+U,QAAQxgJ,YAAc0rI,EAAU1rI,YAEpE4+H,GAASqoB,EADG,IAAZC,EACc,CAAE,KAAQxC,EAAIxiJ,WAAa,KAAM,MAASglJ,GAAWxC,EAAIxiJ,WAAawiJ,EAAI1kJ,aAAe,MAGzF,CAAE,KAAQ,OAAQ,MAAS,QAEjD,CACKoiH,GAAM5/S,KAAKo+U,UAAa8D,EAAIr5Q,UAAUsJ,SAASoqQ,KAChDv8U,KAAKo+U,QAAQv1Q,UAAUxE,OAAOunQ,GA/BlC,CAfA,CAgDJ,EACAwR,EAAIvhV,UAAU8oV,UAAY,SAAUlpV,EAAOmpV,EAAc74B,QAChC,IAAjB64B,IAA2BA,GAAe,QACzB,IAAjB74B,IAA2BA,GAAe,GAC9C/rT,KAAKi+U,OAASnmQ,GAAU,IAAMukQ,GAAar8U,KAAK4/U,gBAChD,IAAIsC,EAAMliV,KAAKi+U,OAAOxiV,GACtB,KAAIA,EAAQ,GAAK+e,MAAM/e,IAAiC,IAAvBuE,KAAKi+U,OAAOt6U,QAW7C,GARIlI,GAAS,IAAMmpV,IACf5kV,KAAKixR,wBAAyB,EAC9BjxR,KAAK4xR,cAAc,CAAE2tD,aAAc9jV,IAAS,GAC5CuE,KAAKixR,wBAAyB,EACzBjxR,KAAKojT,YACNpjT,KAAKiyR,kBAGTiwD,EAAIr5Q,UAAUsJ,SAASqpQ,IACvBx7U,KAAKgjV,sBADT,CAIKhjV,KAAK49U,YACNtvU,GAAW4zU,EAAInyD,kBAAmB,CAAE,gBAAiBurD,GAAct7U,KAAKg/U,MAAQ,IAAMvjV,IAE1F,IAAIw2D,EAAKiwR,EAAIjwR,GACbjyD,KAAK0hV,oBACLQ,EAAIr5Q,UAAU31C,IAAIsoT,IAClB0G,EAAInyD,kBAAkBh5Q,aAAa,gBAAiB,QACpD,IAAIukQ,EAAK/gQ,OAAOva,KAAK2iV,SAAS1wR,IAI9B,GAHI2tP,GAAM5/S,KAAKwiV,iBACXxiV,KAAKwiV,cAAgBlH,GAAct7U,KAAKg/U,MAAQ,IAAM1jE,GAEtDt7Q,KAAK49U,YACL,GAAI3rQ,GAAO,IAAMqpQ,GAAat7U,KAAK9C,SAAS2G,SAASF,OAAS,EAAG,CAC7D,IAAIkhV,EAAQ7kV,KAAK6jV,QAAQ5xQ,GAAO,IAAMqpQ,GAAat7U,KAAK9C,SAAS2G,SAAUy3U,GAAct7U,KAAKg/U,MAAQ,IAAM1jE,GACvGskC,GAAMilC,IACPA,EAAMh8Q,UAAU31C,IAAIsoT,IAExBx7U,KAAKuiV,iBAAiBtwR,EAAIjyD,KAAK8kV,gBACnC,MAEC,CACD9kV,KAAK69U,OAAS5rQ,GAAO,aAAyBqpQ,GAAat7U,KAAK9C,SAChE,IAAI2mC,EAAO7jC,KAAK0iV,cAAc1iV,KAAK69U,OAAQ79U,KAAK2iV,SAAS1wR,IACzD,GAAI2tP,GAAM/7Q,GAAO,CACb7jC,KAAK69U,OAAO5mU,YAAYjX,KAAKoN,cAAc,MAAO,CAC9C6kD,GAAIqpR,GAAct7U,KAAKg/U,MAAQ,IAAMh/U,KAAK2iV,SAAS1wR,GAAKmd,UAAWo7P,GAAW,IAAMgR,GACpF3kU,MAAO,CAAEwnK,KAAM,WAAY,kBAAmBmsJ,GAAWxqU,KAAKg/U,MAAQ,IAAMh/U,KAAK2iV,SAAS1wR,OAE9F,IAAI8yR,EAAS/kV,KAAK0iV,cAAc1iV,KAAK69U,OAAQ79U,KAAK2iV,SAAS1wR,IACvDgvR,EAAYtkV,MAAMd,UAAUqT,QAAQnT,KAAKiE,KAAK4+U,eAAgB3sR,GAClEjyD,KAAK0jV,WAAWqB,EAAQ/kV,KAAKs4D,MAAM2oR,GAAW5zU,QAAS,SAAU4zU,EACrE,MAEIp9S,EAAKglC,UAAU31C,IAAIsoT,IAEvBx7U,KAAKuiV,iBAAiBtwR,EAAIjyD,KAAK8kV,gBACnC,CAGA,GAFA9kV,KAAKgjV,kBACLhjV,KAAKglV,sBAAsB9C,IACtBliV,KAAKojT,aAAewhC,EAAc,CACnC1C,EAAInyD,kBAAkB19M,QACtB,IAAI4yQ,EAAW,CACXC,aAAcllV,KAAKm+U,SACnBgH,cAAenlV,KAAKw+U,UACpBe,aAAc2C,EACd1uN,cAAe/3H,EACf2pV,gBAAiBnzQ,GAAO,IAAMqpQ,GAAct7U,KAAKg/U,MAAQ,IAAMh/U,KAAKqlV,YAAarlV,KAAKqN,SACtFi4U,SAAUtlV,KAAK2+U,UACf5yB,aAAcA,GAElB/rT,KAAKw0H,QAAQ,WAAYywN,EAC7B,CApDA,CAqDJ,EACA7H,EAAIvhV,UAAU0pV,SAAW,SAAUjtR,GAC/Bt4D,KAAK0gV,WAAY,EACjB1gV,KAAKg+U,QAAU/rQ,GAAO,IAAMmqQ,GAAcp8U,KAAK4/U,gBAC/C5/U,KAAK09U,MAAMplR,MAAQt4D,KAAKkgV,YAAY5nR,EAAO,GAC3Ct4D,KAAK09U,MAAM1rD,WACXhyR,KAAK0gV,WAAY,CACrB,EACAtD,EAAIvhV,UAAU4jV,OAAS,SAAUhkV,GAC7BuE,KAAK09U,MAAM1/C,UAAYviS,EACvBuE,KAAK09U,MAAM1rD,WACXhyR,KAAKm3T,YAAYn3T,KAAK9C,QAAS6mU,GAAStoU,GACxCuE,KAAKwlV,qBACT,EACApI,EAAIvhV,UAAU2pV,oBAAsB,WAC3B5lC,GAAM5/S,KAAKo+U,UACZp+U,KAAKo+U,QAAQv1Q,UAAU31C,IAAI04S,IAE/B5rU,KAAKgjV,iBACT,EACA5F,EAAIvhV,UAAU4pV,UAAY,SAAUjmU,GAChC,IAAI0+T,EAAQjsQ,GAAO,yBAA0BjyE,KAAK+9U,QAClD,GAAIG,EAAMr1Q,UAAUsJ,SAAS,iBAAkB,CAC3C,IAAIuzQ,EAAYxH,GAASA,EAAMrrD,cAAc,GAC7C6yD,EAAS1xU,SAASynC,EAA8B,SAAzBz7C,KAAKm/U,gBAA8B,OAAS,QACnEuG,EAAS1zD,WACT0zD,EAAS/jO,KAAKniG,EAClB,CACJ,EACA49T,EAAIvhV,UAAU8pV,cAAgB,WAC1B,IAAI7/U,EAAQ9F,KACZ,GAAIA,KAAK8+U,iBAAkB,CACvB,IAAI6C,EAAY3hV,KAAK9C,QAAQ8P,cAAc,IAAMquU,IACjD,GAAIsG,EACYA,EAAU9zU,iBAAiB,IAAMwuU,IACvCr+U,SAAQ,SAAUd,GACpB4I,EAAM8/U,eAAe1oV,EACzB,GAER,CACJ,EACAkgV,EAAIvhV,UAAUiuS,WAAa,WACvB9pS,KAAK2lV,gBACLx+U,OAAO0zD,iBAAiB,SAAU76D,KAAKssU,eACvCn+C,GAAaj7P,IAAIlzB,KAAK9C,QAAS,YAAa8C,KAAK6lV,aAAc7lV,MAC/DmuR,GAAaj7P,IAAIlzB,KAAK9C,QAAS,UAAW8C,KAAK8lV,aAAc9lV,MACxD4/S,GAAM5/S,KAAK69U,UACZ79U,KAAKilU,YAAc,IAAIh5B,GAAMjsS,KAAK69U,OAAQ,CAAEpuJ,MAAOzvL,KAAKolU,aAAaxkQ,KAAK5gE,SAE9EA,KAAKguU,UAAY,IAAI5jC,GAAepqS,KAAK9C,QAAS,CAAE8tS,UAAWhrS,KAAK42L,WAAWh2H,KAAK5gE,MAAO0qS,WAAY1qS,KAAK0qS,aAC5G1qS,KAAK+lV,aAAe,IAAI37C,GAAepqS,KAAK9C,QAAS,CACjD8tS,UAAWhrS,KAAK42L,WAAWh2H,KAAK5gE,MAChC0qS,WAAY,CAAEs7C,UAAW,YAAanZ,IAAK,MAAOoZ,SAAU,aAC5Dh3N,UAAW,WAEnB,EACAmuN,EAAIvhV,UAAU25S,aAAe,WACpBoK,GAAM5/S,KAAKguU,YACZhuU,KAAKguU,UAAU7lU,UAEdy3S,GAAM5/S,KAAK+lV,eACZ/lV,KAAK+lV,aAAa59U,UAEjBy3S,GAAM5/S,KAAK69U,SAAYj+B,GAAM5/S,KAAKilU,eACnCjlU,KAAKilU,YAAY98T,UACjBnI,KAAKilU,YAAc,MAEvB99T,OAAO2zD,oBAAoB,SAAU96D,KAAKssU,eAC1Cn+C,GAAa9pN,OAAOrkE,KAAK9C,QAAS,YAAa8C,KAAK6lV,cACpD13D,GAAa9pN,OAAOrkE,KAAK9C,QAAS,UAAW8C,KAAK8lV,cAClD9lV,KAAK9C,QAAQ2rE,UAAUxE,OAAO0/P,IAC9B/jU,KAAK9C,QAAQ2rE,UAAUxE,OAAOo3Q,GAClC,EACA2B,EAAIvhV,UAAU2wL,aAAe,SAAUhzK,GACnCxZ,KAAK9C,QAAQ2rE,UAAUxE,OAAOo3Q,IAC9B,IAAIyG,EAAM1oU,EAAK+zR,cAAczwS,OACzBomV,EAAYx5Q,GAAQw4Q,EAAK,IAAM7F,IAC/B8G,EAAWnjV,KAAKojV,YAAYF,GAC5BhB,EAAIr5Q,UAAUsJ,SAAS0pQ,IACvB77U,KAAKkmV,UAAU/C,GAEVnjV,KAAK2tU,cAAgBjkQ,GAAQw4Q,EAAK,cACvCliV,KAAKylV,UAAUzlV,KAAK2hH,OAGpB3hH,KAAK0+U,SAAU,EACV9+B,GAAMsjC,IAAeC,IAAanjV,KAAKu/U,cAAgB4D,IAAanjV,KAAKw+U,WAC1Ex+U,KAAKqjV,UAAUF,EAAU3pU,EAAK+zR,eAAe,GAGzD,EACA6vC,EAAIvhV,UAAUupU,aAAe,SAAUv5T,GACnC,KAAIA,EAAE8hS,SAAW,GAAKiS,GAAM/zS,EAAE0hS,cAAchpJ,iBAA5C,CAGIvkJ,KAAKy+U,UACLz+U,KAAK9C,QAAQ6Z,aAAa,aAAc,QAE5C,IAAIovU,EAAYnmV,KAAK9C,QAAQ8P,cAAc,uBAC3C,GAAIm5U,EACAA,EAAU5iO,gBAAgB,kBAD9B,CAKA,GADAvjH,KAAK2+U,WAAY,EACQ,UAArB9yU,EAAEizL,gBAAoD,IAAtB9+L,KAAKu/U,cACrC,IAAK,IAAIn/U,EAAIJ,KAAKu/U,aAAe,EAAGn/U,GAAK,EAAGA,IACxC,IAAKJ,KAAKi+U,OAAO79U,GAAGyoE,UAAUsJ,SAASy5P,IAAa,CAChD5rU,KAAKqjV,UAAUjjV,EAAG,MAAM,GACxB,KACJ,OAGH,GAAyB,SAArByL,EAAEizL,gBAA8B9+L,KAAKu/U,eAAiBznQ,GAAU,IAAMukQ,GAAar8U,KAAK9C,SAASyG,OAAS,EAC/G,IAAK,IAAIkB,EAAI7E,KAAKu/U,aAAe,EAAG16U,EAAI7E,KAAKi+U,OAAOt6U,OAAQkB,IACxD,IAAK7E,KAAKi+U,OAAOp5U,GAAGgkE,UAAUsJ,SAASy5P,IAAa,CAChD5rU,KAAKqjV,UAAUx+U,EAAG,MAAM,GACxB,KACJ,CAGR7E,KAAK2+U,WAAY,CAlBjB,CARA,CA2BJ,EACAvB,EAAIvhV,UAAUiqV,aAAe,SAAUj6U,IAChB,KAAdA,EAAE4zI,SAA8B,KAAZ5zI,EAAEw+H,OAAgC,KAAdx+H,EAAE4zI,SAA8B,KAAZ5zI,EAAEw+H,SAE1Du1K,GADUl2O,GAAQ79D,EAAE/O,OAAQ,IAAMu+U,MAEnCxvU,EAAE89D,iBAGd,EACAyzQ,EAAIvhV,UAAU+6L,WAAa,SAAU/qL,GACjC,IAAI7L,KAAK9C,QAAQ2rE,UAAUsJ,SAAS6xP,IAApC,CAGAhkU,KAAK9C,QAAQ2rE,UAAU31C,IAAIuoT,IAC3B,IAAIyG,EAAMr2U,EAAE/O,OACR6kV,EAAY3hV,KAAK4/U,eACjBwG,EAASn0Q,GAAO,IAAMupQ,GAAYmG,GACtC3hV,KAAKgvU,OAAS/8P,GAAO,IAAMqqQ,GAAYqF,GAClC/hC,GAAM5/S,KAAKgvU,UACZhvU,KAAKqtU,OAASrtU,KAAKgvU,OAAOn8C,cAAc,IAE5C,IAAIhvP,EAAO6lC,GAAQ/8D,SAASylE,cAAe,IAAMiqQ,IAC7C6G,EAAYx5Q,GAAQw4Q,EAAK,IAAM7F,IACnC,OAAQxwU,EAAEtD,QACN,IAAK,QACL,IAAK,QACD,GAAI25U,EAAI14C,cAAc3gO,UAAUsJ,SAAS6xP,IACrC,OAEJ,GAAiB,UAAbn4T,EAAEtD,QAAsB25U,EAAIr5Q,UAAUsJ,SAAS,aAAc,CAC7DnyE,KAAKylV,UAAUzlV,KAAK2hH,MACpB,KACJ,CACA3hH,KAAKijV,WAAWf,GAChB,MACJ,IAAK,MACL,IAAK,WACGA,EAAIr5Q,UAAUsJ,SAAS8pQ,MAC+C,IAAnEvyQ,GAAQw4Q,EAAK,IAAM7F,IAAaxzQ,UAAUsJ,SAASqpQ,KACtD0G,EAAInrU,aAAa,WAAYmrU,EAAIl2N,aAAa,kBAE9ChsH,KAAKqtU,QAAU9sO,GAAUvgG,KAAKqtU,OAAOnwU,UACrC8C,KAAKqtU,OAAO7rN,KAAKxhH,KAAKwhH,MAErBo+L,GAAMwmC,IAAgE,OAArDA,EAAOviV,SAASggC,KAAK,GAAGmoF,aAAa,aACvDo6N,EAAOviV,SAASggC,KAAK,GAAG9sB,aAAa,WAAY,KAErD,MACJ,IAAK,WACL,IAAK,YACI6oS,GAAM/7Q,IACP7jC,KAAKglV,sBAAsBnhT,GAE/B,MACJ,IAAK,YACDh4B,EAAE89D,kBACGi2O,GAAM5/S,KAAKgvU,SAAWhvU,KAAKgvU,OAAOnmQ,UAAUsJ,SAnwC3C,kBAowCFnyE,KAAKqtU,OAAO1rN,KAAK3hH,KAAK2hH,MAE1B,MACJ,IAAK,SACD,IAA6B,IAAzB3hH,KAAKqgV,kBAA6BzgC,GAAMsjC,GAAY,CACpD,IAAImD,EAASnD,EAAU/8L,aAClBy5J,GAAMymC,IAAWA,EAAOx9Q,UAAUsJ,SAASkqQ,KAC5CgK,EAAOt2D,kBAAkB19M,QAE7BryE,KAAKkmV,UAAUlmV,KAAKojV,YAAYF,GACpC,CACAljV,KAAKgjV,kBAxDb,CA2DJ,EACA5F,EAAIvhV,UAAUmpV,sBAAwB,SAAUloV,GAC5C,IAAIsiV,EAASntQ,GAAO,IAAMjyE,KAAKq/U,YAAar/U,KAAKg+U,SACjD,IAAKh+U,KAAK2tU,eAAiB/tB,GAAMw/B,GAAjC,CACI,IAAIkH,EAASr0Q,GAAO,iBAAkBjyE,KAAKg+U,SACvCuI,EAAWD,EAAOj1N,WAClBm1N,EAASD,EAAWD,EAAO9oJ,YAC3BipJ,EAAW3pV,EAAO4iM,WAClB4yI,EAAWx1U,EAAO0gM,YAClBkpJ,EAAS5pV,EAAO4iM,WAAa5iM,EAAO0gM,YACxC,GAAK+oJ,EAAWE,GAAcD,EAASE,EAAS,CAC5C,IAAIC,EAAeH,EAASC,EAC5BH,EAAOj1N,WAAak1N,GAAYjU,EAAWqU,EAC/C,MAEI,GAAKJ,EAAWE,GAAcD,EAASE,EAAS,CACxCC,EAAeD,EAASH,EAC5BD,EAAOj1N,WAAak1N,GAAYjU,EAAWqU,EAC/C,CAKR,CACJ,EACAvJ,EAAIvhV,UAAU+kV,gBAAkB,SAAU3uR,GACtC,OAAO16C,SAAS06C,EAAGhjD,UAAUgjD,EAAGl+C,YAAY,KAAO,GAAI,GAC3D,EACAqpU,EAAIvhV,UAAUgqV,aAAe,SAAUh6U,GACnC,IAAIq2U,EAAMr2U,EAAE/O,QACP8iT,GAAMsiC,EAAIr5Q,YAAcq5Q,EAAIr5Q,UAAUsJ,SAAS0pQ,KAChDqG,EAAInrU,aAAa,QAAS,IAAIu0R,GAAK,MAAO,CAAEs7C,iBAAkB5mV,KAAK2pH,OAAS3pH,KAAKqc,QAAQyvR,YAAY,oBAE7G,EACAsxC,EAAIvhV,UAAUgrV,0BAA4B,SAAUpvD,EAASC,GACzD,GAAMD,EAAQn/N,iBAAiB37D,OAAS+6R,EAAQp/N,iBAAiB37D,MAkF7D,GADAqD,KAAKojB,UAAY,EACbw8R,GAAM5/S,KAAK09U,OACX19U,KAAKwgV,oBAEJ,EACGxgV,KAAKurT,SAAWvrT,KAAKw6T,YACrBx6T,KAAK+/R,gBAET//R,KAAKulV,SAAS9tD,EAAQn/N,OAClBt4D,KAAK6+U,YAAYl7U,OAAS,GAC1B3D,KAAK29U,qBAET39U,KAAK6+U,YAAc,GAEnB,IADA,IAAIjsN,EAAgB3gD,GAAO,aAAyBqpQ,GAAat7U,KAAK9C,SAC/D01H,EAAcm9J,mBACjBluK,GAAO+Q,EAAcm9J,mBAEzB/vR,KAAKiyE,OAAOjyE,KAAKu/U,cACjBv/U,KAAKs9U,eAAiB,GACtBt9U,KAAK2lV,eACT,MAnGA,IADA,IAAImB,EAAclrV,OAAOwB,KAAKq6R,EAAQn/N,OAC7BzzD,EAAI,EAAGA,EAAIiiV,EAAYnjV,OAAQkB,IAGpC,IAFA,IAAI+J,EAAQ2I,SAAS3b,OAAOwB,KAAKq6R,EAAQn/N,OAAOzzD,GAAI,IAChD4+B,EAAa7nC,OAAOwB,KAAKq6R,EAAQn/N,MAAM1pD,IAClCipB,EAAI,EAAGA,EAAI4L,EAAW9/B,OAAQk0B,IAAK,CACxC,IAAI07P,EAAS33R,OAAO87R,EAAQp/N,MAAM1pD,IAAQ60B,EAAW5L,IACjDkvT,EAASnrV,OAAO67R,EAAQn/N,MAAM1pD,IAAQ60B,EAAW5L,IACjDmvT,EAAMhnV,KAAK9C,QAAQ2Q,iBAAiB,IAAMwuU,IAAaztU,GACvDqyU,OAAY,EAEZA,EADA+F,IAAQpnC,GAAMonC,EAAI/0R,KAAkB,KAAX+0R,EAAI/0R,GACjBjyD,KAAK4gV,gBAAgBoG,EAAI/0R,IAGzBrjD,EAEhB,IAAI2xU,EAAUtuQ,GAAO,IAAMmqQ,GAAe,KAAO5R,GAAWxqU,KAAKg/U,MAAQ,IAAMiC,EAAWjhV,KAAK9C,SAC3F+pV,EAAUh1Q,GAAO,IAAMqpQ,GAAc,KAAOA,GAAct7U,KAAKg/U,MAAQ,IAAMiC,EAAWjhV,KAAK9C,SACjG,GAAsB,WAAlBumC,EAAW5L,IAAqC,mBAAlB4L,EAAW5L,GAAyB,CAClE,IAAIykJ,EAAQsjI,GAAM5/S,KAAKs4D,MAAM1pD,GAAOimH,SAChC+qL,GAAM5/S,KAAKs4D,MAAM1pD,GAAOimH,OAAOugL,SAAY,GAAKp1S,KAAKs4D,MAAM1pD,GAAOimH,OAAOugL,QAE7E,GAAiB,MADHp1S,KAAKs4D,MAAM1pD,GAAOoyU,gBAAkBhhV,KAAKs4D,MAAM1pD,GAAOimH,OAAOvxH,OACzC,KAATg5K,EACrBt8K,KAAKkmV,UAAUt3U,OAEd,CACD5O,KAAKkhV,KAAO8F,EAAI/0R,GAChB,IAAIl2C,EAAM,GACVA,EAAIhZ,KAAK/C,KAAKs4D,MAAM1pD,IACpB5O,KAAKs4D,MAAMlwD,OAAOwG,EAAO,GACzB5O,KAAK4+U,eAAex2U,OAAOwG,EAAO,GAClC5O,KAAK09U,MAAMplR,MAAMlwD,OAAOwG,EAAO,GAC/B,IAAIs4U,EAAc3G,EAAQ13Q,UAAUsJ,SAASy5P,IAC7C/pN,GAAO0+N,GACPvgV,KAAK0gV,WAAY,EACjB1gV,KAAKmnV,OAAOprU,EAAKnN,GACbs4U,GACAlnV,KAAKonV,QAAQx4U,GAEjB5O,KAAK0gV,WAAY,CACrB,CACJ,CACA,GAAsB,YAAlBj9S,EAAW5L,KAAqB+nR,GAAMqnC,GAEtC,IAD+B,kBAAXF,GAAuBnnC,GAAMmnC,EAAO95U,cAC3B,MAAd85U,EAAO,IAA4B,MAAdA,EAAO,KAAeA,EAAOpjV,OAAQ,CACrE,IAAIigV,EAASj3U,SAASK,cAAc+5U,GACpCE,EAAQhwU,YAAY2sU,GACpBA,EAAO1yU,MAAMyyG,QAAU,EAC3B,KACoB,KAAXojO,GAA+B,MAAdxzD,EAAO,IAC7B5mR,SAASiwE,KAAK3lE,YAAYjX,KAAK9C,QAAQ8P,cAAcumR,IAASriR,MAAMyyG,QAAU,OAC9EsjO,EAAQh6U,UAAY85U,GAEf/mV,KAAKurT,SACV07B,EAAQh6U,UAAY,GACpBjN,KAAKujV,gBAAgB0D,EAASF,EAAQn4U,IAEf,oBAAXm4U,IACZE,EAAQh6U,UAAY85U,GAGN,aAAlBtjT,EAAW5L,KACN+nR,GAAM2gC,KACPA,EAAQ13Q,UAAUxE,OAAOkvN,GACzBgtD,EAAQ13Q,UAAU31C,IAAI6zT,IAErBnnC,GAAMqnC,KACPA,EAAQp+Q,UAAUxE,OAAOkvN,GACzB0zD,EAAQp+Q,UAAU31C,IAAI6zT,KAGR,aAAlBtjT,EAAW5L,IACX73B,KAAKqnV,UAAUz4U,GAAoB,IAAXm4U,GAEN,YAAlBtjT,EAAW5L,IACX73B,KAAKonV,QAAQx4U,GAAoB,IAAXm4U,EAE9B,CA0BZ,EACA3J,EAAIvhV,UAAU+pV,eAAiB,SAAU9oV,GACrC,IAAIgJ,EAAQ9F,KACR8oT,EAAU,IAAI9nB,GAAUlkS,EAAQ,CAChC8nS,SAAU5kS,KAAK4kS,SACfhB,WAAY,IAAMy4C,GAClB7/U,OAAO,EACP4pS,OAAQpmS,KAAKomS,OAAOxlO,KAAK5gE,MACzBwkS,UAAWxkS,KAAKsnV,cAAc1mR,KAAK5gE,MACnCyqE,KAAM,SAAU5+D,GACZ,IACI07U,EACAC,EAFAC,EAAY3hV,EAAMs9U,YAAYt9U,EAAMu4U,UAGpCqJ,EAAW,CACXC,YAAa7hV,EAAMu4U,SACnB1jR,MAAO9uD,EAAE8uD,MACT79D,OAAQ+O,EAAE/O,OACV8qV,YAAa/7U,EAAE/O,OAAO4sE,QAAQ,IAAM2yQ,IACpCwL,cAAe/hV,EAAM4L,aACrB9C,MAAO64U,GAEX,GAAK7nC,GAAM/zS,EAAE/O,OAAO4sE,QAAQ,IAAM0xQ,MAAcvvU,EAAE/O,OAAO4sE,QAAQ,IAAM0xQ,IAASt9B,YAAYh4S,EAAM5I,UAC9F4I,EAAM8+R,WAAa,IAAMy2C,GAGxB,CAgBD,GAfMxvU,EAAE/O,OAAO4sE,QAAQ5jE,EAAM8+R,WAAqC,UAAvB9+R,EAAMyoU,cAS7C5hU,SAASiwE,KAAK1rE,MAAM87D,OAAS,GAC7BlnE,EAAMu4U,SAASrxU,cAAc,IAAMivU,IAAU/qU,MAAMyrE,WAAa,SAC5D72E,EAAM4L,aAAam3D,UAAUsJ,SAASy5P,KACtCp8C,GAAY,CAAC1pR,EAAM4L,cAAek6T,MAXtCj/T,SAASiwE,KAAK1rE,MAAM87D,OAAS,cAC7BmiN,GAAS,CAACrpR,EAAM4L,cAAek6T,IAC3B9lU,EAAMu4U,SAASx1Q,UAAUsJ,SAASy5P,KAClCp8C,GAAY,CAAC1pR,EAAMu4U,UAAWzS,IAElC9lU,EAAMu4U,SAASrxU,cAAc,IAAMivU,IAAU/qU,MAAMyrE,WAAa,WASzC,eAAvB72E,EAAMyoU,eAAkC3uB,GAAM95S,EAAM5I,QAAQ8P,cAAc,eAAgB,CAC1F,IAAI86U,EAAoBhiV,EAAM5I,QAAQ8P,cAAc,uBAChD+6U,EAAmBjiV,EAAM5I,QAAQ8P,cAAc,sBAC/Cg7U,EAAaliV,EAAM5I,QAAQ8P,cAAc,mBACxC4yS,GAAMkoC,IAAsBhwU,KAAKkK,IAAK8lU,EAAkBtqJ,YAAc,EACvEsqJ,EAAkBpoJ,YAAc55L,EAAM4L,aAAaguL,WAAa55L,EAAM4L,aAAa8rL,cACnFwqJ,EAAW32N,YAAc,KAExBuuL,GAAMmoC,IAAqBjwU,KAAKkK,IAAK+lU,EAAiBroJ,WAAaqoJ,EAAiBvqJ,YACrF13L,EAAM4L,aAAaguL,YAAeqoJ,EAAiBvqJ,YAAc,IACjEwqJ,EAAW32N,YAAc,GAEjC,CACAvrH,EAAM4L,aAAaR,MAAMiwG,cAAgB,OACzCqmO,EAAW99Q,GAAQ79D,EAAE/O,OAAQ,IAAMu/U,GAAc,gBACjD,IAAI4L,EAAqB,EACE,eAAvBniV,EAAMyoU,cAAkC3uB,GAAM95S,EAAM5I,QAAQ8P,cAAc,iBAC1Ei7U,EAAqBniV,EAAM5I,QAAQ8P,cAAc,sBAAsBwwL,aAE3D,MAAZgqJ,IAAqBA,EAASU,WAAWpiV,EAAMu4U,WAC/CmJ,EAAS99Q,QAAQ,IAAM0xQ,IAAS8M,WAAWpiV,EAAMu4U,SAAS30Q,QAAQ,IAAM0xQ,QACxEmM,EAAYzhV,EAAMs9U,YAAYoE,IACdC,GACX3vU,KAAKkK,IAAKwlU,EAAS9nJ,WAAa8nJ,EAAShqJ,YACtC13L,EAAM4L,aAAaguL,YAAe8nJ,EAAShqJ,YAAc,GAC7D13L,EAAMqiV,WAAWX,EAAUC,EAAWF,GAEtCA,EAAYE,GACX3vU,KAAKkK,IAAIwlU,EAAShqJ,YAAc,GAAKgqJ,EAAS9nJ,WAC3CuoJ,EAAsBniV,EAAM4L,aAAaguL,WAAa55L,EAAM4L,aAAa8rL,aAC7E13L,EAAMqiV,WAAWX,EAAUC,EAAWF,IAG9CzhV,EAAMsiV,aAAetiV,EAAMs9U,YAAYt9U,EAAMu4U,UAC7Cv4U,EAAM0uH,QAAQ,WAAYkzN,EAC9B,MArDI5hV,EAAM0uH,QAAQ,WAAYkzN,EAsDlC,EACAv/C,SAAUnoS,KAAKqoV,aAAaznR,KAAK5gE,QAErCA,KAAKs9U,eAAev6U,KAAK+lT,EAC7B,EACAs0B,EAAIvhV,UAAUuqS,OAAS,SAAUv6R,GAc7B,OAbA7L,KAAK0R,aAAe1R,KAAKoN,cAAc,OACnCvB,EAAE3O,UACF8C,KAAK0R,aAAgB7F,EAAE3O,QAAQ+H,WAAU,GACzCkqR,GAAS,CAACnvR,KAAK0R,cAAe,uBAC1B1R,KAAK9C,QAAQ8P,cAAc,IAAMquU,IAAYxyQ,UAAUsJ,SAAS2pQ,KAChE3sD,GAAS,CAACnvR,KAAK0R,cAAeoqU,IAElCtsD,GAAY,CAACxvR,KAAK0R,aAAa1E,cAAc,IAAMivU,KAAY,YAC1Dr8B,GAAM5/S,KAAK0R,aAAa1E,cAAc,uBACvCq3D,GAAOrkE,KAAK0R,aAAa1E,cAAc,sBAE3CL,SAASiwE,KAAK3lE,YAAYjX,KAAK0R,eAE5B1R,KAAK0R,YAChB,EACA0rU,EAAIvhV,UAAUyrV,cAAgB,SAAUz7U,GACpC,IAAI/F,EAAQ9F,KACZA,KAAKs+U,cAAgBt+U,KAAKs4D,MAAMr7D,KAAI,SAAUkyB,GAAK,OAAOA,CAAG,IAC7DnvB,KAAKq+U,SAAWxyU,EAAE3O,QAClB,IAAIwqV,EAAW,CACXC,YAAa97U,EAAE3O,QACfy9D,MAAO9uD,EAAE8uD,MACT79D,OAAQ+O,EAAE/O,OACV8qV,YAAa,KACbh5U,MAAO5O,KAAKojV,YAAYpjV,KAAKq+U,UAC7BwJ,cAAe7nV,KAAK0R,aACpByI,QAAQ,GAEZna,KAAKw0H,QAAQ,cAAekzN,GAAU,SAAUY,GACxCA,EAAgBnuU,OAChB0nG,GAAO/7G,EAAM4L,eAGb5L,EAAM47U,oBACNvyD,GAAS,CAACrpR,EAAMk4U,QAAQhxU,cAAc,IAAMgvU,KAAiBpQ,IAC7D9lU,EAAMu4U,SAASrxU,cAAc,IAAMivU,IAAU/qU,MAAMyrE,WAAa,SAExE,GACJ,EACAygQ,EAAIvhV,UAAUssV,WAAa,SAAUX,EAAUe,EAAYhB,GACvD,GAAIvnV,KAAKs4D,MAAM30D,OAAS,EAAG,CACvB,IAAIkgC,EAAO7jC,KAAKs+U,cAAciK,GAC9BvoV,KAAKs+U,cAAcl2U,OAAOmgV,EAAY,GACtCvoV,KAAKs+U,cAAcl2U,OAAOm/U,EAAW,EAAG1jT,EAC5C,CAIA,GAH0B,aAAtB7jC,KAAKuuU,cACLiZ,EAAS75U,WAAWuwJ,aAAal+J,KAAKq+U,SAAUmJ,EAASgB,oBAEzDD,EAAahB,EACb,GAAMvnV,KAAKq+U,SAAS70C,cAAe0+C,WAAWV,EAASh+C,eA0BnDxpS,KAAKq+U,SAAS1wU,WAAWuwJ,aAAal+J,KAAKq+U,SAAUmJ,QAzBrD,GAA0B,aAAtBxnV,KAAKuuU,aACL,GAAIiZ,EAASU,WAAWV,EAASh+C,cAAc72K,WAAY,CACvD,IAAI81N,EAAiBzoV,KAAKq+U,SAAS1wU,WACnC65U,EAAS75U,WAAWuwJ,aAAal+J,KAAKq+U,SAAUmJ,GAChDiB,EAAevqL,aAAaspL,EAASh+C,cAAc72K,UAAW81N,EAAen7U,WAAW,GAC5F,MAEItN,KAAKq+U,SAAS1wU,WAAWuwJ,aAAcspL,EAASh+C,cAAc72K,UAAY3yH,KAAKq+U,SAAS70C,cAAcl8R,WAAW,IACjHk6U,EAAS75U,WAAWuwJ,aAAal+J,KAAKq+U,SAAUmJ,OAGnD,CACD,IAAIkB,EAAWlB,EAASh+C,cAAe72K,UACvC,GAAI60N,EAASU,WAAWQ,GAAU,CAC1BD,EAAiBzoV,KAAKq+U,SAAS1wU,WACnC65U,EAAS75U,WAAWuwJ,aAAal+J,KAAKq+U,SAAUmJ,GAChDiB,EAAevqL,aAAawqL,EAASD,EAAen7U,WAAW,GACnE,MAEItN,KAAKq+U,SAAS1wU,WAAWuwJ,aAAcspL,EAASh+C,cAAe72K,UAAW3yH,KAAKq+U,SAAS70C,cAAcl8R,WAAW,IACjHk6U,EAAS75U,WAAWuwJ,aAAal+J,KAAKq+U,SAAUmJ,EAExD,CAMJe,EAAahB,IACPvnV,KAAKq+U,SAAS70C,cAAe0+C,WAAWV,EAASh+C,eAWnDxpS,KAAKq+U,SAAS1wU,WAAWuwJ,aAAal+J,KAAKq+U,SAAUmJ,EAASgB,oBAVpC,aAAtBxoV,KAAKuuU,cACLvuU,KAAKq+U,SAAS70C,cAAcvyR,YAAYuwU,EAASh+C,cAAczZ,mBAC/Dy3D,EAAS75U,WAAWuwJ,aAAal+J,KAAKq+U,SAAUmJ,EAASrhM,eAGzDnmJ,KAAKq+U,SAAS1wU,WAAWuwJ,aAAcspL,EAASh+C,cAAe72K,UAAW3yH,KAAKq+U,SAAS70C,cAAcl8R,WAAW,IACjHk6U,EAAS75U,WAAWuwJ,aAAal+J,KAAKq+U,SAAUmJ,IAOhE,EACApK,EAAIvhV,UAAUwsV,aAAe,SAAUx8U,GACnC,IAAI/F,EAAQ9F,KACZ6hH,GAAO7hH,KAAK0R,cACZ1R,KAAK0R,aAAe,KACpB1R,KAAKq+U,SAASrxU,cAAc,IAAMivU,IAAU/qU,MAAMyrE,WAAa,UAC/DhwE,SAASiwE,KAAK1rE,MAAM87D,OAAS,GAC7B,IAAI27Q,EAAe,CACfhB,YAAa3nV,KAAKq+U,SAClB1jR,MAAO9uD,EAAE8uD,MACT79D,OAAQ+O,EAAE/O,OACV8qV,YAAa5nV,KAAKi+U,OAAOj+U,KAAKooV,cAC9BP,cAAe,KACfj5U,MAAO5O,KAAKooV,aACZjuU,QAAQ,GAEZna,KAAKw0H,QAAQ,UAAWm0N,GAAc,SAAUC,GACxCA,EAAgBzuU,OAChBrU,EAAM+8L,UAGF/8L,EAAMwyD,MAAM30D,OAAS,GAAKmC,EAAMw4U,cAAc36U,OAAS,GACvDmC,EAAMwyD,MAAQxyD,EAAMw4U,cACpBx4U,EAAMy5U,aAAez5U,EAAMsiV,aAC3BtiV,EAAM+8L,YAGN/8L,EAAMu4U,SAASrxU,cAAc,IAAMivU,IAAU/qU,MAAMyrE,WAAa,GAChE6yM,GAAY,CAAC1pR,EAAMk4U,QAAQhxU,cAAc,IAAMgvU,KAAiBpQ,IAChE9lU,EAAMu9U,UAAUv9U,EAAMsiV,aAAc,MAAM,GAGtD,IACApoV,KAAKq+U,SAAW,IACpB,EASAjB,EAAIvhV,UAAUwrV,UAAY,SAAUz4U,EAAOnT,GACvC,IAAIuiV,EAAUlmQ,GAAU,IAAMukQ,GAAar8U,KAAK9C,SAAS0R,GACrDgxS,GAAMo+B,MAGI,IAAVviV,GACAuiV,EAAQn1Q,UAAUxE,OAAO2/P,GAAaQ,IACtCwZ,EAAQjuD,kBAAkBh5Q,aAAa,WAAYinU,EAAQjuD,kBAAkB/jK,aAAa,oBAG1FgyN,EAAQn1Q,UAAU31C,IAAI8wS,GAAaQ,IACnCwZ,EAAQjuD,kBAAkBxsK,gBAAgB,YACtCy6N,EAAQn1Q,UAAUsJ,SAASqpQ,KAC3Bx7U,KAAKiyE,OAAOrjE,EAAQ,IAGvBgxS,GAAM5/S,KAAKs4D,MAAM1pD,MAClB5O,KAAKs4D,MAAM1pD,GAAOi7G,UAAYpuH,EAC9BuE,KAAKgyR,YAETgsD,EAAQjnU,aAAa,iBAA4B,IAAVtb,EAAkB,QAAU,QACvE,EAQA2hV,EAAIvhV,UAAUsrV,OAAS,SAAU7uR,EAAO1pD,GACpC,IAAI9I,EAAQ9F,KACR6oV,EAAU,CAAEC,WAAYxwR,EAAOn+C,QAAQ,GACtCna,KAAK0gV,UAQN1gV,KAAK+oV,iBAAiBzwR,EAAO1pD,GAP7B5O,KAAKw0H,QAAQ,SAAUq0N,GAAS,SAAUG,GACjCA,EAAc7uU,QACfrU,EAAMijV,iBAAiBzwR,EAAO1pD,EAEtC,IAKA5O,KAAKurT,SACLvrT,KAAK8/R,sBAEb,EACAs9C,EAAIvhV,UAAUktV,iBAAmB,SAAUzwR,EAAO1pD,GAC9C,IAAI9I,EAAQ9F,KACRipV,EAAe,EAEnB,GADAjpV,KAAK+9U,OAAS9rQ,GAAO,IAAMopQ,GAAYr7U,KAAK9C,SACxC0iT,GAAM5/S,KAAK+9U,QACX/9U,KAAKs4D,MAAQA,EACbt4D,KAAKwgV,gBACLxgV,KAAK2lV,oBAEJ,CACD,IAAIuD,EAAapxQ,GAAU,kBAAoBukQ,GAAar8U,KAAK9C,SAASyG,OAO1E,GANmB,IAAfulV,IACAD,EAAejpV,KAAKojB,UAAY,GAEhCw8R,GAAMhxS,KACNA,EAAQs6U,EAAa,GAErBA,EAAat6U,GAASA,EAAQ,GAAK4L,MAAM5L,GACzC,OAEe,IAAfs6U,GAAqBtpC,GAAM5/S,KAAK+9U,UAChC/9U,KAAK+9U,OAAO7sU,MAAMyyG,QAAU,IAE3Bi8L,GAAM5/S,KAAKo+U,UACZp+U,KAAKo+U,QAAQv1Q,UAAU31C,IAAI04S,IAE/B5rU,KAAKg+U,QAAU/rQ,GAAO,IAAMmqQ,GAAcp8U,KAAK4/U,gBAC/C5/U,KAAK0yT,OAAQ,EACb,IAAIy2B,EAAanpV,KAAKkgV,YAAY5nR,EAAO1pD,GACzC5O,KAAK0yT,OAAQ,EACb,IACI02B,EADAC,EAAM,EAEV/wR,EAAMt6D,SAAQ,SAAU6lC,EAAMkgT,GAa1B,GAZAqF,EAAcvlT,EAAKm9S,gBAAkBn9S,EAAKgxF,OAAOvxH,KAC3Cs8S,GAAM/7Q,EAAKm9S,gBAAkBn9S,EAAKgxF,SAAW+qL,GAAMwpC,IAC7B,IAAvBA,EAAYzlV,SAAkBi8S,GAAM/7Q,EAAKgxF,SAAW+qL,GAAM/7Q,EAAKgxF,OAAOugL,WACnE+zC,EAAWpF,KACPnkC,GAAM/7Q,EAAKouB,MACXpuB,EAAKouB,GAAKu4Q,GAAW1kU,EAAMk5U,MAAQ,IAAMlC,IAAiBmM,EAAelF,GAAOjoV,YAEpFqtV,EAAWpF,GAAOjoB,eAAe,WAAaj4R,EAAKouB,IAEvDnsD,EAAMwyD,MAAMlwD,OAAQwG,EAAQy6U,EAAM,EAAGxlT,GACrCwlT,KAEAvjV,EAAM83U,aAAeh+B,GAAM/7Q,EAAKgxF,UAAY+qL,GAAM/7Q,EAAKgxF,OAAOvxH,MAAO,CACrE,IAAIg4Q,EAAK2tE,EAAelF,EACpB10D,EAAMvpR,EAAMsH,cAAc,MAAO,CACjC6kD,GAAIqpR,GAAcx1U,EAAMk5U,MAAQ,IAAM1jE,EAAIlsM,UAAWo7P,GACrD3zT,MAAO,CAAEwnK,KAAM,WAAY,kBAAmBmsJ,GAAW,IAAMlvD,KAEnEx1Q,EAAM+3U,OAAO3/K,aAAamxH,EAAKvpR,EAAM+3U,OAAOh6U,SAAU+K,EAAQm1U,IAC9D,IAAIgB,EAASj/U,EAAM48U,cAAc58U,EAAM+3U,OAAQviE,EAAGx/Q,YAClDgK,EAAM49U,WAAWqB,EAAQlhT,EAAKx2B,QAAS,SAAUuB,EACrD,CACJ,IACA5O,KAAK09U,MAAMhF,SAASyQ,EAAYv6U,GAC3B5O,KAAK0gV,WACN1gV,KAAKw0H,QAAQ,QAAS,CAAEs0N,WAAYxwR,IAEpCt4D,KAAKu/U,eAAiB3wU,EACtB5O,KAAKiyE,OAAOrjE,IAGZ5O,KAAKgjV,kBACLhjV,KAAKi+U,OAASnmQ,GAAU,IAAMukQ,GAAar8U,KAAK4/U,iBAEpD5/U,KAAK2lV,eACT,CACJ,EAOAvI,EAAIvhV,UAAUqqV,UAAY,SAAUt3U,GAChC,IAAI9I,EAAQ9F,KACRkiV,EAAMpqQ,GAAU,IAAMukQ,GAAar8U,KAAK9C,SAAS0R,GACrD,IAAIgxS,GAAMsiC,GAAV,CAGA,IAAIoH,EAAa,CAAEC,YAAarH,EAAKsH,aAAc56U,EAAOuL,QAAQ,GAClEna,KAAKw0H,QAAQ,WAAY80N,GAAY,SAAUG,GAC3C,IAAKA,EAAgBtvU,OAAQ,CACzBrU,EAAM43U,MAAMzE,YAAYrqU,GACpB9I,EAAMg5U,kBAAqBlwU,IAAUjS,MAAMd,UAAUqT,QAAQnT,KAAK+J,EAAM84U,eAAgBsD,EAAIjwR,MAC5FrjD,EAAQjS,MAAMd,UAAUqT,QAAQnT,KAAK+J,EAAM84U,eAAgBsD,EAAIjwR,KAEnE,IAAIy3R,EAAiB5jV,EAAM84U,eAAe1vU,QAAQgzU,EAAIjwR,IACtDnsD,EAAMwyD,MAAMlwD,OAAOshV,EAAgB,GACnC5jV,EAAM84U,eAAex2U,OAAOshV,EAAgB,GAC5C5jV,EAAM0/U,sBACN,IAAImE,EAAS13Q,GAAO,IAAMqpQ,GAAcx1U,EAAMk5U,MAAQ,IAAMl5U,EAAM68U,SAAST,EAAIjwR,IAAKggB,GAAO,IAAMqpQ,GAAax1U,EAAM5I,UACpH,IAAK0iT,GAAM+pC,GAAS,CAChB,IAAIC,EAAqB9jV,EAAM8jV,mBAC/B,GAAIA,GAAsBA,EAAmBv8U,QAAS,CAElD,IADA,IAAIw8U,EAAkB,GACbhlV,EAAI,EAAGA,EAAI+kV,EAAmBv8U,QAAQ1J,OAAQkB,IAAK,CACxD,IAAIilV,EAAiBF,EAAmBv8U,QAAQxI,GAAGklV,UAAU,GACzDC,EAActgR,GAAQogR,EAAgB,IAAMtf,IAChD,IAAKx3D,GAAkB82E,IAAmBE,IAAgBL,EAAQ,CAC9DE,EAAgB9mV,KAAK6mV,EAAmBv8U,QAAQxI,IAChD,KACJ,CACJ,CACIglV,EAAgBlmV,OAAS,GACzBmC,EAAMi6R,cAAc,CAAC,WAAY8pD,EAEzC,CACAhoO,GAAO8nO,EACX,CACA7jV,EAAM0uH,QAAQ,UAAWi1N,GACrB3jV,EAAMw3U,gBAAkBx3U,EAAMw3U,eAAe35U,OAAS,IACtDmC,EAAMw3U,eAAe1uU,GAAOzG,UAC5BrC,EAAMw3U,eAAe1uU,GAAS,KAC9B9I,EAAMw3U,eAAel1U,OAAOwG,EAAO,IAEnCszU,EAAIr5Q,UAAUsJ,SAASqpQ,KACvB5sU,EAASA,EAAQkpE,GAAU,IAAMukQ,GAAc,SAAWE,GAAe,IAAKz2U,EAAM5I,SAASyG,OAAS,EAAKiL,EAAQ,EAAIA,EACvH9I,EAAMg/U,iBAAkB,EACxBh/U,EAAMy5U,aAAe3wU,EACrB9I,EAAMmsE,OAAOrjE,IAERA,IAAU9I,EAAMy5U,eACjB3wU,EAAQ9I,EAAMy5U,eACd3wU,EAAQ9I,EAAM84U,eAAe1vU,QAAQpJ,EAAMm4U,OAAOn4U,EAAMy5U,cAActtR,IACtEnsD,EAAM8rR,cAAc,CAAE2tD,aAAc3wU,GAAS,EAAIA,EAAQ9I,EAAMy5U,eAAgB,GAC/Ez5U,EAAM04U,UAAY14U,EAAMy5U,cAE5Bz5U,EAAMm4U,OAASnmQ,GAAU,IAAMukQ,GAAav2U,EAAM85U,iBAEK,IAAvD9nQ,GAAU,IAAMukQ,GAAav2U,EAAM5I,SAASyG,SAC5CmC,EAAMi4U,OAAO7sU,MAAMyyG,QAAU,QAEjC79G,EAAMg/U,iBAAkB,CAC5B,CACJ,GAxDA,CAyDJ,EAQA1H,EAAIvhV,UAAUurV,QAAU,SAAUx4U,EAAOnT,GACrC,IAAI68D,EACAz0B,EAAOi0C,GAAU,IAAMukQ,GAAar8U,KAAK9C,SAAS0R,GACtD,IAAIgxS,GAAM/7Q,GAAV,CAOA,GAJI+7Q,GAAMnkT,KACNA,GAAQ,GAEZuE,KAAKo+U,QAAQv1Q,UAAU31C,IAAI04S,KACb,IAAVnwU,EAGA,GAFAooC,EAAKglC,UAAU31C,IAAI04S,IAEE,KADrBtzQ,EAAQwf,GAAU,IAAMukQ,GAAc,SAAWzQ,GAAa,IAAK5rU,KAAKg+U,UAC9Dr6U,QAAgBkgC,EAAKglC,UAAUsJ,SAASqpQ,KAC9C,GAAc,IAAV5sU,EACA,IAAK,IAAI/J,EAAI+J,EAAQ,EAAG/J,GAAK,EAAGA,IAAK,CACjC,IAAK7E,KAAKi+U,OAAOp5U,GAAGgkE,UAAUsJ,SAASy5P,IAAa,CAChD5rU,KAAKiyE,OAAOptE,GACZ,KACJ,CACK,GAAU,IAANA,EACL,IAAK,IAAIzE,EAAIwO,EAAQ,EAAGxO,EAAIJ,KAAKi+U,OAAOt6U,OAAQvD,IAC5C,IAAKJ,KAAKi+U,OAAO79U,GAAGyoE,UAAUsJ,SAASy5P,IAAa,CAChD5rU,KAAKiyE,OAAO7xE,GACZ,KACJ,CAGZ,MAGA,IAASA,EAAIwO,EAAQ,EAAGxO,EAAIJ,KAAKi+U,OAAOt6U,OAAQvD,IAC5C,IAAKJ,KAAKi+U,OAAO79U,GAAGyoE,UAAUsJ,SAASy5P,IAAa,CAChD5rU,KAAKiyE,OAAO7xE,GACZ,KACJ,OAIc,IAAjBk4D,EAAM30D,QACX3D,KAAK9C,QAAQ2rE,UAAU31C,IAAI04S,SAI/B5rU,KAAK9C,QAAQ2rE,UAAUxE,OAAOunQ,IAC9BtzQ,EAAQwf,GAAU,IAAMukQ,GAAc,SAAWzQ,GAAa,IAAK5rU,KAAKg+U,SACxEn6S,EAAKglC,UAAUxE,OAAOunQ,IACD,IAAjBtzQ,EAAM30D,QACN3D,KAAKiyE,OAAOrjE,GAGpB5O,KAAKgjV,kBACLn/S,EAAK9sB,aAAa,cAAe,GAAKtb,GACZ,UAAtBuE,KAAKuuU,cAA4BvuU,KAAK09U,OACtC19U,KAAK09U,MAAM1L,iBAjDf,CAmDJ,EACAoL,EAAIvhV,UAAUwnV,UAAY,SAAU7pU,EAAMmhD,EAAOoxP,QAC/B,IAAVpxP,IAAoBA,EAAQ,WACX,IAAjBoxP,IAA2BA,GAAe,GAC9C/rT,KAAK+rT,aAAeA,EACpB/rT,KAAKiyE,OAAOz4D,EAAMmhD,EACtB,EAQAyiR,EAAIvhV,UAAUo2E,OAAS,SAAUz4D,EAAMmhD,GACnC,IAAI70D,EAAQ9F,KACR2hV,EAAY3hV,KAAK4/U,eACrB5/U,KAAKg+U,QAAU/rQ,GAAO,IAAMmqQ,GAAcuF,GAC1C3hV,KAAKi+U,OAASnmQ,GAAU,IAAMukQ,GAAasF,GAC3C3hV,KAAKqN,QAAU4kE,GAAO,IAAMqpQ,GAAat7U,KAAK9C,SAC9C8C,KAAKm+U,SAAWn+U,KAAKi+U,OAAOj+U,KAAKw+U,WAC7B5+B,GAAM5/S,KAAKu/U,eAAkBv/U,KAAKu/U,aAAe,GAAOv/U,KAAKi+U,OAAOt6U,QAAU3D,KAAKu/U,cAAiB/kU,MAAMxa,KAAKu/U,cAC/Gv/U,KAAKu/U,aAAe,EAGpBv/U,KAAKiqV,WAAajqV,KAAK2iV,SAAS3iV,KAAKi+U,OAAOj+U,KAAKu/U,cAActtR,IAEnE,IAAIiwR,EAAMliV,KAAKi+U,OAAOzkU,GAClBomS,GAAMsiC,GACNliV,KAAKiqV,WAAa,IAGlBjqV,KAAKqlV,YAAcrlV,KAAK2iV,SAAST,EAAIjwR,IAEpC2tP,GAAM5/S,KAAKm+U,WAAcn+U,KAAKm+U,SAASt1Q,UAAUsJ,SAAS6xP,KAC3DhkU,KAAKm+U,SAASt6U,SAASggC,KAAK,GAAG9sB,aAAa,WAAY/W,KAAKm+U,SAASpuD,kBAAkB/jK,aAAa,aAEzG,IAAIi5N,EAAW,CACXtqR,MAAOA,EACPuqR,aAAcllV,KAAKm+U,SACnBgH,cAAenlV,KAAKw+U,UACpBe,aAAcv/U,KAAKi+U,OAAOj+U,KAAKu/U,cAC/B/rN,cAAexzH,KAAKu/U,aACpB6F,gBAAkBxlC,GAAM5/S,KAAKqN,SACsD,KAA/E4kE,GAAO,IAAMqpQ,GAAct7U,KAAKg/U,MAAQ,IAAMh/U,KAAKiqV,WAAYjqV,KAAKqN,SACxE68U,cAAehI,EACfiI,eAAgB3wU,EAChB4wU,iBAAmBxqC,GAAM5/S,KAAKqN,SACsD,KAAhF4kE,GAAO,IAAMqpQ,GAAct7U,KAAKg/U,MAAQ,IAAMh/U,KAAKqlV,YAAarlV,KAAKqN,SACzEi4U,SAAUtlV,KAAK2+U,UACf5yB,aAAc/rT,KAAK+rT,aACnB5xS,QAAQ,GAEPna,KAAKojT,WAQNpjT,KAAKoqV,iBAAiB5wU,EAAMxZ,KAAK+rT,cAPjC/rT,KAAKw0H,QAAQ,YAAaywN,GAAU,SAAUoF,GACrCA,EAAWlwU,QACZrU,EAAMskV,iBAAiB5wU,EAAM1T,EAAMimT,aAE3C,IAKJ/rT,KAAK+rT,cAAe,CACxB,EACAqxB,EAAIvhV,UAAUuuV,iBAAmB,SAAU5wU,EAAMuyS,GAC7C,GAAoB,kBAATvyS,EAAmB,CAC1B,IAAKomS,GAAM5/S,KAAKi+U,OAAOzkU,MAAWxZ,KAAKi+U,OAAOzkU,GAAMqvD,UAAUsJ,SAAS6xP,KACnEhkU,KAAKi+U,OAAOzkU,GAAMqvD,UAAUsJ,SAASy5P,KACrC,IAAK,IAAI/mU,EAAI2U,EAAO,EAAG3U,EAAI7E,KAAKs4D,MAAM30D,OAAQkB,IAAK,CAC/C,IAA+B,IAA3B7E,KAAKs4D,MAAMzzD,GAAGglH,WAAgD,IAA1B7pH,KAAKs4D,MAAMzzD,GAAGy7F,QAAkB,CACpE9mF,EAAO3U,EACP,KACJ,CAEI2U,EAAO,CAEf,CAEJ,GAAIxZ,KAAKi+U,OAAOt6U,OAAS6V,GAAQA,GAAQ,IAAMgB,MAAMhB,GAGjD,GAFAxZ,KAAKw+U,UAAYx+U,KAAKu/U,aACtBv/U,KAAKm+U,SAAWn+U,KAAKi+U,OAAOj+U,KAAKw+U,WAC7Bx+U,KAAKi+U,OAAOzkU,GAAMqvD,UAAUsJ,SAASoqQ,KAAiBv8U,KAAKwkV,kBAE3D,GADAxkV,KAAK2kV,UAAU3kV,KAAK8hV,aAAa9hV,KAAKi+U,OAAOzkU,IAAQ,KAAMuyS,IACrDnM,GAAM5/S,KAAKs4D,QAAUt4D,KAAKs4D,MAAM30D,OAAS,GAAM3D,KAAK8+U,iBAAkB,CACxE9+U,KAAKi+U,OAASnmQ,GAAU,IAAMskQ,GAAe,KAAOC,GAAar8U,KAAK+9U,QACtE,IAAIl6S,EAAO7jC,KAAKs4D,MAAM9+C,GACtBxZ,KAAKs4D,MAAMlwD,OAAOoR,EAAM,GACxBxZ,KAAKs4D,MAAMlwD,OAAOpI,KAAKi+U,OAAOt6U,OAAS,EAAG,EAAGkgC,GAC7C,IAAIymT,EAAStqV,KAAK4+U,eAAeplU,GACjCxZ,KAAK4+U,eAAex2U,OAAOoR,EAAM,GACjCxZ,KAAK4+U,eAAex2U,OAAOpI,KAAKi+U,OAAOt6U,OAAS,EAAG,EAAG2mV,EAC1D,OAGAtqV,KAAK2kV,UAAUnrU,EAAM,KAAMuyS,QAI/B/rT,KAAK2kV,UAAU,EAAG,KAAM54B,EAEhC,MACSvyS,aAAiB4mF,aACtBpgG,KAAK2kV,UAAU3kV,KAAKojV,YAAY5pU,GAAO,KAAMuyS,EAErD,EAOAqxB,EAAIvhV,UAAU0uV,aAAe,SAAUC,GAEnC,IADA,IAAIn7Q,EACKxqE,EAAI,EAAGA,EAAI7E,KAAKi+U,OAAOt6U,OAAQkB,IAAK,CAEzC,GAAI2lV,IADQxqV,KAAKi+U,OAAOp5U,GAAGmnH,aAAa,WACf,CACrB38C,EAAWxqE,EACX,KACJ,CACJ,CACA,OAAOwqE,CACX,EAQA+tQ,EAAIvhV,UAAUi/E,QAAU,SAAUr/E,GAC9BuE,KAAKm3T,YAAYn3T,KAAK9C,QAAS8mU,GAAavoU,GAC5CuE,KAAK9C,QAAQ6Z,aAAa,gBAAiB,GAAKtb,EACpD,EAMA2hV,EAAIvhV,UAAUgkS,eAAiB,WAC3B,OAAO7/R,KAAKmgS,aAAa,CAAC,eAAgB,YAC9C,EAOAi9C,EAAIvhV,UAAU+2R,cAAgB,WAC1B,MAAO,KACX,EASAwqD,EAAIvhV,UAAUy2R,kBAAoB,SAAUmF,EAASC,GAEjD,IADA,IAAI5xR,EAAQ9F,KACHmb,EAAK,EAAGpV,EAAKnK,OAAOwB,KAAKq6R,GAAUt8Q,EAAKpV,EAAGpC,OAAQwX,IAAM,CAE9D,OADWpV,EAAGoV,IAEV,IAAK,QACDihT,GAASp8T,KAAK9C,QAAS,CAAEgkE,MAAO8yM,GAAWyjB,EAAQv2N,SACnD,MACJ,IAAK,SACDk7P,GAASp8T,KAAK9C,QAAS,CAAEikE,OAAQ6yM,GAAWyjB,EAAQt2N,UACpDnhE,KAAKs/U,kBAAiB,GACtB,MACJ,IAAK,WACD,IAAIt1B,EAAYhqT,KAAK9C,QAAQ8P,cAAc,IAAMquU,IACxB,KAArB3jD,EAAQqd,UAAoB/hC,GAAkB0kB,EAAQqd,WAStD/0S,KAAKm3T,YAAYn3T,KAAK9C,QAASu6R,EAAQsd,UAAU,GAC5C/hC,GAAkBg3C,IACnBhqT,KAAKm3T,YAAYnN,EAAWvyB,EAAQsd,UAAU,KAVlD/0S,KAAKm3T,YAAYn3T,KAAK9C,QAASw6R,EAAQqd,UAAU,GACjD/0S,KAAKm3T,YAAYn3T,KAAK9C,QAASu6R,EAAQsd,UAAU,GAC5C/hC,GAAkBg3C,KACnBhqT,KAAKm3T,YAAYnN,EAAWtyB,EAAQqd,UAAU,GAC9C/0S,KAAKm3T,YAAYnN,EAAWvyB,EAAQsd,UAAU,KAStD,MACJ,IAAK,QACD/0S,KAAK6mV,0BAA0BpvD,EAASC,GACxC,MACJ,IAAK,kBACD13R,KAAKogV,eAAe3oD,EAAQ4oD,iBAC5B,MACJ,IAAK,mBACDrgV,KAAKu9U,yBACL,MACJ,IAAK,eACDv9U,KAAKu/U,aAAe7nD,EAAQ6nD,aAC5Bv/U,KAAKiyE,OAAOwlN,EAAQ8nD,cACpB,MACJ,IAAK,kBACDv/U,KAAK+xU,kBAAkBt6C,EAAQ0nD,iBAC/B,MACJ,IAAK,YACDn/U,KAAKy/U,OAAOhoD,EAAQuG,WACpB,MACJ,IAAK,eACDh+R,KAAK09U,MAAMnP,aAAe92C,EAAQ82C,aAClCvuU,KAAK09U,MAAM1rD,WACXhyR,KAAKu9U,yBACL,MACJ,IAAK,mBACDv9U,KAAKs/U,kBAAiB,GACtBt/U,KAAKiyE,OAAOjyE,KAAKu/U,cACjB,MACJ,IAAK,aACGv/U,KAAK09U,QACL19U,KAAK09U,MAAMhY,WAAa1lU,KAAK0lU,YAEjC,MACJ,IAAK,mBACD1lU,KAAK2lV,gBACL,MACJ,IAAK,WACG3lV,KAAK8+U,mBACL9+U,KAAKs9U,eAAet/U,SAAQ,SAAU6lC,GAClCA,EAAK+gQ,SAAW9+R,EAAM8+R,QAC1B,IACA5kS,KAAK6iM,WAIrB,CACJ,EAMAu6I,EAAIvhV,UAAU4uV,iBAAmB,WAI7B,GAHIzqV,KAAKurT,SAAWvrT,KAAK49U,YACrB59U,KAAK+/R,gBAEJ//R,KAAK49U,WAiFL,CACD,IAAI+B,EAAW3/U,KAAK9C,QAAQ8P,cAAc,IAAMovU,IAC5Cl/U,EAAU8C,KAAK9C,QAAQ8P,cAAc,IAAMqvU,GAAc,IAAMb,IAC/D5sU,EAAQ5O,KAAK4gV,gBAAgB1jV,EAAQ+0D,IACrC4iE,EAAS33H,EAAQ4yE,UACjB46Q,EAAgB1qV,KAAK9C,QAAQ8P,cAAc,IAAMsuU,IAAatuU,cAAc,IAAMwuU,IAAY33U,SAAS,GACvG8mV,EAAeD,EAAcz9U,UACjC40G,GAAO3kH,GACP2kH,GAAO6oO,GACP,IAAI5zU,EAAO,CACPs4D,UAAWitQ,GAAc,IAAMxR,GAAe,IAAM2Q,GAAYvpR,GAAIu4Q,GAAWxqU,KAAKg/U,MAAQ,IAAMpwU,GAElGg8U,EAAY5qV,KAAKoN,cAAc,OAAQ,CACvCgiE,UAAW2sQ,GAAU9uU,UAAW4nH,EAAQh+G,MAAO,CAAE,KAAQ,kBAC1DsyS,UACC0hC,EAAQ7qV,KAAKoN,cAAc,MAAO,CAClCgiE,UAAW8sQ,GAAejvU,UAAW29U,EAAY5qV,KAAK89U,OAAO30B,YAC9DA,UAEC/pI,GADA/vG,EAAWnyE,EAAQ6yR,kBAAkB/jK,aAAa,iBAC3ChsH,KAAKoN,cAAc,MAAO,CACjCgiE,UAAW6sQ,GAAUhvU,UAAW49U,EAChCh0U,MAAO,CAAEw4D,SAAUA,EAAU,gBAAiBA,EAAUgvG,KAAM,MAAO,gBAAiBi9J,GAAct7U,KAAKg/U,MAAQ,IAAMpwU,EAAO,gBAAiB,WAEnJ+wU,EAASzhL,aAAal+J,KAAKoN,cAAc,MAAO0J,GAAO6oU,EAAS97U,SAAS+K,EAAQ,IACjF5O,KAAK9C,QAAQ8P,cAAc,IAAMqvU,GAAc,IAAMb,IAAYvkU,YAAYmoK,GACzE0rK,EAAS9qV,KAAKoN,cAAc,MAAO,CAAEH,UAAW09U,IACpD3qV,KAAK9C,QAAQ8P,cAAc,IAAMsuU,IAAatuU,cAAc,IAAMwuU,IAAYvkU,YAAY6zU,EAC9F,MA3GI,GAAI9qV,KAAK9C,QAAQ8P,cAAc,IAAMqvU,GAAc,IAAMb,IAAa,CAClE35N,GAAO7hH,KAAK9C,QAAQ8P,cAAc,IAAMqvU,GAAc,IAAMb,IAAY33U,SAAS,IACjFg+G,GAAO7hH,KAAK9C,QAAQ8P,cAAc,IAAMsuU,IAAatuU,cAAc,IAAMwuU,IAAY33U,SAAS,IAC9F,IAAIggC,EAAO7jC,KAAKs4D,MAAMt4D,KAAKu/U,cACvBrqU,EAAO0qS,GAAM/7Q,EAAKgxF,SAAW+qL,GAAM/7Q,EAAKgxF,OAAOwgL,cAAiB,GAAKxxQ,EAAKgxF,OAAOwgL,aACjFxtN,EAAO+3N,GAAM/7Q,EAAKgxF,SAAW+qL,GAAM/7Q,EAAKgxF,OAAOugL,SAAY,GAAKvxQ,EAAKgxF,OAAOugL,QAC5E9xS,EAAOugC,EAAKm9S,gBAAkBn9S,EAAKgxF,OAAOvxH,KAC1CynV,EAAU/qV,KAAKoN,cAAc,MAAO,CAAEgiE,UAAW2sQ,GAAUllU,MAAO,CAAE,KAAQ,kBAC3E+oS,GAAMt8S,EAAKoJ,SAIZ1M,KAAKqhV,kBAAkB0J,EAASznV,EAAMtD,KAAKu/U,cAH3CwL,EAAQ9zU,YAAY3T,GAKxB,IACIg5K,EAAOt8K,KAAKoN,cAAc,OAAQ,CAClCgiE,UAAWssQ,GAAY,IAAMS,GAAe,IAAMR,GAAW,IAAMzmU,EAAM,IAAM2yE,IAE/EmjQ,EAAShrV,KAAKoN,cAAc,MAAO,CAAEgiE,UAAW8sQ,KACpD8O,EAAO/zU,YAAY8zU,GACL,KAATznV,QAAwBhD,IAATgD,GAA+B,KAARukF,GAC1B,SAAR3yE,GAA0B,QAARA,EACnB81U,EAAO9sL,aAAaoe,EAAM0uK,EAAOj7D,mBAGjCi7D,EAAO/zU,YAAYqlK,GAGvBt8K,KAAKq9U,aAAc,IAGF,KAARx1P,EAAckjQ,EAAUzuK,KACpBA,IACTz6D,GAAOkpO,GACPC,EAAO/zU,YAAYqlK,GACnBt8K,KAAKq9U,aAAc,GAG3B,IAAIhuQ,EAAWuwO,GAAM/7Q,EAAKwrC,UAAY,KAAOxrC,EAAKwrC,SAASvzE,WACvDmvV,EAAWpnT,EAAKgmF,SAAY,CAAC,EAAI,CAAEx6C,SAAUA,EAAU,gBAAiBA,EAAUgvG,KAAM,MAAO,gBAAiB,QACpH2sK,EAAO/zU,YAAYjX,KAAK89U,OAAO74U,WAAU,IACzC,IAAIimV,EAASlrV,KAAKoN,cAAc,MAAO,CAAEgiE,UAAW6sQ,GAAUplU,MAAOo0U,IACrEC,EAAOj0U,YAAY+zU,GACP,QAAR91U,GAAyB,WAARA,GACjBlV,KAAK9C,QAAQ2rE,UAAU31C,IAAI,mBAE/BlzB,KAAK9C,QAAQ8P,cAAc,IAAMqvU,GAAc,IAAMb,IAAYvkU,YAAYi0U,GAC7E,IAAIJ,EAAS9qV,KAAKoN,cAAc,OAC5B0jS,EAAMjtQ,EAAKx2B,QACXi2U,OAAS,EACb,GAAmB,kBAARxyC,GAAoB8O,GAAM9O,EAAI7jS,WAIrC,GAHmB,kBAAR6jS,GAAoB9wS,KAAKi1S,sBAChCnE,EAAMoC,GAAmBG,SAASvC,IAEvB,MAAXA,EAAI,IAAyB,MAAXA,EAAI,GACtB,GAAInkS,SAASkB,iBAAiBijS,GAAKntS,OAAQ,CACvC,IAAIigV,EAASj3U,SAASK,cAAc8jS,GACpCwyC,EAASM,EAAOz6B,UAAUr3S,OAC1Bg5U,EAAO7zU,YAAY2sU,GACnBA,EAAO1yU,MAAMyyG,QAAU,EAC3B,MAEI3jH,KAAKwjV,eAAesH,EAAQh6C,EAAK,UAAW9wS,KAAKu/U,mBAIrDv/U,KAAKwjV,eAAesH,EAAQh6C,EAAK,UAAW9wS,KAAKu/U,mBAIrDuL,EAAO7zU,YAAY65R,GAElB8O,GAAM0jC,KAC2C,IAA9CtjV,KAAK6+U,YAAY3vU,QAAQ4hS,EAAIh1S,aAC7BkE,KAAK6+U,YAAY97U,KAAK+tS,EAAIh1S,YAGlCkE,KAAK9C,QAAQ8P,cAAc,IAAMw9T,GAAW,IAAMgR,IAAYvkU,YAAY6zU,EAC9E,CA8BA9qV,KAAKurT,SACLvrT,KAAK8/R,sBAEb,EAMAs9C,EAAIvhV,UAAU0hV,uBAAyB,WACnC,IAAIn1B,EAAYn2O,GAAO,IAAMoqQ,GAAc,IAAME,GAAe,IAAMf,GAAYx7U,KAAK9C,UAClF0iT,GAAMwI,IAAcpoT,KAAKwkV,kBAC1BxkV,KAAKiyE,OAAOjyE,KAAKojV,YAAYh7B,IAEjCpoT,KAAKwlV,qBACT,EACAzvD,GAAW,CACPf,GAAW,GAAImoD,KAChBC,EAAIvhV,UAAW,aAAS,GAC3Bk6R,GAAW,CACPnB,GAAS,SACVwoD,EAAIvhV,UAAW,aAAS,GAC3Bk6R,GAAW,CACPnB,GAAS,SACVwoD,EAAIvhV,UAAW,cAAU,GAC5Bk6R,GAAW,CACPnB,GAAS,KACVwoD,EAAIvhV,UAAW,gBAAY,GAC9Bk6R,GAAW,CACPnB,GAAS,IACVwoD,EAAIvhV,UAAW,oBAAgB,GAClCk6R,GAAW,CACPnB,GAAS,QACVwoD,EAAIvhV,UAAW,uBAAmB,GACrCk6R,GAAW,CACPnB,GAAS,YACVwoD,EAAIvhV,UAAW,wBAAoB,GACtCk6R,GAAW,CACPnB,GAAS,eACVwoD,EAAIvhV,UAAW,oBAAgB,GAClCk6R,GAAW,CACPnB,GAAS,YACVwoD,EAAIvhV,UAAW,cAAU,GAC5Bk6R,GAAW,CACPnB,IAAS,IACVwoD,EAAIvhV,UAAW,yBAAqB,GACvCk6R,GAAW,CACPnB,IAAS,IACVwoD,EAAIvhV,UAAW,2BAAuB,GACzCk6R,GAAW,CACPnB,IAAS,IACVwoD,EAAIvhV,UAAW,uBAAmB,GACrCk6R,GAAW,CACPnB,IAAS,IACVwoD,EAAIvhV,UAAW,wBAAoB,GACtCk6R,GAAW,CACPnB,MACDwoD,EAAIvhV,UAAW,kBAAc,GAChCk6R,GAAW,CACPnB,MACDwoD,EAAIvhV,UAAW,gBAAY,GAC9Bk6R,GAAW,CACPnB,IAAS,IACVwoD,EAAIvhV,UAAW,wBAAoB,GACtCk6R,GAAW,CACPhB,GAAQ,CAAC,EAAGkoD,KACbG,EAAIvhV,UAAW,iBAAa,GAC/Bk6R,GAAW,CACPxnK,MACD6uN,EAAIvhV,UAAW,eAAW,GAC7Bk6R,GAAW,CACPxnK,MACD6uN,EAAIvhV,UAAW,cAAU,GAC5Bk6R,GAAW,CACPxnK,MACD6uN,EAAIvhV,UAAW,aAAS,GAC3Bk6R,GAAW,CACPxnK,MACD6uN,EAAIvhV,UAAW,iBAAa,GAC/Bk6R,GAAW,CACPxnK,MACD6uN,EAAIvhV,UAAW,gBAAY,GAC9Bk6R,GAAW,CACPxnK,MACD6uN,EAAIvhV,UAAW,gBAAY,GAC9Bk6R,GAAW,CACPxnK,MACD6uN,EAAIvhV,UAAW,eAAW,GAC7Bk6R,GAAW,CACPxnK,MACD6uN,EAAIvhV,UAAW,mBAAe,GACjCk6R,GAAW,CACPxnK,MACD6uN,EAAIvhV,UAAW,gBAAY,GAC9Bk6R,GAAW,CACPxnK,MACD6uN,EAAIvhV,UAAW,eAAW,GAC7Bk6R,GAAW,CACPxnK,MACD6uN,EAAIvhV,UAAW,iBAAa,GAC/BuhV,EAAMrnD,GAAW,CACbX,IACDgoD,EAEP,CAnsEyB,CAmsEvBz4M,KJ32EF,SAAWu8L,GACPA,EAAcA,EAAoB,KAAI,GAAK,OAC3CA,EAAcA,EAAwB,SAAI,GAAK,WAC/CA,EAAcA,EAAwB,SAAI,GAAK,WAC/CA,EAAcA,EAAyB,UAAI,GAAK,YAChDA,EAAcA,EAAwB,SAAI,GAAK,UAClD,CAND,CAMGA,KAAkBA,GAAgB,CAAC,IAKtC,SAAWC,GACPA,EAAUA,EAAgB,KAAI,GAAK,OACnCA,EAAUA,EAAgB,KAAI,GAAK,OACnCA,EAAUA,EAAkB,OAAI,GAAK,SACrCA,EAAUA,EAAqB,UAAI,GAAK,YACxCA,EAAUA,EAAyB,cAAI,GAAK,eAC/C,CAND,CAMGA,KAAcA,GAAY,CAAC,IAK9B,SAAWC,GACPA,EAAgBA,EAAsB,KAAI,GAAK,OAC/CA,EAAgBA,EAA2B,UAAI,GAAK,YACpDA,EAAgBA,EAAqB,IAAI,GAAK,MAC9CA,EAAgBA,EAA2B,UAAI,GAAK,YACpDA,EAAgBA,EAAuB,MAAI,GAAK,QAChDA,EAAgBA,EAAwB,OAAI,IAAM,SAClDA,EAAgBA,EAA4B,WAAI,IAAM,aACtDA,EAAgBA,EAA+B,cAAI,IAAM,gBACzDA,EAAgBA,EAA4B,WAAI,KAAO,aACvDA,EAAgBA,EAAyB,QAAI,KAAO,SACvD,CAXD,CAWGA,KAAoBA,GAAkB,CAAC,IAK1C,SAAWC,GACPA,EAAoB,KAAI,OACxBA,EAAoB,KAAI,OACxBA,EAAqB,MAAI,OAC5B,CAJD,CAIGA,KAAkBA,GAAgB,CAAC,IAKtC,SAAWC,GACPA,EAA0BA,EAAmC,QAAI,GAAK,UACtEA,EAA0BA,EAAiC,MAAI,GAAK,OACvE,CAHD,CAGGA,KAA8BA,GAA4B,CAAC,IAK9D,SAAWC,GAEPA,EAAYA,EAAkB,KAAI,GAAK,OAEvCA,EAAYA,EAAkB,KAAI,GAAK,OAEvCA,EAAYA,EAAoB,OAAI,GAAK,QAC5C,CAPD,CAOGA,KAAgBA,GAAc,CAAC,IAKlC,SAAWC,GACPA,EAAiB,KAAI,OACrBA,EAAsB,UAAI,YAE1BA,EAAqB,SAAI,WAEzBA,EAAsB,UAAI,YAC1BA,EAAiB,KAAI,OACrBA,EAAqB,SAAI,WACzBA,EAAiB,KAAI,OAErBA,EAAqB,SAAI,WAEzBA,EAAsB,UAAI,YAE1BA,EAAsB,UAAI,YAE1BA,EAAsB,UAAI,YAC1BA,EAAoB,QAAI,UAExBA,EAAqB,SAAI,WAEzBA,EAAsB,UAAI,YAE1BA,EAAsB,UAAI,YAC1BA,EAAiB,KAAI,OAErBA,EAAqB,SAAI,UAC5B,CA5BD,CA4BGA,KAAeA,GAAa,CAAC,IAKhC,SAAWC,GACPA,EAA0B,QAAI,UAC9BA,EAA2B,SAAI,WAC/BA,EAA2B,SAAI,WAC/BA,EAA2B,SAAI,WAC/BA,EAA+B,aAAI,eACnCA,EAA8B,YAAI,aACrC,CAPD,CAOGA,KAAqBA,GAAmB,CAAC,IAK5C,SAAWC,GACPA,EAAuB,QAAI,UAC3BA,EAA2B,YAAI,cAC/BA,EAAwB,SAAI,WAC5BA,EAAwB,SAAI,WAC5BA,EAAwB,SAAI,UAC/B,CAND,CAMGA,KAAkBA,GAAgB,CAAC,IAKtC,SAAWC,GACPA,EAAoC,SAAI,WACxCA,EAAuC,YAAI,cAC3CA,EAAiC,MAAI,QACrCA,EAAiC,MAAI,QACrCA,EAAqC,UAAI,YACzCA,EAAwC,aAAI,eAC5CA,EAA4C,iBAAI,mBAChDA,EAA+C,oBAAI,sBACnDA,EAAsC,WAAI,aAC1CA,EAAgC,KAAI,OACpCA,EAA8C,mBAAI,qBAClDA,EAA2C,gBAAI,iBAClD,CAbD,CAaGA,KAA8BA,GAA4B,CAAC,IAK9D,SAAWC,GACPA,EAA2B,OAAI,SAC/BA,EAAyB,KAAI,OAC7BA,EAA2B,OAAI,SAC/BA,EAA2B,OAAI,SAC/BA,EAAyB,KAAI,OAC7BA,EAAmC,eAAI,gBAC1C,CAPD,CAOGA,KAAuBA,GAAqB,CAAC,IAKhD,SAAWC,GACPA,EAA2B,KAAI,OAC/BA,EAA2B,KAAI,MAClC,CAHD,CAGGA,KAAyBA,GAAuB,CAAC,IAKpD,SAAWC,GACPA,EAAyB,IAAI,MAC7BA,EAAyB,IAAI,MAC7BA,EAA0B,KAAI,OAC9BA,EAA0B,KAAI,MACjC,CALD,CAKGA,KAAwBA,GAAsB,CAAC,IK9JlD,ICkBWqpB,GDlBPC,GAA2B,WAO3B,SAASA,EAAU39B,EAAWC,GAC1B,IAAI5nT,EAAQ9F,KACZA,KAAKqrV,aAAc,EACnBrrV,KAAKsrV,eAAgB,EACrBtrV,KAAKurV,sBAAwB,GAC7BvrV,KAAKwrV,qBAAuB,GAE5BxrV,KAAK89L,UAAY,GAIjB99L,KAAKyrV,aAAe,GAIpBzrV,KAAK0rV,iBAAmB,GAIxB1rV,KAAK2rV,kBAAoB,GAKzB3rV,KAAK4rV,oBAAsB,GAK3B5rV,KAAK6rV,iBAAmB,GAKxB7rV,KAAK8rV,oBAAsB,GAE3B9rV,KAAK+rV,SAAW,GAEhB/rV,KAAKgsV,cAAgB,GACrBhsV,KAAKisV,iBAAkB,EACvBjsV,KAAKksV,eAAgB,EACrBlsV,KAAKmsV,6BAA8B,EACnCnsV,KAAKosV,gCAAiC,EAEtCpsV,KAAKqsV,oBAAsB,GAE3BrsV,KAAKssV,kBAAoB,GAKzBtsV,KAAKusV,gBAAkB,GACvBvsV,KAAKwsV,qBAAuB,GAC5BxsV,KAAKysV,mBAAqB,GAK1BzsV,KAAK0sV,aAAe,EACpB1sV,KAAKiyE,OAAS,SAAUpmE,GAChB7L,KAAKsrV,gBACLtrV,KAAKqrV,aAAc,EACnBrrV,KAAKsrV,eAAgB,GAErBz/U,EAAEy5U,UAAkC,QAAtBtlV,KAAK2sV,eAA2B3sV,KAAKqrV,cACnDx/U,EAAEsO,QAAS,EACXna,KAAKqrV,aAAc,EAE3B,EAEArrV,KAAK4sV,cAAgB,SAAUpzU,GAE3B,IAEIqzU,EAAerzU,EAAK1c,OAAOujI,MAC/B,GAA6B,OAAzB7mH,EAAK1c,OAAOujI,MAAM,GAAa,CAC/B,IAAIysN,EAAeD,EAAa,GAChC,GAAwC,UAApCC,EAAahtV,KAAKwS,MAAM,KAAK,GAAgB,CAC7C,IAAIqmD,EAAS,IAAI2b,WAEjB3b,EAAOxiD,OAAS,SAAUtK,GAEtB,IAAIk2D,EAASp1D,SAAS8gM,eAAe3nM,EAAM2nT,UAAUvwT,QAAQ+0D,GAAK,2BAE9DgT,EAAUlD,EAAOwR,WAAW,MAE5BC,EAAQ,IAAIC,MAEZwvH,EAAQn9L,EACZ0tE,EAAMr9D,OAAS,WAEMxJ,SAAS8gM,eAAe3nM,EAAM2nT,UAAUvwT,QAAQ+0D,GAAK,uBAC3D/gD,MAAMyrE,WAAa,SAC9B1X,EAAQyO,UAAUF,EAAO,EAAG,EAAGzR,EAAOb,MAAOa,EAAOZ,QACpD8hI,EAAM8pJ,oBAAmB,GACzB9pJ,EAAMwoJ,aAAej4Q,EAAMp9D,IAC3B6sL,EAAM+pJ,qBAAuBx5Q,EAAMy5Q,cACnChqJ,EAAMiqJ,oBAAsB15Q,EAAM25Q,YACtC,EACA35Q,EAAMp9D,IAAMvK,EAAEtE,cAAcpB,OAC5B88L,EAAMwoJ,aAAe5/U,EAAEtE,cAAcpB,OACrC88L,EAAMmqJ,wBAA0BvhV,EAAEtE,cAAcpB,MACpD,EACAwyD,EAAO+b,cAAco4Q,EACzB,CACJ,CACAtzU,EAAK1c,OAAOrB,MAAQ,GACpB+d,EAAKjS,cAAc9L,MAAQ,EAC/B,EACAuE,KAAKytT,UAAYA,EACjBztT,KAAK0tT,cAAgBA,CACzB,CAo9DA,OA/8DA09B,EAAUvvV,UAAUwxV,qBAAuB,WACvC,IAAIvnV,EAAQ9F,KAIZ,GAFAA,KAAKurV,sBAAwB,GAC7BvrV,KAAKwrV,qBAAuB,GACvB53E,KAiFA,CAED,IAAI7xM,EAASp1D,SAAS8gM,eAAeztM,KAAKytT,UAAUvwT,QAAQ+0D,GAAK,qBACjE,GAAI8P,EAAQ,CACR,IAAK/hE,KAAK0tT,cAAc4/B,cAActgV,cAAc,2BAG5CugV,EAAYngV,GAAc,MAAO,CAAE6kD,GAFvBjyD,KAAKytT,UAAUvwT,QAAQ+0D,GAEgB,oBAAqBmd,UAAW,2BAC7El+D,MAAMyyG,QAAU,QAC1B3jH,KAAK0tT,cAAc4/B,cAAcr2U,YAAYs2U,GAEjDxrR,EAAOlH,iBAAiB,YAAa76D,KAAKwtV,wBAAwB5sR,KAAK5gE,OACvE+hE,EAAOlH,iBAAiB,YAAa76D,KAAKytV,wBAAwB7sR,KAAK5gE,OACvE+hE,EAAOlH,iBAAiB,UAAW76D,KAAK0tV,sBAAsB9sR,KAAK5gE,OACnE+hE,EAAOlH,iBAAiB,aAAc76D,KAAK0tV,sBAAsB9sR,KAAK5gE,OACtE+hE,EAAOlH,iBAAiB,aAAc76D,KAAKwtV,wBAAwB5sR,KAAK5gE,OACxE+hE,EAAOlH,iBAAiB,YAAa76D,KAAKytV,wBAAwB7sR,KAAK5gE,OACvE+hE,EAAOlH,iBAAiB,WAAY76D,KAAK0tV,sBAAsB9sR,KAAK5gE,OACpEA,KAAK2tV,sBACT,CACA3tV,KAAKytT,UAAU+F,gBAAgBC,kBAAkB,qBAAsBzzT,KAAK0tT,cAAckgC,qBAC9F,KAtGiB,CACb,IACIL,KAAYngV,GAAc,MAAO,CAAE6kD,GADvBjyD,KAAKytT,UAAUvwT,QAAQ+0D,GACgB,oBAAqBmd,UAAW,2BAC7El+D,MAAMyyG,QAAU,QAC1B3jH,KAAK0tT,cAAc4/B,cAAcr2U,YAAYs2U,GAC7C,IAAIM,EAAgB7tV,KAAK8tV,wBACrBC,OAAuB,EAWnBA,EAVH/tV,KAAK0tT,cAAckgC,qBAShB5tV,KAAK0tT,cAAcsgC,eACIhuV,KAAKytT,UAAUmG,UAAU9nB,YAAY,gCAGrC9rS,KAAKytT,UAAUmG,UAAU9nB,YAAY,kCAZ5D9rS,KAAK0tT,cAAcsgC,eACIhuV,KAAKytT,UAAUmG,UAAU9nB,YAAY,sCAGrC9rS,KAAKytT,UAAUmG,UAAU9nB,YAAY,wCAWhE9rS,KAAKiuV,gBACLjuV,KAAKiuV,gBAAgB5gV,QAAUwgV,GAG/B7tV,KAAKiuV,gBAAkB,IAAI9qC,GAAO,CAE9B+G,eAAe,EAAMzD,eAAe,EAAOjB,SAAS,EAAM3wL,OAAQk5N,EAAsBh5C,SAAU,+BAClGj4S,OAAQkD,KAAKytT,UAAUvwT,QAASmQ,QAASwgV,EAAe3sR,MAAO,QAASo/B,SAAS,EAAMknN,eAAe,EACtGqM,YAAa,WACT/tT,EAAM6nV,uBACN7nV,EAAMmoV,gBAAgB9lV,UACtBrC,EAAMmoV,gBAAkB,KACpBnoV,EAAMooV,QACNpoV,EAAMooV,OAAO/lV,UAGjB,IAAIgmV,EAAkBxhV,SAAS8gM,eAAe3nM,EAAM2nT,UAAUvwT,QAAQ+0D,GAAK,qBACvEk8R,IAEAA,EAAgBxgV,WAAawgV,EAAgBxgV,WAAWC,YAAYugV,GAAmBA,EAAgB3kD,cAAc57R,YAAYugV,IAGhIroV,EAAM4nT,cAAckgC,sBAAyB9nV,EAAM4nT,cAAc0gC,uBAA0Bp7E,GAAkBltQ,EAAM2nT,UAAU4gC,iBAAiB9mV,gBAC/IzB,EAAM2nT,UAAU6gC,sBAAsBxoV,EAAM2nT,UAAU4gC,iBAAiB9mV,cAAc5E,KAAM,IAE/FmD,EAAM4nT,cAAckgC,sBAAuB,EAC3C9nV,EAAM2nT,UAAU4gC,iBAAiBE,UACrC,IAEJvuV,KAAKiuV,gBAAgB1sM,QAAU,CAE3B,CAAEslK,YAAa,CAAEx5S,QAASrN,KAAKytT,UAAUmG,UAAU9nB,YAAY,SAAUjiL,UAAU,EAAMkrL,SAAU,iBAAmBz0K,MAAOtgI,KAAK2tV,qBAAqB/sR,KAAK5gE,OAE5J,CAAE6mT,YAAa,CAAEx5S,QAASrN,KAAKytT,UAAUmG,UAAU9nB,YAAY,UAAWiJ,SAAU,kBAAoBz0K,MAAOtgI,KAAKwuV,oBAAoB5tR,KAAK5gE,OAE7I,CAAE6mT,YAAa,CAAEx5S,QAASrN,KAAKytT,UAAUmG,UAAU9nB,YAAY,UAAW3nJ,WAAW,EAAMt6B,UAAU,EAAMkrL,SAAU,kBAAoBz0K,MAAOtgI,KAAKyuV,mBAAmB7tR,KAAK5gE,QAEjLA,KAAKiuV,gBAAgB7vD,SAASmvD,IAE9BvtV,KAAKytT,UAAUvwT,QAAQsgM,YAjEZ,KAkEXx9L,KAAK0uV,mBACL1uV,KAAKytT,UAAUzvB,YACfh+R,KAAKiuV,gBAAgBjwD,UAAYh+R,KAAKytT,UAAUzvB,WAEpD,IAAI2wD,EAAe3uV,KAAKiuV,gBAAgB5gV,QAAQwlR,cAAc,GAAGv6N,MAAM,GACvE,GAAkC,SAA9Bq2R,EAAa95N,OAAOmoD,MAAkB,CACtC,IAAI4xK,EAAejiV,SAAS8gM,eAAe,YAC3CztM,KAAK6uV,sBAAsBD,EAC/B,MACK,GAAkC,SAA9BD,EAAa95N,OAAOmoD,MAAkB,CAC3C,IAAI8xK,EAAeniV,SAAS8gM,eAAe,aAC3CztM,KAAK6uV,sBAAsBC,EAC/B,KACK,CACD,IAAIC,EAAgBpiV,SAAS8gM,eAAe,aAC5CztM,KAAK6uV,sBAAsBE,EAC/B,CACJ,CAuBA/uV,KAAKgvV,oBACT,EACA5D,EAAUvvV,UAAUmzV,mBAAqB,WACrC,IAAKhvV,KAAK0tT,cAAckgC,uBAAyB5tV,KAAKisV,iBAAmBjsV,KAAKksV,eAAgB,EACrFlsV,KAAK0tT,cAAcsgC,gBAAkBhuV,KAAKisV,gBAC3CjsV,KAAKyrV,aAAezrV,KAAKqsV,oBAEpBrsV,KAAK0tT,cAAcsgC,gBAAkBhuV,KAAKksV,gBAC/ClsV,KAAKyrV,aAAezrV,KAAKssV,mBAG7B,IAEI2C,EAFStiV,SAAS8gM,eAAeztM,KAAKytT,UAAUvwT,QAAQ+0D,GAAK,qBAE1CshB,WAAW,MAE9B27Q,EAAU,IAAIz7Q,MAClBy7Q,EAAQ/4U,OAAS,WACb84U,EAAUv7Q,UAAUw7Q,EAAS,EAAG,EACpC,GACKlvV,KAAK0tT,cAAcsgC,gBAAkBhuV,KAAKisV,gBAC3CiD,EAAQ94U,IAAMpW,KAAKwsV,qBAEdxsV,KAAK0tT,cAAcsgC,gBAAkBhuV,KAAKksV,gBAC/CgD,EAAQ94U,IAAMpW,KAAKysV,oBAGvB,IAAIp6N,EAAW1lH,SAAS8gM,eAAeztM,KAAKytT,UAAUvwT,QAAQ+0D,GAAK,sBAC/DogE,IACAA,EAASD,SAAU,GAEvBpyH,KAAK+sV,oBAAmB,GACxB/sV,KAAKmvV,mBAAkB,EAC3B,CACJ,EACA/D,EAAUvvV,UAAUgzV,sBAAwB,SAAUx8N,GAC9CryH,KAAK0tT,cAAckgC,qBACf5tV,KAAK0tT,cAAcsgC,eACfhuV,KAAKytT,UAAU2hC,6BAA6BC,uBAAyBrvV,KAAKytT,UAAU2hC,6BAA6BC,sBAAsBC,mBACvItvV,KAAKuvV,mBAAmBl9N,GAGvBryH,KAAKytT,UAAU2hC,6BAA6BI,yBAA2BxvV,KAAKytT,UAAU2hC,6BAA6BI,wBAAwBF,mBAChJtvV,KAAKuvV,mBAAmBl9N,GAIxBryH,KAAK0tT,cAAcsgC,eACfhuV,KAAKytT,UAAUgiC,qBAAqBJ,uBAAyBrvV,KAAKytT,UAAUgiC,qBAAqBJ,sBAAsBC,mBACvHtvV,KAAKuvV,mBAAmBl9N,GAIxBryH,KAAKytT,UAAUiiC,uBAAuBF,yBAA2BxvV,KAAKytT,UAAUiiC,uBAAuBF,wBAAwBF,mBAC/HtvV,KAAKuvV,mBAAmBl9N,EAIxC,EACA+4N,EAAUvvV,UAAU8zV,sBAAwB,WACxC,OAAI3vV,KAAK0tT,cAAckgC,uBAIf5tV,KAAK0tT,cAAcsgC,iBACfhuV,KAAKytT,UAAUgiC,qBAAqBJ,wBAAyBrvV,KAAKytT,UAAUgiC,qBAAqBJ,sBAAsBC,oBAIhHtvV,KAAKmsV,8BAIZnsV,KAAKytT,UAAUiiC,uBAAuBF,0BAA2BxvV,KAAKytT,UAAUiiC,uBAAuBF,wBAAwBF,oBAIxHtvV,KAAKosV,+BAI5B,EACAhB,EAAUvvV,UAAU0zV,mBAAqB,SAAUl9N,GAC3CA,IACAA,EAASm3K,cAAct4R,MAAMyyG,QAAU,OAE/C,EACAynO,EAAUvvV,UAAU+zV,mBAAqB,WAErC,IAAIv9N,EAAW1lH,SAAS8gM,eAAeztM,KAAKytT,UAAUvwT,QAAQ+0D,GAAK,sBACnE,GAAIogE,GAAYA,EAASD,SACrB,GAA0B,KAAtBpyH,KAAKyrV,aAAqB,CACrBzrV,KAAK0tT,cAAcsgC,gBAKpBhuV,KAAKksV,eAAgB,EACrBlsV,KAAKssV,kBAAoBtsV,KAAKyrV,eAL9BzrV,KAAKisV,iBAAkB,EACvBjsV,KAAKqsV,oBAAsBrsV,KAAKyrV,cAOpC,IAAI1pR,EAASp1D,SAAS8gM,eAAeztM,KAAKytT,UAAUvwT,QAAQ+0D,GAAK,qBACjEjyD,KAAKusV,gBAAkBxqR,EAAOi/D,YACzBhhI,KAAK0tT,cAAcsgC,eAIpBhuV,KAAKysV,mBAAqBzsV,KAAKusV,gBAH/BvsV,KAAKwsV,qBAAuBxsV,KAAKusV,eAKzC,OAGIvsV,KAAKisV,kBAAoBjsV,KAAK0tT,cAAcsgC,gBAC5ChuV,KAAKisV,iBAAkB,EACvBjsV,KAAKqsV,oBAAsB,GAC3BrsV,KAAKusV,gBAAkB,GACvBvsV,KAAKwsV,qBAAuB,IAEvBxsV,KAAKksV,eAAiBlsV,KAAK0tT,cAAcsgC,iBAC9ChuV,KAAKksV,eAAgB,EACrBlsV,KAAKssV,kBAAoB,GACzBtsV,KAAKusV,gBAAkB,GACvBvsV,KAAKysV,mBAAqB,IAE9BzsV,KAAK2tV,sBAEb,EAMAvC,EAAUvvV,UAAUg0V,aAAe,SAAU/vV,GACzC,IAAIgwV,EACJ,GAAI9vV,KAAK0tT,cAAckgC,qBAAsB,CACzC,IAAImC,EAAiB/vV,KAAKytT,UAAUuiC,WAAWC,aAC/CjwV,KAAK0tT,cAAcwiC,sBAAwB,KAC3ClwV,KAAK0tT,cAAcyiC,kBAAmB,EACtC,IAAIx8R,EAAY3zD,KAAK0tT,cAAckD,kBAAoB,EAEnD7zL,EAAY/8H,KAAKytT,UAAU2hC,6BAA6BryN,UAAY/8H,KAAKytT,UAAU2hC,6BAA6BryN,UAAY,EAE5H/pD,EAAUhzE,KAAKytT,UAAU2hC,6BAA6Bp8Q,QAAUhzE,KAAKytT,UAAU2hC,6BAA6Bp8Q,QAAU,EAEtHmY,EAAcnrF,KAAKytT,UAAU2hC,6BAA6BjkQ,YAAcnrF,KAAKytT,UAAU2hC,6BAA6BjkQ,YAAc,UAGlIilQ,EAAkBpwV,KAAKytT,UAAU4gC,iBAAiBgC,2BAA2BrwV,KAAKyrV,cAAc,GAEhG1pR,EAASp1D,SAAS8gM,eAAeztM,KAAKytT,UAAUvwT,QAAQ+0D,GAAK,qBACjEjyD,KAAKusV,gBAAkBxqR,EAAOi/D,YACzBhhI,KAAK0tT,cAAcsgC,eAIpBhuV,KAAKysV,mBAAqBzsV,KAAKusV,gBAH/BvsV,KAAKwsV,qBAAuBxsV,KAAKusV,gBAKrCuD,EAAQ,CAEJ79R,GAAI,OAASjyD,KAAK0tT,cAAc4iC,eAAgBnpS,OAAQipS,EAAiBz8R,UAAWA,EAAW1wD,KAAMjD,KAAKyrV,aAAcpkQ,WAb3G,YAamIiD,SAdrI,GAeXk1O,oBAAqB,uBAAwBxsP,QAASA,EAASmY,YAAaA,EAAa4xC,UAAWA,EAAWwzN,cAAeR,GAElI/vV,KAAK0tT,cAAcwiC,sBAAwBJ,EAE3C,IAAIz9N,OAAW,GAEXA,EADAuhJ,KACWjnQ,SAAS8gM,eAAeztM,KAAKytT,UAAUvwT,QAAQ+0D,GAAK,sBAGpDtlD,SAAS8gM,eAAe,cAEvBp7E,EAASD,SACrBpyH,KAAKwwV,yBAETxwV,KAAKywV,qBACLzwV,KAAK0tT,cAAckgC,sBAAuB,CAC9C,KACK,CAEGv7N,OAAW,EAEXA,EADAuhJ,KACWjnQ,SAAS8gM,eAAeztM,KAAKytT,UAAUvwT,QAAQ+0D,GAAK,sBAGpDtlD,SAAS8gM,eAAe,YAEvC,IAAI0iJ,GAAmB,EAavB,GAZIv8E,MAAc9zQ,IACE,UAAZA,EAAK,IACLE,KAAK0wV,oBACLP,GAAmB,EACnBnwV,KAAKyrV,aAAe,IAEH,SAAZ3rV,EAAK,KACVE,KAAK2wV,mBACLR,GAAmB,EACnBnwV,KAAKyrV,aAAe,MAGvB0E,EAAkB,CAEfpuR,EAASp1D,SAAS8gM,eAAeztM,KAAKytT,UAAUvwT,QAAQ+0D,GAAK,qBACjEjyD,KAAKusV,gBAAkBxqR,EAAOi/D,YAC1B3O,GAAYA,EAASD,SAChBpyH,KAAK0tT,cAAcsgC,gBAMpBhuV,KAAKksV,eAAgB,EACrBlsV,KAAKysV,mBAAqBzsV,KAAKusV,gBAC/BvsV,KAAKssV,kBAAoBtsV,KAAKyrV,eAP9BzrV,KAAKisV,iBAAkB,EACvBjsV,KAAKwsV,qBAAuBxsV,KAAKusV,gBACjCvsV,KAAKqsV,oBAAsBrsV,KAAKyrV,cAOpCzrV,KAAK4wV,mBAAmB5wV,KAAK0tT,cAAcsgC,gBAAgB,KAGtDhuV,KAAK0tT,cAAcsgC,gBAKpBhuV,KAAKksV,eAAgB,EACrBlsV,KAAKssV,kBAAoB,KALzBtsV,KAAKisV,iBAAkB,EACvBjsV,KAAKqsV,oBAAsB,IAM/BrsV,KAAK4wV,mBAAmB5wV,KAAK0tT,cAAcsgC,gBAAgB,IAE1DhuV,KAAK0tT,cAAcsgC,eAIpBhuV,KAAKysV,mBAAqBzsV,KAAKusV,gBAH/BvsV,KAAKwsV,qBAAuBxsV,KAAKusV,gBAKrCvsV,KAAKytT,UAAU4gC,iBAAiBwC,cAAc,KAAM,KAAM7wV,KAAK0tT,cAAcnmT,cAAe,MAC5F4oV,GAAmB,CACvB,CACJ,CACJ,EACA/E,EAAUvvV,UAAU+0V,mBAAqB,SAAUE,EAAcC,GACzDD,EACA9wV,KAAKmsV,4BAA8B4E,EAGnC/wV,KAAKosV,+BAAiC2E,CAE9C,EACA3F,EAAUvvV,UAAU4yV,mBAAqB,WACV,SAAvBzuV,KAAK2sV,cACL3sV,KAAK6vV,eAEuB,SAAvB7vV,KAAK2sV,cACV3sV,KAAK2wV,mBAGL3wV,KAAK0wV,oBAET1wV,KAAK0rV,iBAAmB,GACxB1rV,KAAK2rV,kBAAoB,EAC7B,EACAP,EAAUvvV,UAAU80V,iBAAmB,WACnC,GAAI3wV,KAAK0tT,cAAckgC,qBAAsB,CACzC,IAEIkC,EAFAkB,EAAYhxV,KAAK0tT,cAAcyB,gBAG/B4gC,EAAiB/vV,KAAKytT,UAAUuiC,WAAWC,aAC/CjwV,KAAK0tT,cAAcwiC,sBAAwB,KAC3ClwV,KAAK0tT,cAAcyiC,kBAAmB,EACtC,IAMI9+J,EACA4/J,EAPAt9R,EAAY3zD,KAAK0tT,cAAckD,kBAAoB,EACnD7C,EAAUphT,SAAS8gM,eAAeztM,KAAKytT,UAAUvwT,QAAQ+0D,GAAK,YAAc0B,GAC5EopE,EAAY/8H,KAAKytT,UAAU2hC,6BAA6BryN,UAAY/8H,KAAKytT,UAAU2hC,6BAA6BryN,UAAY,EAC5H/pD,EAAUhzE,KAAKytT,UAAU2hC,6BAA6Bp8Q,QAAUhzE,KAAKytT,UAAU2hC,6BAA6Bp8Q,QAAU,EACtHmY,EAAcnrF,KAAKytT,UAAU2hC,6BAA6BjkQ,YAAcnrF,KAAKytT,UAAU2hC,6BAA6BjkQ,YAAc,UAMtIkmG,GAAgBvyJ,WAAWivR,EAAQ78S,MAAMgwD,OAAS,EAAM40H,KAAqBk7J,EAC7EC,GAAenyT,WAAWivR,EAAQ78S,MAAMiwD,QAAU,EAAMigP,MAAsB4vC,EAC9E,IAAIE,EAAalxV,KAAK0tT,cAAcyB,gBAC/BnvT,KAAKmxV,eACNnxV,KAAKoxV,0BAAyB,GAElC,IAAIhoN,EAAappI,KAAKmxV,cACtBrB,EAAQ,CAEJ79R,GAAI,WAAajyD,KAAK0tT,cAAc4iC,eAAgBnpS,OAAQ,CACxD6jB,KAAMqmH,EAAc6/J,EAAYjmR,IAAKgmR,EAAaC,EAAY/hU,EAAGkiK,EAAc6/J,EAE/ElsU,EAAGisU,EAAaC,EAAYhwR,MAbjB,IAasCC,OAdrC,IAebxN,UAAWA,EAAW09R,YAAajoN,EAAYnmI,KAAMjD,KAAK0tT,cAAc4jC,gBAAgB7F,aAAcjsB,oBAAqB,gBAC9HxsP,QAASA,EAASmY,YAAaA,EAAa4xC,UAAWA,EAAWzyC,SAnBvD,GAmB2EjD,WAAYrnF,KAAK69G,SAAU0yO,cAAeR,GAEpI/vV,KAAK0tT,cAAcwiC,sBAAwBJ,EAE3C,IAAIz9N,OAAW,GAEXA,EADAuhJ,KACWjnQ,SAAS8gM,eAAeztM,KAAKytT,UAAUvwT,QAAQ+0D,GAAK,sBAGpDtlD,SAAS8gM,eAAe,eAEvBp7E,EAASD,SACrBpyH,KAAKwwV,yBAETxwV,KAAKmxV,cAAgB,GACrBnxV,KAAKywV,qBACLzwV,KAAK0tT,cAAckgC,sBAAuB,CAC9C,KAE8B,KAAtB5tV,KAAKyrV,cACLzrV,KAAKoxV,2BAETpxV,KAAKytT,UAAU4gC,iBAAiBwC,cAAc,OAAQ,GAAI7wV,KAAK0tT,cAAcnmT,eAC7EvH,KAAKywV,oBAEb,EACArF,EAAUvvV,UAAU60V,kBAAoB,WACpC,GAAI1wV,KAAK0tT,cAAckgC,qBAAsB,CACzC,IAEIkC,EAFAkB,EAAYhxV,KAAK0tT,cAAcyB,gBAG/B4gC,EAAiB/vV,KAAKytT,UAAUuiC,WAAWC,aAC/CjwV,KAAK0tT,cAAcwiC,sBAAwB,KAC3ClwV,KAAK0tT,cAAcyiC,kBAAmB,EACtC,IAMI9+J,EACA4/J,EAPAt9R,EAAY3zD,KAAK0tT,cAAckD,kBAAoB,EACnD7C,EAAUphT,SAAS8gM,eAAeztM,KAAKytT,UAAUvwT,QAAQ+0D,GAAK,YAAc0B,GAC5EopE,EAAY/8H,KAAKytT,UAAU2hC,6BAA6BryN,UAAY/8H,KAAKytT,UAAU2hC,6BAA6BryN,UAAY,EAC5H/pD,EAAUhzE,KAAKytT,UAAU2hC,6BAA6Bp8Q,QAAUhzE,KAAKytT,UAAU2hC,6BAA6Bp8Q,QAAU,EACtHmY,EAAcnrF,KAAKytT,UAAU2hC,6BAA6BjkQ,YAAcnrF,KAAKytT,UAAU2hC,6BAA6BjkQ,YAAc,UAIlIomQ,EAAqB,IACrBnwC,EAAgB,EAChBtrH,EAAe,EAEf91L,KAAKgtV,sBAAwBhtV,KAAKktV,qBAClC9rC,EAAkBphT,KAAKgtV,qBAAuBhtV,KAAKgtV,qBAAwBuE,EAC3Ez7J,EAAiB91L,KAAKktV,oBAAsBltV,KAAKgtV,qBAAwBuE,IAGzEnwC,EAAkBphT,KAAKgtV,qBAAuBhtV,KAAKktV,oBAAuBqE,EAC1Ez7J,EAAiB91L,KAAKktV,oBAAsBltV,KAAKktV,oBAAuBqE,GAE5ElgK,GAAgBvyJ,WAAWivR,EAAQ78S,MAAMgwD,OAAS,EAAM40H,EAAe,GAAMk7J,EAC7EC,GAAenyT,WAAWivR,EAAQ78S,MAAMiwD,QAAU,EAAMigP,EAAgB,GAAM4vC,EAC9E,IAAIE,EAAalxV,KAAK0tT,cAAcyB,gBAChC/lL,EAAappI,KAAKmxV,cACtBrB,EAAQ,CAEJ79R,GAAI,WAAajyD,KAAK0tT,cAAc4iC,eAAgBnpS,OAAQ,CACxD6jB,KAAMqmH,EAAc6/J,EAAYjmR,IAAKgmR,EAAaC,EAAY/hU,EAAGkiK,EAAc6/J,EAE/ElsU,EAAGisU,EAAaC,EAAYhwR,MAAO40H,EAAc30H,OAAQigP,GAC1DztP,UAAWA,EAAW09R,YAAajoN,EAAYnmI,KAAMjD,KAAK0tT,cAAc4jC,gBAAgB7F,aAAcjsB,oBAAqB,iBAC9HxsP,QAASA,EAASmY,YAAaA,EAAa4xC,UAAWA,EAAWzyC,SA1BvD,GA0B2EjD,WAAYrnF,KAAK69G,SAAU0yO,cAAeR,GAEpI/vV,KAAK0tT,cAAcwiC,sBAAwBJ,EAE3C,IAAIz9N,OAAW,GAEXA,EADAuhJ,KACWjnQ,SAAS8gM,eAAeztM,KAAKytT,UAAUvwT,QAAQ+0D,GAAK,sBAGpDtlD,SAAS8gM,eAAe,eAEvBp7E,EAASD,SACrBpyH,KAAKwwV,yBAETxwV,KAAKywV,qBACLzwV,KAAK0tT,cAAckgC,sBAAuB,CAC9C,MAEI5tV,KAAKytT,UAAU4gC,iBAAiBwC,cAAc,QAAS,GAAI7wV,KAAK0tT,cAAcnmT,eAC9EvH,KAAKywV,oBAEb,EACArF,EAAUvvV,UAAUu1V,yBAA2B,SAAUI,GAErD,IAAIC,EAAe9kV,SAASkB,iBAAiB,mBAC7C,GAAI4jV,EACA,IAAK,IAAI55T,EAAI,EAAGA,EAAI45T,EAAa9tV,OAAQk0B,IACrC,GAAI45T,EAAal6U,SAASsgB,EAAE/7B,WAAY,MAAuE,QAA/D21V,EAAal6U,SAASsgB,EAAE/7B,WAAY,KAAKoV,MAAM43G,YAAuB,CAC9G0oO,GACAxxV,KAAKmxV,cAAgBM,EAAal6U,SAASsgB,EAAE/7B,WAAY,KAAKu8D,YAC9Dr4D,KAAKyrV,aAAegG,EAAal6U,SAASsgB,EAAE/7B,WAAY,KAAKu8D,aAG7Dr4D,KAAKyrV,aAAegG,EAAal6U,SAASsgB,EAAE/7B,WAAY,KAAKu8D,YAEjE,IACIr4D,KAAK69G,SAAWv4C,KAAK4U,MAAMu3Q,EAAal6U,SAASsgB,EAAE/7B,WAAY,KAAKoV,MAAMm2E,WAC9E,CACA,MAAOx7E,IACH7L,KAAK69G,SAAW4zO,EAAal6U,SAASsgB,EAAE/7B,WAAY,KAAKoV,MAAMm2E,UACnE,CACJ,CAGZ,EAKA+jQ,EAAUvvV,UAAU40V,mBAAqB,WACjCzwV,KAAKiuV,iBACLjuV,KAAKiuV,gBAAgBzsO,MAE7B,EACA4pO,EAAUvvV,UAAU61V,4BAA8B,WAC9C,GAAI99E,KACA,IAAK,IAAI/uQ,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAExB,IAAI8sV,EAAchlV,SAASK,cAAc,IAAMhN,KAAKytT,UAAUvwT,QAAQ+0D,GAAK,kBAAoBptD,GAC3F8sV,GACAA,EAAY92R,iBAAiB,QAAS76D,KAAK4xV,qBAAqBhxR,KAAK5gE,MAE7E,CAER,EACAorV,EAAUvvV,UAAUg2V,4BAA8B,WAE9C,IAAI9vR,EAASp1D,SAAS8gM,eAAeztM,KAAKytT,UAAUvwT,QAAQ+0D,GAAK,qBAC7D8P,IACAA,EAAOlH,iBAAiB,YAAa76D,KAAKwtV,wBAAwB5sR,KAAK5gE,OACvE+hE,EAAOlH,iBAAiB,YAAa76D,KAAKytV,wBAAwB7sR,KAAK5gE,OACvE+hE,EAAOlH,iBAAiB,UAAW76D,KAAK0tV,sBAAsB9sR,KAAK5gE,OACnE+hE,EAAOlH,iBAAiB,aAAc76D,KAAK0tV,sBAAsB9sR,KAAK5gE,OACtE+hE,EAAOlH,iBAAiB,aAAc76D,KAAKwtV,wBAAwB5sR,KAAK5gE,OACxE+hE,EAAOlH,iBAAiB,YAAa76D,KAAKytV,wBAAwB7sR,KAAK5gE,OACvE+hE,EAAOlH,iBAAiB,WAAY76D,KAAK0tV,sBAAsB9sR,KAAK5gE,OAE5E,EAEAorV,EAAUvvV,UAAU+1V,qBAAuB,SAAUj3R,GACjD,IAAIm3R,EAAcn3R,EAAM79D,OACxB,GAAIg1V,EAAa,CACb,IAAK,IAAIjtV,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAExB,IAAI8sV,EAAchlV,SAASK,cAAc,IAAMhN,KAAKytT,UAAUvwT,QAAQ+0D,GAAK,kBAAoBptD,GAC3F8sV,IACAA,EAAYzgV,MAAM43G,YAAc,GAExC,CACAgpO,EAAY5gV,MAAM43G,YAAc,MAChC9oH,KAAKyrV,aAAeqG,EAAYz5R,YAChC,IACIr4D,KAAK69G,SAAWv4C,KAAK4U,MAAM43Q,EAAY5gV,MAAMm2E,WACjD,CACA,MAAOx7E,IACH7L,KAAK69G,SAAWi0O,EAAY5gV,MAAMm2E,UACtC,CACArnF,KAAK+sV,oBAAmB,EAC5B,CACJ,EAEA3B,EAAUvvV,UAAUiyV,sBAAwB,WAExC,IAAIiE,EAAgBplV,SAAS8gM,eAAeztM,KAAKytT,UAAUvwT,QAAQ+0D,GAAK,qBAEpE/lB,EAAQv/B,SAAS8gM,eAAeztM,KAAKytT,UAAUvwT,QAAQ+0D,GAAK,wBAC5D8/R,GACAA,EAAc1tR,SAEdn4B,GACAA,EAAMm4B,SAGV,IAyBI2tR,EAEAx2U,EACAy2U,EA5BAC,EAAgB9kV,GAAc,MAAO,CAAE6kD,GAAIjyD,KAAKytT,UAAUvwT,QAAQ+0D,GAAK,uBAAwBmd,UAAW,2BAA4BvW,OAAQ,oBAE9IkJ,EAAS30D,GAAc,SAAU,CAAE6kD,GAAIjyD,KAAKytT,UAAUvwT,QAAQ+0D,GAAK,oBAAqBmd,UAAW,0BACnGpvE,KAAKytT,UAAUvwT,QAAQsgM,YAAc,IACrCz7H,EAAOb,MAAQ,IAGfa,EAAOb,MAAQlhE,KAAKytT,UAAUvwT,QAAQsgM,YAAc,GAExDz7H,EAAO8G,UAAU31C,IAAI,yBACrB6uC,EAAOZ,OAAS,IAChBY,EAAO7wD,MAAMiwD,OAAS,QACtBY,EAAO7wD,MAAMihV,OAAS,qBACtBpwR,EAAO7wD,MAAM+zF,gBAAkB,QAC/BljC,EAAO7wD,MAAM8zL,UAAY,aACzBjjI,EAAO7wD,MAAM03G,aAAe,MAC5B7mD,EAAOlH,iBAAiB,YAAa76D,KAAKwtV,wBAAwB5sR,KAAK5gE,OACvE+hE,EAAOlH,iBAAiB,YAAa76D,KAAKytV,wBAAwB7sR,KAAK5gE,OACvE+hE,EAAOlH,iBAAiB,UAAW76D,KAAK0tV,sBAAsB9sR,KAAK5gE,OACnE+hE,EAAOlH,iBAAiB,aAAc76D,KAAKoyV,yBAAyBxxR,KAAK5gE,OACzE+hE,EAAOlH,iBAAiB,aAAc76D,KAAKwtV,wBAAwB5sR,KAAK5gE,OACxE+hE,EAAOlH,iBAAiB,YAAa76D,KAAKytV,wBAAwB7sR,KAAK5gE,OACvE+hE,EAAOlH,iBAAiB,WAAY76D,KAAK0tV,sBAAsB9sR,KAAK5gE,OACpEkyV,EAAcj7U,YAAY8qD,GAOtBkwR,EADAjyV,KAAK0tT,cAAckgC,uBAAyB5tV,KAAK0tT,cAAcsgC,eACzChuV,KAAKytT,UAAUmG,UAAU9nB,YAAY,kBAGrC9rS,KAAK0tT,cAAcsgC,eAAiBhuV,KAAKytT,UAAUmG,UAAU9nB,YAAY,gBAAkB9rS,KAAKytT,UAAUmG,UAAU9nB,YAAY,kBAErJ9rS,KAAKytT,UAAU6hC,qBAEhB9zU,EAAQ7O,SAASS,cAAc,UACzBtN,KAAO,WACb0b,EAAMy2C,GAAK,WACXigS,EAAcj7U,YAAYuE,IAC1Bw2U,EAAc,IAAIzvB,GAAS,CAAEvlJ,MAAOi1K,EAAqBpoO,UAAU,EAAOuI,SAAS,KACvEgsK,SAAS5iR,IAEpBxb,KAAK0tT,cAAcsgC,eAIpBhuV,KAAKksV,cAAgBlsV,KAAK2vV,wBAH1B3vV,KAAKisV,gBAAkBjsV,KAAK2vV,yBAK5B3vV,KAAKisV,kBAAoBjsV,KAAK0tT,cAAcsgC,gBAGvChuV,KAAKksV,eAAiBlsV,KAAK0tT,cAAcsgC,kBAF9CgE,EAAY5/N,SAAU,GAO1B,IAAIigO,EAAUjlV,GAAc,MAAO,CAAE6kD,GAAIjyD,KAAKytT,UAAUvwT,QAAQ+0D,GAAK,kBAAmBmd,UAAW,2BAA4BvW,OAAQ,mBAEnIy5R,EAAY3lV,SAASS,cAAc,SACvCklV,EAAUxyV,KAAO,OACjBwyV,EAAUrgS,GAAKjyD,KAAKytT,UAAUvwT,QAAQ+0D,GAAK,qBAC3CogS,EAAQp7U,YAAYq7U,GAEpB,IAAIC,EAAW,IAAIj4B,GAAQ,CACvBz8I,YAAa79K,KAAKytT,UAAUmG,UAAU9nB,YAAY,2BAClDgqB,eAAgB,SAEpBy8B,EAASn0D,SAASk0D,GAElB,IAAIE,EAAUplV,GAAc,MAAO,CAAE6kD,GAAIjyD,KAAKytT,UAAUvwT,QAAQ+0D,GAAK,mBAAoBmd,UAAW,+BACpGojR,EAAQ3pR,UAAU31C,IAAI,yBACtBs/T,EAAQthV,MAAMiwD,OAAS,QACvBqxR,EAAQthV,MAAMihV,OAAS,qBACvBK,EAAQthV,MAAM8zL,UAAY,aAC1BwtJ,EAAQthV,MAAM03G,aAAe,MAC7B4pO,EAAQthV,MAAM+zF,gBAAkB,QAChCutP,EAAQthV,MAAMqlE,MAAQ,QACtBi8Q,EAAQthV,MAAMgvL,UAAY,MAC1BmyJ,EAAQp7U,YAAYu7U,IACpBh3U,EAAQ7O,SAASS,cAAc,UACzBtN,KAAO,WACb0b,EAAMy2C,GAAK,YACXogS,EAAQp7U,YAAYuE,IACpBw2U,EAAc,IAAIzvB,GAAS,CAAEvlJ,MAAOi1K,EAAqBpoO,UAAU,EAAOuI,SAAS,KACvEgsK,SAAS5iR,GACrB+2U,EAAS13R,iBAAiB,QAAS76D,KAAKyyV,oBAAoB7xR,KAAK5gE,OACjEA,KAAK+sV,oBAAmB,GAExB,IAAIlgB,EAAMz/T,GAAc,MAAO,CAAE6kD,GAAIjyD,KAAKytT,UAAUvwT,QAAQ+0D,GAAK,kBAC7DygS,EAAYtlV,GAAc,MAAO,CAAE6kD,GAAIjyD,KAAKytT,UAAUvwT,QAAQ+0D,GAAK,oBAAqBmd,UAAW,2BAA4BvW,OAAQ,qBAEvIuT,EAASz/D,SAASS,cAAc,OACpCg/D,EAAOna,GAAKjyD,KAAKytT,UAAUvwT,QAAQ+0D,GAAK,sBACxCygS,EAAUz7U,YAAYm1D,GAEtB,IAAIumR,EAAe,IAAI99C,GAAO,CAAEE,SAAU,mBAAoB1nS,QAASrN,KAAKytT,UAAUmG,UAAU9nB,YAAY,4BAC5G6mD,EAAav0D,SAAShyN,GACtBumR,EAAaz1V,QAAQgU,MAAM8C,SAAW,WAEtC,IAAI4+U,EAAexlV,GAAc,SAAU,CAAE6kD,GAAIjyD,KAAKytT,UAAUvwT,QAAQ+0D,GAAK,0BAA2Bmd,UAAW,gCAC/GpvE,KAAKytT,UAAUvwT,QAAQsgM,YAAc,IACrCo1J,EAAa1xR,MAAQ,IAGrB0xR,EAAa1xR,MAAQlhE,KAAKytT,UAAUvwT,QAAQsgM,YAAc,GAE9Do1J,EAAa/pR,UAAU31C,IAAI,yBAC3B0/T,EAAazxR,OAAS,IACtByxR,EAAa1hV,MAAMiwD,OAAS,QAC5BwxR,EAAaz1V,QAAQgU,MAAM85D,KAAS4nR,EAAa1xR,MAAQ,EAAK,GAAM,KACpEyxR,EAAaz1V,QAAQgU,MAAM+5D,IAAQnsC,WAAW8zT,EAAa1hV,MAAMiwD,QAAU,EAAK,GAAM,KACtFyxR,EAAa1hV,MAAMihV,OAAS,qBAC5BS,EAAa1hV,MAAM+zF,gBAAkB,QACrC2tP,EAAa1hV,MAAM8zL,UAAY,aAC/B4tJ,EAAa1hV,MAAM03G,aAAe,MAClCgqO,EAAa1hV,MAAMm4D,OAAS,IAC5BqpR,EAAUz7U,YAAY27U,IACtBp3U,EAAQ7O,SAASS,cAAc,UACzBtN,KAAO,WACb0b,EAAMy2C,GAAK,YACXygS,EAAUz7U,YAAYuE,IACtBw2U,EAAc,IAAIzvB,GAAS,CAAEvlJ,MAAOi1K,EAAqBpoO,UAAU,EAAOuI,SAAS,KACvEgsK,SAAS5iR,GACrB4wD,EAAOvR,iBAAiB,QAAS76D,KAAK6yV,qBAAqBjyR,KAAK5gE,OAEhEA,KAAKgsV,cAAgB,CAAC,CAAE8G,SAAU,aAAe,CAAEA,SAAU,mBAAqB,CAAEA,SAAU,WAAa,CAAEA,SAAU,WAEvH,IAAIC,EAAgB,GACpB,GAAI/yV,KAAK0tT,cAAckgC,uBAAyB56E,GAAkBhzQ,KAAKytT,UAAU2hC,6BAA6B4D,oBAC1G,IAAK,IAAIn7T,EAAI,EAAGA,EAAI,EAAGA,IACdm7O,GAAkBhzQ,KAAKytT,UAAU2hC,6BAA6B4D,mBAAmBz7U,SAASsgB,EAAE/7B,WAAY,QACzGkE,KAAKgsV,cAAcz0U,SAASsgB,EAAE/7B,WAAY,KAAKg3V,SAAW9yV,KAAKytT,UAAU2hC,6BAA6B4D,mBAAmBz7U,SAASsgB,EAAE/7B,WAAY,MAI5J,IAAK,IAAI+I,EAAI,EAAGA,EAAI7E,KAAKgsV,cAAcroV,OAAQkB,IAC3CkuV,EAAcx7U,SAAS1S,EAAE/I,WAAY,KAAO6Q,SAASS,cAAc,OACnE2lV,EAAcx7U,SAAS1S,EAAE/I,WAAY,KAAKm2D,GAAK,kBAAoBptD,EACnEkuV,EAAcx7U,SAAS1S,EAAE/I,WAAY,KAAK+sE,UAAU31C,IAAI,kBAE5DlzB,KAAK+rV,SAAWgH,EAEhB,IAAI9vJ,EAAQjjM,KACRs4D,EAAQ,GAwCZ,OArCQA,EAFJt4D,KAAK0tT,cAAckgC,qBACf5tV,KAAK0tT,cAAcsgC,eACXhuV,KAAKizV,qBAAqBjzV,KAAKytT,UAAU2hC,6BAA6BC,uBAAyBrvV,KAAKytT,UAAU2hC,6BAA6BC,sBAAsB6D,YAAahB,EAAeG,EAASK,GAGtM1yV,KAAKizV,qBAAqBjzV,KAAKytT,UAAU2hC,6BAA6BI,yBAA2BxvV,KAAKytT,UAAU2hC,6BAA6BI,wBAAwB0D,YAAahB,EAAeG,EAASK,GAIlN1yV,KAAK0tT,cAAcsgC,eACXhuV,KAAKizV,qBAAsBjzV,KAAKytT,UAAUgiC,qBAAqBJ,sBAAwBrvV,KAAKytT,UAAUgiC,qBAAqBJ,sBAAsB6D,YAAc,EAAIhB,EAAeG,EAASK,GAG3L1yV,KAAKizV,qBAAsBjzV,KAAKytT,UAAUiiC,uBAAuBF,wBAA0BxvV,KAAKytT,UAAUiiC,uBAAuBF,wBAAwB0D,YAAc,EAAIhB,EAAeG,EAASK,GAInN1yV,KAAKkuV,OAAS,IAAI9Q,GAAI,CAClBlqN,SAAU,SAAU15G,GAChBypL,EAAMkwJ,kBAAkB35U,EAC5B,EACA45U,UAAW,SAAU55U,GACjBypL,EAAMhxH,OAAOz4D,EACjB,EACA8+C,MAAOA,IAEXt4D,KAAKkuV,OAAO9vD,SAASyuC,GACjBA,GAAOA,EAAIK,mBACXL,EAAIK,iBAAiBh8T,MAAM2L,SAAW,UAEZ,SAA1By7C,EAAM,GAAGu8D,OAAOmoD,MAChBh9K,KAAK2sV,cAAgB,OAEU,SAA1Br0R,EAAM,GAAGu8D,OAAOmoD,MACrBh9K,KAAK2sV,cAAgB,OAGrB3sV,KAAK2sV,cAAgB,QAElB9f,CAIX,EACAue,EAAUvvV,UAAUs3V,kBAAoB,SAAUtnV,GAE9C,IAAIwnV,EAAa,GAEbC,EAAc3mV,SAAS8gM,eAAeztM,KAAKytT,UAAUvwT,QAAQ+0D,GAAK,iBAAiB4gO,cAAc,GACrG,GAAIygE,GACIA,EAAYh7R,MAAM30D,OAAS,EAC3B,IAAK,IAAIkB,EAAI,EAAGA,EAAIyuV,EAAYh7R,MAAM30D,OAAQkB,IAAK,CAC7ByuV,EAAYh7R,MAAM/gD,SAAS1S,EAAE/I,WAAY,KAAK+4H,OAAOvxH,OACnDuI,EAAE0zU,aAAalnR,cAC/Bg7R,EAAaC,EAAYh7R,MAAM/gD,SAAS1S,EAAE/I,WAAY,KAAK+4H,OAAOmoD,MAE1E,CAGR,IAAI3qD,EAAW1lH,SAAS8gM,eAAe,YACvC,GAAIp7E,GAAYA,EAASD,SACrB,GAAwB,IAApBvmH,EAAEs5U,eAA6C,KAAtBnlV,KAAKyrV,aAAqB,CAC9CzrV,KAAK0tT,cAAcsgC,gBAKpBhuV,KAAKksV,eAAgB,EACrBlsV,KAAKssV,kBAAoBtsV,KAAKyrV,eAL9BzrV,KAAKisV,iBAAkB,EACvBjsV,KAAKqsV,oBAAsBrsV,KAAKyrV,cAOpC,IAAI1pR,EAASp1D,SAAS8gM,eAAeztM,KAAKytT,UAAUvwT,QAAQ+0D,GAAK,qBACjEjyD,KAAKusV,gBAAkBxqR,EAAOi/D,YACzBhhI,KAAK0tT,cAAcsgC,eAIpBhuV,KAAKysV,mBAAqBzsV,KAAKusV,gBAH/BvsV,KAAKwsV,qBAAuBxsV,KAAKusV,eAKzC,OAGIvsV,KAAKisV,kBAAoBjsV,KAAK0tT,cAAcsgC,gBAC5ChuV,KAAKisV,iBAAkB,EACvBjsV,KAAKqsV,oBAAsB,GAC3BrsV,KAAKusV,gBAAkB,GACvBvsV,KAAKwsV,qBAAuB,IAEvBxsV,KAAKksV,eAAiBlsV,KAAK0tT,cAAcsgC,iBAC9ChuV,KAAKksV,eAAgB,EACrBlsV,KAAKssV,kBAAoB,GACzBtsV,KAAKusV,gBAAkB,GACvBvsV,KAAKysV,mBAAqB,IAKlC,GAFAzsV,KAAK2tV,qBAAqB9hV,GAEa,SAAnCwnV,EAAW7iU,oBAAgC,CAC3CxwB,KAAK2sV,cAAgB,OACrB3sV,KAAKuzV,8BACL,IAAI3E,EAAejiV,SAAS8gM,eAAe,YAC3CztM,KAAK6uV,sBAAsBD,EAC/B,MACK,GAAuC,SAAnCyE,EAAW7iU,oBAAgC,CAC5CuxC,EAASp1D,SAAS8gM,eAAeztM,KAAKytT,UAAUvwT,QAAQ+0D,GAAK,qBACjEjyD,KAAKwrV,qBAAuBzpR,EAAOi/D,YACnChhI,KAAKoxV,2BACLpxV,KAAK2sV,cAAgB,OACrB3sV,KAAKuzV,8BACL,IAAIzE,EAAeniV,SAAS8gM,eAAe,aAC3CztM,KAAK6uV,sBAAsBC,EAC/B,MACK,GAAuC,WAAnCuE,EAAW7iU,oBAAkC,CAC9CuxC,EAASp1D,SAAS8gM,eAAeztM,KAAKytT,UAAUvwT,QAAQ+0D,GAAK,qBACjEjyD,KAAKwrV,qBAAuBzpR,EAAOi/D,YACnChhI,KAAK2sV,cAAgB,QACrB3sV,KAAKuzV,8BACL,IAAIxE,EAAgBpiV,SAAS8gM,eAAe,aAC5CztM,KAAK6uV,sBAAsBE,EAC/B,CACI/uV,KAAKytT,UAAUvwT,QAAQsgM,YAzER,KA0Efx9L,KAAK0uV,mBACT1uV,KAAKwzV,sBACkC,WAAnCH,EAAW7iU,qBAAoCxwB,KAAKurV,uBACpDvrV,KAAKyzV,sBAEb,EACArI,EAAUvvV,UAAU03V,4BAA8B,WACpB,KAAtBvzV,KAAKyrV,aACLzrV,KAAK+sV,oBAAmB,GAGxB/sV,KAAK+sV,oBAAmB,EAEhC,EACA3B,EAAUvvV,UAAUo3V,qBAAuB,SAAUC,EAAahB,EAAeG,EAASK,GACtF,IAAIp6R,EAAQ,GAmBZ,OAlBI46R,EAAc3xB,GAAYmyB,MAC1Bp7R,EAAMv1D,KAAK,CACP8xH,OAAQ,CAAE,KAAQ70H,KAAKytT,UAAUmG,UAAU9nB,YAAY,uBAAwB,MAAS,QACxFz+R,QAAS6kV,IAGbgB,EAAc3xB,GAAY7hU,MAC1B44D,EAAMv1D,KAAK,CACP8xH,OAAQ,CAAE,KAAQ70H,KAAKytT,UAAUmG,UAAU9nB,YAAY,kBAAmB,MAAS,QACnFz+R,QAASglV,IAGba,EAAc3xB,GAAYoyB,QAC1Br7R,EAAMv1D,KAAK,CACP8xH,OAAQ,CAAE,KAAQ70H,KAAKytT,UAAUmG,UAAU9nB,YAAY,oBAAqB,MAAS,UACrFz+R,QAASqlV,IAGVp6R,CACX,EAKA8yR,EAAUvvV,UAAU+3V,2BAA6B,WAE7C,IAAIC,EAAYzmV,GAAc,QAAS,CAAE6kD,GAAIjyD,KAAKytT,UAAUvwT,QAAQ+0D,GAAK,eAAgBp7C,MAAO,CAAE,KAAQ,UAC1Gg9U,EAAU98U,aAAa,SAAU,mBACjC88U,EAAU3iV,MAAM8C,SAAW,WAC3B6/U,EAAU3iV,MAAM85D,KAAO,MACvB6oR,EAAU3iV,MAAM+5D,IAAM,MACtB4oR,EAAU3iV,MAAMyrE,WAAa,SAC7BhwE,SAASiwE,KAAK3lE,YAAY48U,GAC1BA,EAAUh5R,iBAAiB,SAAU76D,KAAK4sV,cAC9C,EACAxB,EAAUvvV,UAAUg3V,qBAAuB,WAEvC,IAAIgB,EAAYlnV,SAAS8gM,eAAeztM,KAAKytT,UAAUvwT,QAAQ+0D,GAAK,gBAChE4hS,GACAA,EAAUvzN,OAElB,EACA8qN,EAAUvvV,UAAU42V,oBAAsB,WAMtC,IALA,IAEID,EAAU7lV,SAAS8gM,eAAeztM,KAAKytT,UAAUvwT,QAAQ+0D,GAAK,oBAE9D6hS,EAAUnnV,SAAS8gM,eAAeztM,KAAKytT,UAAUvwT,QAAQ+0D,GAAK,sBACzDptD,EAAI,EAAGA,EAAI7E,KAAKgsV,cAAcroV,OAAQkB,IAC3C7E,KAAK+rV,SAASx0U,SAAS1S,EAAE/I,WAAY,KAAKmR,UAAY6mV,EAAQr4V,MAC9DuE,KAAK+rV,SAASx0U,SAAS1S,EAAE/I,WAAY,KAAKoV,MAAMm2E,WAAarnF,KAAKgsV,cAAcz0U,SAAS1S,EAAE/I,WAAY,KAAKg3V,SAC5C,cAA5D9yV,KAAKgsV,cAAcz0U,SAAS1S,EAAE/I,WAAY,KAAKg3V,WAC/C9yV,KAAK+rV,SAASx0U,SAAS1S,EAAE/I,WAAY,KAAKoV,MAAM43G,YAAc,OAElE0pO,EAAQv7U,YAAYjX,KAAK+rV,SAASx0U,SAAS1S,EAAE/I,WAAY,MAE7D,IAAS+I,EAAI,EAAGA,EAAI7E,KAAKgsV,cAAcroV,OAAQkB,IAAK,CAEhC8H,SAAS8gM,eAAe,kBAAoB5oM,GAClDg2D,iBAAiB,QAAS76D,KAAK+zV,mBAAmBnzR,KAAK5gE,MACrE,CACAA,KAAK+sV,oBAAmB,GACxB/sV,KAAKmvV,mBAAkB,GACnBnvV,KAAKytT,UAAUvwT,QAAQsgM,YApBR,KAqBfx9L,KAAK0uV,mBACT1uV,KAAKwzV,qBACT,EACApI,EAAUvvV,UAAUk4V,mBAAqB,WACrC,IAAIjC,EAAcn3R,MAAM79D,OAEL6P,SAASwhM,uBAAuB,kBAAkB,GACxDtkF,UAAW,EACxB,IAAK,IAAIhlH,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAExB,IAAI8sV,EAAchlV,SAAS8gM,eAAe,kBAAoB5oM,GAC1D8sV,IACAA,EAAYzgV,MAAM43G,YAAc,GAExC,CACAgpO,EAAY5gV,MAAM43G,YAAc,MAChC9oH,KAAKyrV,aAAeqG,EAAYz5R,YAChC,IACIr4D,KAAK69G,SAAWv4C,KAAK4U,MAAM43Q,EAAY5gV,MAAMm2E,WACjD,CACA,MAAOx7E,IACH7L,KAAK69G,SAAWi0O,EAAY5gV,MAAMm2E,UACtC,CACJ,EAOA+jQ,EAAUvvV,UAAU20V,uBAAyB,SAAUrpS,EAAQnzC,GAC3D,IAWIggV,EAXAC,GAAY,EACZC,GAAY,EACZC,GAAY,EACZC,GAAY,EAEZC,EAAiBvgC,GAAgB9zT,KAAKyrV,cAEtC6I,EAAY3nV,SAASS,cAAc,UAEnC63D,EAAUqvR,EAAU/gR,WAAW,MAG/BghR,EAAgBv0V,KAAK0tT,cAAcwiC,sBAAsB1wB,oBAC7D,GAAsB,yBAAlB+0B,GACA,GAA8B,IAA1BF,EAAe1wV,OAAc,CAE7B,IAAK,IAAIvD,EAAI,EAAGA,EAAIi0V,EAAe1wV,OAAQvD,IAAK,CAE5C,IAAI1D,EAAM23V,EAAej0V,GACzB,IAAkB,IAAd6zV,EAEAA,EAAYv3V,EAAO,EAEnBy3V,EAAYz3V,EAAO,EAEnBw3V,EAAYx3V,EAAO,EAEnB03V,EAAY13V,EAAO,OAOfu3V,IAHA94O,EAAUz+G,EAAO,KAIjBu3V,EAAW94O,GAEX+4O,IAJA92B,EAAU1gU,EAAO,KAKjBw3V,EAAW92B,GAEX+2B,GAAYh5O,IACZg5O,EAAWh5O,GAEXi5O,GAAYh3B,IACZg3B,EAAWh3B,EAGvB,CACA,IAAIo3B,EAAiBL,EAAWF,EAC5BQ,EAAiBL,EAAWF,EAC5BQ,EAAcF,EAAiB,IAC/BG,EAAcF,EAAiB,IAC/BzpR,EAAO,EACPq2O,EAAQ,EACRl6P,GACAmtS,EAAUpzR,MAAQltD,EAAS8hL,aAC3Bw+J,EAAUnzR,OAASntD,EAASotS,cAC5BszC,EAAcF,EAAkBrtS,EAAO+Z,MACvCyzR,EAAcF,EAAkBttS,EAAOga,OACvC6J,EAAO7jB,EAAOh4B,EAAInb,EAASq9K,YAC3BgwH,EAAQl6P,EAAOniC,EAAIhR,EAASi9U,aAG5BqD,EAAUpzR,MAAQ,IAClBozR,EAAUnzR,OAAS,KAEvB8D,EAAQszB,YACR,IAAK,IAAIzzF,EAAI,EAAGA,EAAIuvV,EAAe1wV,OAAQmB,IAAK,CAE5C,IAEIq2G,IAFAz+G,EAAM23V,EAAevvV,IAEH,EAAImvV,GAAYS,EAAe1pR,EAEjDoyP,GAAW1gU,EAAO,EAAIw3V,GAAYS,EAAetzC,EAE9B,MAAnB3kT,EAAa,QACbuoE,EAAQnnB,OAAOq9D,EAAQiiN,GAGC,MAAnB1gU,EAAa,SAClBuoE,EAAQlnB,OAAOo9D,EAAQiiN,EAE/B,CACAn4P,EAAQ5mB,SACR4mB,EAAQ9mB,YACR61S,EAAcM,EAAUtzN,WAC5B,OAGAgzN,EAAch0V,KAAKyrV,aAKvB,GAAItkS,EACAnnD,KAAKusV,gBAAkByH,MAEtB,CAED,IAAIY,EAAiB,CAAC,EACtBA,EAAe,QAAU50V,KAAK0tT,cAAcmnC,YAAc70V,KAAKyrV,aAC/DzrV,KAAK6rV,iBAAiB9oV,KAAK6xV,GAE3B,IAAIE,EAAY,GAChBA,EAAU/xV,KAAK,CAAEkvD,GAAI,QAAUjyD,KAAK0tT,cAAcmnC,WAAY9zR,UAAWizR,EAAaO,cAAeA,EAAeltQ,WAAYrnF,KAAK0tT,cAAcwiC,sBAAsB7oQ,aACzKrnF,KAAK4rV,oBAAoB7oV,KAAK,CAAEywE,MAAOshR,EAAWC,UAAW/0V,KAAK0tT,cAAcsgC,iBAChFhuV,KAAK0tT,cAAcmnC,YACvB,CACJ,EAMAzJ,EAAUvvV,UAAUm5V,aAAe,SAAU9lT,GAOzC,OANIA,EAAQlvC,KAAK0sV,aACbx9S,EAAQlvC,KAAK0sV,aAERx9S,EAAQ,IACbA,EAAQ,GAELA,CACX,EAKAk8S,EAAUvvV,UAAUo5V,qBAAuB,WACvCj1V,KAAK0tT,cAAc4iC,iBACnB,IACIR,EADAkB,EAAYhxV,KAAK0tT,cAAcyB,gBAEnC,GAAInvT,KAAK0tT,cAAcwnC,mBAAoB,CACvC,IAAInF,EAAiB/vV,KAAKytT,UAAUuiC,WAAWC,aAC/CjwV,KAAK0tT,cAAcwiC,sBAAwB,KAC3ClwV,KAAK0tT,cAAcyiC,kBAAmB,EACtC,IAEI9+J,EACA4/J,EAHAt9R,EAAY3zD,KAAK0tT,cAAckD,kBAAoB,EACnD7C,EAAUphT,SAAS8gM,eAAeztM,KAAKytT,UAAUvwT,QAAQ+0D,GAAK,YAAc0B,GAI5EmiI,EAAe91L,KAAKytT,UAAU2hC,6BAA6BluR,MAAQlhE,KAAKytT,UAAU2hC,6BAA6BluR,MAAQ,IAEvHkgP,EAAgBphT,KAAKytT,UAAU2hC,6BAA6BjuR,OAASnhE,KAAKytT,UAAU2hC,6BAA6BjuR,OAAS,IAE1H47D,EAAY/8H,KAAKytT,UAAU2hC,6BAA6BryN,UAAY/8H,KAAKytT,UAAU2hC,6BAA6BryN,UAAY,EAE5H/pD,EAAUhzE,KAAKytT,UAAU2hC,6BAA6Bp8Q,QAAUhzE,KAAKytT,UAAU2hC,6BAA6Bp8Q,QAAU,EAEtHmY,EAAcnrF,KAAKytT,UAAU2hC,6BAA6BjkQ,YAAcnrF,KAAKytT,UAAU2hC,6BAA6BjkQ,YAAc,UACtIkmG,GAAgBvyJ,WAAWivR,EAAQ78S,MAAMgwD,OAAS,EAAM40H,EAAe,GAAMk7J,EAE7EC,GAAenyT,WAAWivR,EAAQ78S,MAAMiwD,QAAU,EAAMigP,EAAgB,GAAM4vC,EAI9E,IAHA,IAAI58D,EAAY,GACZmgE,OAAgB,EAChBY,OAAsB,EACjB5rV,EAAa,EAAGA,EAAavJ,KAAK6rV,iBAAiBloV,OAAQ4F,IAAc,CAE9E,IAAI6rV,EAAsBp1V,KAAK6rV,iBAAiBtiV,GAIhD,IAFIuoV,EAAcn3R,MAAM79D,SAELg1V,EAAY7/R,KAAO,QAAU1oD,GAAcuoV,GAAeA,EAAY7/R,KAAO,cAAgB1oD,EAAY,CACxH6qR,EAAYghE,EAAoB,QAAU7rV,GAC1C,KACJ,CACJ,CACA,IAAK,IAAI8rV,EAAiB,EAAGA,EAAiBr1V,KAAK4rV,oBAAoBjoV,OAAQ0xV,IAAkB,CAC7F,IAAIvD,EAAcn3R,MAAM79D,OACpBw4V,EAAct1V,KAAK4rV,oBAAoBr0U,SAAS89U,EAAev5V,WAAY,KAAK03E,MAAM,GAAGvhB,GAAG3/C,MAAM,KAAK,GAC3G,GAAIw/U,GAAeA,EAAY7/R,KAAO,QAAUqjS,GAAexD,GAAeA,EAAY7/R,KAAO,cAAgBqjS,EAAa,CAC1Hf,EAAgBv0V,KAAK4rV,oBAAoBr0U,SAAS89U,EAAev5V,WAAY,KAAK03E,MAAM,GAAG+gR,cAC3FY,EAAsBn1V,KAAK4rV,oBAAoBr0U,SAAS89U,EAAev5V,WAAY,KAAK03E,MAAM,GAAG6T,WACjG,KACJ,CACJ,CACA,GAAsB,yBAAlBktQ,EAA0C,CAE1C,IAAInE,EAAkBpwV,KAAKytT,UAAU4gC,iBAAiBgC,2BAA2Bj8D,GAAW,GAE5Ft+F,EAAes6J,EAAgBlvR,MAAQkvR,EAAgBlvR,MAAQ40H,EAE/DsrH,EAAgBgvC,EAAgBjvR,OAASivR,EAAgBjvR,OAASigP,CACtE,MAEItrH,EAAgC,MAAjBA,EAAuB,IAAM91L,KAAKytT,UAAU2hC,6BAA6BluR,MAExFkgP,EAAkC,MAAlBA,EAAwB,GAAKphT,KAAKytT,UAAU2hC,6BAA6BjuR,OAE7F2uR,EAAQ,CAEJ79R,GAAI,OAASjyD,KAAK0tT,cAAc4iC,eAAgBnpS,OAAQ,CAAEh4B,EAAGkiK,EAAarsK,EAAGisU,EAAY/vR,MAAO40H,EAAc30H,OAAQigP,GAAiBztP,UAAWA,EAAW1wD,KAAMmxR,EAEnKorC,oBAAqB+0B,EAAevhR,QAASA,EAASqU,WAAY8tQ,EAAqBhqQ,YAAaA,EAAa4xC,UAAWA,EAAWwzN,cAAeR,GAE1J/vV,KAAK0tT,cAAcwiC,sBAAwBJ,EAC3C9vV,KAAK0tT,cAAcwnC,oBAAqB,CAC5C,MAEIl1V,KAAKytT,UAAU4gC,iBAAiBwC,eAExC,EAKAzF,EAAUvvV,UAAU6yV,iBAAmB,WAEnC,IAAI3sR,EAASp1D,SAAS8gM,eAAeztM,KAAKytT,UAAUvwT,QAAQ+0D,GAAK,qBACjEjyD,KAAKu1V,gBAAgBxzR,GACrB,IAAI6wR,EAAejmV,SAAS8gM,eAAeztM,KAAKytT,UAAUvwT,QAAQ+0D,GAAK,2BACvEjyD,KAAKu1V,gBAAgB3C,GACrB,IAAI4C,EAAiB7oV,SAAS8gM,eAAeztM,KAAKytT,UAAUvwT,QAAQ+0D,GAAK,oBACzEjyD,KAAKu1V,gBAAgBC,EACzB,EACApK,EAAUvvV,UAAU05V,gBAAkB,SAAUxzR,GAC5C,IAAI6iD,EAAU,EAIV/kH,EAAO8M,SAASK,cAAc,kBAClC,GAAInN,EAAM,CACN,IAAIqR,EAAQi3D,iBAAiBtoE,GAC7B+kH,EAAUA,EAAUrtG,SAASrG,EAAMynP,YAAa,IAAMphP,SAASrG,EAAMw5O,aAAc,GACvF,CACI3oL,GAAU/hE,KAAKiuV,iBAAmBjuV,KAAKiuV,gBAAgB3tP,UACnDtgG,KAAKytT,UAAUvwT,QAAQsgM,YATZ,KAUXz7H,EAAOb,MATG,IAUVa,EAAO7wD,MAAMgwD,MAAQ09B,UAGrB78B,EAAOb,MAAQlhE,KAAKytT,UAAUvwT,QAAQsgM,YAAc54E,EACpD7iD,EAAO7wD,MAAMgwD,MAAQa,EAAOb,MAAQ,OAG5C,IAAIu0R,EAAe9oV,SAASwhM,uBAAuB,kBACnD,GAAIpsI,GAAU0zR,GAAgBA,EAAa9xV,OAAS,EAChD,IAAK,IAAIkB,EAAI,EAAGA,EAAI4wV,EAAa9xV,OAAQkB,IAAK,CAC5B4wV,EAAal+U,SAAS1S,EAAE/I,WAAY,KAC1CoV,MAAMgwD,MAAUa,EAAOb,MAAQ,EApBlC,GAoBiD,IAC1D,CAER,EACAkqR,EAAUvvV,UAAU23V,oBAAsB,WACtC,IAAIvwJ,EAAQjjM,KACRwzE,EAAQ,IAAIC,MAChBD,EAAMr9D,OAAS,WACX,IAAI4rD,EAASp1D,SAAS8gM,eAAexK,EAAMwqH,UAAUvwT,QAAQ+0D,GAAK,qBAC9D8P,GACcA,EAAOwR,WAAW,MACxBG,UAAUF,EAAO,EAAG,EAEpC,EACAA,EAAMp9D,IAAMpW,KAAKwrV,oBACrB,EACAJ,EAAUvvV,UAAU43V,qBAAuB,WACvC,IAAIxwJ,EAAQjjM,KACRwzE,EAAQ,IAAIC,MAChBD,EAAMr9D,OAAS,WACX,IAAI4rD,EAASp1D,SAAS8gM,eAAexK,EAAMwqH,UAAUvwT,QAAQ+0D,GAAK,2BAClE,GAAI8P,EAAQ,CACR,IAAIkD,EAAUlD,EAAOwR,WAAW,MACf5mE,SAAS8gM,eAAexK,EAAMwqH,UAAUvwT,QAAQ+0D,GAAK,uBAC3D/gD,MAAMyrE,WAAa,SAC9B1X,EAAQyO,UAAUF,EAAO,EAAG,EAAGzR,EAAOb,MAAOa,EAAOZ,QACpD8hI,EAAM8pJ,oBAAmB,GACzB9pJ,EAAM+pJ,qBAAuBx5Q,EAAMy5Q,cACnChqJ,EAAMiqJ,oBAAsB15Q,EAAM25Q,YACtC,CACJ,EACA35Q,EAAMp9D,IAAMpW,KAAKurV,qBACrB,EACAH,EAAUvvV,UAAU2xV,wBAA0B,SAAU3hV,GACrC,gBAAXA,EAAE/L,OACF+L,EAAE89D,iBACF3pE,KAAK01V,kBAAkB7pV,GACvB7L,KAAK21V,gBAAiB,EACtB31V,KAAK41V,KAAO51V,KAAK61V,OACjB71V,KAAK81V,KAAO91V,KAAK+1V,OACjB/1V,KAAK89L,UAAY,GACjB99L,KAAKg2V,kBAAkBnqV,GACvB7L,KAAKqrV,aAAc,EAE3B,EACAD,EAAUvvV,UAAUkxV,mBAAqB,SAAUp1B,GAE/C,IAAIs+B,EAAYtpV,SAASwhM,uBAAuB,kBAAkB,GAC9D8nJ,IACAA,EAAUpsO,SAAW8tM,GAEzB33T,KAAKmvV,kBAAkBx3B,EAC3B,EACAyzB,EAAUvvV,UAAUszV,kBAAoB,SAAUx3B,GAE9C,IAAIu+B,EAAWvpV,SAASwhM,uBAAuB,iBAAiB,GAC5D+nJ,IACAA,EAASrsO,SAAW8tM,EAE5B,EACAyzB,EAAUvvV,UAAU4xV,wBAA0B,SAAU5hV,GAChD7L,KAAK21V,gBAAyC,SAAvB31V,KAAK2sV,gBAC5B3sV,KAAK01V,kBAAkB7pV,GACvB7L,KAAK+sV,oBAAmB,GACxB/sV,KAAKg2V,kBAAkBnqV,GAE/B,EACAu/U,EAAUvvV,UAAU65V,kBAAoB,SAAU/6R,GAG9C,IAAqC,IAAjCA,EAAM76D,KAAKoP,QAAQ,SAAiB,CAEpC,IAEIinV,EAFUx7R,EAAM79D,OAEM8tE,wBAC1B5qE,KAAK61V,OAASl7R,EAAM4pF,eAAe,GAAG7W,QAAUyoN,EAAYnrR,KAC5DhrE,KAAK+1V,OAASp7R,EAAM4pF,eAAe,GAAG3W,QAAUuoN,EAAYlrR,GAChE,MAGIjrE,KAAK61V,OAASl7R,EAAM9F,QACpB70D,KAAK+1V,OAASp7R,EAAM7F,OAE5B,EACAs2R,EAAUvvV,UAAUm6V,kBAAoB,SAAUr7R,GAC1C36D,KAAK21V,iBACL31V,KAAKo2V,wBACLp2V,KAAK41V,KAAO51V,KAAK61V,OACjB71V,KAAK81V,KAAO91V,KAAK+1V,OAEzB,EACA3K,EAAUvvV,UAAUu6V,sBAAwB,WAExC,IAEInxR,EAFSt4D,SAAS8gM,eAAeztM,KAAKytT,UAAUvwT,QAAQ+0D,GAAK,qBAE5CshB,WAAW,MAChCtO,EAAQszB,YACRtzB,EAAQnnB,OAAO99C,KAAK41V,KAAM51V,KAAK81V,MAC/B7wR,EAAQlnB,OAAO/9C,KAAK61V,OAAQ71V,KAAK+1V,QACjC9wR,EAAQ5mB,SACR4mB,EAAQsmB,UAAY,EACpBtmB,EAAQoxR,IAAIr2V,KAAK41V,KAAM51V,KAAK81V,KAAM,EAAO,EAAa,EAAVh+U,KAAKkkC,IAAQ,GACzDipB,EAAQ9mB,YACRn+C,KAAK89L,UAAU/6L,KAAK/C,KAAK61V,OAAQ71V,KAAK+1V,OAC1C,EACA3K,EAAUvvV,UAAU6xV,sBAAwB,WACpC1tV,KAAK21V,gBACL31V,KAAKs2V,cAAct2V,KAAK89L,WAE5B99L,KAAK21V,gBAAiB,EACJ,YAAdh7R,MAAM76D,OACNE,KAAKsrV,eAAgB,EAE7B,EACAF,EAAUvvV,UAAUu2V,yBAA2B,WACvCpyV,KAAK21V,gBACL31V,KAAKs2V,cAAct2V,KAAK89L,WAE5B99L,KAAK21V,gBAAiB,EACtB31V,KAAKqrV,aAAc,CACvB,EAGAD,EAAUvvV,UAAUy6V,cAAgB,SAAUx4J,GAC1C99L,KAAKu2V,SAASz4J,EAAU,GAAIA,EAAU,IACtC99L,KAAKw2V,SAAS14J,EAAU,GAAIA,EAAU,IACtC,IAAK,IAAIh5L,EAAI,EAAGA,EAAIg5L,EAAUn6L,OAAQmB,GAAQ,EAC1C9E,KAAKw2V,SAAS14J,EAAUvmL,SAASzS,EAAEhJ,WAAY,KAAMgiM,EAAUh5L,EAAI,GAE3E,EACAsmV,EAAUvvV,UAAU26V,SAAW,SAAUrnU,EAAGnK,GACxChlB,KAAKyrV,cAAgB,IAAMt8T,EAAI,IAAMnK,EAAI,GAC7C,EACAomU,EAAUvvV,UAAU06V,SAAW,SAAUpnU,EAAGnK,GACxChlB,KAAKyrV,cAAgB,IAAMt8T,EAAI,IAAMnK,EAAI,GAC7C,EAKAomU,EAAUvvV,UAAU8xV,qBAAuB,SAAU7tV,GACjD,IAAI22V,GAAgB,EAChBC,EAAa,IACb52V,GAASkzQ,GAAkBlzQ,EAAKqlV,gBAAmBnyE,GAAkBlzQ,EAAK0zH,gBAoB1ExzH,KAAKyrV,aAAe,GACpBzrV,KAAK89L,UAAY,KApBjB24J,GAAgB,EACW,IAAvB32V,EAAKqlV,eACLnlV,KAAK0rV,iBAAmB1rV,KAAKyrV,aAC7BiL,EAAa12V,KAAK89L,WAEU,IAAvBh+L,EAAKqlV,gBACVnlV,KAAK2rV,kBAAoB3rV,KAAKyrV,cAElCzrV,KAAKyrV,aAAe,GACpBzrV,KAAK89L,UAAY,GACU,IAAvBh+L,EAAK0zH,eACLxzH,KAAKyrV,aAAezrV,KAAK0rV,iBACzB1rV,KAAK89L,UAAY44J,GAEW,IAAvB52V,EAAK0zH,gBACVxzH,KAAKyrV,aAAezrV,KAAK2rV,oBAOjC,IAAIgL,GAAiB,EACjBC,GAAiB,EACjBC,GAAkB,EAClB/2V,GAAQA,EAAKyH,eAAiBzH,EAAKyH,cAAcshE,UAAUsJ,SAAS,mBACpEskR,GAAgB,EACW,SAAvBz2V,KAAK2sV,cACLgK,GAAiB,EAEW,SAAvB32V,KAAK2sV,cACViK,GAAiB,EAGjBC,GAAkB,GAI1B,IAAI90R,EAASp1D,SAAS8gM,eAAeztM,KAAKytT,UAAUvwT,QAAQ+0D,GAAK,sBAE5D8P,GAAU00R,GAAmBE,IAEhB50R,EAAOwR,WAAW,MACxBiiB,UAAU,EAAG,EAAGzzB,EAAOb,MAAOa,EAAOZ,QAGjD,IAAI21R,EAAcnqV,SAAS8gM,eAAeztM,KAAKytT,UAAUvwT,QAAQ+0D,GAAK,2BACtE,GAAI6kS,GAAeL,GAAkBI,EAAkB,CAErCC,EAAYvjR,WAAW,MAC7BiiB,UAAU,EAAG,EAAGshQ,EAAY51R,MAAO41R,EAAY31R,QAEvD,IAAI41R,EAAapqV,SAAS8gM,eAAeztM,KAAKytT,UAAUvwT,QAAQ+0D,GAAK,uBACjE8kS,IACAA,EAAW7lV,MAAMyrE,WAAa,GAEtC,CAEA,IAAIq6Q,EAAUrqV,SAAS8gM,eAAeztM,KAAKytT,UAAUvwT,QAAQ+0D,GAAK,oBAE9DglS,EAAUtqV,SAAS8gM,eAAeztM,KAAKytT,UAAUvwT,QAAQ+0D,GAAK,uBAC7D+kS,GAAWC,GAAWR,GAAmBG,KAC1CK,EAAQx7V,MAAQ,GACXm4Q,OACDojF,EAAQ/pV,UAAY,KAG5BjN,KAAK+sV,oBAAmB,EAC5B,EAKA3B,EAAUvvV,UAAU2yV,oBAAsB,WAClCxuV,KAAK0tT,cAAcnmT,gBACnBvH,KAAK0tT,cAAc0gC,uBAAwB,GAE/CpuV,KAAK2tV,uBACA/5E,MACD5zQ,KAAKiuV,gBAAgBzsO,OAEzBxhH,KAAK0tT,cAAckgC,sBAAuB,EAC1C5tV,KAAK0tT,cAAc0gC,uBAAwB,EAC3CpuV,KAAK0rV,iBAAmB,GACxB1rV,KAAK2rV,kBAAoB,EAC7B,EAKAP,EAAUvvV,UAAUq7V,cAAgB,WAEhC,IAAIC,EAAc,KAEdA,EADAn3V,KAAK0tT,cAAc0pC,gBACLp3V,KAAK0tT,cAAcr8P,kBAAkBrxD,KAAK0tT,cAAc2pC,WAAa,qBAGrElwV,OAAO66O,eAAeJ,QAAQ5hP,KAAK0tT,cAAc2pC,WAAa,qBAIhF,IADA,IAAI5gO,EAAc,IAAI95H,MACbk7B,EAAI,EAAGA,EAAI73B,KAAK0tT,cAAcoD,UAAWj5R,IAC9C4+F,EAAYl/G,SAASsgB,EAAE/7B,WAAY,KAAO,GAE9C,GAAIq7V,EAEA,IADA,IAAIG,EAAuBhyR,KAAK4U,MAAMi9Q,GAC7BtyV,EAAI,EAAGA,EAAIyyV,EAAqB3zV,OAAQkB,IAAK,CAClD,IAAI0yV,EAAW,GACXC,EAAuBF,EAAqB//U,SAAS1S,EAAE/I,WAAY,KACvE,GAAI07V,EAAsB,CACtB,IAAK,IAAI5nN,EAAI,EAAG4nN,EAAqB/gO,YAAY9yH,OAASisI,EAAGA,IAAK,CAE9D,IAAI6nN,EAAoBD,EAAqB/gO,YAAYl/G,SAASq4H,EAAE9zI,WAAY,KAAKqvF,YAAcqsQ,EAAqB/gO,YAAYl/G,SAASq4H,EAAE9zI,WAAY,KAAKqvF,YAAc,QAI9K,GAHAqsQ,EAAqB/gO,YAAYl/G,SAASq4H,EAAE9zI,WAAY,KAAKqvF,YAAc7lB,KAAKC,UAAUvlE,KAAK03V,WAAWD,IAE1GD,EAAqB/gO,YAAYl/G,SAASq4H,EAAE9zI,WAAY,KAAKqrD,OAASme,KAAKC,UAAUvlE,KAAKytT,UAAUuiC,WAAW2H,UAAUH,EAAqB/gO,YAAYl/G,SAASq4H,EAAE9zI,WAAY,KAAKqrD,OAAQqwS,EAAqB7jS,YAC1H,yBAArF6jS,EAAqB/gO,YAAYl/G,SAASq4H,EAAE9zI,WAAY,KAAK0jU,qBAAiI,QAA/Eg4B,EAAqB/gO,YAAYl/G,SAASq4H,EAAE9zI,WAAY,KAAKy0V,cAAyB,CAErM,IAEIqH,EAASviC,GAFQvB,GAAgB0jC,EAAqB/gO,YAAYl/G,SAASq4H,EAAE9zI,WAAY,KAAKmH,OAGlGu0V,EAAqB/gO,YAAYl/G,SAASq4H,EAAE9zI,WAAY,KAAKmH,KAAOqiE,KAAKC,UAAUqyR,EACvF,MAEI,GAAyF,kBAArFJ,EAAqB/gO,YAAYl/G,SAASq4H,EAAE9zI,WAAY,KAAK0jU,qBAA4Cx/T,KAAK63V,iBAAiBL,EAAqB/gO,YAAYl/G,SAASq4H,EAAE9zI,WAAY,KAAKurF,YAgB5LmwQ,EAAqB/gO,YAAYl/G,SAASq4H,EAAE9zI,WAAY,KAAKmH,KAAOqiE,KAAKC,UAAUiyR,EAAqB/gO,YAAYl/G,SAASq4H,EAAE9zI,WAAY,KAAKmH,UAhByD,CACzM,IAAI60V,EAAiB1qV,GAAc,UAC/B+5C,EAASme,KAAK4U,MAAMs9Q,EAAqB/gO,YAAYl/G,SAASq4H,EAAE9zI,WAAY,KAAKqrD,QACrF2wS,EAAe52R,MAAS/Z,GAAUA,EAAO+Z,OAAU,IACnD42R,EAAe32R,OAAUha,GAAUA,EAAOga,QAAmF,EAAxEq2R,EAAqB/gO,YAAYl/G,SAASq4H,EAAE9zI,WAAY,KAAKwuF,SAElH,IAAI50B,EAAgBoiS,EAAevkR,WAAW,MAC1CpkD,EAAI2oU,EAAe52R,MAAQ,EAC3Bl8C,EAAK8yU,EAAe32R,OAAS,EAAKq2R,EAAqB/gO,YAAYl/G,SAASq4H,EAAE9zI,WAAY,KAAKwuF,SAAW,EAAI,GAClH50B,EAAcs6D,UAAY,SAC1Bt6D,EAAc+K,KAAO+2R,EAAqB/gO,YAAYl/G,SAASq4H,EAAE9zI,WAAY,KAAKwuF,SAAW,MAAQktQ,EAAqB/gO,YAAYl/G,SAASq4H,EAAE9zI,WAAY,KAAKurF,WAClK3xB,EAAc6xB,SAASiwQ,EAAqB/gO,YAAYl/G,SAASq4H,EAAE9zI,WAAY,KAAKmH,KAAMksB,EAAGnK,GAC7FwyU,EAAqB/gO,YAAYl/G,SAASq4H,EAAE9zI,WAAY,KAAKmH,KAAOqiE,KAAKC,UAAUuyR,EAAe92N,UAAU,cAC5Gw2N,EAAqB/gO,YAAYl/G,SAASq4H,EAAE9zI,WAAY,KAAK0jU,oBAAsB,gBACvF,CAKR,CACA+3B,EAAWC,EAAqB/gO,WACpC,CACAA,EAAY+gO,EAAqB7jS,WAAa4jS,CAClD,CAEJ,OAAOjyR,KAAKC,UAAUkxD,EAC1B,EACA20N,EAAUvvV,UAAUg8V,iBAAmB,SAAUh6O,GAG7C,MAAiB,cAAbA,GAAyC,oBAAbA,GAA+C,YAAbA,GAAuC,WAAbA,CAIhG,EAMAutO,EAAUvvV,UAAU67V,WAAa,SAAUK,GAElCA,EAAY/uV,MAAM,mBAAsB+uV,EAAY/uV,MAAM,gEAC3D+uV,EAAc/3V,KAAKytT,UAAUuqC,iBAAiBC,WAAWF,IAE7D,IAAIG,EAAcH,EAAYzlV,MAAM,KAapC,OAZI0gQ,GAAkBklF,EAAY,MAE9BA,GADAH,EAAc/3V,KAAKytT,UAAUuqC,iBAAiB7zR,SAAS4zR,EAAa,SAC1CzlV,MAAM,MAU7B,CAAE2yC,EAPD1tC,SAAS2gV,EAAY,GAAG5lV,MAAM,KAAK,IAO5B4yC,EALP3tC,SAAS2gV,EAAY,IAKRh0V,EAHbqT,SAAS2gV,EAAY,IAGFx8U,EADnBnE,SAAS2gV,EAAY,IAEjC,EAOA9M,EAAUvvV,UAAUs8V,gBAAkB,SAAUntR,EAAMC,GAClD,IAAI6kR,EAEAsI,EAAoBp4V,KAAK0tT,cAAcwiC,sBACvCH,EAAiB/vV,KAAKytT,UAAUuiC,WAAWC,aAC/C,GAAImI,EAAmB,CACkD,yBAAjEp4V,KAAK0tT,cAAcwiC,sBAAsB1wB,sBACzCswB,EAAQ,CAEJ79R,GAAImmS,EAAkBnmS,GAAI9K,OAAQ,CAAEh4B,EAAG67C,EAAMhmD,EAAGimD,EAAK/J,MAAOk3R,EAAkBjxS,OAAO+Z,MAAOC,OAAQi3R,EAAkBjxS,OAAOga,QAAUxN,UAAWykS,EAAkBzkS,UAAW1wD,KAAMm1V,EAAkBn1V,KACvMu8T,oBAAqB,uBAAwBxsP,QAASolR,EAAkBplR,QAASqU,WAAY+wQ,EAAkB/wQ,WAAYiD,SAAU8tQ,EAAkB9tQ,SAAUa,YAAaitQ,EAAkBjtQ,YAAa4xC,UAAWq7N,EAAkBr7N,UAAWwzN,cAAeR,IAGvM,kBAAjE/vV,KAAK0tT,cAAcwiC,sBAAsB1wB,oBACzCswB,EAAQ,CAEJ79R,GAAImmS,EAAkBnmS,GAAI9K,OAAQ,CAAEh4B,EAAG67C,EAAMhmD,EAAGimD,EAAK/J,MAAOk3R,EAAkBjxS,OAAO+Z,MAAOC,OAAQi3R,EAAkBjxS,OAAOga,QAAUxN,UAAWykS,EAAkBzkS,UAAW1wD,KAAMm1V,EAAkBn1V,KACvMu8T,oBAAqB,gBAAiBxsP,QAASolR,EAAkBplR,QAASqU,WAAY+wQ,EAAkB/wQ,WAAYiD,SAAU8tQ,EAAkB9tQ,SAAUa,YAAaitQ,EAAkBjtQ,YAAa4xC,UAAWq7N,EAAkBr7N,UAAWwzN,cAAeR,GAG3L,mBAAjE/vV,KAAK0tT,cAAcwiC,sBAAsB1wB,sBAC9CswB,EAAQ,CAEJ79R,GAAImmS,EAAkBnmS,GAAI9K,OAAQ,CAAEh4B,EAAG67C,EAAMhmD,EAAGimD,EAAK/J,MAAOk3R,EAAkBjxS,OAAO+Z,MAAOC,OAAQi3R,EAAkBjxS,OAAOga,QAAUxN,UAAWykS,EAAkBzkS,UAAW1wD,KAAMm1V,EAAkBn1V,KACvMu8T,oBAAqB,iBAAkBxsP,QAASolR,EAAkBplR,QAASqU,WAAY+wQ,EAAkB/wQ,WAAYiD,SAAU8tQ,EAAkB9tQ,SAAUa,YAAaitQ,EAAkBjtQ,YAAa4xC,UAAWq7N,EAAkBr7N,UAAWwzN,cAAeR,IAGtQ/vV,KAAKytT,UAAUv6R,IAAI48T,GAEnB,IAAIuI,EAAU1rV,SAAS8gM,eAAeztM,KAAKytT,UAAUvwT,QAAQ+0D,GAAK,qBAAuBmmS,EAAkBzkS,WAE3G3zD,KAAKytT,UAAU6qC,cAAcD,EAASD,EAAkBzkS,WACxD3zD,KAAK0tT,cAAc6qC,gBAAiB,EAEpCv4V,KAAKw4V,mBAAmBJ,EAAkBzkS,UAAWm8R,GACrD9vV,KAAKytT,UAAUgrC,iBAAiBL,EAAkBzkS,UAAWykS,EAAkB7H,cAAe6H,EAAkB54B,oBAAqB44B,EAAkBjxS,OAAQixS,EAAkBplR,QAASolR,EAAkBjtQ,YAAaitQ,EAAkBr7N,WAC3O/8H,KAAK0tT,cAAcwiC,sBAAwB,KAC3ClwV,KAAK0tT,cAAc4iC,gBACvB,CACJ,EAQAlF,EAAUvvV,UAAU68V,wBAA0B,SAAUpB,EAAsB3jS,EAAWglS,GACrF,IAAI7I,EACA8I,GAAoB,EACxB,IAAKD,EACD,IAAK,IAAI53V,EAAI,EAAGA,EAAIf,KAAK8rV,oBAAoBnoV,OAAQ5C,IACjD,GAAIf,KAAK8rV,oBAAoBv0U,SAASxW,EAAEjF,WAAY,OAAS63D,EAAW,CACpEilS,GAAoB,EACpB,KACJ,CAGR,GAAItB,IAAyBsB,EAAmB,CACxCtB,EAAqB3zV,OAAS,IAAsD,IAAjD3D,KAAK8rV,oBAAoB58U,QAAQykD,IACpE3zD,KAAK8rV,oBAAoB/oV,KAAK4wD,GAElC,IAAK,IAAI7uD,EAAI,EAAGA,EAAIwyV,EAAqB3zV,OAAQmB,IAAK,CAElD,IAAIszV,EAAoBd,EAAqBxyV,GAC7C,GAAIszV,EAAmB,CAEnB,IAAIn1V,EAAOm1V,EAAkBS,SACzBF,IAEI11V,EADAm1V,EAAkBU,YACXV,EAAkBS,SAEiB,mBAArCT,EAAkBxgT,gBAA4E,kBAArCwgT,EAAkBxgT,eACzE0tB,KAAK4U,MAAM5U,KAAKC,UAAU6yR,EAAkBS,WAG/C51V,EAAK0hD,SAAS,WACP2wQ,GAAchwP,KAAK4U,MAAMk+Q,EAAkBS,WAG3CT,EAAkBS,UAIrC74V,KAAKyrV,aAAexoV,EACpBjD,KAAKyrV,aAAe,GACpB,IAEItkS,EAASixS,EAAkBW,OAC3B1nK,EAAe2hF,GAAkB7rN,EAAO1L,GAAiC0L,EAAOh4B,EAAK6pU,EAAxC7xS,EAAO1L,EAAKu9S,EACzD/H,EAAcj+E,GAAkB7rN,EAAOu4G,GAAiCv4G,EAAOniC,EAAKg0U,EAAxC7xS,EAAOu4G,EAAKs5L,EACxDljK,EAAe3uI,EAAOwnQ,MAAQxnQ,EAAOwnQ,MAAQ,EAAuBxnQ,EAAO+Z,MAAQ,EACnFkgP,EAAgBj6P,EAAOynQ,OAASznQ,EAAOynQ,OAAS,EAAuBznQ,EAAOga,OAAS,EAEvF2uR,EADqC,kBAArCsI,EAAkBxgT,eACV,CACJqa,GAAI,OAASjyD,KAAK0tT,cAAc4iC,eAAgBnpS,OAAQ,CAAEh4B,EAAGkiK,EAAarsK,EAAGisU,EAAY/vR,MAAO40H,EAAc30H,OAAQigP,GAAiBztP,UAAWA,EAAW1wD,KAAMA,EAAMokF,WAAY+wQ,EAAkBa,WAAY3uQ,SAAU8tQ,EAAkBc,SAC/O15B,oBAAqB,gBAAiBxsP,QAASolR,EAAkBe,QAAShuQ,YAAaitQ,EAAkBgB,YAAar8N,UAAWq7N,EAAkBiB,UAAW9I,cAAe6H,EAAkBkB,eAGzJ,mBAArClB,EAAkBxgT,eACf,CACJqa,GAAI,OAASjyD,KAAK0tT,cAAc4iC,eAAgBnpS,OAAQ,CAAEh4B,EAAGkiK,EAAarsK,EAAGisU,EAAY/vR,MAAO40H,EAAc30H,OAAQigP,GAAiBztP,UAAWA,EAAW1wD,KAAMA,EAAMu8T,oBAAqB,iBAAkBxsP,QAASolR,EAAkBe,QAAShuQ,YAAaitQ,EAAkBgB,YAAar8N,UAAWq7N,EAAkBiB,UAAW9I,cAAe6H,EAAkBkB,eAIrW,CACJrnS,GAAI,OAASjyD,KAAK0tT,cAAc4iC,eAAgBnpS,OAAQ,CAAEh4B,EAAGkiK,EAAarsK,EAAGisU,EAAY/vR,MAAO40H,EAAc30H,OAAQigP,GAAiBztP,UAAWA,EAAW1wD,KAAMA,EAAMu8T,oBAAqB,uBAAwBxsP,QAASolR,EAAkBe,QAAShuQ,YAAaitQ,EAAkBgB,YAAar8N,UAAWq7N,EAAkBiB,UAAW9I,cAAe6H,EAAkBkB,cAAgBlB,EAAkBkB,cAAgB,MAG7a,CACAt5V,KAAKytT,UAAUv6R,IAAI48T,GAEnB,IAAIuI,EAAU1rV,SAAS8gM,eAAeztM,KAAKytT,UAAUvwT,QAAQ+0D,GAAK,qBAAuBmmS,EAAkBzkS,WAE3G3zD,KAAKytT,UAAU6qC,cAAcD,EAASvI,EAAMn8R,WAC5C3zD,KAAKw4V,mBAAmB1I,EAAMn8R,UAAWm8R,GACzC9vV,KAAK0tT,cAAcwiC,sBAAwB,KAC3ClwV,KAAK0tT,cAAc4iC,iBAEftwV,KAAK0tT,cAAc6rC,gBAAkBv5V,KAAK0tT,cAAc6rC,eAAeC,mBAAqBx5V,KAAKytT,UAAUgsC,sBAE3Gz5V,KAAK0tT,cAAc6rC,eAAeC,kBAAkBjhB,YAAY,CAACv4U,KAAKytT,UAAUmG,UAAU9nB,YAAY,wBAAwB,GAE9H9rS,KAAK0tT,cAAc6rC,eAAeC,kBAAkBjhB,YAAY,CAACv4U,KAAKytT,UAAUmG,UAAU9nB,YAAY,iBAAiB,GAE/H,CACJ,CACJ,EAOAs/C,EAAUvvV,UAAU28V,mBAAqB,SAAU5mS,EAAY6kE,GAE3Dz2H,KAAKytT,UAAUuiC,WAAW0J,UAAUjjO,EAAY9iE,UAAY8iE,EAAY9iE,UAAY8iE,EAAYkjO,UAAW,KAAMljO,EAAa,WAAY,GAAIA,EAAaA,GAC3J,IAAIu5N,EACAhlR,EACAC,EACA/J,EACAC,EACAxN,EACA8iE,EAAYtvE,QACZ6jB,EAAOyrD,EAAYtvE,OAAO6jB,KAAOyrD,EAAYtvE,OAAO6jB,KAAOyrD,EAAYtvE,OAAOh4B,EAC9E87C,EAAMwrD,EAAYtvE,OAAO8jB,IAAMwrD,EAAYtvE,OAAO8jB,IAAMwrD,EAAYtvE,OAAOniC,EAC3Ek8C,EAAQu1D,EAAYtvE,OAAO+Z,MAC3BC,EAASs1D,EAAYtvE,OAAOga,OAC5BxN,EAAY8iE,EAAY9iE,YAGxBqX,EAAOyrD,EAAYsiO,OAAO/tR,KAAOyrD,EAAYsiO,OAAO/tR,KAAOyrD,EAAYsiO,OAAO5pU,EAC9E87C,EAAMwrD,EAAYsiO,OAAO9tR,IAAMwrD,EAAYsiO,OAAO9tR,IAAMwrD,EAAYsiO,OAAO/zU,EAC3Ek8C,EAAQu1D,EAAYmjO,WAAWjrC,MAC/BxtP,EAASs1D,EAAYmjO,WAAWhrC,OAChCj7P,EAAY8iE,EAAYkjO,WAExBljO,EAAY/6D,SAAW+6D,EAAY/6D,QAAQvU,SAC3C6jB,EAAOyrD,EAAY/6D,QAAQvU,OAAO6jB,KAClCC,EAAMwrD,EAAY/6D,QAAQvU,OAAO8jB,KAErC+kR,EAAa,CACT/9R,GAAIwkE,EAAYxkE,GAAKwkE,EAAYxkE,GAAK,KAAM9K,OAAQ,CAAE6jB,KAAMA,EAAMC,IAAKA,EAAK/J,MAAOA,EAAOC,OAAQA,GAAUq+P,oBAAqB/oM,EAAY+oM,oBAAsB/oM,EAAY+oM,oBAAsB,MAAOxsP,QAASyjD,EAAYzjD,QAAUyjD,EAAYzjD,QAAU,EAAG+pD,UAAWtG,EAAYsG,UAAYtG,EAAYsG,UAAY,EAAG5xC,YAAasrC,EAAYtrC,YAAcsrC,EAAYtrC,YAAc,KAAMx3B,UAAWA,EAAW1wD,KAAMwzH,EAAYxzH,KAAOwzH,EAAYxzH,KAAOwzH,EAAYojO,MAAOvvQ,SAAUmsC,EAAYnsC,SAAWmsC,EAAYnsC,SAAW,KAAMjD,WAAYovC,EAAYpvC,WAAaovC,EAAYpvC,WAAa,KAAMkpQ,cAAe95N,EAAY85N,cAAgB95N,EAAY85N,cAAgB95N,EAAYqjO,MAGrqBhiV,KAAK4nB,MAAM4lC,KAAKC,UAAUp+D,OAAO66O,gBAAgBr+O,OAAS,MAEpDmU,KAAK4nB,MAAM4lC,KAAKC,UAAUyqR,GAAYrsV,OAAS,MAC/B,OACpC3D,KAAK0tT,cAAc0pC,iBAAkB,EACrCp3V,KAAKytT,UAAUuqC,iBAAiB+B,yBAC1B/5V,KAAK0tT,cAAcssC,qBACrBh6V,KAAKytT,UAAU4gC,iBAAiB4L,yBAIxC,IAAI9C,EAAchwV,OAAO66O,eAAeJ,QAAQ5hP,KAAK0tT,cAAc2pC,WAAa,qBAEhF,GAAKF,EAeA,CACDn3V,KAAKk6V,0BAA0BlK,EAAYp+R,GAC3C,IAAIuoS,EAAc70R,KAAK4U,MAAMi9Q,GAC7BhwV,OAAO66O,eAAee,WAAW/iP,KAAK0tT,cAAc2pC,WAAa,qBACjE,IAAI+C,EAAcp6V,KAAKytT,UAAUuqC,iBAAiBqC,kBAAkBF,EAAavoS,GACjF,IAAKohN,GAAkBonF,IAAgBD,EAAY5iV,SAAS6iV,EAAYt+V,WAAY,KAChFq+V,EAAY5iV,SAAS6iV,EAAYt+V,WAAY,KAAK26H,YAAY1zH,KAAKitV,GAC3DmK,EAAY5iV,SAAS6iV,EAAYt+V,WAAY,KAAK26H,YAAYvnH,QAAQ8gV,OAE7E,CACD,IAAIsK,EAAmB,CAAE3mS,UAAW/B,EAAY6kE,YAAa,IAC7D6jO,EAAiB7jO,YAAY1zH,KAAKitV,GAC1BsK,EAAiB7jO,YAAYvnH,QAAQ8gV,GAC7CmK,EAAYp3V,KAAKu3V,EACrB,CACIC,EAAwBj1R,KAAKC,UAAU40R,GACvCn6V,KAAK0tT,cAAc0pC,gBACnBp3V,KAAK0tT,cAAcr8P,kBAAkBrxD,KAAK0tT,cAAc2pC,WAAa,qBAAuBkD,EAG5FpzV,OAAO66O,eAAesI,QAAQtqP,KAAK0tT,cAAc2pC,WAAa,oBAAqBkD,EAE3F,KArCkB,CACdv6V,KAAKk6V,0BAA0BlK,EAAYp+R,GAC3C,IAAI4oS,EAAkB,CAAE7mS,UAAW/B,EAAY6kE,YAAa,IAC5D+jO,EAAgB/jO,YAAY1zH,KAAKitV,GACzBwK,EAAgB/jO,YAAYvnH,QAAQ8gV,GAC5C,IAAIsH,EAAuB,GAC3BA,EAAqBv0V,KAAKy3V,GAC1B,IAAID,EAAwBj1R,KAAKC,UAAU+xR,GACvCt3V,KAAK0tT,cAAc0pC,gBACnBp3V,KAAK0tT,cAAcr8P,kBAAkBrxD,KAAK0tT,cAAc2pC,WAAa,qBAAuBkD,EAG5FpzV,OAAO66O,eAAesI,QAAQtqP,KAAK0tT,cAAc2pC,WAAa,oBAAqBkD,EAE3F,CAwBJ,EASAnP,EAAUvvV,UAAU4+V,0BAA4B,SAAU78V,EAAUg0D,EAAY8oS,EAAgBC,GAC5F36V,KAAK0tT,cAAcktC,8BAA6B,GAChD,IAAIC,EAAqB,KACrBC,EAAkB96V,KAAKk1D,eAAetD,EAAY,MACtD,GAAuB,MAAnBkpS,GAA2BJ,EAAgB,CAC3C,IAAK,IAAI71V,EAAI,EAAGA,EAAIi2V,EAAgBn3V,OAAQkB,IACxC,GAAI61V,EAAezoS,KAAO6oS,EAAgBvjV,SAAS1S,EAAE/I,WAAY,KAAKm2D,GAAI,CACtE,GAAiB,WAAbr0D,EAEAk9V,EAAgBvjV,SAAS1S,EAAE/I,WAAY,KAAKqrD,OAAS,CAAE6jB,KAAM0vR,EAAeh/R,QAAQvU,OAAO6jB,KAAMC,IAAKyvR,EAAeh/R,QAAQvU,OAAO8jB,IAAK/J,MAAOw5R,EAAevzS,OAAO+Z,MAAOC,OAAQu5R,EAAevzS,OAAOga,QAC3M25R,EAAgBvjV,SAAS1S,EAAE/I,WAAY,KAAKwuF,SAAWowQ,EAAepwQ,cAErE,GAAiB,WAAb1sF,EACLk9V,EAAgBvjV,SAAS1S,EAAE/I,WAAY,KAAKqvF,YAAcuvQ,EAAeh/R,QAAQ73D,SAAS,GAAGqN,MAAMi6E,iBAElG,GAAiB,YAAbvtF,EACLk9V,EAAgBvjV,SAAS1S,EAAE/I,WAAY,KAAKk3E,QAAU0nR,EAAeh/R,QAAQ73D,SAAS,GAAGqN,MAAM8hE,aAE9F,GAAiB,cAAbp1E,EACLk9V,EAAgBvjV,SAAS1S,EAAE/I,WAAY,KAAKihI,UAAY29N,EAAeh/R,QAAQ73D,SAAS,GAAGqN,MAAMslI,iBAEhG,GAAiB,WAAb54I,EAAuB,CAC5BoC,KAAK+6V,0BAA0BD,EAAgBvjV,SAAS1S,EAAE/I,WAAY,MACtE++V,EAAqBC,EAAgB1yV,OAAOvD,EAAG,GAAG,GAClD,KACJ,CAIA,GAHIjH,GAAyB,WAAbA,GACZoC,KAAKk6V,0BAA0BY,EAAgBvjV,SAAS1S,EAAE/I,WAAY,KAAM81D,GAE5E+oS,EAAmB,CACnBG,EAAgBvjV,SAAS1S,EAAE/I,WAAY,KAAKk3E,QAAU0nR,EAAeh/R,QAAQ73D,SAAS,GAAGqN,MAAM8hE,QAC/F8nR,EAAgBvjV,SAAS1S,EAAE/I,WAAY,KAAKqvF,YAAcuvQ,EAAeh/R,QAAQ73D,SAAS,GAAGqN,MAAMi6E,YACnG2vQ,EAAgBvjV,SAAS1S,EAAE/I,WAAY,KAAKihI,UAAY29N,EAAeh/R,QAAQ73D,SAAS,GAAGqN,MAAMslI,YACjGx2I,KAAKk6V,0BAA0BY,EAAgBvjV,SAAS1S,EAAE/I,WAAY,KAAM81D,GAC5E,KACJ,CACJ,CAEJ5xD,KAAKg7V,kBAAkBF,EAAiBlpS,EAC5C,CACA,OAAOipS,CACX,EAOAzP,EAAUvvV,UAAUq+V,0BAA4B,SAAUlK,EAAYp+R,GAElE,IAAIqpS,EAAoBj7V,KAAKk7V,yBAAyBlL,GAElDmL,EAAmB76B,GAAY0vB,GACnCmL,EAAiBC,aAAepL,EAAWO,cAC3C4K,EAAiBvpS,WAAaA,SACvBupS,EAAiBE,UACpBrL,EAAW/9R,KACXkpS,EAAiBG,UAAYtL,EAAW/9R,UACjCkpS,EAAiBlpS,IAExBgpS,EAAkBM,WAClBv7V,KAAKytT,UAAU+tC,oBAAoBpzV,OAAO6yV,EAAkBjnV,SAAU,EAAGmnV,GAGzEn7V,KAAKytT,UAAU+tC,oBAAoBz4V,KAAKo4V,EAEhD,EAEA/P,EAAUvvV,UAAUq/V,yBAA2B,SAAUpG,GAErD,IAAI2G,EAAcz7V,KAAKytT,UAAU+tC,oBACjC,GAAIC,GAAe3G,EACf,IAAK,IAAIjwV,EAAI,EAAGA,EAAI42V,EAAY93V,OAAQkB,IACpC,GAAI42V,EAAYlkV,SAAS1S,EAAE/I,WAAY,KAAKs/V,eAAiBtG,EAAUvE,cAEnE,OADAvwV,KAAKytT,UAAU+tC,oBAAoBpzV,OAAOvD,EAAG,GACtC,CAAE02V,YAAY,EAAMvnV,SAAUnP,GAIjD,MAAO,CAAE02V,YAAY,EAAOvnV,SAAU,KAC1C,EAMAo3U,EAAUvvV,UAAUk/V,0BAA4B,SAAUjG,GAEtD,IAAI2G,EAAcz7V,KAAKytT,UAAU+tC,oBACjC,GAAIC,GAAe3G,EACf,IAAK,IAAIjwV,EAAI,EAAGA,EAAI42V,EAAY93V,OAAQkB,IACpC,GAAI42V,EAAYlkV,SAAS1S,EAAE/I,WAAY,KAAKs/V,eAAiBtG,EAAUvE,cAAe,CAClFvwV,KAAKytT,UAAU+tC,oBAAoBpzV,OAAOvD,EAAG,GAC7C,KACJ,CAGZ,EAOAumV,EAAUvvV,UAAU6/V,gBAAkB,SAAU9pS,EAAYkjS,GACxD,GAAIA,EAAW,CACX90V,KAAKk6V,0BAA0BpF,EAAWljS,GAE1C,IAAI+pS,EAAiB37V,KAAKk1D,eAAetD,EAAY,MACjD+pS,GACAA,EAAe54V,KAAK+xV,GAExB90V,KAAKg7V,kBAAkBW,EAAgB/pS,EAC3C,CACJ,EAEAw5R,EAAUvvV,UAAUq5D,eAAiB,SAAUvB,EAAWioS,GAEtD,IAAItE,EAEAH,EAAc,KAOlB,GALIA,EADAn3V,KAAK0tT,cAAc0pC,gBACLp3V,KAAK0tT,cAAcr8P,kBAAkBrxD,KAAK0tT,cAAc2pC,WAAa,qBAGrElwV,OAAO66O,eAAeJ,QAAQ5hP,KAAK0tT,cAAc2pC,WAAa,qBAE/D,CACb,IAAI8C,EAAc70R,KAAK4U,MAAMi9Q,GACzBvoV,EAAQ5O,KAAKytT,UAAUuqC,iBAAiBqC,kBAAkBF,EAAaxmS,GAEvE2jS,EADA6C,EAAY5iV,SAAS3I,EAAM9S,WAAY,KAChBq+V,EAAY5iV,SAAS3I,EAAM9S,WAAY,KAAK26H,YAG5CmlO,CAE/B,MAEItE,EAAuBsE,EAE3B,OAAOtE,CACX,EACAlM,EAAUvvV,UAAUm/V,kBAAoB,SAAUF,EAAiBlpS,GAE/D,IAAIulS,EAAc,KAOlB,GALIA,EADAn3V,KAAK0tT,cAAc0pC,gBACLp3V,KAAK0tT,cAAcr8P,kBAAkBrxD,KAAK0tT,cAAc2pC,WAAa,qBAGrElwV,OAAO66O,eAAeJ,QAAQ5hP,KAAK0tT,cAAc2pC,WAAa,qBAE/D,CACb,IAAI8C,EAAc70R,KAAK4U,MAAMi9Q,GAC7BhwV,OAAO66O,eAAee,WAAW/iP,KAAK0tT,cAAc2pC,WAAa,qBACjE,IAAIzoV,EAAQ5O,KAAKytT,UAAUuqC,iBAAiBqC,kBAAkBF,EAAavoS,GACvEuoS,EAAY5iV,SAAS3I,EAAM9S,WAAY,OACvCq+V,EAAY5iV,SAAS3I,EAAM9S,WAAY,KAAK26H,YAAcqkO,GAE9D,IAAIP,EAAwBj1R,KAAKC,UAAU40R,GACvCn6V,KAAK0tT,cAAc0pC,gBACnBp3V,KAAK0tT,cAAcr8P,kBAAkBrxD,KAAK0tT,cAAc2pC,WAAa,qBAAuBkD,EAG5FpzV,OAAO66O,eAAesI,QAAQtqP,KAAK0tT,cAAc2pC,WAAa,oBAAqBkD,EAE3F,CACJ,EAMAnP,EAAUvvV,UAAUggW,oBAAsB,SAAUC,GAC5CA,GACA97V,KAAKqtV,sBAEb,EAKAjC,EAAUvvV,UAAUkgW,kBAAoB,WACpC/7V,KAAK0tT,cAAckgC,sBAAuB,EAC1C5tV,KAAK67V,qBAAoB,EAC7B,EAKAzQ,EAAUvvV,UAAUmgW,eAAiB,WACjCh8V,KAAK0tT,cAAckgC,sBAAuB,EAC1C5tV,KAAK0tT,cAAcsgC,gBAAiB,EACpChuV,KAAK67V,qBAAoB,EAC7B,EAMAzQ,EAAUvvV,UAAUogW,oBAAsB,SAAUr6U,GAChD,OAAQA,GAAU,GAAK,GAC3B,EAQAwpU,EAAUvvV,UAAUqgW,2BAA6B,SAAUpH,EAAWnhS,EAAWglS,GAG7E,GAAI7D,EAAW,CAEX,IAAI3tS,EAAS2tS,EAAUiE,OACnB1nK,EAAclqI,EAAO1L,EACrBw1S,EAAa9pS,EAAOu4G,EACpBo2B,EAAe3uI,EAAOwnQ,MACtBvN,EAAgBj6P,EAAOynQ,OAEvB3rT,EAAO6xV,EAAU+D,SASrB,OARIF,IACA11V,EAAOqyT,GAAchwP,KAAK4U,MAAM46Q,EAAU+D,YAEtC,CAEJ5mS,GAAI,OAAS6iS,EAAUwE,cAAenyS,OAAQ,CAAEh4B,EAAGkiK,EAAarsK,EAAGisU,EAAY/vR,MAAO40H,EAAc30H,OAAQigP,GAAiBztP,UAAWA,EAAW1wD,KAAMA,EACzJu8T,oBAAqB,uBAAwBxsP,QAAS8hR,EAAUqE,QAAShuQ,YAAa2pQ,EAAUsE,YAAar8N,UAAW+3N,EAAUuE,UAAW9I,cAAeuE,EAAUwE,cAG9K,CACJ,EAKAlO,EAAUvvV,UAAUsM,QAAU,WAC1BhB,OAAO66O,eAAee,WAAW,qBAEjC,IAAI8wG,EAAYlnV,SAAS8gM,eAAeztM,KAAKytT,UAAUvwT,QAAQ+0D,GAAK,gBAChE4hS,IACAA,EAAU/4R,oBAAoB,SAAU96D,KAAK4sV,eACzCiH,EAAUrqD,eACVqqD,EAAUrqD,cAAc57R,YAAYimV,IAExC7zV,KAAKiuV,iBACLjuV,KAAKiuV,gBAAgB9lV,SAC7B,EACOijV,CACX,CA3kE+B,GEZ3BrnV,GAAyC,WACzC,IAAIC,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBpI,OAAOuI,gBAClB,CAAEC,UAAW,cAAgBzH,OAAS,SAAUsH,EAAGC,GAAKD,EAAEG,UAAYF,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAInD,KAAKmD,EAAOA,EAAEhG,eAAe6C,KAAIkD,EAAElD,GAAKmD,EAAEnD,GAAI,EACtEiD,EAAcC,EAAGC,EAC5B,EACA,OAAO,SAAUD,EAAGC,GAEhB,SAASK,IAAOvE,KAAKwE,YAAcP,CAAG,CADtCD,EAAcC,EAAGC,GAEjBD,EAAEpI,UAAkB,OAANqI,EAAatI,OAAOqE,OAAOiE,IAAMK,EAAG1I,UAAYqI,EAAErI,UAAW,IAAI0I,EACnF,CACJ,CAZ6C,GAgBzC43V,GAAS,CAAEC,UAAW,mBAMtBC,GAAyB,WAOzB,SAASA,EAAQC,GAEbt8V,KAAKzD,QAAU,CACXuiB,KAAM,QACNy9U,YAAa,OACbC,OAAQ,SACRvqR,OAAQ,SACR6nL,KAAM,OACN77J,MAAO,QACPw+P,KAAM,OACNp3M,OAAQ,SACRvvD,MAAO,iBACP4mQ,MAAO,QACPC,WAAY,aACZC,OAAQ,UAMZ58V,KAAKF,KAAOu8V,EACZr8V,KAAK68V,WAAaP,EAClBt8V,KAAK88V,IAAM,CAAC,CAChB,CAYA,OAHAT,EAAQxgW,UAAUkhW,gBAAkB,SAAU95V,EAAMq5V,EAAIv1V,EAAOoqG,GAC3D,OAAOluG,CACX,EACOo5V,CACX,CA3C6B,GAiDzBW,GAA6B,SAAUn3V,GAEvC,SAASm3V,IACL,OAAkB,OAAXn3V,GAAmBA,EAAOb,MAAMhF,KAAM+E,YAAc/E,IAC/D,CA0WA,OA7WA+D,GAAUi5V,EAAan3V,GAUvBm3V,EAAYnhW,UAAUohW,aAAe,SAAUC,EAAan2V,GAUxD,IATA,IAGIuO,EACArX,EAIAogE,EARAl4D,EAAS+2V,EAAYL,WAAWM,KAAKtoV,MAAM,GAC3CihF,EAAQ3vF,EAAOxC,OACfy5V,GAAW,EAGXxuK,EAAW,CAAC,EACZyuK,EAAW,EACXp/P,EAAQ,GAEHp5F,EAAI,EAAGA,EAAIkC,EAAM6nL,SAASjrL,OAAQkB,IACvCw4V,IACAzuK,EAAS7nL,EAAM6nL,SAAS/pL,GAAG5G,KAAO8I,EAAM6nL,SAAS/pL,GAAGpJ,MAExD,IAAI6hW,EAAM,CAAC,EACX,IAASz4V,EAAI,EAAGA,EAAIkC,EAAM4B,QAAQhF,OAAQkB,IAEtB,YADhB5G,EAAM8I,EAAM4B,QAAQ9D,IACX2E,IAA8B,YAAXvL,EAAIuL,KAAqBzC,EAAM6nL,SAASjrL,QASpE2R,EAAMtV,KAAK/B,EAAIuL,IAAIzN,KAAKiE,KAAMmG,EAAQlI,EAAI4N,EAAG9E,GAC9B,iBAAX9I,EAAIuL,GACJ8zV,EAAIr/V,EAAI4N,EAAEqgC,MAAQ,MAAQjuC,EAAI4N,EAAE/L,MAAQwV,EAGxCnP,OAAiB7F,IAARgV,EAAoBA,EAAMnP,EAExB,WAAXlI,EAAIuL,IAA8B,WAAXvL,EAAIuL,IAA8B,WAAXvL,EAAIuL,IAA8B,YAAXvL,EAAIuL,KACzE4zV,GAAW,GAEXA,IACAtnQ,EAAQ3vF,EAAOxC,UAnBA,YAAX1F,EAAIuL,IACJy0F,EAAMl7F,KAAK9E,EAAI4N,GAEJ,WAAX5N,EAAIuL,KACJ60D,EAAOpgE,EAAI4N,IAkBvB,GAAIwxV,EAAU,CACV,IAAI7jV,EAAO,CACPzS,MAAOA,EAAO6nL,SAAUA,EAAUzoL,OAAQA,EAAQ83F,MAAOA,EAAO5/B,KAAMA,GAEtEk/R,EAAev9V,KAAKw9V,cAAchkV,GACtCrT,EAASo3V,EAAap3V,OACtB2vF,EAAQynQ,EAAaznQ,KACzB,CAQA,OAPI/uF,EAAM02V,kBACNt3V,EAAS,CACLA,OAAQA,EACR2vF,MAAOA,EACP6mQ,WAAYW,IAGbn3V,CACX,EAKA62V,EAAYnhW,UAAU2hW,cAAgB,SAAUhkV,GAC5C,IAAIs8E,EAAQ,EACRwnQ,EAAMt9V,KAAK09V,aAAalkV,EAAKzS,OAC7BZ,EAASqT,EAAKrT,OAClB,GAAK6sQ,GAAkBx5P,EAAKo1K,SAAS+uK,mBAiBhC,CACGzxT,EAAQ1yB,EAAKykF,MAAM,GAAGkwB,UAE1Br4B,GADA3vF,EAASy3V,GAAS3/P,MAAM93F,EAAQ+lC,EAAOoxT,EAAK,KAAM,KAAM9jV,EAAKykF,MAAM,GAAG4/P,UAAU,IACjEl6V,OACXV,EAAOkD,EACPqT,EAAK6kD,OACLl4D,EAASnG,KAAK89V,OAAO33V,EAAQqT,EAAK6kD,KAAM7kD,EAAKzS,QAEjD/G,KAAK+9V,gBAAgB53V,EAAQlD,EACjC,KA1ByD,CAErD,IADA,IAAI+6V,EAAMxkV,EAAKo1K,SAAS+uK,kBACf94V,EAAIm5V,EAAItB,MAAM/4V,OAAS,EAAGkB,GAAK,EAAGA,IACvCsB,EAASnG,KAAKi+V,QAAQ93V,EAAQ63V,EAAItB,MAAM73V,IAE5C,GAAI2U,EAAKykF,MAAMt6F,SAAWq6V,EAAIprT,MAAO,CACjC,IAAI1G,EAAQ1yB,EAAKykF,MAAM+/P,EAAIprT,OAAOu7E,UAClChoH,EAASy3V,GAAS3/P,MAAM93F,EAAQ+lC,EAAOoxT,EAAK,KAAM,KAAM9jV,EAAKykF,MAAM,GAAG4/P,UAAU,EACpF,CACA/nQ,EAAQ3vF,EAAOxC,OACf,IAAIV,EAAOkD,EAEXA,GADAA,EAASA,EAAO0O,MAAMmpV,EAAIlkG,OACVjlP,MAAM,EAAGmpV,EAAIvB,MACzBjjV,EAAKykF,MAAMt6F,SAAWq6V,EAAIprT,OAC1B5yC,KAAK+9V,gBAAgB53V,EAAQlD,EAErC,CAWA,MAAO,CAAEkD,OAAQA,EAAQ2vF,MAAOA,EACpC,EACAknQ,EAAYnhW,UAAUkiW,gBAAkB,SAAU53V,EAAQlD,GACtD,GAAIkD,EAAOxC,QAAUV,EAAKU,OAAQ,CAC9B,IAAI2uQ,EAAM,YACN4rF,EAAa,cACbtrT,EAAQ,QACRurT,EAAU,UACdh4V,EAAOmsQ,GAAOrvQ,EAAKqvQ,GACnBnsQ,EAAO+3V,GAAcj7V,EAAKi7V,GAC1B/3V,EAAOysC,GAAS3vC,EAAK2vC,GACrBzsC,EAAOg4V,GAAWl7V,EAAKk7V,EAC3B,CACA,OAAOh4V,CACX,EAKA62V,EAAYnhW,UAAU6hW,aAAe,SAAU32V,GAC3C,IAAIq3V,EAAWn3I,GAAMo3I,cAAct3V,EAAM4B,QAAS,gBAC9C20V,EAAM,GACV,GAAIc,EAASz6V,OAET,IADA,IAAIq/B,OAAM,EACDn+B,EAAI,EAAGA,EAAIu5V,EAASz6V,OAAQkB,IACjCm+B,EAAMo7T,EAASv5V,GAAGgH,EAClByxV,EAAIv6V,KAAK,CAAEjD,KAAMkjC,EAAIljC,KAAMosC,MAAO0xT,GAASz5R,SAASnhC,EAAIkJ,MAAOnlC,KAGvE,OAAOu2V,CACX,EAOAN,EAAYnhW,UAAUyiW,aAAe,SAAUC,EAAIC,EAAS3yV,GACxD,IAAIhH,EACA45V,EAAoBD,EAAQE,eAAe/6V,OAC/C,IAAKkB,EAAI,EAAGA,EAAI25V,EAAQG,aAAah7V,OAAQkB,IACzC7E,KAAK+mF,OAAOw3Q,EAAIC,EAAQG,aAAa95V,IAEzC,IAAKA,EAAI,EAAGA,EAAI25V,EAAQI,eAAej7V,OAAQkB,IAC3C7E,KAAKqlE,OAAOk5R,EAAI1yV,EAAE5N,IAAKugW,EAAQI,eAAe/5V,IAElD,IAAKA,EAAI,EAAGA,EAAI45V,EAAmB55V,IAC/B7E,KAAKqkE,OAAOk6R,EAAI1yV,EAAE5N,IAAKugW,EAAQE,eAAe75V,IAElD,OAAO25V,CACX,EAMAxB,EAAYnhW,UAAUoiW,QAAU,SAAU3B,EAAIzwV,GAC1C,OAAKywV,GAAOA,EAAG34V,OAGR24V,EAAGh/V,QAAO,SAAUoV,GACvB,GAAI7G,EACA,OAAOA,EAAE4vR,SAAS/oR,EAE1B,IANW4pV,CAOf,EAOAU,EAAYnhW,UAAUgjW,aAAe,SAAUvC,EAAIzwV,GAC/C,IAAIrC,EAAKo0V,GAASjB,WAAW9wV,EAAE/L,MAC/B,OAAKw8V,GAAO9yV,GAAoB,IAAd8yV,EAAG34V,OAGd6F,EAAG8yV,EAAIzwV,EAAEqgC,OAFL,IAGf,EAMA8wT,EAAYnhW,UAAUijW,SAAW,SAAUxC,EAAIzwV,GAC3C,OAAKywV,GAAOA,EAAG34V,QAGa,IAAxBkI,EAAEkzV,WAAWp7V,QACbi6V,GAASoB,aAAa1C,EAAG,GAAIzwV,EAAEkzV,YAE5BzC,EAAGh/V,QAAO,SAAUoV,GACvB,IAAK,IAAImlB,EAAI,EAAGA,EAAIhsB,EAAEkzV,WAAWp7V,OAAQk0B,IACrC,GAAIhsB,EAAEgyV,SAAS9hW,KAAK2W,EAAKkrV,GAASlqQ,UAAU7nF,EAAEkzV,WAAWlnU,GAAInlB,GAAM7G,EAAEozV,UAAWpzV,EAAEqzV,WAAYrzV,EAAEszV,cAC5F,OAAO,EAGf,OAAO,CACX,KAZW7C,CAaf,EAOAU,EAAYnhW,UAAUujW,SAAW,SAAU9C,EAAIzwV,EAAG9E,GAC9C,IAAKu1V,IAAOA,EAAG34V,OACX,OAAO24V,EAEX,IAAI+C,EACAnzT,EAAQ0xT,GAASz5R,SAASt4D,EAAEsiH,UAAWpnH,GAC3C,IAAKmlC,EACD,OAAOowT,EAAGpzU,KAAKrd,EAAEgyV,UAErB,GAAI3xT,aAAiBvvC,MAAO,CAExB,IAAK,IAAIkI,GADTqnC,EAAQA,EAAMr3B,MAAM,IACDlR,OAAS,EAAGkB,GAAK,EAAGA,IAC9BqnC,EAAMrnC,KAGXw6V,EAAYxzV,EAAEgyV,SACVD,GAAS/xR,SAAS3/B,EAAMrnC,GAAI,WAC5Bw6V,EAAYzB,GAAS0B,OAAO,cAC5BpzT,EAAMrnC,GAAKqnC,EAAMrnC,GAAGgN,QAAQ,QAAS,KAEzCyqV,EAAKsB,GAAS10U,KAAKozU,EAAIpwT,EAAMrnC,GAAIw6V,IAErC,OAAO/C,CACX,CACA,OAAOsB,GAAS10U,KAAKozU,EAAIpwT,EAAOrgC,EAAEgyV,SACtC,EAOAb,EAAYnhW,UAAU0jW,QAAU,SAAUjD,EAAIzwV,EAAG9E,GAC7C,IAAKu1V,IAAOA,EAAG34V,OACX,OAAO24V,EAEX,IAAIgB,EAAMt9V,KAAK09V,aAAa32V,GAC5B,OAAO62V,GAAS3/P,MAAMq+P,EAAIsB,GAASz5R,SAASt4D,EAAEsiH,UAAWpnH,GAAQu2V,EAAK,KAAM,KAAMzxV,EAAEgyV,SACxF,EAQAb,EAAYnhW,UAAUiiW,OAAS,SAAUxB,EAAIzwV,EAAG9E,GAC5C,IAAIqxD,EAAOwlS,GAASz5R,SAASt4D,EAAE2zV,SAAUz4V,GACrCkN,GAAS2pV,GAASz5R,SAASt4D,EAAE8nD,UAAW5sD,GAAS,GAAKqxD,EACtD/jD,EAAMJ,EAAQmkD,EAClB,OAAKkkS,GAAOA,EAAG34V,OAGR24V,EAAGznV,MAAMZ,EAAOI,GAFZioV,CAGf,EAOAU,EAAYnhW,UAAU4jW,QAAU,SAAUnD,EAAIzwV,GAC1C,OAAKywV,GAAOA,EAAG34V,OAGR24V,EAAGznV,MAAM+oV,GAASz5R,SAASt4D,EAAEoI,OAAQ2pV,GAASz5R,SAASt4D,EAAEwI,MAFrDioV,CAGf,EAMAU,EAAYnhW,UAAU6jW,OAAS,SAAUpD,EAAIzwV,GACzC,OAAKywV,GAAOA,EAAG34V,OAGR24V,EAAGznV,MAAM,EAAG+oV,GAASz5R,SAASt4D,EAAE8zV,MAF5BrD,CAGf,EAMAU,EAAYnhW,UAAU+jW,OAAS,SAAUtD,EAAIzwV,GACzC,OAAKywV,GAAOA,EAAG34V,OAGR24V,EAAGznV,MAAM+oV,GAASz5R,SAASt4D,EAAE8zV,MAFzBrD,CAGf,EAMAU,EAAYnhW,UAAUgkW,SAAW,SAAUvD,EAAIzwV,GAC3C,OAAKywV,GAAOA,EAAG34V,OAGRi6V,GAAS3rR,OAAOqqR,EAAIsB,GAASz5R,SAASt4D,EAAEkzV,aAFpCzC,CAGf,EAOAU,EAAYnhW,UAAUkrF,OAAS,SAAUw3Q,EAAIt7V,EAAM68V,EAAW/4V,EAAOiN,GACjE,OAAIg/P,GAAkBh/P,GACXuqV,EAAG1B,WAAWM,KAAKp6V,KAAKE,GAGxBs7V,EAAG1B,WAAWM,KAAK/0V,OAAO4L,EAAU,EAAG/Q,EAEtD,EASA+5V,EAAYnhW,UAAUwoE,OAAS,SAAUk6R,EAAIwB,EAAUtkW,EAAOqkW,GAC1D,IACIj7V,EADAy3V,EAAKiC,EAAG1B,WAAWM,KAKvB,IAHqB,kBAAV1hW,GAAwBA,aAAiB0c,OAChD1c,EAAQmiW,GAASlqQ,UAAUqsQ,EAAUtkW,IAEpCoJ,EAAI,EAAGA,EAAIy3V,EAAG34V,QACXi6V,GAASlqQ,UAAUqsQ,EAAUzD,EAAGz3V,MAAQpJ,EADrBoJ,KAK3B,OAAOA,IAAMy3V,EAAG34V,OAAS24V,EAAGl0V,OAAOvD,EAAG,GAAK,IAC/C,EASAm4V,EAAYnhW,UAAUwpE,OAAS,SAAUk5R,EAAIwB,EAAUtkW,EAAOqkW,GAC1D,IACIj7V,EACA5G,EAFAq+V,EAAKiC,EAAG1B,WAAWM,KAMvB,IAHKnqF,GAAkB+sF,KACnB9hW,EAAMkmE,GAAS47R,EAAUtkW,IAExBoJ,EAAI,EAAGA,EAAIy3V,EAAG34V,SACVqvQ,GAAkB+sF,IAAc57R,GAAS47R,EAAUzD,EAAGz3V,MAAS5G,GAD7C4G,KAK3B,OAAOA,EAAIy3V,EAAG34V,OAAS8zN,GAAM6kI,EAAGz3V,GAAIpJ,GAAS,IACjD,EACOuhW,CACX,CA/WiC,CA+W/BX,IAOE2D,GAA4B,SAAUn6V,GAEtC,SAASm6V,IACL,OAAkB,OAAXn6V,GAAmBA,EAAOb,MAAMhF,KAAM+E,YAAc/E,IAC/D,CA4bA,OA/bA+D,GAAUi8V,EAAYn6V,GAYtBm6V,EAAWnkW,UAAUohW,aAAe,SAAUsB,EAAIx3V,EAAOk5V,GACrD,IAIIvjU,EACAo9N,EALAnxP,EAAU3I,KAAKkgW,gBAAgBn5V,GAC/Bo5V,EAAUl5I,GAAMm5I,iBAAiBr5V,EAAM4B,QAAS,CAAC,WAAY,SAAU,SAAU,SAAU,YAC3FulD,EAASnnD,EAAMmnD,OACfpd,EAAMytT,EAAG1B,WAAW/rT,IAGpB2rT,EAAO,KACPlgW,EAAUyD,KAAKzD,QACfskF,EAAU,CAAEw/Q,MAAO,GAAI31P,OAAQ,GAAIg2G,QAAS,GAAI4/I,SAAU,GAAI3D,WAAY,IAE1E,WAAYwD,GACZzjU,EAAOyjU,EAAQrC,OAGfhkG,IAFAA,EAAO8jG,GAASz5R,SAASznC,EAAKi3B,UAAW5sD,IAE1B,IADf01V,EAAOmB,GAASz5R,SAASznC,EAAK8iU,SAAUz4V,KAGnC,YAAao5V,IAElBrmG,GADAp9N,EAAOyjU,EAAQV,SACHxrV,MACZwoV,EAAO//T,EAAKroB,IAAMqoB,EAAKzoB,OAG3B,IAAK,IAAIpP,EAAI,EAAGA,EAAI8D,EAAQ03V,MAAM18V,OAAQkB,IACtC63B,EAAOkhU,GAASz5R,SAASx7D,EAAQ03V,MAAMx7V,GAAGgH,EAAEsiH,UAAWpnH,GACvD85E,EAAQw/Q,MAAMt9V,KAAK66V,GAAS2C,oBAAoBvgW,KAAM,aAAc,CAAE2C,KAAM+5B,EAAMoG,UAAWn6B,EAAQ03V,MAAMx7V,GAAGgH,EAAEi3B,WAAa/7B,IAG7Hk5V,IACAvjU,EAAO18B,KAAKwgW,eAAeP,EAAkBl5V,KAEzC85E,EAAQ6/H,QAAQ39M,KAAK66V,GAAS2C,oBAAoBvgW,KAAM,cAAe08B,EAAK+jU,SAAU15V,IAI9F,IAASlC,EAAI,EAAGA,EAAI8D,EAAQ+3M,QAAQ/8M,OAAQkB,IAAK,CAC7C,IAAImX,EAAM4hV,GAAS2C,oBAAoBvgW,KAAM,cAAe2I,EAAQ+3M,QAAQ77M,GAAGgH,EAAE40V,SAAU15V,GACtF/G,KAAK4yR,eACmB,mBAAzB5yR,KAAK4yR,kBACJ5f,GAAkBrqQ,EAAQ+3M,QAAQ77M,GAAGgH,EAAE5N,MAAQ0K,EAAQ+3M,QAAQ/8M,OAAS,IACzEqY,EAAM,IAAMA,EAAM,KAEtB6kE,EAAQ6/H,QAAQ39M,KAAKiZ,GAErB,IADA,IACSb,EAAK,EAAGk4P,EAD0B,kBAAvBxyL,EAAQ6/H,QAAQ77M,GAAkBjJ,OAAOwB,KAAKyjF,EAAQ6/H,QAAQ77M,IAAM,GACtDsW,EAAKk4P,EAAO1vQ,OAAQwX,IAAM,CACxD,IAAI9F,EAAOg+P,EAAOl4P,GACdyiV,GAAS8C,OAAQ7/Q,EAASxrE,YACnBwrE,EAAQxrE,EAEvB,CACJ,CAEA,IAASxQ,EAAI,EAAGA,EAAI8D,EAAQ23V,SAAS38V,OAAQkB,IACzC63B,EAAO/zB,EAAQ23V,SAASz7V,GAAGgH,EAC3Bg1E,EAAQy/Q,SAASv9V,KAAK66V,GAAS2C,oBAAoBvgW,KAAM,eAAgB,CACrE0rH,OAAQhvF,EAAKqiU,WACbl0P,SAAUnuE,EAAKmuE,SACf5sG,IAAKy+B,EAAKuiU,UACVC,WAAYxiU,EAAKwiU,YAClBn4V,IAGP,IAASlC,EAAI,EAAGA,EAAI8D,EAAQ+hG,OAAO/mG,OAAQkB,IACvCg8E,EAAQ6pB,OAAO3nG,KAAK66V,GAASz5R,SAASx7D,EAAQ+hG,OAAO7lG,GAAGgH,EAAEsiH,UAAWpnH,IAGzE,IAASlC,EAAI,EAAGA,EAAI8D,EAAQg0V,WAAWh5V,OAAQkB,IAC3C63B,EAAO/zB,EAAQg0V,WAAW93V,GAAGgH,EAC7Bg1E,EAAQ87Q,WAAW55V,KAAK,CAAEjD,KAAM48B,EAAK58B,KAAMosC,MAAO0xT,GAASz5R,SAASznC,EAAKwP,MAAOnlC,KAEpF,IAAIi3V,EAAM,CAAC,EAIX,GAHAh+V,KAAK2gW,gBAAgBpkW,EAASwK,EAAOo5V,EAASt/Q,EAASm9Q,GAEvDJ,GAAS2C,oBAAoBvgW,KAAM,YAAa,CAAEu+V,GAAIA,EAAIx3V,MAAOA,EAAOmnD,OAAQA,EAAQ0yS,UAAW5C,IAC/Fj3V,EAAM6nL,SAASjrL,OACf,IAASkB,EAAI,EAAGA,EAAIkC,EAAM6nL,SAASjrL,OAAQkB,IACvCm5V,EAAIj3V,EAAM6nL,SAAS/pL,GAAG5G,KAAO8I,EAAM6nL,SAAS/pL,GAAGpJ,MAKvD,IADA,IACSsK,EAAK,EAAG86V,EADNjlW,OAAOwB,KAAK4gW,GACSj4V,EAAK86V,EAAOl9V,OAAQoC,IAAM,CAClDsP,EAAOwrV,EAAO96V,IACd63V,GAAS8C,OAAO1C,EAAI3oV,KAAwB,KAAd2oV,EAAI3oV,IAAqC,IAArB2oV,EAAI3oV,GAAM1R,gBACrDq6V,EAAI3oV,EAEnB,CACM9Y,EAAQu9P,QAAQkkG,GAAOzhW,EAAQkgW,QAAQuB,GAAiB,OAATvB,IACjDuB,EAAIzhW,EAAQu9P,MAAQ8jG,GAAS2C,oBAAoBvgW,KAAM,SAAU85P,EAAM/yP,GACvEi3V,EAAIzhW,EAAQkgW,MAAQmB,GAAS2C,oBAAoBvgW,KAAM,SAAUy8V,EAAM11V,IAE3E,IAAIhG,EAAIf,KAAK88V,IAEb,OADA98V,KAAK88V,IAAM,CAAC,EACqB,SAA7B98V,KAAKzD,QAAQggW,YACN,CACHt5V,KAAMqiE,KAAKC,UAAUy4R,EAAKJ,GAAS1jR,MAAM4mR,kBACzChwT,IAAKA,EACLiwT,QAAShgW,EACTjB,KAAM,OACNs1G,YAAa,oCAGrB14E,EAAO18B,KAAKghW,qBAAqBhD,EAAKj3V,EAAOw3V,GAEtC,CACHz+V,KAAM,MAAOgxC,KAFjBpU,IAA4C,IAApC6hU,EAAG1B,WAAW/rT,IAAI5hC,QAAQ,KAAc,IAAM,KAAOwtB,GAElC/4B,OAASmtC,EAAIj/B,QAAQ,OAAQ6qB,GAAQoU,EAAKiwT,QAAShgW,GAElF,EACAi/V,EAAWnkW,UAAU8kW,gBAAkB,SAAUpkW,EAASwK,EAAOo5V,EAASt/Q,EAASogR,GAC/E,IACIjD,EAAMiD,EACVjD,EAAIzhW,EAAQuiB,MAAQ/X,EAAMm6V,UACtB3kW,EAAQyI,OAAS+B,EAAMo6V,UAAUx9V,SACjCq6V,EAAIzhW,EAAQyI,OAAS,eAAgBhF,KAAO49V,GAAS2C,oBAAoBvgW,KAAM,aAAc+G,EAAMo6V,WAAa,KAE/Gp6V,EAAMo6V,UAAUx9V,QAAUpH,EAAQqgW,SACnCoB,EAAIzhW,EAAQqgW,QAAU,aAAc58V,MAAQ,aAAcmgW,EACtDvC,GAAS2C,oBAAoBvgW,KAAM,WAAY,CAAEohW,QAASxD,GAASz5R,SAASg8R,EAAQN,SAASd,WAAYh4V,GAAQs6V,QAASt6V,EAAMs6V,SAAWt6V,GAASA,EAAMs6V,SAElKrD,EAAIzhW,EAAQ01E,QAAU,aAAckuR,IAAYp5V,EAAMo6V,UAAUx9V,OAC5Di6V,GAAS2C,oBAAoBvgW,KAAM,WAAY49V,GAASz5R,SAASg8R,EAAQN,SAASd,WAAYh4V,GAAQA,GAAS,GACnHi3V,EAAIzhW,EAAQu5F,OAAS/uF,EAAM02V,gBAAkBG,GAAS2C,oBAAoBvgW,KAAM,UAAW+G,EAAM02V,gBAAiB12V,GAAS,GAC3Hi3V,EAAIzhW,EAAQ8oJ,QAAUxkE,EAAQy/Q,SAAS38V,OAASi6V,GAAS2C,oBAAoBvgW,KAAM,WAAY6gF,EAAQy/Q,SAAUv5V,GAAS,GAC1Hi3V,EAAIzhW,EAAQu9P,MAAQ,WAAYqmG,EAC5BvC,GAAS2C,oBAAoBvgW,KAAM,SAAU49V,GAASz5R,SAASg8R,EAAQP,OAAOD,IAAK54V,GAAQA,GAAS,GACxGi3V,EAAIzhW,EAAQkgW,MAAQ,WAAY0D,EAC5BvC,GAAS2C,oBAAoBvgW,KAAM,SAAU49V,GAASz5R,SAASg8R,EAAQT,OAAOC,IAAK54V,GAAQA,GAAS,GACxGi3V,EAAIzhW,EAAQmgW,OAAS77Q,EAAQ6/H,QAAQ/8M,QAAUk9E,EAAQy/Q,SAAS38V,OAC5Di6V,GAAS2C,oBAAoBvgW,KAAM,UAAW6gF,EAAQ6/H,QAAS35M,GAAS,GAC5Ei3V,EAAIzhW,EAAQigW,QAAU37Q,EAAQw/Q,MAAM18V,OAASi6V,GAAS2C,oBAAoBvgW,KAAM,WAAY6gF,EAAQw/Q,MAAOt5V,GAAS,GACpHi3V,EAAIzhW,EAAQ0hG,OAASpd,EAAQ6pB,OAAO/mG,OAASi6V,GAAS2C,oBAAoBvgW,KAAM,UAAW6gF,EAAQ6pB,OAAQ3jG,GAAS,GACpHi3V,EAAIzhW,EAAQogW,YAAc97Q,EAAQ87Q,WAAWh5V,OACzCi6V,GAAS2C,oBAAoBvgW,KAAM,eAAgB6gF,EAAQ87Q,WAAY51V,GAAS,GACpFi3V,EAAS,MAAI,EACjB,EAOAgC,EAAWnkW,UAAUmlW,qBAAuB,SAAUngR,EAAS95E,EAAOw3V,GAClE,MAAO,EAEX,EAUAyB,EAAWnkW,UAAUkhW,gBAAkB,SAAU95V,EAAMq5V,EAAIv1V,EAAOoqG,EAAKtwB,EAAS29Q,GAC5E,GAAIrtP,GAAOA,EAAIlC,kBAAkB,kBAC0C,IAAvEkC,EAAIlC,kBAAkB,gBAAgB//F,QAAQ,oBAA4B,CAC1E,IAAIoyV,EAAiB1D,GAAS2D,iBAC1BjF,IAAOA,EAAGiF,mBACV3D,GAAS2D,kBAAmB,GAEhCt+V,EAAO26V,GAAS1jR,MAAMsnR,UAAUv+V,GAChC26V,GAAS2D,iBAAmBD,CAChC,CACA,IAAI/pL,EAAW12F,EACXi8Q,EAAMvlL,EAASwpL,SAAW,CAAC,EAC3BU,EAAUx+V,EAAOA,EAAKw+V,QAAU,GACpC,GAAItwP,GAAOA,EAAIlC,kBAAkB,kBAC6B,IAA1DkC,EAAIlC,kBAAkB,gBAAgB//F,QAAQ,OAC9C,OAAQnI,EAAM02V,gBAAkB,CAAEt3V,OAAQ,GAAI2vF,MAAO,GAAM,GAE/D,IAAI7xF,EAAIqhE,KAAK4U,MAAMq9F,EAASt0K,MAC5B,GAAIgB,GAAkB,UAAbA,EAAEsE,QAAsBtF,GAAQA,EAAK07V,aAE1C,OADAH,EAAQG,aAAe17V,EAAK07V,aACrBH,EAEPv7V,GAAQA,EAAKgB,IACbhB,EAAOA,EAAKgB,GAEhB,IAAIuV,EAAO,CAAC,EACRvW,GAAQ,UAAWA,IACnBuW,EAAKs8E,MAAQ7yF,EAAK6yF,OAEtBt8E,EAAKrT,OAASlD,GAAQA,EAAKkD,OAASlD,EAAKkD,OAASlD,EAClD,IAAIy+V,GAAW,EACf,GAAI/kW,MAAMC,QAAQqG,EAAKkD,SAAWlD,EAAKkD,OAAOxC,OAAQ,CAOlD,GAHKqvQ,GAAkB/vQ,EAAKkD,OAAO,GAAM,OACrCqT,EAAKrT,OAASnG,KAAK2hW,sBAAsBnoV,EAAKrT,OAAQ,EAAG22V,EAAIpyP,OAAO/mG,OAAS,IAE7EoD,GAASA,EAAM6nL,SAASjrL,QAAUm5V,EAAIpyP,OAAO/mG,OAC7C,IAAK,IAAIkB,EAAI,EAAGA,EAAIkC,EAAM6nL,SAASjrL,OAAQkB,IACvC,GAA+B,sBAA3BkC,EAAM6nL,SAAS/pL,GAAM,IAA2B,CAChD,IAAIpJ,EAAQsL,EAAM6nL,SAAS/pL,GAAM,MAAO,MACpCi4V,EAAIpyP,OAAO/mG,SAAWlI,IACtBimW,GAAW,EAEnB,CAGZ,CAIA,OAHKA,GACD1hW,KAAK4hW,mBAAmB9E,EAAK75V,EAAMuW,EAAMioV,EAAS16V,GAE/C62V,GAAS8C,OAAOlnV,EAAKs8E,OAASt8E,EAAKrT,OAAS,CAAEA,OAAQqT,EAAKrT,OAAQ2vF,MAAOt8E,EAAKs8E,MAAO6mQ,WAAYnjV,EAAKmjV,WAClH,EACAqD,EAAWnkW,UAAU8lW,sBAAwB,SAAU1+V,EAAM2vC,EAAOsrT,GAChE,IAAK,IAAIr5V,EAAI,EAAGA,EAAI5B,EAAKU,OAAQkB,IACzB5B,EAAK4B,GAAGyzD,MAAM30D,QAAU/H,OAAOwB,KAAK6F,EAAK4B,GAAGyzD,MAAM,IAAIppD,QAAQ,QAAU,GACxElP,KAAK2hW,sBAAsB1+V,EAAK4B,GAAGyzD,MAAO1lB,EAAQ,EAAGsrT,EAAa,GAG1E,IAAI5rF,EAAM,YAGN6rF,EAAU,UAKd,OAJAl7V,EAAKqvQ,GAAO6pF,GAAO7pF,GACnBrvQ,EAAQ,MAAI2vC,EACZ3vC,EAAa,YAAIi7V,EACjBj7V,EAAKk7V,GAAWl7V,EAAK,GAAGq1D,MAAM30D,OAAS3D,KAAK6hW,kBAAkB5+V,GAAO+vQ,GAAkB/vQ,EAAK,GAAGq1D,MAAM6lS,KAAa,GAC3Gl7V,CACX,EACA+8V,EAAWnkW,UAAUgmW,kBAAoB,SAAU5+V,EAAM6+V,GAGrD,IAFA,IAAIC,EAAsB,GAEjBl9V,EAAI,EAAGA,EAAI5B,EAAKU,OAAQkB,IAC7B,GAAKi9V,EAMDC,EAAsBA,EAAoB/kW,OAAOiG,EAAK4B,GAAGyzD,MAAa,cALtE,IAAK,IAAIzgC,EAAI,EAAGA,EAAI50B,EAAK4B,GAAGyzD,MAAM30D,OAAQk0B,IACtCkqU,EAAoBh/V,KAAKE,EAAK4B,GAAGyzD,MAAMzgC,IAOnD,OAAOkqU,CACX,EAMA/B,EAAWnkW,UAAU0jW,QAAU,SAAU1zV,GAErC,OADA7L,KAAK88V,IAAIpyP,OAAS7+F,EACXA,CACX,EAMAm0V,EAAWnkW,UAAUgjW,aAAe,SAAUhzV,GAC1C7L,KAAK88V,IAAIH,WAAa9wV,CAC1B,EAQAm0V,EAAWnkW,UAAUyiW,aAAe,SAAUC,EAAIC,EAAS3yV,EAAG9E,EAAOi7V,GAGjE,MAAO,CACHliW,KAAM,OACNgxC,IAAKytT,EAAG1B,WAAWoF,UAAY1D,EAAG1B,WAAWqF,SAAW3D,EAAG1B,WAAWsF,WAAa5D,EAAG1B,WAAW/rT,IACjGskE,YAAa,kCACbk2K,SAAU,OACVroR,KAAMqiE,KAAKC,UAAUrpD,GAAO,CAAC,EAAG,CAC5BkmV,QAAS5D,EAAQI,eACjByD,MAAO7D,EAAQG,aACfv3R,QAASo3R,EAAQE,eACjBn2V,OAAQ,QACR42E,MAAOtzE,EAZXilC,WAaI7yC,IAAK4N,EAZT5N,YAaG2/V,GAAS0E,aAAatiW,KAAMu+V,EAAIx3V,KAE3C,EAQAi5V,EAAWnkW,UAAUsvR,WAAa,SAAUozE,EAAI19Q,GAC5C,EAQJm/Q,EAAWnkW,UAAUkrF,OAAS,SAAUw3Q,EAAIt7V,EAAM68V,EAAW/4V,GACzD,MAAO,CACH+pC,IAAKytT,EAAG1B,WAAW0F,WAAahE,EAAG1B,WAAWqF,SAAW3D,EAAG1B,WAAW/rT,IACvE7tC,KAAMqiE,KAAKC,UAAUrpD,GAAO,CAAC,EAAG,CAC5BzgB,MAAOwH,EACPk8E,MAAO2gR,EACPv3V,OAAQ,UACTq1V,GAAS0E,aAAatiW,KAAMu+V,EAAIx3V,KAE3C,EAQAi5V,EAAWnkW,UAAUwoE,OAAS,SAAUk6R,EAAIwB,EAAUtkW,EAAOqkW,EAAW/4V,GACpE,MAAO,CACHjH,KAAM,OACNgxC,IAAKytT,EAAG1B,WAAWsF,WAAa5D,EAAG1B,WAAWqF,SAAW3D,EAAG1B,WAAW/rT,IACvE7tC,KAAMqiE,KAAKC,UAAUrpD,GAAO,CAAC,EAAG,CAC5Bje,IAAKxC,EACL+mW,UAAWzC,EACX5gR,MAAO2gR,EACPv3V,OAAQ,UACTq1V,GAAS0E,aAAatiW,KAAMu+V,EAAIx3V,KAE3C,EAQAi5V,EAAWnkW,UAAUwpE,OAAS,SAAUk5R,EAAIwB,EAAUtkW,EAAOqkW,EAAW/4V,GACpE,MAAO,CACHjH,KAAM,OACNgxC,IAAKytT,EAAG1B,WAAW4F,WAAalE,EAAG1B,WAAWqF,SAAW3D,EAAG1B,WAAW/rT,IACvE7tC,KAAMqiE,KAAKC,UAAUrpD,GAAO,CAAC,EAAG,CAC5BzgB,MAAOA,EACP8M,OAAQ,SACRi6V,UAAWzC,EACX9hW,IAAK2/V,GAASlqQ,UAAUqsQ,EAAUtkW,GAClC0jF,MAAO2gR,GACRlC,GAAS0E,aAAatiW,KAAMu+V,EAAIx3V,KAE3C,EAOAi5V,EAAWnkW,UAAU2kW,eAAiB,SAAUv9V,EAAM8D,GAClD,IACItL,EADAwC,EAAM8I,EAAM27V,KAEZrtV,EAAOpX,EACP0kW,EAAO57V,EAAM9I,IACb2kW,EAAY,GACO,kBAAZ3/V,EAAK,KACZoS,EAAO,MAEX,IAAK,IAAIxQ,EAAI,EAAGA,EAAI5B,EAAKU,OAAQkB,IAEzBpJ,EADmB,kBAAZwH,EAAK,GACJ26V,GAASlqQ,UAAUivQ,GAAQttV,EAAMpS,EAAK4B,IAGtC5B,EAAK4B,GAEjB+9V,EAAU7/V,KAAK,IAAI8/V,GAAU5kW,EAAK,QAASxC,IAE/C,OAAOonW,GAAUC,GAAGF,EACxB,EACA5C,EAAWnkW,UAAU+lW,mBAAqB,SAAU9E,EAAK75V,EAAMuW,EAAMioV,EAAS16V,GAC1E,IAAI02Q,EAAQx6Q,EAIZ,GAHIA,GAAQA,EAAKkD,SACbs3Q,EAAQx6Q,EAAKkD,QAEb22V,GAAOA,EAAIH,YAAcG,EAAIH,WAAWh5V,OAAQ,CAChD,IAAI25V,EAAMR,EAAIH,WACVnzV,OAAK,EACLu5V,EAAgBtlF,EAChBzhQ,EAAM,CAAC,EACP/Y,EAAK+/V,YACLD,EAAgB9/V,EAAK+/V,WAEzB,IAAK,IAAIn+V,EAAI,EAAGA,EAAIy4V,EAAI35V,OAAQkB,KAC5B2E,EAAKo0V,GAASjB,WAAWW,EAAIz4V,GAAG/E,SAE5Bkc,EAAIshV,EAAIz4V,GAAGqnC,MAAQ,MAAQoxT,EAAIz4V,GAAG/E,MAAQ0J,EAAGu5V,EAAezF,EAAIz4V,GAAGqnC,QAG3E1yB,EAAKmjV,WAAa3gV,CACtB,CACA,IACIinV,EAAmBtmW,MAAMC,QAAQqG,EAAKkD,SAAWlD,EAAKkD,OAAOxC,SAAWqvQ,GAAkB/vQ,EAAKkD,OAAO,GAAM,KAChH,GAAI22V,GAAOA,EAAIpyP,QAAUoyP,EAAIpyP,OAAO/mG,SAAWs/V,EAAkB,CAC7D,IAAIv4P,EAASoyP,EAAIpyP,OACjB,IAAS7lG,EAAI,EAAGA,EAAI6lG,EAAO/mG,OAAQkB,IAAK,CAE/BmuQ,GAAkByuF,KACnBA,EAAU7D,GAAS3/P,MAAMwjQ,EAAS/2P,EAAO7lG,KAE7C,IAAIq+V,EAAaj8I,GAAMo3I,cAAct3V,EAAM4B,QAAS,WAAW9D,GAAGgH,EAClE4xQ,EAAQmgF,GAAS3/P,MAAMw/K,EAAO/yK,EAAO7lG,GAAIi4V,EAAIH,WALjC,KAKoD8E,EAASyB,EAAWrF,SACxF,CACArkV,EAAKrT,OAASs3Q,CAClB,CACA,OAAOjkQ,CACX,EACAwmV,EAAWnkW,UAAUqkW,gBAAkB,SAAUn5V,GAC7C,IAAIi3V,EAAM,CAAEqC,MAAO,GAAI31P,OAAQ,GAAIg2G,QAAS,GAAI4/I,SAAU,GAAI3D,WAAY,IAM1E,OALAqB,EAAIqC,MAAQp5I,GAAMo3I,cAAct3V,EAAM4B,QAAS,YAC/Cq1V,EAAItzP,OAASu8G,GAAMo3I,cAAct3V,EAAM4B,QAAS,WAChDq1V,EAAIt9I,QAAUuG,GAAMo3I,cAAct3V,EAAM4B,QAAS,WACjDq1V,EAAIsC,SAAWr5I,GAAMo3I,cAAct3V,EAAM4B,QAAS,YAClDq1V,EAAIrB,WAAa11I,GAAMo3I,cAAct3V,EAAM4B,QAAS,gBAC7Cq1V,CACX,EACAgC,EAAWnkW,UAAUsnW,UAAY,SAAU5mW,GACvC,IAAIyhW,EAAMzhW,EAAQqkW,UACdrkW,EAAQ2xD,OAAOvqD,SACfq6V,EAAI9vS,OAAS,CAAC,GAElB,IAAK,IAAI/yC,EAAK,EAAGpV,EAAKxJ,EAAQ2xD,OAAQ/yC,EAAKpV,EAAGpC,OAAQwX,IAAM,CACxD,IAAI6nB,EAAMj9B,EAAGoV,GACb,GAAI6iV,EAAIh7T,EAAI/kC,KACR,MAAM,IAAIS,MAAM,4EAEpBs/V,EAAIh7T,EAAI/kC,KAAO+kC,EAAIvnC,MACfunC,EAAIx5B,KACJw0V,EAAIh7T,EAAI/kC,KAAO+kC,EAAIx5B,GAAGzN,KAAKQ,EAAQwK,MAAOi8B,EAAI/kC,IAAK1B,EAAQwK,MAAOxK,EAAQgiW,KAE9EP,EAAI9vS,OAAOlrB,EAAI/kC,KAAO+/V,EAAIh7T,EAAI/kC,IAClC,CACJ,EACO+hW,CACX,CAjcgC,CAic9B3D,IAME+G,GAA8B,SAAUv9V,GAExC,SAASu9V,EAAa1yV,GAClB,IAAI5K,EAAQD,EAAO9J,KAAKiE,OAASA,KAuBjC,OArBA8F,EAAMvJ,QAAU2f,GAAO,CAAC,EAAGpW,EAAMvJ,QAAS,CACtCggW,YAAa,MACbn8N,OAAQ,wEACRijO,gBAAiB,kBACjB7G,OAAQ,WACRvqR,OAAQ,UACR6nL,KAAM,QACN2iG,KAAM,OACN3mQ,MAAO,eACP4mQ,MAAO,UACPE,OAAQ,UACRx5I,MAAO,SACPkgJ,UAAW,eACXC,SAAU,SACVC,UAAW,eACXC,aAAc,2CACdC,iBAAkB,qEAClBC,0BAA2B,iDAC3BC,WAAY,QAEhB1nV,GAAOpW,EAAMvJ,QAASmU,GAAS,CAAC,GACzB5K,CACX,CA2jBA,OArlBA/B,GAAUq/V,EAAcv9V,GA2BxBu9V,EAAavnW,UAAU+2R,cAAgB,WACnC,MAAO,cACX,EAMAwwE,EAAavnW,UAAUgoW,YAAc,SAAUjjJ,EAAW75M,EAAO+8V,GAC7D,IACIj5P,EACAk5P,EAFA7jN,EAAc,GAGdxjJ,EAAMkkN,EAAUnlN,MAChBqE,SAAcpD,EACdwvC,EAAQ00K,EAAU10K,MAAQk3T,EAAaY,SAASpjJ,EAAU10K,OAAS,KAyBvE,GAxBIxvC,aAAeyb,OACfzb,EAAM,YAAekhW,GAAS1jR,MAAM+pR,SAASvnW,GAAO,KAE3C,WAAToD,IACApD,EAAMA,EAAImV,QAAQ,KAAM,MACpB+uM,EAAUs+I,aACVxiW,EAAMA,EAAI+Q,eAGd/Q,EAAM,KADNA,EAAMk3C,mBAAmBl3C,IACN,IACfonW,IACA53T,EAAQ,QAAUA,EAAQ,mBAE1B0xT,GAAS1jR,MAAMgqR,OAAOxnW,KACtBqnW,EAAO,QAEPnjJ,EAAUs+I,aACL6E,IACD73T,EAAQ,WAAaA,EAAQ,KAEjCxvC,EAAMA,EAAI+Q,gBAGlBo9F,EAAW+yP,GAASuG,aAAavjJ,EAAU/1G,UAOvC,OALAq1C,GAAeh0G,EACfg0G,GAAer1C,EACXk5P,IACA7jN,GAAe6jN,GAEZ7jN,EAAcxjJ,EAQzB,GAAiB,iBAFbmuG,EAJCmoK,GAAkBhzQ,KAAK4yR,gBAA2C,mBAAzB5yR,KAAK4yR,gBAIpCgrE,GAASwG,cAAcxjJ,EAAU/1G,UAHjC+yP,GAASyG,gBAAgBzjJ,EAAU/1G,WAKlB,CAC5B,IAAInuE,EAAOhgC,EACXA,EAAMwvC,EACNA,EAAQxP,CACZ,CAOA,OANAwjH,GAAer1C,EAAW,IAC1Bq1C,GAAeh0G,EAAQ,IACnB63T,IACA7jN,GAAe6jN,GAEnB7jN,GAAexjJ,EAAM,GAEzB,EACA0mW,EAAavnW,UAAUsnW,UAAY,SAAU5mW,GACzCsJ,EAAOhK,UAAUsnW,UAAUpnW,KAAKiE,KAAMzD,UAC/BA,EAAQqkW,UAAU1yS,MAC7B,EAMAk1S,EAAavnW,UAAUyoW,mBAAqB,SAAU1jJ,EAAW75M,EAAO+8V,GAEpE,IADA,IAAI9nV,EAAM,GACDnX,EAAI,EAAGA,EAAI+7M,EAAUuZ,WAAWx2N,OAAQkB,IAC7CmX,EAAIjZ,KAAK,IAAM/C,KAAKukW,YAAY3jJ,EAAUuZ,WAAWt1N,GAAIkC,EAAO+8V,GAAgB,KAEpF,OAAO9nV,EAAImE,KAAK,IAAMygM,EAAU4jJ,UAAY,IAChD,EAMApB,EAAavnW,UAAU0oW,YAAc,SAAUjnW,EAAQyJ,EAAO+8V,GAC1D,OAAOxmW,EAAOmnW,UAAYzkW,KAAKskW,mBAAmBhnW,EAAQyJ,EAAO+8V,GAAgB9jW,KAAK6jW,YAAYvmW,EAAQyJ,EAAO+8V,EACrH,EAKAV,EAAavnW,UAAUoiW,QAAU,SAAUv9I,GAIvC,OAHI1gN,KAAK88V,IAAIz3M,QACTq7D,EAAQ39M,KAAK/C,KAAKukW,YAAYvkW,KAAK88V,IAAIz3M,OAAQ,MAAM,IAElDq7D,EAAQvgM,KAAK,QACxB,EAQAijV,EAAavnW,UAAU6oW,aAAe,SAAU74V,GACxCA,EAAE6/G,QAA8B,IAApB7/G,EAAE6/G,OAAO/nH,QACrBi6V,GAAS/oI,WAAW,0EAGxB,IADA,IAAIv3N,EAAS0C,KAAK88V,IAAIz3M,QAAU,GACvBxgJ,EAAI,EAAGA,EAAIgH,EAAE6/G,OAAO/nH,OAAQkB,IACjCvH,EAAOyF,KAAK,IAAI8/V,GAAUh3V,EAAE6/G,OAAO7mH,GAAIgH,EAAEg/F,SAAUh/F,EAAE5N,IAAK4N,EAAEqzV,aAEhEl/V,KAAK88V,IAAIz3M,OAAS/nJ,CACtB,EAKA8lW,EAAavnW,UAAUijW,SAAW,SAAUjzV,GAExC,OADA7L,KAAK88V,IAAIz3M,OAASw9M,GAAUC,GAAG9iW,KAAK88V,IAAIz3M,QACjC,EACX,EAKA+9M,EAAavnW,UAAU8oW,WAAa,SAAU94V,GAC1C,IAAImQ,EAAM,GACV,GAAInQ,EAAElJ,gBAAgBhG,MAClB,IAAK,IAAIkI,EAAI,EAAGA,EAAIgH,EAAElJ,KAAKgB,OAAQkB,IAC/BmX,EAAIjZ,KAAKqgW,EAAaY,SAASn4V,EAAElJ,KAAKkC,KAAuB,eAAhBgH,EAAEi3B,UAA6B,QAAU,UAI1F9mB,EAAIjZ,KAAKqgW,EAAaY,SAASn4V,EAAElJ,OAAyB,eAAhBkJ,EAAEi3B,UAA6B,QAAU,KAEvF,OAAO9mB,EAAImE,KAAK,IACpB,EAKAijV,EAAavnW,UAAUujW,SAAW,SAAUvzV,GACxC,OAAOA,EAAEmwL,UAAU77K,KAAK,IAC5B,EAMAijV,EAAavnW,UAAU0jW,QAAU,SAAU1zV,GAEvC,OADA7L,KAAK88V,IAAIpyP,OAAS7+F,EACX,EACX,EAKAu3V,EAAavnW,UAAUgkW,SAAW,SAAUh0V,GACxC,IAAK,IAAIhH,EAAI,EAAGA,EAAIgH,EAAElI,OAAQkB,IAC1BgH,EAAEhH,GAAKu+V,EAAaY,SAASn4V,EAAEhH,IAEnC,OAAOgH,EAAEsU,KAAK,IAClB,EAMAijV,EAAavnW,UAAUgjW,aAAe,SAAUhzV,GAE5C,OADA7L,KAAK88V,IAAIH,WAAa9wV,EACf,EACX,EAMAu3V,EAAavnW,UAAU+oW,QAAU,SAAU/4V,GACvC,OAAa,IAANA,EAAa,WAAa,EACrC,EAQAu3V,EAAavnW,UAAUsvR,WAAa,SAAUozE,EAAI19Q,EAASu5G,GACnDwjK,GAAS/xR,SAASuuH,EAAStpJ,IAAK9wC,KAAKzD,QAAQ6mN,QAA0C,SAAhChpB,EAASt6L,KAAK2N,eACrEozE,EAAQywB,iBAAiB,SAAUtxG,KAAKzD,QAAQ8mW,iBAChDxiR,EAAQywB,iBAAiB,qBAAsB,OAC/CzwB,EAAQgkR,iBAAiB,uCAGzBhkR,EAAQywB,iBAAiB,SAAUtxG,KAAKzD,QAAQ6jI,QAEpDv/C,EAAQywB,iBAAiB,qBAAsB,OAC/CzwB,EAAQywB,iBAAiB,wBAAyB,MACtD,EAWA8xP,EAAavnW,UAAUkhW,gBAAkB,SAAU95V,EAAMq5V,EAAIv1V,EAAOoqG,EAAKtwB,EAAS29Q,GAC9E,IAAIsG,EAAY,iBAChB,GAAKjkR,GAA4B,QAAjBA,EAAQ/gF,OAAoBE,KAAK+kW,SAAW9hW,EAAK6hW,GAAY,CACzE,IAAIE,EAAW/hW,EAAK6hW,GAAWxyV,MAAM,eACrCtS,KAAK+kW,QAAUC,EAAS,GACxBhlW,KAAKilW,kBAAoBD,EAAS,EACtC,CAEA,IAAKhyF,GAAkB/vQ,EAAKgB,GAAI,CAC5B,IAAIihW,EAAan+V,GAASA,EAAM02V,gBAAmBx6V,EAAKgB,EAAEs9D,QAAUt+D,EAAKgB,EACrEkhW,EAAW,aACf,IAAKnyF,GAAkBkyF,GACnB,IAAK,IAAIrgW,EAAI,EAAGA,EAAIqgW,EAASvhW,OAAQkB,IAC5BmuQ,GAAkBkyF,EAASrgW,GAAGsgW,YACxBD,EAASrgW,GAAGsgW,EAInC,CACA,IAAIrI,EAAMj8Q,GAAWA,EAAe,QAChCukR,EAAgBplW,KAAKqlW,qBAAqBpiW,EAAM8D,EAAOoqG,EAAKtwB,EAAS29Q,GACzE,GAAI4G,EACA,OAAOA,EAEX,IAAIE,EAAen0P,GAAOtwB,EAAQouB,kBAAkB,sBAChDnZ,EAAQ,KACRzjF,EAAWizV,GAAgB/tV,SAAS+tV,EAAc,KAAQ,EAC9D,GAAIv+V,GAASA,EAAM02V,gBAAiB,CAChC,IAAI8H,EAAa,WACbtiW,EAAKsiW,IAAetiW,EAAK,kBACzB6yF,EAAQ7yF,EAAKsiW,IAAetiW,EAAK,gBAEjCA,EAAKgB,IACLhB,EAAOA,EAAKgB,IAEZhB,EAAKsiW,IAAetiW,EAAK,kBACzB6yF,EAAQ7yF,EAAKsiW,IAAetiW,EAAK,eAEzC,CACgB,IAAZoP,GAAiBpP,EAAKxH,QACtBwH,EAAOA,EAAKxH,OAEZwH,EAAKgB,IACLhB,EAAOA,EAAKgB,GAEZoO,EAAU,GAAKpP,EAAKs+D,UACpBt+D,EAAOA,EAAKs+D,SAEhB,IAAI/nD,EAAO,CAAC,EAIZ,OAHAA,EAAKs8E,MAAQA,EACbt8E,EAAKrT,OAASlD,EACdjD,KAAK4hW,mBAAmB9E,EAAK75V,EAAMuW,EAAM,KAAMzS,GACxC62V,GAAS8C,OAAO5qQ,GAASt8E,EAAKrT,OAAS,CAAEA,OAAQqT,EAAKrT,OAAQ2vF,MAAOt8E,EAAKs8E,MAAO6mQ,WAAYnjV,EAAKmjV,WAC7G,EAQAyG,EAAavnW,UAAUmlW,qBAAuB,SAAUngR,EAAS95E,EAAOw3V,GACpE,IAAIviV,EAAM,GACNmjE,EAAQ,QACR2gR,EAAYj/Q,EAAQ1B,IAAU,UAE3B0B,EAAQ1B,GACXo/Q,EAAG1B,WAAW2I,iBACd3kR,EAAc,QAAI,QAGtB,IADA,IACS1lE,EAAK,EAAGsqV,EADN7pW,OAAOwB,KAAKyjF,GACS1lE,EAAKsqV,EAAO9hW,OAAQwX,IAAM,CACtD,IAAI9F,EAAOowV,EAAOtqV,GAClBa,EAAIjZ,KAAKsS,EAAO,IAAMwrE,EAAQxrE,GAClC,CAEA,OADA2G,EAAMA,EAAImE,KAAK,KACXo+U,EAAG1B,WAAW/rT,MAA2C,IAApCytT,EAAG1B,WAAW/rT,IAAI5hC,QAAQ,OAAgB4wV,EACxD9jV,EAEJA,EAAIrY,OAASm8V,EAAY,IAAM9jV,EAAM8jV,GAAa,EAC7D,EACAsD,EAAavnW,UAAU6pW,kBAAoB,SAAUznW,EAAK0nW,GACtD,IAAK,IAAIxqV,EAAK,EAAGpV,EAAMitQ,GAAkB2yF,GAAwC,GAA1B/pW,OAAOwB,KAAKuoW,GAAkBxqV,EAAKpV,EAAGpC,OAAQwX,IAAM,CACvG,IAAI9F,EAAOtP,EAAGoV,GACTwqV,EAAWtwV,aAAiB8C,OAC7BwtV,EAAWtwV,GAAQuoV,GAASgI,UAAUC,YAAYF,EAAWtwV,IAErE,CACA,OAAOswV,CACX,EAOAvC,EAAavnW,UAAUkrF,OAAS,SAAUw3Q,EAAIt7V,EAAM68V,GAChD,MAAO,CACHhvT,KAAMytT,EAAG1B,WAAW0F,WAAahE,EAAG1B,WAAW/rT,KAAKj/B,QAAQ,OAAQiuV,EAAY,IAAMA,EAAY,IAClG78V,KAAMqiE,KAAKC,UAAUtiE,EAAMjD,KAAKzD,QAAQupW,UAAY9lW,KAAK0lW,kBAAoB,MAErF,EAQAtC,EAAavnW,UAAUwoE,OAAS,SAAUk6R,EAAIwB,EAAUtkW,EAAOqkW,GAC3D,IAAIhvT,EAOJ,OAFIA,EAJiB,kBAAVr1C,GAAuBmiW,GAAS1jR,MAAMgqR,OAAOzoW,GAI9C,IAAMA,EAAQ,IAHd,KAAOA,EAAQ,KAKlB,CACHqE,KAAM,SACNgxC,KAAMytT,EAAG1B,WAAWsF,WAAa5D,EAAG1B,WAAW/rT,KAAKj/B,QAAQ,OAAQiuV,EAAY,IAAMA,EAAY,IAAMhvT,EAEhH,EASAsyT,EAAavnW,UAAUwpE,OAAS,SAAUk5R,EAAIwB,EAAUtkW,EAAOqkW,EAAW/4V,EAAOi7V,GAI7E,IAAIlxT,EAOJ,MAVgC,UAA5B9wC,KAAKzD,QAAQqnW,YAA2B5wF,GAAkBgvF,KAC1DvmW,EAAQuE,KAAK+lW,iBAAiBtqW,EAAOumW,EAAUjC,IAO/CjvT,EAJ2B,kBAApBr1C,EAAMskW,IAA2BnC,GAAS1jR,MAAMgqR,OAAOzoW,EAAMskW,IAI9D,IAAMtkW,EAAMskW,GAAY,IAHxB,KAAOtkW,EAAMskW,GAAY,KAK5B,CACHjgW,KAAME,KAAKzD,QAAQqnW,WACnB9yT,KAAMytT,EAAG1B,WAAW4F,WAAalE,EAAG1B,WAAW/rT,KAAKj/B,QAAQ,OAAQiuV,EAAY,IAAMA,EAAY,IAAMhvT,EACxG7tC,KAAMqiE,KAAKC,UAAU9pE,EAAOuE,KAAKzD,QAAQupW,UAAY9lW,KAAK0lW,kBAAoB,MAC9EtlO,OAAQpgI,KAAKzD,QAAQ6jI,OAE7B,EASAgjO,EAAavnW,UAAUyiW,aAAe,SAAUC,EAAIC,EAAS3yV,EAAG9E,EAAOi7V,GACnE,IAAIgE,EAAcn6V,EAAEk4V,KAAOnG,GAASqI,QAAQjmW,KAAKzD,QAAQgnW,UACrDzyT,EAAM9wC,KAAK+kW,QAAU/kW,KAAK+kW,QAAU,IAAM/kW,KAAKzD,QAAQ6mN,MACvDm7I,EAAG1B,WAAW/rT,IAAIj/B,QAAQ,OAAQ,IAAM7R,KAAKzD,QAAQ6mN,OACzDv3M,EAAEilC,IAAM9wC,KAAKilW,kBAAoBjlW,KAAKilW,kBAAoBp5V,EAAEilC,IAC5D,IAAIt3B,EAAO,CACPs3B,IAAKjlC,EAAEilC,IACP7yC,IAAK4N,EAAE5N,IACPioW,IAAK,EACLC,KAAMvI,GAASqI,QAAQjmW,KAAKzD,QAAQ+mW,YAEpCtF,EAAM,KAAOgI,EAAc,KAQ/B,OAPAhI,GAAO,2CAA6CxkV,EAAK2sV,KAAKt0V,QAAQ,KAAM,IAAM,KAClF7R,KAAK88V,IAAIwG,UAAY,EACrBtF,GAAOh+V,KAAKomW,sBAAsB5H,EAAQG,aAAcnlV,EAAM+kV,GAC9DP,GAAOh+V,KAAKqmW,sBAAsB7H,EAAQI,eAAgBplV,EAAM+kV,EAAIyD,EAAWA,EAASpD,eAAiB,IACzGZ,GAAOh+V,KAAKsmW,sBAAsB9H,EAAQE,eAAgBllV,EAAM+kV,GAChEP,GAAOxkV,EAAK2sV,KAAO,OAEZ,CACHrmW,KAAM,OACNgxC,IAAKA,EACLw6O,SAAU,OACVl2K,YAAa,2CAA6C4wP,EAC1D/iW,KANJ+6V,GAAO,KAAOgI,EAAc,KAQhC,EAQA5C,EAAavnW,UAAUyqW,sBAAwB,SAAUvqV,EAAKlQ,EAAG0yV,GAC7D,IAAKxiV,EACD,MAAO,GAEX,IACIk5F,EAAO,CACP,OAAU,UACV,IAAO,SAAUhyG,EAAM4B,EAAG5G,GACtB,IAAI6yC,EAAM8sT,GAASlqQ,UAAUz1F,EAAKgF,EAAK4B,IACvC,MAAmB,kBAARisC,GAAoB8sT,GAAS1jR,MAAMgqR,OAAOpzT,GAC1C,IAAMA,EAAM,IAEdA,aAAe34B,KAEb,IADQlV,EAAK4B,GAAG5G,GACDipC,SAAW,IAG1B,KAAO4J,EAAM,IAE5B,EACA,KAAQ,SAAU7tC,EAAM4B,GAAK,MAAO,EAAI,GAG5C,OADM7E,KAAKumW,oBAAoBxqV,EAAKlQ,EAAGopG,EAAMspP,GAChC,IACjB,EAOA6E,EAAavnW,UAAUuqW,sBAAwB,SAAUrqV,EAAKlQ,EAAG0yV,GAC7D,IAAKxiV,EACD,MAAO,GAEX,IACIk5F,EAAO,CACP,OAAU,QACV,IAAO,SAAUhyG,EAAM4B,EAAG5G,GAAO,MAAO,EAAI,EAC5C,KAAQ,SAAUgF,EAAM4B,GAAK,OAAOygE,KAAKC,UAAUtiE,EAAK4B,IAAM,MAAQ,GAG1E,OADM7E,KAAKumW,oBAAoBxqV,EAAKlQ,EAAGopG,EAAMspP,EAEjD,EAOA6E,EAAavnW,UAAUwqW,sBAAwB,SAAUtqV,EAAKlQ,EAAG0yV,EAAIiI,GACjE,IAAI1gW,EAAQ9F,KACZ,IAAK+b,EACD,MAAO,GAGXA,EAAI/d,SAAQ,SAAUg0H,GAAU,OAAOA,EAASlsH,EAAMigW,iBAAiB/zO,EAAQw0O,EAAIlpW,QAAO,SAAU4C,GAAK,OAAO09V,GAASlqQ,UAAU7nF,EAAE5N,IAAKiC,KAAO09V,GAASlqQ,UAAU7nF,EAAE5N,IAAK+zH,EAAS,IAAG,GAAInmH,EAAE5N,IAAM,IACnM,IAAIg3G,EAAO,CACP,OAAUj1G,KAAKzD,QAAQqnW,WAAa,IACpC,IAAO,SAAU3gW,EAAM4B,EAAG5G,GACtB,MAA4B,kBAAjBgF,EAAK4B,GAAG5G,IAAqB2/V,GAAS1jR,MAAMgqR,OAAOjhW,EAAK4B,GAAG5G,IAC3D,IAAMgF,EAAK4B,GAAG5G,GAAO,IAEvBgF,EAAK4B,GAAG5G,aAAgBka,KAEtB,IADIlV,EAAK4B,GAAG5G,GACDipC,SAAW,IAGtB,KAAOjkC,EAAK4B,GAAG5G,GAAO,IAErC,EACA,KAAQ,SAAUgF,EAAM4B,GAAK,OAAOygE,KAAKC,UAAUtiE,EAAK4B,IAAM,MAAQ,GAG1E,OADM7E,KAAKumW,oBAAoBxqV,EAAKlQ,EAAGopG,EAAMspP,EAEjD,EACA6E,EAAaY,SAAW,SAAU3uV,GAC9B,OAAOA,EAAKxD,QAAQ,MAAO,IAC/B,EACAuxV,EAAavnW,UAAU0qW,oBAAsB,SAAUxqV,EAAKlQ,EAAGopG,EAAMspP,GAEjE,IADA,IAAIP,EAAM,GACDn5V,EAAI,EAAGA,EAAIkX,EAAIpY,OAAQkB,IAC5Bm5V,GAAO,KAAOnyV,EAAEs6V,KAAO,KACvBnI,GAAOh+V,KAAKzD,QAAQmnW,iBAAmB,OACvC1F,GAAO/oP,EAAKrH,OACQ,UAAhBqH,EAAKrH,OACLowP,IAAQO,EAAG1B,WAAW0F,WAAahE,EAAG1B,WAAWqF,SAAWr2V,EAAEilC,KAAOmkE,EAAKnkE,IAAI/0B,EAAKlX,EAAGgH,EAAE5N,KAAO,cAE1E,SAAhBg3G,EAAKrH,QAAqC,WAAhBqH,EAAKrH,OACpCowP,IAAQO,EAAG1B,WAAW4F,WAAalE,EAAG1B,WAAWqF,SAAWr2V,EAAEilC,KAAOmkE,EAAKnkE,IAAI/0B,EAAKlX,EAAGgH,EAAE5N,KAAO,cAE1E,YAAhBg3G,EAAKrH,SACVowP,IAAQO,EAAG1B,WAAWsF,WAAa5D,EAAG1B,WAAWqF,SAAWr2V,EAAEilC,KAAOmkE,EAAKnkE,IAAI/0B,EAAKlX,EAAGgH,EAAE5N,KAAO,eAEnG+/V,GAAO,WAAah+V,KAAKzD,QAAQ6jI,OAAS,KAC1C49N,GAAO,eAAiBh+V,KAAK88V,IAAIwG,YAAc,KAC/CtF,GAAOh+V,KAAKzD,QAAQonW,0BAA4B,KAC3C3wF,GAAkBj3P,EAAIlX,GAAG,gBAK1Bm5V,GAAO,MAJPA,GAAO,aAAejiV,EAAIlX,GAAG,eAAiB,cACvCkX,EAAIlX,GAAG,gBAKlBm5V,GAAO/oP,EAAKhyG,KAAK8Y,EAAKlX,GAE1B,OAAOm5V,CACX,EACAoF,EAAavnW,UAAUwpW,qBAAuB,SAAUpiW,EAAM8D,EAAOoqG,EAAKtwB,EAAS29Q,GAC/E,GAAIrtP,GAAOA,EAAIlC,kBAAkB,kBAA6E,IAA1DkC,EAAIlC,kBAAkB,gBAAgB//F,QAAQ,OAC9F,OAAQnI,EAAM02V,gBAAkB,CAAEt3V,OAAQ,GAAI2vF,MAAO,GAAM,GAE/D,GAAIjV,GAAW7gF,KAAKzD,QAAQ6mN,OAASw6I,GAAS/xR,SAASgV,EAAQ/vC,IAAK9wC,KAAKzD,QAAQ6mN,QAAyC,SAA/BviI,EAAQ/gF,KAAK2N,cAA0B,CAC9H,IAAIs2V,EAAO5yP,EAAIlC,kBAAkB,gBAC7Bw3P,OAAO,EACPC,OAAU,EACVziW,EAAIhB,EAAO,GAGf,GAFA8gW,EAAOA,EAAK90V,UAAU80V,EAAK70V,QAAQ,kBAAoB,IACvDjL,EAAIA,EAAEqO,MAAMyxV,IACNpgW,OAAS,EACX,MAAO,CAAC,EAEZM,EAAIA,EAAE,GACN,IAAI0iW,EAAQ,sDAAsD/xV,KAAK3Q,GACnE0iW,GACA1iW,EAAE4N,QAAQ80V,EAAM,GAAI,IAIxB,IAFA,IAAIC,EAAaD,EAAQA,EAAM,GAAK,GAE3B9hW,GADTZ,EAAIA,EAAEqO,MAAMs0V,IACGjjW,OAAQkB,GAAK,EAAGA,IACtB,iBAAiB6I,KAAKzJ,EAAEY,KAAQ,cAAc6I,KAAKzJ,EAAEY,MAG1D4hW,EAAOlvV,SAAS,uBAAuB3C,KAAK3Q,EAAEY,IAAI,GAAI,IAClD25V,EAAQG,aAAa8H,KACrBC,EAAU9I,GAAS1jR,MAAMsnR,UAAU,WAAW5sV,KAAK3Q,EAAEY,IAAI,IACzDqX,GAAO,CAAC,EAAGsiV,EAAQG,aAAa8H,GAAOzmW,KAAK+8V,gBAAgB2J,MAGpE,OAAOlI,CACX,CACA,OAAO,IACX,EACA4E,EAAavnW,UAAUkqW,iBAAmB,SAAU9iW,EAAM++V,EAAU/jW,GAChE,IAAI6H,EAAQ9F,KACZ,OAAIgzQ,GAAkBgvF,IAGtBpmW,OAAOwB,KAAK6F,GAAMjF,SAAQ,SAAUqX,GAC5BA,IAASpX,GAAgB,gBAAToX,IACZuoV,GAASp8I,cAAcv+M,EAAKoS,KAC5BvP,EAAMigW,iBAAiB9iW,EAAKoS,GAAO2sV,EAAS3sV,IAEvB,IADTzZ,OAAOwB,KAAK6F,EAAKoS,IAAO/X,QAAO,SAAU2F,GAAQ,MAAgB,gBAATA,CAAwB,IAClFU,eACCV,EAAKoS,KAGXpS,EAAKoS,KAAU2sV,EAAS3sV,IAGxBpS,EAAKoS,IAAS2sV,EAAS3sV,IAASpS,EAAKoS,GAAMoD,YAAcupV,EAAS3sV,GAAMoD,mBAFtExV,EAAKoS,GAMxB,IAlBWpS,CAoBf,EACOmgW,CACX,CAvlBkC,CAulBhCpD,IAudE6G,IAhdgC,SAAUhhW,GAE1C,SAASihW,EAAep2V,GACpB,IAAI5K,EAAQD,EAAO9J,KAAKiE,KAAM0Q,IAAU1Q,KA0BxC,OAxBA8F,EAAMvJ,QAAU2f,GAAO,CAAC,EAAGpW,EAAMvJ,QAAS,CACtCggW,YAAa,MACbn8N,OAAQ,iDACRijO,gBAAiB,kBACjB7G,OAAQ,WACRvqR,OAAQ,UACR6nL,KAAM,QACN2iG,KAAM,OACN3mQ,MAAO,SACPuvD,OAAQ,UACRq3M,MAAO,UACPE,OAAQ,UACRx5I,MAAO,SACPkgJ,UAAW,eACXC,SAAU,SACVC,UAAW,eACXC,aAAc,2CACdC,iBAAkB,qEAClBC,0BAA2B,iDAC3BC,WAAY,QACZkC,WAAW,EACX9gW,MAAO,WAEXkX,GAAOpW,EAAMvJ,QAASmU,GAAS,CAAC,GACzB5K,CACX,CA7BA/B,GAAU+iW,EAAgBjhW,GAiC1BihW,EAAejrW,UAAU+2R,cAAgB,WACrC,MAAO,gBACX,EAMAk0E,EAAejrW,UAAU+oW,QAAU,SAAU/4V,GACzC,OAAa,IAANA,EAAa,OAAS,EACjC,EAMAi7V,EAAejrW,UAAUgoW,YAAc,SAAUjjJ,EAAW75M,EAAO+8V,GAC/D,IAAI5jN,EAAc,GACdxjJ,EAAMkkN,EAAUnlN,MAChBqgB,EAASpf,aAAeyb,KAC5B,GAAIpR,aAAiBkgN,GAEjB,IADA,IAAIt+M,EAAU3I,KAAKkgW,gBAAgBn5V,GAC1BlC,EAAI,EAAGA,EAAI8D,EAAQ+3M,QAAQ/8M,OAAQkB,IACpC8D,EAAQ+3M,QAAQ77M,GAAGgH,EAAE5N,MAAQ2iN,EAAUnlN,QACvCqoW,GAAe,GAW3B,OAPA5jN,EAAcr6I,EAAOhK,UAAUgoW,YAAY9nW,KAAKiE,KAAM4gN,EAAW75M,EAAO+8V,GACpEhoV,IACAokI,EAAcA,EAAYruI,QAAQ,kBAAmB,OAErD+rV,GAAS1jR,MAAMgqR,OAAOxnW,KACtBwjJ,EAAcA,EAAYruI,QAAQ,OAAQ,IAAIA,QAAQ,KAAM,KAEzDquI,CACX,EAQA4mN,EAAejrW,UAAU6oW,aAAe,SAAU74V,GAC9C,IAAIw5I,EAASrlJ,KAAK88V,IAAIwD,UAAY,GAClCj7M,EAAOtiJ,KAAK8I,EAAE5N,KACd+B,KAAK88V,IAAIwD,SAAWj7M,CACxB,EAKAyhN,EAAejrW,UAAUijW,SAAW,SAAUjzV,GAC1C,OAAO7L,KAAK88V,IAAIwD,SAASngV,KAAK,OAClC,EAKA2mV,EAAejrW,UAAUkrW,SAAW,SAAUl7V,GAC1C,IAAI/F,EAAQ9F,KACRkzH,EAAW,CAAC,EACZ8zO,EAAW,CAAC,EACZ3F,EAAUx1V,EAAEw1V,QAAQxsV,QACpBoyV,EAAQ,GAiDZ,OAhDcp7V,EAAEu1V,QAAQ9jW,QAAO,SAAUumC,GAAQ,OAAOA,EAAK30B,QAAQ,MAAQ,CAAG,IACxElR,SAAQ,SAAUi0E,GACtB,IAAI6gM,EAAS7gM,EAAO3/D,MAAM,KAI1B,GAHMwgQ,EAAO,KAAM5/I,IACfA,EAAS4/I,EAAO,IAAM,IAEL,GAAjBA,EAAOnvQ,OACHuvH,EAAS4/I,EAAO,IAAInvQ,SAAwD,IAA9C/H,OAAOwB,KAAK81H,GAAUhkH,QAAQ4jQ,EAAO,KAChB,IAA/C5/I,EAAS4/I,EAAO,IAAI,GAAG5jQ,QAAQ,aAAsE,IAAjDgkH,EAAS4/I,EAAO,IAAI,GAAG5jQ,QAAQ,aACnFgkH,EAAS4/I,EAAO,IAAI,GAAK5/I,EAAS4/I,EAAO,IAAI,GAApB5/I,YAA4C4/I,EAAO,GAG5E5/I,EAAS4/I,EAAO,IAAI,GAAK5/I,EAAS4/I,EAAO,IAAI,GAAK,IAAMA,EAAO,GAInE5/I,EAAS4/I,EAAO,IAAI/vQ,KAAK,WAAa+vQ,EAAO,QAGhD,CAID,IAHA,IAAIo0F,EAAM,WAAap0F,EAAOA,EAAOnvQ,OAAS,GAC1CssS,EAAM,GACNk3D,EAAU,GACLtiW,EAAI,EAAGA,EAAIiuQ,EAAOnvQ,OAAS,EAAGkB,IACnCorS,EAAMA,EAAM,WAAan9B,EAAOjuQ,GAAK,IACrCsiW,GAAoB,IAExB,IAAIC,EAAan3D,EAAMi3D,EAAMC,EAC7B,GAAIj0O,EAAS4/I,EAAO,IAAInvQ,SAAwD,IAA9C/H,OAAOwB,KAAK81H,GAAUhkH,QAAQ4jQ,EAAO,KACnEhtQ,EAAMuhW,iBAAiBn0O,EAAS4/I,EAAO,KAAK,GAAO,CACnD,IAAIpiE,EAAM5qM,EAAMuhW,iBAAiBn0O,EAAS4/I,EAAO,KACjD5/I,EAAS4/I,EAAO,IAAIpiE,GAAOx9E,EAAS4/I,EAAO,IAAIpiE,GAAO02J,EAAWv1V,QAAQ,WAAY,IACzF,MAEIqhH,EAAS4/I,EAAO,IAAI/vQ,KAAKqkW,EAEjC,CACJ,IAEAxrW,OAAOwB,KAAK81H,GAAUl1H,SAAQ,SAAU4+V,IACF,IAA7ByE,EAAQnyV,QAAQ0tV,IACjByE,EAAQt+V,KAAK65V,EAErB,IACAyE,EAAQrjW,SAAQ,SAAU4+V,GACtBoK,EAASpK,GAAUA,KAAU1pO,EAAW0pO,EAAS,IAAM1pO,EAAS0pO,GAAQz8U,KAAK,KAAO,IAAMy8U,CAC9F,IACAhhW,OAAOwB,KAAK4pW,GAAUhpW,SAAQ,SAAUs1C,GAAM,OAAO2zT,EAAMlkW,KAAKikW,EAAS1zT,GAAM,IACxE2zT,EAAM9mV,KAAK,IACtB,EACA2mV,EAAejrW,UAAUwrW,iBAAmB,SAAUtgW,EAAO26V,GACzD,IAAK,IAAI78V,EAAI,EAAGA,EAAIkC,EAAMpD,OAAQkB,IAC9B,IAAqC,IAAjCkC,EAAMlC,GAAGqK,QAAQ,WACjB,QAAOwyV,GAAkB78V,EAGjC,OAAO68V,GAAmB,CAC9B,EAKAoF,EAAejrW,UAAUyrW,WAAa,SAAUC,GAE5C,MAAO,YADMA,EAAetqW,KAAI,SAAUivC,GAAS,OAAOk3T,GAAaY,SAAS93T,EAAQ,IAAG/rB,KAAK,KAClE,IAClC,EAKA2mV,EAAejrW,UAAUgkW,SAAW,SAAUh0V,GAC1C,OAAOhG,EAAOhK,UAAUgkW,SAAS9jW,KAAKiE,KAAM6L,EAAEvO,QAAO,SAAUumC,GAAQ,OAA8B,IAAvBA,EAAK30B,QAAQ,IAAa,IAC5G,EASA43V,EAAejrW,UAAUsvR,WAAa,SAAUozE,EAAI19Q,EAASu5G,GACnC,SAAlBA,EAASt6L,MAAqC,QAAlBs6L,EAASt6L,MAAoC,UAAlBs6L,EAASt6L,MAChE+gF,EAAQywB,iBAAiB,SAAU,yBAEvCzwB,EAAQywB,iBAAiB,SAAUtxG,KAAKzD,QAAQ6jI,OACpD,EAWA0mO,EAAejrW,UAAUkhW,gBAAkB,SAAU95V,EAAMq5V,EAAIv1V,EAAOoqG,EAAKtwB,EAAS29Q,GAChF,IAAIgJ,EAAW,iBACf,GAAK3mR,GAA4B,QAAjBA,EAAQ/gF,OAAoBE,KAAK+kW,SAAW9hW,EAAKukW,GAAW,CACxE,IAAIC,EAAUxkW,EAAKukW,GAAUl1V,MAAM,eACnCtS,KAAK+kW,QAAU0C,EAAQ,GACvBznW,KAAKilW,kBAAoBwC,EAAQ,EACrC,CACA,IACI3K,EAAMj8Q,GAAWA,EAAe,QAChCukR,EAAgBv/V,EAAOhK,UAAUwpW,qBAAqBtpW,KAAKiE,KAAMiD,EAAM8D,EAAOoqG,EAAKtwB,EAAS29Q,GAChG,GAAI4G,EACA,OAAOA,EAEX,IAAItvQ,EAAQ,KACR4xQ,EAAY,eACZ3gW,GAASA,EAAM02V,iBACXiK,KAAazkW,IACb6yF,EAAQ7yF,EAAKykW,IAGrBzkW,EAAQ+vQ,GAAkB/vQ,EAAKxH,OAAsBwH,EAAbA,EAAKxH,MAC7C,IAAI+d,EAAO,CAAC,EAIZ,OAHAA,EAAKs8E,MAAQA,EACbt8E,EAAKrT,OAASlD,EACdjD,KAAK4hW,mBAAmB9E,EAAK75V,EAAMuW,EAAM,KAAMzS,GACxC62V,GAAS8C,OAAO5qQ,GAASt8E,EAAKrT,OAAS,CAAEA,OAAQqT,EAAKrT,OAAQ2vF,MAAOA,EAAO6mQ,WAAYnjV,EAAKmjV,WACxG,CAEJ,CAjOoC,CAiOlCyG,IAQiC,SAAUv9V,GAEzC,SAAS8hW,IACL,OAAkB,OAAX9hW,GAAmBA,EAAOb,MAAMhF,KAAM+E,YAAc/E,IAC/D,CAHA+D,GAAU4jW,EAAe9hW,GAIzB8hW,EAAc9rW,UAAU+2R,cAAgB,WACpC,MAAO,eACX,EAOA+0E,EAAc9rW,UAAUkrF,OAAS,SAAUw3Q,EAAIt7V,EAAM68V,GACjD,MAAO,CACHhgW,KAAM,OACNgxC,IAAKytT,EAAG1B,WAAW/rT,IACnB7tC,KAAMqiE,KAAKC,UAAUtiE,GAE7B,EAQA0kW,EAAc9rW,UAAUwoE,OAAS,SAAUk6R,EAAIwB,EAAUtkW,EAAOqkW,GAC5D,MAAO,CACHhgW,KAAM,SACNgxC,IAAKytT,EAAG1B,WAAW/rT,IAAM,IAAMr1C,EAC/BwH,KAAMqiE,KAAKC,UAAU9pE,GAE7B,EAQAksW,EAAc9rW,UAAUwpE,OAAS,SAAUk5R,EAAIwB,EAAUtkW,EAAOqkW,GAC5D,MAAO,CACHhgW,KAAM,MACNgxC,IAAKytT,EAAG1B,WAAW/rT,IACnB7tC,KAAMqiE,KAAKC,UAAU9pE,GAE7B,EACAksW,EAAc9rW,UAAUyiW,aAAe,SAAUC,EAAIC,EAAS3yV,GAC1D,IAAI/F,EAAQ9F,KACRgmW,EAAcn6V,EAAEk4V,KAAOnG,GAASqI,QAAQjmW,KAAKzD,QAAQgnW,UACrDzyT,EAAMytT,EAAG1B,WAAW/rT,IAAIj/B,QAAQ,OAAQ,IAAM7R,KAAKzD,QAAQ6mN,OAC/Dv3M,EAAEilC,IAAM9wC,KAAKilW,kBAAoBjlW,KAAKilW,kBAAoBp5V,EAAEilC,IAmB5D,IAlBA,IAAIktT,EAAM,GACNzqF,EAAU,SAAU1uQ,EAAGsqB,GACvBqvU,EAAQG,aAAa3gW,SAAQ,SAAU65B,EAAG5zB,GACtC,IAAIgxG,EAEO,SAAUhyG,EAAM4B,EAAG5G,GAAO,MAAO,EAAI,EAGhD+/V,EAAIj7V,KAAK,KAAOijW,GAChBhI,EAAIj7V,KAAK,kDAAmD,IAC5Di7V,EAAIj7V,KAAK,cAAqBw7V,EAAG1B,WAAW0F,WAAahE,EAAG1B,WAAWqF,SAAWr2V,EAAEilC,KAC9EmkE,EAASupP,EAAQG,aAAc95V,EAAGgH,EAAE5N,KAAO,aACjD+/V,EAAIj7V,KAAK,iDACTi7V,EAAIj7V,KAAK,SAAWusD,SAASmkD,MAC7BuqP,EAAIj7V,KAAK,GAAI80B,EAAIytC,KAAKC,UAAU1tC,GAAK,GACzC,GACJ,EAEShzB,EAAI,EAAGsqB,EAAIqvU,EAAQG,aAAah7V,OAAQkB,EAAIsqB,EAAGtqB,IACpD0uQ,EAAQ1uQ,GAEZ,IAAI+iW,EAAU,SAAU/iW,EAAGsqB,GACvBqvU,EAAQI,eAAe5gW,SAAQ,SAAU65B,EAAG5zB,GAE1B6B,EAAMvJ,QAAQqnW,WAD5B,IAAI3uP,EAEO,SAAUhyG,EAAM4B,EAAG5G,GAAO,MAAO,EAAI,EAGhD+/V,EAAIj7V,KAAK,KAAOijW,GAChBhI,EAAIj7V,KAAK,kDAAmD,IAC5Di7V,EAAIj7V,KAAK,aAAoBw7V,EAAG1B,WAAW4F,WAAalE,EAAG1B,WAAWqF,SAAWr2V,EAAEilC,KAC7EmkE,EAASupP,EAAQI,eAAgB/5V,EAAGgH,EAAE5N,KAAO,aACnD+/V,EAAIj7V,KAAK,iDACTi7V,EAAIj7V,KAAK,SAAWusD,SAASmkD,MAC7BuqP,EAAIj7V,KAAK,GAAI80B,EAAIytC,KAAKC,UAAU1tC,GAAK,GACzC,GACJ,EAEA,IAAShzB,EAAI,EAAGsqB,EAAIqvU,EAAQI,eAAej7V,OAAQkB,EAAIsqB,EAAGtqB,IACtD+iW,EAAQ/iW,GAEZ,IAAIgjW,EAAU,SAAUhjW,EAAGsqB,GACvBqvU,EAAQE,eAAe1gW,SAAQ,SAAU65B,EAAG5zB,GACxC,IAAI6mG,EAEO,SAAU7nG,EAAM4B,EAAG5G,GACtB,IAAI6yC,EAAM8sT,GAASlqQ,UAAUz1F,EAAKgF,EAAK4B,IACvC,MAAmB,kBAARisC,GAAoB8sT,GAAS1jR,MAAMgqR,OAAOpzT,GAC1C,IAAMA,EAERA,aAAe34B,KAEb,IADOlV,EAAK4B,GAAG5G,GACDipC,SAGd,KAAO4J,EAAM,GAE5B,EAGJktT,EAAIj7V,KAAK,KAAOijW,GAChBhI,EAAIj7V,KAAK,kDAAmD,IAC5Di7V,EAAIj7V,KAAK,gBAAuBw7V,EAAG1B,WAAWsF,WAAa5D,EAAG1B,WAAWqF,SAAWr2V,EAAEilC,KAChFg6D,EAAU0zP,EAAQE,eAAgB75V,EAAGgH,EAAE5N,KAAO,aACpD+/V,EAAIj7V,KAAK,iDACTi7V,EAAIj7V,KAAK,SAAWusD,SAASmkD,MAC7BuqP,EAAIj7V,KAAK,GAAI80B,EAAIytC,KAAKC,UAAU1tC,GAAK,GACzC,GACJ,EAEA,IAAShzB,EAAI,EAAGsqB,EAAIqvU,EAAQE,eAAe/6V,OAAQkB,EAAIsqB,EAAGtqB,IACtDgjW,EAAQhjW,GAGZ,OADAm5V,EAAIj7V,KAAK,KAAOijW,EAAc,KAAM,IAC7B,CACHlmW,KAAM,OACNgxC,IAAKA,EACLskE,YAAa,6BAA+B4wP,EAC5C/iW,KAAM+6V,EAAI79U,KAAK,QAEvB,EASAwnV,EAAc9rW,UAAUsvR,WAAa,SAAUozE,EAAI19Q,EAASu5G,GACxDv5G,EAAQywB,iBAAiB,SAAU,iDACvC,EAWAq2P,EAAc9rW,UAAUkhW,gBAAkB,SAAU95V,EAAMq5V,EAAIv1V,EAAOoqG,EAAKtwB,EAAS29Q,GAC/E,IACI1B,EAAMj8Q,GAAWA,EAAe,QAChCiV,EAAQ,KACRt8E,EAAO,CAAC,EACZ,GAAIqnE,GAA0C,SAA/BA,EAAQ/gF,KAAK2N,cAA0B,CAClD,IAAI63V,EAAen0P,GAAOtwB,EAAQouB,kBAAkB,sBAChD58F,EAAWizV,GAAgB/tV,SAAS+tV,EAAc,KAAQ,EAC1Dv+V,GAASA,EAAM02V,kBACVG,GAAS8C,OAAOz9V,EAAK6kW,SACtBhyQ,EAAQ7yF,EAAK6kW,QAGjBz1V,EAAU,GAAKpP,EAAK8kW,QACpB9kW,EAAOA,EAAK8kW,OAEhBvuV,EAAKs8E,MAAQA,EACbt8E,EAAKrT,OAASlD,EACdjD,KAAK4hW,mBAAmB9E,EAAK75V,EAAMuW,EAAM,KAAMzS,EACnD,CAEA,OADAyS,EAAKrT,OAASqT,EAAKrT,QAAUlD,EACtB26V,GAAS8C,OAAO5qQ,GAASt8E,EAAKrT,OAAS,CAAEA,OAAQqT,EAAKrT,OAAQ2vF,MAAOt8E,EAAKs8E,MAAO6mQ,WAAYnjV,EAAKmjV,WAC7G,CAEJ,CApLmC,CAoLjCyG,IAMoC,SAAUv9V,GAE5C,SAASmiW,IACL,OAAkB,OAAXniW,GAAmBA,EAAOb,MAAMhF,KAAM+E,YAAc/E,IAC/D,CAHA+D,GAAUikW,EAAkBniW,GAY5BmiW,EAAiBnsW,UAAUohW,aAAe,SAAUsB,EAAIx3V,EAAOk5V,GAC3D,IAAIvtV,GAAM,IAAIstV,IAAa/C,aAAasB,EAAIx3V,EAAOk5V,GAE/Ch9V,EAAO26V,GAAS1jR,MAAMsnR,UAAU9uV,EAAW,MAC3CvM,EAAS,CAAC,EAEd,GAAIlD,EAAKm0I,MACL,IAAK,IAAIvyI,EAAI,EAAGA,EAAI5B,EAAKm0I,MAAMzzI,OAAQkB,IAAK,CACxC,IAAIuyI,EAAQn0I,EAAKm0I,MAAMvyI,GACnB5G,EAAMrC,OAAOwB,KAAKg6I,GAAO,GAC7BjxI,EAAOlI,GAAOm5I,EAAMn5I,EACxB,CAEJkI,EAAY,MAAIlD,EAGhB,MAAO,CACHA,KAAMqiE,KAAKC,UAAUp/D,GACrB2qC,IAAKp+B,EAAO,IACZquV,QAASruV,EAAW,QACpB5S,KAAM,OACNs1G,YAAa,kCAErB,CAEJ,CAtCsC,CAsCpC4qP,IAOqC,SAAUn6V,GAK7C,SAASghW,IACL,IAAI/gW,EAAQD,EAAO9J,KAAKiE,OAASA,KAEjC,OADAukE,GAAS,aAAcy7R,GAAWnkW,UAAUsvR,WAAYrlR,GACjDA,CACX,CAiGA,OAzGA/B,GAAU8iW,EAAmBhhW,GAS7BghW,EAAkBhrW,UAAUkrF,OAAS,SAAUw3Q,EAAIt7V,EAAM68V,EAAW/4V,EAAOiN,GAGvE,OAFAhU,KAAK88V,IAAI9oV,SAAWA,EACpBhU,KAAK4jW,WAAa,MACX,CACH9yT,IAAKytT,EAAG1B,WAAW0F,WAAahE,EAAG1B,WAAWqF,SAAW3D,EAAG1B,WAAW/rT,IACvE7tC,KAAMqiE,KAAKC,UAAUrpD,GAAO,CAAC,EAAG,CAC5BzgB,MAAOwH,EACPk8E,MAAO2gR,EACPv3V,OAAQ,UACTq1V,GAAS0E,aAAatiW,KAAMu+V,EAAIx3V,KAE3C,EACA8/V,EAAkBhrW,UAAUwoE,OAAS,SAAUk6R,EAAIwB,EAAUrjW,EAAKojW,EAAW/4V,GAEzE,OADAlB,EAAOhK,UAAUwoE,OAAOtoE,KAAKiE,KAAMu+V,EAAIwB,EAAUrjW,GAC1C,CACHoD,KAAM,OACNgxC,IAAKytT,EAAG1B,WAAWsF,WAAa5D,EAAG1B,WAAWqF,SAAW3D,EAAG1B,WAAW/rT,IACvE7tC,KAAMqiE,KAAKC,UAAUrpD,GAAO,CAAC,EAAG,CAC5Bje,IAAKvB,EACL8lW,UAAWzC,EACX5gR,MAAO2gR,EACPv3V,OAAQ,UACTq1V,GAAS0E,aAAatiW,KAAMu+V,EAAIx3V,KAE3C,EACA8/V,EAAkBhrW,UAAUwpE,OAAS,SAAUk5R,EAAIwB,EAAUrjW,EAAKojW,EAAW/4V,GAGzE,OAFA/G,KAAK4jW,WAAa,SAClB5jW,KAAKioW,UAAYlI,EACV,CACHjgW,KAAM,OACNgxC,IAAKytT,EAAG1B,WAAW4F,WAAalE,EAAG1B,WAAWqF,SAAW3D,EAAG1B,WAAW/rT,IACvE7tC,KAAMqiE,KAAKC,UAAUrpD,GAAO,CAAC,EAAG,CAC5BzgB,MAAOiB,EACP6L,OAAQ,SACRi6V,UAAWzC,EACX9hW,IAAKvB,EAAIqjW,GACT5gR,MAAO2gR,GACRlC,GAAS0E,aAAatiW,KAAMu+V,EAAIx3V,KAE3C,EACA8/V,EAAkBhrW,UAAUkhW,gBAAkB,SAAU95V,EAAMq5V,EAAIv1V,EAAOoqG,EAAKtwB,EAAS29Q,EAAS3yV,GAC5F,IAAIhH,EAUJ,GARA5B,EAA0B,WADZ49E,EAAUvb,KAAK4U,MAAM2G,EAAQ59E,MAAQA,GACpCsF,OAAqBq1V,GAAS1jR,MAAMsnR,UAAUv+V,GAAQA,EAC7C,QAApBjD,KAAK4jW,YACL/9V,EAAOhK,UAAUkrF,OAAOhrF,KAAKiE,KAAMs8V,EAAIr5V,EAAM,KAAM,KAAMjD,KAAK88V,IAAI9oV,UAE9C,WAApBhU,KAAK4jW,YACL/9V,EAAOhK,UAAUwpE,OAAOtpE,KAAKiE,KAAMs8V,EAAIt8V,KAAKioW,UAAWhlW,GAE3DjD,KAAK4jW,gBAAatjW,EACd2C,EAAKo/V,MACL,IAAKx9V,EAAI,EAAGA,EAAI5B,EAAKo/V,MAAM1+V,OAAQkB,IAC/BgB,EAAOhK,UAAUkrF,OAAOhrF,KAAKiE,KAAMs8V,EAAIr5V,EAAKo/V,MAAMx9V,IAG1D,GAAI5B,EAAKm/V,QACL,IAAKv9V,EAAI,EAAGA,EAAI5B,EAAKm/V,QAAQz+V,OAAQkB,IACjCgB,EAAOhK,UAAUwpE,OAAOtpE,KAAKiE,KAAMs8V,EAAIzwV,EAAE5N,IAAKgF,EAAKm/V,QAAQv9V,IAGnE,GAAI5B,EAAKmkE,QACL,IAAKviE,EAAI,EAAGA,EAAI5B,EAAKmkE,QAAQzjE,OAAQkB,IACjCgB,EAAOhK,UAAUwoE,OAAOtoE,KAAKiE,KAAMs8V,EAAIzwV,EAAE5N,IAAKgF,EAAKmkE,QAAQviE,IAGnE,OAAO5B,CACX,EASA4jW,EAAkBhrW,UAAUyiW,aAAe,SAAUC,EAAIC,EAAS3yV,EAAG9E,EAAOi7V,GACxE,MAAO,CACHliW,KAAM,OACNgxC,IAAKytT,EAAG1B,WAAWoF,UAAY1D,EAAG1B,WAAWqF,SAAW3D,EAAG1B,WAAW/rT,IACtEskE,YAAa,kCACbk2K,SAAU,OACVroR,KAAMqiE,KAAKC,UAAUrpD,GAAO,CAAC,EAAG,CAC5BkmV,QAAS5D,EAAQI,eACjByD,MAAO7D,EAAQG,aACfv3R,QAASo3R,EAAQE,eACjBn2V,OAAQ,QACR42E,MAAOtzE,EAAEilC,IACT7yC,IAAK4N,EAAE5N,KACR2/V,GAAS0E,aAAatiW,KAAMu+V,EAAIx3V,KAE3C,EACA8/V,EAAkBhrW,UAAUsnW,UAAY,SAAU5mW,IAC9B,IAAIyjW,IACVmD,UAAU5mW,EACxB,EACOsqW,CACX,CA3GuC,CA2GrC7J,KAMEkL,GAAmC,SAAUriW,GAE7C,SAASqiW,EAAkBx3V,GACvB,IAAI5K,EAAQD,EAAO9J,KAAKiE,OAASA,KAUjC,OARA8F,EAAMvJ,QAAU2f,GAAO,CAAC,EAAGpW,EAAMvJ,QAAS,CACtCu2D,QAAS,IAAIn7C,SACbwwV,UAAW,IAAIxwV,SACfywV,aAAc,IAAIzwV,SAClB0wV,aAAc,IAAI1wV,SAClB2wV,YAAa,IAAI3wV,WAErBuE,GAAOpW,EAAMvJ,QAASmU,GAAS,CAAC,GACzB5K,CACX,CAIA,OAjBA/B,GAAUmkW,EAAmBriW,GAc7BqiW,EAAkBrsW,UAAU+2R,cAAgB,WACxC,MAAO,mBACX,EACOs1E,CACX,CAnBuC,CAmBrClI,IAiIEuI,IA1HgC,SAAU1iW,GAE1C,SAAS2iW,EAAejsW,GACpB,IAAIuJ,EAAQD,EAAO9J,KAAKiE,OAASA,KAMjC,OALA8F,EAAM4jO,IAAMntO,EACZuJ,EAAM+jO,OAAS/jO,EAAM4jO,IAAI31J,SACzBjuE,EAAMiB,MAAQjB,EAAM4jO,IAAI3iO,MACxBjB,EAAM2iW,aAAe3iW,EAAM4jO,IAAI++H,aAAe3iW,EAAM4jO,IAAI++H,aAAe,WAAc,EACrF3iW,EAAM4iW,SAAW,WAAc,OAAO5iW,EAAMiB,KAAO,EAC5CjB,CACX,CATA/B,GAAUykW,EAAgB3iW,GAU1B2iW,EAAe3sW,UAAU+2R,cAAgB,WACrC,MAAO,gBACX,EAMA41E,EAAe3sW,UAAUohW,aAAe,SAAU0L,EAAa5hW,GAC3D,IAAI6hW,EAAW/iW,EAAOhK,UAAUohW,aAAaj4V,MAAMhF,KAAM+E,WACrDw5V,EAAKj5R,KAAK4U,MAAM0uR,EAAS3lW,MAIzBy5B,EAAO,CAAC,EAFD,CAAC,OAAQ,OAAQ,SAAU,QAAS,SAAU,QACrD,SAAU,iBAAkB,aAAc,UAGzCp/B,QAAO,SAAUuO,GAClB6wB,EAAK7wB,GAFC,oBAEQqD,QAAQrD,IAAM,EAAIy5D,KAAKC,UAAUg5R,EAAG1yV,IAAM0yV,EAAG1yV,EAC/D,IACA,IAAIg9V,EAAO7oW,KAAKyoW,gBAAkB,CAAC,EACnCI,EAAkB,YAAInsU,EACtB,IAAIz5B,EAAOqiE,KAAKC,UAAU,CACtBx+D,MAAO/G,KAAK0oW,WACZv+I,UAAW0+I,IAGf,OADAD,EAAS3lW,KAAOA,EACT2lW,CACX,EAWAJ,EAAe3sW,UAAUkhW,gBAAkB,SAAU+L,EAASxM,EAAIv1V,EAAOoqG,EAAKtwB,GAC1E,IACIiV,EACA6mQ,EAFA3gV,EAAM8sV,EAGN3iW,EAASg+D,GAASnkE,KAAK6pO,OAAO1jO,OAAQ6V,EAAI/Y,MAC1CjD,KAAK6pO,OAAO/zI,QACZA,EAAQ3xB,GAASnkE,KAAK6pO,OAAO/zI,MAAO95E,EAAI/Y,OAExCjD,KAAK6pO,OAAO8yH,aAEZA,EAAc3pF,GADd2pF,EAAax4R,GAASnkE,KAAK6pO,OAAO8yH,WAAY3gV,EAAI/Y,OACmC05V,EAAvCiB,GAAS1jR,MAAMsnR,UAAU7E,IAE3E,IAAIG,EAAMj8Q,EAAQkgR,SAAW,CAAC,EAC1BvnV,EAAO,CAAErT,OAAQA,EAAQw2V,WAAYA,GACrC15V,EAAOuW,EAIX,OAHIsjV,GAAOA,EAAIpyP,QAAUoyP,EAAIpyP,OAAO/mG,QAChC3D,KAAK4hW,mBAAmB9E,EAAK75V,EAAMuW,EAAM,KAAMzS,GAE3CisQ,GAAkBl9K,GAAyEt8E,EAAKrT,OAArE,CAAEA,OAAQqT,EAAKrT,OAAQ2vF,MAAOA,EAAO6mQ,WAAYA,EACxF,EAIA6L,EAAe3sW,UAAUkrF,OAAS,WAC9B,IAAIirK,EAAWnsP,EAAOhK,UAAUkrF,OAAO/hF,MAAMhF,KAAM+E,WACnD,OAAO/E,KAAK+oW,iBAAiB/2G,EAAU,SAC3C,EAIAw2G,EAAe3sW,UAAUwpE,OAAS,WAC9B,IAAI2sL,EAAWnsP,EAAOhK,UAAUwpE,OAAOrgE,MAAMhF,KAAM+E,WACnD,OAAO/E,KAAK+oW,iBAAiB/2G,EAAU,SAC3C,EAIAw2G,EAAe3sW,UAAUwoE,OAAS,WAC9B,IAAI2tL,EAAWnsP,EAAOhK,UAAUwoE,OAAOr/D,MAAMhF,KAAM+E,WACnD,OAAO/E,KAAK+oW,iBAAiB/2G,EAAU,SAC3C,EAUAw2G,EAAe3sW,UAAUyiW,aAAe,SAAUC,EAAIC,EAAS3yV,EAAG9E,EAAOi7V,GACrE,IAAI5+I,EAAQv9M,EAAOhK,UAAUyiW,aAAat5V,MAAMhF,KAAM+E,WAClDikW,EAAQ1jS,KAAK4U,MAAMkpI,EAAMngN,MAG7B,OAFA+lW,EAAM/qW,IAAM4N,EAAE5N,IACdmlN,EAAMngN,KAAOqiE,KAAKC,UAAUyjS,GACrBhpW,KAAK+oW,iBAAiB3lJ,EAAO,QACxC,EACAolJ,EAAe3sW,UAAUktW,iBAAmB,SAAUE,EAAU1gW,GAC5D,IAAI62N,EAAS95J,KAAK4U,MAAM+uR,EAAShmW,MAKjC,OAJAgmW,EAAShmW,KAAOqiE,KAAKC,UAAU,CAC3Bx+D,MAAO/G,KAAK0pO,IAAIw/H,YAAY3gW,GAC5B4hN,UAAWiV,IAER6pI,CACX,CAEJ,CAnHoC,CAmHlCjJ,IAOgC,SAAUn6V,GASxC,SAAS0iW,EAAaY,EAAStoN,EAAW2+M,GACtC,IAAI15V,EAAQD,EAAO9J,KAAKiE,OAASA,KACjC8F,EAAMsjW,cAAe,EACrBtjW,EAAMujW,gBAAiB,EAClBr2F,GAAkBm2F,KACnBrjW,EAAMwjW,aAAeH,GAEzBrjW,EAAM05V,SAAWA,EACjB15V,EAAMyjW,OAAS3L,GAASqI,QAAQ,gBAEhC9+V,OAAOw6O,aAAa2I,QAAQxkP,EAAMyjW,OAAQjkS,KAAKC,UADrC,CAAEnoE,KAAM,GAAImkE,QAAS,MAE/B,IAAIwiS,EAAOj+V,EAAMyjW,OAsBjB,OArBKv2F,GAAkBnyH,IACnBja,aAAY,WACR,IAAI3jI,EACJA,EAAO26V,GAAS1jR,MAAMsnR,UAAUr6V,OAAOw6O,aAAaC,QAAQmiH,IAE5D,IADA,IAAIyF,EAAS,GACJ3kW,EAAI,EAAGA,EAAI5B,EAAKs+D,QAAQ59D,OAAQkB,IAAK,CAC1C,IAAI4kW,GAAe,IAAItxV,KACnBuxV,GAAe,IAAIvxV,KAAKlV,EAAKs+D,QAAQ18D,GAAGg8I,WAC5C59I,EAAKs+D,QAAQ18D,GAAGg8I,UAAY4oN,EAAcC,EACtCD,EAAcC,EAAc7oN,GAC5B2oN,EAAOzmW,KAAK8B,EAEpB,CACA,IAASA,EAAI,EAAGA,EAAI2kW,EAAO7lW,OAAQkB,IAC/B5B,EAAKs+D,QAAQn5D,OAAOohW,EAAO3kW,GAAI,GAC/B5B,EAAK7F,KAAKgL,OAAOohW,EAAO3kW,GAAI,GAEhCsC,OAAOw6O,aAAaoB,WAAWghH,GAC/B58V,OAAOw6O,aAAa2I,QAAQy5G,EAAMz+R,KAAKC,UAAUtiE,GACrD,GAAG49I,GAEA/6I,CACX,CAoJA,OA9LA/B,GAAUwkW,EAAc1iW,GAiDxB0iW,EAAa1sW,UAAU8tW,YAAc,SAAU74T,EAAK/pC,GAChD,IAAI4B,EAAU3I,KAAKkgW,gBAAgBn5V,GAC/Bo5V,EAAUl5I,GAAMm5I,iBAAiBr5V,EAAM4B,QAAS,CAAC,WAAY,SAAU,SAAU,SAAU,YAC3F1K,EAAM6yC,EACNutB,EAAO,SACPA,KAAQ8hS,IACRliW,GAAOkiW,EAAQ9hS,GAAM1K,WAEzBhrD,EAAQ03V,MAAMriW,SAAQ,SAAU0U,GAC5BzU,GAAOyU,EAAI7G,EAAEi3B,UAAYpwB,EAAI7G,EAAEsiH,SACnC,IACAxlH,EAAQ+hG,OAAO1sG,SAAQ,SAAU0U,GAC7BzU,GAAOyU,EAAI7G,EAAEsiH,SACjB,IACAxlH,EAAQ23V,SAAStiW,SAAQ,SAAU0U,GAC/BzU,GAAOyU,EAAI7G,EAAEozV,SACjB,IACA,IAAK,IAAI3hW,EAAS,EAAGA,EAASqL,EAAQ+3M,QAAQ/8M,OAAQrG,IAAU,CAC5D,IAAIssW,EAAgBjhW,EAAQ+3M,QAAQpjN,GACpC,GAAIssW,EAAc/9V,EAAE44V,UAAW,CAC3B,IAAIoF,EAAW9iW,EAAMvK,QACrBqtW,EAASlhW,QAAU,GACnB,IAAK,IAAI9D,EAAI,EAAGA,EAAI+kW,EAAc/9V,EAAEsuN,WAAWx2N,OAAQkB,IACnDglW,EAASlhW,QAAQ5F,KAAK,CAAEyG,GAAI,UAAWqC,EAAG+9V,EAAc/9V,EAAEsuN,WAAWt1N,GAAIvH,OAAQyJ,EAAM4B,QAAQrL,SAEnGW,GAAO2rW,EAAc/9V,EAAE24V,UAAYxkW,KAAK2pW,YAAY74T,EAAK+4T,EAC7D,MAEI5rW,GAAO2rW,EAAc/9V,EAAEqgC,MAAQ09T,EAAc/9V,EAAEg/F,SAAW++P,EAAc/9V,EAAEpQ,KAElF,CACA,OAAOwC,CACX,EAQAsqW,EAAa1sW,UAAUohW,aAAe,SAAUsB,EAAIx3V,EAAOk5V,GACvD,IACI6J,EADA7rW,EAAM+B,KAAK2pW,YAAYpL,EAAG1B,WAAW/rT,IAAK/pC,GAG1C9D,GADJ6mW,EAAclM,GAAS1jR,MAAMsnR,UAAUr6V,OAAOw6O,aAAaC,QAAQ5hP,KAAKupW,UAC/CO,EAAYvoS,QAAQuoS,EAAY1sW,KAAK8R,QAAQjR,IAAQ,KAC9E,OAAY,MAARgF,GAAiBjD,KAAKopW,cAAiBppW,KAAKqpW,gBAGhDrpW,KAAKopW,aAAe,KACpBppW,KAAKqpW,eAAiB,KACfrpW,KAAKspW,aAAarM,aAAaj4V,MAAMhF,KAAKspW,aAAc,GAAGz0V,MAAM9Y,KAAKgJ,UAAW,KAJ7E9B,CAKf,EAWAslW,EAAa1sW,UAAUkhW,gBAAkB,SAAU95V,EAAMq5V,EAAIv1V,EAAOoqG,EAAKtwB,EAAS29Q,GAC9E,GAAIx+V,KAAKqpW,gBAAmBxoR,GAAW7gF,KAAKspW,aAAa/sW,QAAQ6mN,OAC7Dw6I,GAAS/xR,SAASgV,EAAQ/vC,IAAK9wC,KAAKspW,aAAa/sW,QAAQ6mN,QAAyC,SAA/BviI,EAAQ/gF,KAAK2N,cAChF,OAAOzN,KAAKspW,aAAavM,gBAAgB95V,EAAMq5V,EAAIv1V,EAAOoqG,EAAKtwB,EAAS29Q,GAE5Ev7V,EAAOjD,KAAKspW,aAAavM,gBAAgB/3V,MAAMhF,KAAKspW,aAAc,GAAGz0V,MAAM9Y,KAAKgJ,UAAW,IAC3F,IAAI9G,EAAM8I,EAAQ/G,KAAK2pW,YAAYrN,EAAGO,WAAW/rT,IAAK/pC,GAASu1V,EAAGO,WAAW/rT,IACzEp+B,EAAM,CAAC,EAEP9D,GADJ8D,EAAMkrV,GAAS1jR,MAAMsnR,UAAUr6V,OAAOw6O,aAAaC,QAAQ5hP,KAAKupW,UAChDnsW,KAAK8R,QAAQjR,GAM7B,KALe,IAAX2Q,IACA8D,EAAI6uD,QAAQn5D,OAAOwG,EAAO,GAC1B8D,EAAItV,KAAKgL,OAAOwG,EAAO,IAE3B8D,EAAI6uD,QAAQ7uD,EAAItV,KAAK2F,KAAK9E,GAAO,GAAK,CAAEb,KAAMa,EAAKkI,OAAQlD,EAAKkD,OAAQ06I,UAAW,IAAI1oI,KAAQ29E,MAAO7yF,EAAK6yF,OACpGpjF,EAAI6uD,QAAQ59D,OAAS3D,KAAKw/V,UAC7B9sV,EAAI6uD,QAAQn5D,OAAO,EAAG,GACtBsK,EAAItV,KAAKgL,OAAO,EAAG,GAGvB,OADAjB,OAAOw6O,aAAa2I,QAAQtqP,KAAKupW,OAAQjkS,KAAKC,UAAU7yD,IACjDzP,CACX,EAOAslW,EAAa1sW,UAAUsvR,WAAa,SAAUozE,EAAI19Q,EAASu5G,IAClD44E,GAAkBhzQ,KAAKspW,aAAa/sW,QAAQ6mN,QAAUw6I,GAAS/xR,SAASuuH,EAAStpJ,IAAK9wC,KAAKspW,aAAa/sW,QAAQ6mN,QAC9E,SAAhChpB,EAASt6L,KAAK2N,eACjBozE,EAAQywB,iBAAiB,SAAUtxG,KAAKspW,aAAa/sW,QAAQ8mW,iBAE5D9E,EAAG1B,WAAWkN,aACflpR,EAAQywB,iBAAiB,SAAUtxG,KAAKspW,aAAa/sW,QAAQ6jI,OAErE,EAQAmoO,EAAa1sW,UAAUwpE,OAAS,SAAUk5R,EAAIwB,EAAUtkW,EAAOqkW,GAE3D,OADA9/V,KAAKopW,cAAe,EACbppW,KAAKspW,aAAajkS,OAAOk5R,EAAIwB,EAAUtkW,EAAOqkW,EACzD,EAOAyI,EAAa1sW,UAAUkrF,OAAS,SAAUw3Q,EAAIt7V,EAAM68V,GAEhD,OADA9/V,KAAKqpW,gBAAiB,EACfrpW,KAAKspW,aAAaviR,OAAOw3Q,EAAIt7V,EAAM68V,EAC9C,EAQAyI,EAAa1sW,UAAUwoE,OAAS,SAAUk6R,EAAIwB,EAAUtkW,EAAOqkW,GAE3D,OADA9/V,KAAKopW,cAAe,EACbppW,KAAKspW,aAAajlS,OAAOk6R,EAAIwB,EAAUtkW,EAAOqkW,EACzD,EAQAyI,EAAa1sW,UAAUyiW,aAAe,SAAUC,EAAIC,EAAS3yV,GACzD,OAAO7L,KAAKspW,aAAahL,aAAaC,EAAIC,EAAS3yV,EACvD,EACO08V,CACX,CAhMkC,CAgMhCvI,KC/2EEgK,GAA6B,WAQ7B,SAASA,EAAYnN,EAAY91V,EAAOoiW,GACpC,IAaIlmW,EAbA6C,EAAQ9F,KAkFZ,OAhFAA,KAAK4lW,WAAY,EAEjB5lW,KAAKuhW,kBAAmB,EACxBvhW,KAAKu3K,SAAW,GACXslL,GAAe78V,KAAK68V,aACrBA,EAAa,IAEjBsM,EAAUA,GAAWtM,EAAWsM,QAC5BtM,IAA8C,IAAhCA,EAAW0E,mBACzBvhW,KAAKuhW,iBAAmB1E,EAAW0E,kBAGnC1E,aAAsBlgW,MACtBsG,EAAO,CACHk6V,KAAMN,EACNoN,SAAS,GAGc,kBAAfpN,GACPA,EAAWM,OACZN,EAAWM,KAAO,IAEtBl6V,EAAO,CACH6tC,IAAK+rT,EAAW/rT,IAChByxT,UAAW1F,EAAW0F,UACtBJ,UAAWtF,EAAWsF,UACtBM,UAAW5F,EAAW4F,UACtBP,QAASrF,EAAWqF,QACpBD,SAAUpF,EAAWoF,SACrB9E,KAAMN,EAAWM,KACjBzvP,QAASmvP,EAAWnvP,QACpB0yB,OAAQy8N,EAAWz8N,OACnBn9H,KAAM45V,EAAW55V,KACjBinW,mBAAoBrN,EAAWqN,mBAC/BC,gBAAiBtN,EAAWsN,gBAC5BC,cAAevN,EAAWuN,cAC1B7N,YAAaM,EAAWN,YACxBt+V,IAAK4+V,EAAW5+V,IAChB8rW,YAAalN,EAAWkN,YACxBM,MAAOxN,EAAWwN,MAClB/+E,SAAUuxE,EAAWvxE,SACrB2+E,aAAgC3pW,IAAvBu8V,EAAWoN,QAAwBpN,EAAWoN,UACjDpN,EAAWsM,mBAAmBtC,IAAqBhK,EAAWsM,mBAAmBjB,MACvErL,EAAW/rT,IAC3B00T,eAAgB3I,EAAW2I,iBAI/B5H,GAAS/oI,WAAW,uCAEIv0N,IAAxB2C,EAAKuiW,gBAAiC5H,GAAS0M,WAC/CrnW,EAAKuiW,iBAAiBxyF,GAAkB/vQ,EAAK8mW,cAAsB9mW,EAAK8mW,kBAEtDzpW,IAAlB2C,EAAKqoR,WACLroR,EAAKqoR,SAAW,QAEpBtrR,KAAK68V,WAAa55V,EAClBjD,KAAKuqW,aAAexjW,EAChB9D,EAAK6tC,KAAO7tC,EAAKgnW,UAAYhnW,EAAKk6V,KAAKx5V,QACvC3D,KAAKwqW,iBAAkB,EACvBxqW,KAAKmpW,QAAUA,GAAW,IAAI/F,GAC9BpjW,KAAK68V,WAAWoN,SAAU,EAC1BjqW,KAAKm/D,MAAQn/D,KAAKyqW,aAAa1jW,GAAS,IAAIkgN,IAC5CjnN,KAAKm/D,MAAMvR,MAAK,SAAU/hD,GACtB/F,EAAM+2V,WAAWoN,SAAU,EAC3BnkW,EAAM0kW,iBAAkB,EACxBvnW,EAAKk6V,KAAOtxV,EAAE1F,OACdL,EAAMqjW,QAAU,IAAInM,EACxB,KAGAh9V,KAAKmpW,QAAUlmW,EAAKgnW,QAAU,IAAIjN,GAAgB,IAAIoG,IAErDngW,EAAKonW,OAASrqW,KAAKmpW,mBAAmB/F,KACvCngW,EAAKonW,MAAQ,YAEjBrqW,KAAKmpW,QAAUA,GAAWnpW,KAAKmpW,QAC3BlmW,EAAKmnW,gBACLpqW,KAAKmpW,QAAU,IAAIZ,GAAavoW,KAAKmpW,QAASlmW,EAAKinW,mBAAoBjnW,EAAKknW,kBAEzEnqW,IACX,CAmbA,OA9aAgqW,EAAYnuW,UAAU6uW,gBAAkB,SAAU3jW,GAE9C,OADA/G,KAAKuqW,aAAexjW,EACb/G,IACX,EAKAgqW,EAAYnuW,UAAU8uW,aAAe,SAAU5jW,GACtC/G,KAAKuqW,cAAkBxjW,aAAiBkgN,IACzC22I,GAAS/oI,WAAW,iEAEnB70N,KAAK68V,WAAWM,MACjBS,GAAS/oI,WAAW,mEAExB9tN,EAAQA,GAAS/G,KAAKuqW,aACtB,IAAIpkW,EAASnG,KAAKmpW,QAAQlM,aAAaj9V,KAAM+G,GAC7C,GAAIA,EAAM6jW,SAAU,CAChB,IAAI9rV,EAAO/X,EAAM6jW,SAAS1J,UACtB2J,EAAS9jW,EAAM6jW,SAASE,QACxB9uV,EAAMjV,EAAM02V,gBAAkBt3V,EAAOA,OACrCA,EACA0kW,GAAUA,aAAkBluW,OAC5BihW,GAASmN,eAAehkW,EAAM6jW,SAASlI,KAAM5jV,EAAM9C,EAAK6uV,EAAQ9jW,EAAM6jW,SAAS3sW,KAEnF,IAAK,IAAI45B,EAAI,EAAGA,EAAI7b,EAAIrY,OAAQk0B,IACxB7b,EAAI6b,GAAG/Y,aAAiBniB,QACxBqf,EAAI6b,GAAK3b,GAAO,CAAC,EAAG,CAAC,EAAGF,EAAI6b,IAC5B7b,EAAI6b,GAAG/Y,GAAQ9e,KAAKmpW,QAAQpM,gBAAgBh2V,EAAM6jW,SAASI,MAAM,IAAIhB,EAAYhuV,EAAI6b,GAAG/Y,GAAMjK,MAAM,KAAK81V,eAAgB3qW,KAAM+G,GAG3I,CACA,OAAO/G,KAAKmpW,QAAQpM,gBAAgB52V,EAAQnG,KAAM+G,EACtD,EASAijW,EAAYnuW,UAAU4uW,aAAe,SAAU1jW,EAAOlF,EAAM21R,EAAMyzE,GAC9D,IAAInlW,EAAQ9F,KACRkrW,EAAc,cACG,oBAAVnkW,IACPkkW,EAASzzE,EACTA,EAAO31R,EACPA,EAAOkF,EACPA,EAAQ,MAEPA,IACDA,EAAQ/G,KAAKuqW,cAEXxjW,aAAiBkgN,IACnB22I,GAAS/oI,WAAW,iEAExB,IAAIs2I,EAAW,IAAIC,GACf5xV,EAAO,CAAEzS,MAAOA,GACpB,IAAK/G,KAAK68V,WAAWoN,cAAoC3pW,IAAxBN,KAAK68V,WAAW/rT,KAA6C,KAAxB9wC,KAAK68V,WAAW/rT,MAC7EkiO,GAAkBhzQ,KAAKmpW,QAAQ+B,KAAkBlrW,KAAKqrW,oBAAoBrrW,KAAKmpW,SAAU,CAC9F,IAAIhjW,EAASnG,KAAKmpW,QAAQlM,aAAaj9V,KAAM+G,GACxCisQ,GAAkBhzQ,KAAKmpW,QAAQ+B,KAG1Bl4F,GAAkB7sQ,EAAO2qC,MAAQ9wC,KAAKqrW,oBAAoBrrW,KAAKmpW,UACrEnpW,KAAKu3K,SAAW,GAChBv3K,KAAKkrW,YAAY/kW,EAAQglW,EAAU3xV,EAAMzS,KAGzCyS,EAAOwwV,EAAYsB,eAAevkW,EAAOZ,EAAQqT,GACjD2xV,EAASpjT,QAAQvuC,IARjBxZ,KAAKmpW,QAAQ+B,GAAa/kW,EAAQglW,EAAU3xV,EAAMzS,EAU1D,MAEIijW,EAAY/yI,UAAS,WACjB,IAAIj7M,EAAMlW,EAAM6kW,aAAa5jW,GAC7ByS,EAAOwwV,EAAYsB,eAAevkW,EAAOiV,EAAKxC,GAC9C2xV,EAASpjT,QAAQvuC,EACrB,IAQJ,OANI3X,GAAQ21R,IACR2zE,EAAStjT,QAAQ+F,KAAK/rD,EAAM21R,GAE5ByzE,GACAE,EAAStjT,QAAQ+F,KAAKq9S,EAAQA,GAE3BE,EAAStjT,OACpB,EACAmiT,EAAYsB,eAAiB,SAAUvkW,EAAOZ,EAAQqT,GASlD,OARIzS,EAAM02V,iBACNjkV,EAAKrT,OAASA,EAAOA,OACrBqT,EAAKs8E,MAAQ3vF,EAAO2vF,MACpBt8E,EAAKmjV,WAAax2V,EAAOw2V,YAGzBnjV,EAAKrT,OAASA,EAEXqT,CACX,EACAwwV,EAAY/yI,SAAW,SAAUztN,IAC5BrC,OAAO8/L,cAAgB9/L,OAAO2S,YAAYtQ,EAAI,EACnD,EACAwgW,EAAYnuW,UAAU0vW,cAAgB,SAAUz6T,EAAK06T,EAAWC,GAC5D,OAAOvvV,GAAO,CAAC,EAAG,CACdpc,KAAM,MACNwrR,SAAUtrR,KAAK68V,WAAWvxE,SAC1By+E,YAAa/pW,KAAK68V,WAAWkN,YAC7BM,MAAOrqW,KAAK68V,WAAWwN,MACvBxhR,OAAO,EACP6iR,aAAa,EACb5lJ,UAAW0lJ,EACXngF,UAAWogF,GACZ36T,EACP,EAEAk5T,EAAYnuW,UAAUqvW,YAAc,SAAUp6T,EAAKq6T,EAAU3xV,EAAMzS,GAC/D,IAAIjB,EAAQ9F,KACR2rW,IAAe5kW,EAAM6kW,iBACrBH,EAAS,SAAU5/V,GACnB2N,EAAKlX,MAAQuJ,EACbs/V,EAASnjT,OAAOxuC,EACpB,EACIs6B,EAAU,SAAU7wC,EAAM6yF,EAAOqb,EAAKtwB,EAASgoM,EAAQ8zE,EAAYkP,GACnEryV,EAAK23F,IAAMA,EACX33F,EAAKs8E,MAAQA,EAAQv+E,SAASu+E,EAAMh6F,WAAY,IAAM,EACtD0d,EAAKrT,OAASlD,EACduW,EAAKqnE,QAAUA,EACfrnE,EAAKmjV,WAAaA,EAClBnjV,EAAKqvQ,OAASA,EACdrvQ,EAAKqyV,qBAAuBA,EAC5BV,EAASpjT,QAAQvuC,EACrB,EACIsyV,EAAe,SAAU7oW,EAAMkpM,GAC/B,IAAI4/J,EAAY,IAAIX,GAChBY,EAAY,CAAEzoW,OAAQiW,GAC1BzS,EAAM6jW,SAASqB,SAAU,EACzB,IAAIC,EAASpmW,EAAMqjW,QAAQlM,aAAan3V,EAAOiB,EAAM6jW,SAAU3nW,EAAO6C,EAAMqjW,QAAQpM,gBAAgB95V,GAAQkpM,GACxGggK,EAAWrmW,EAAMolW,YAAYgB,EAAQH,EAAWC,EAAWjlW,EAAM6jW,UASrE,OARKe,GACDI,EAAUn+S,MAAK,SAAUw+S,GACjBnpW,IACA26V,GAASmN,eAAehkW,EAAM6jW,SAASlI,KAAM37V,EAAM6jW,SAAS1J,UAAWj+V,EAAMmpW,EAASrlW,EAAM6jW,SAAS3sW,KACrG61C,EAAQ7wC,EAAMmpW,EAAQt2Q,MAAOs2Q,EAAQj7P,KAE7C,GAAGs6P,GAEAU,CACX,EA+BInO,EAAMh+V,KAAKurW,cAAcz6T,GA9Bb,SAAU7tC,EAAM49E,GAC5B,GAAI/6E,EAAMumW,iBAAiBvmW,EAAMqjW,WACxBn2F,GAAkB/vQ,EAAa,QAChC,OAAOwoW,EAAOxoW,EAAa,QAG/B6C,EAAMulW,oBAAoBvlW,EAAMqjW,WAChCtoR,EAAU3kE,GAAO,CAAC,EAAGpW,EAAMwmW,cAAezrR,KAEgC,IAA1EA,EAAQkqM,YAAY97K,kBAAkB,gBAAgB//F,QAAQ,QAAiBpJ,EAAM8/V,YACrF3iW,EAAO26V,GAAS1jR,MAAMsnR,UAAUv+V,IAEpC,IAAIkD,EAASL,EAAMqjW,QAAQpM,gBAAgB95V,EAAM6C,EAAOiB,EAAO85E,EAAQkqM,YAAalqM,GAChFiV,EAAQ,EACR6mQ,EAAa,KAEb4P,EAAiBtpW,EAAyB,qBAC1C8D,EAAM02V,kBACN3nQ,EAAQ3vF,EAAO2vF,MACf6mQ,EAAax2V,EAAOw2V,WACpBx2V,EAASA,EAAOA,QAEfY,EAAM6jW,SAINe,GACDG,EAAa3lW,EAAQ06E,GAJrB/sC,EAAQ3tC,EAAQ2vF,EAAOjV,EAAQkqM,YAAalqM,EAAQ/gF,KAAMmD,EAAM05V,EAAY4P,EAMpF,GAC6Cd,GAC7C,GAAKzrW,KAAKqrW,oBAAoBrrW,KAAKmpW,SAS9B,CACDnpW,KAAKssW,cAAgBtO,EACrB,IAAIn9Q,EAAUm9Q,EACdh+V,KAAKmpW,QAAQ5sW,QAAQu2D,QAAQ,CACzB7vD,KAAM49E,EAAQ59E,KACd6iN,UAAWjlI,EAAQilI,UAAWulE,UAAWxqM,EAAQwqM,WAEzD,KAhB6C,CACzC,IAAImhF,EAAS,IAAI5hF,GAAKozE,GACtBwO,EAAOrhF,WAAa,WAChBrlR,EAAMqlR,WAAWqhF,EAAOzhF,YAAayhF,EACzC,GACAxO,EAAMwO,EAAOv9S,QACTC,OAAM,SAAUrjD,GAAK,OAAO,CAAM,IACtC7L,KAAKu3K,SAASx0K,KAAKypW,EACvB,CASA,GAAIb,EAAY,CACZ,IACI3vV,EAAMjV,EAAM6kW,iBAAiB7vW,KAAKiE,KAAM,CAAE+G,MAAOA,EAAM6jW,SAAUrnW,OAAQwD,IACzEiV,GAAOA,EAAIrY,OACDmkD,QAAQtpD,IAAI,CAACw/V,EAAK8N,EAAa,KAAM9vV,KACvC4xC,MAAK,WAET,IADA,IAAIp0C,EAAO,GACF2B,EAAK,EAAGA,EAAKpW,UAAUpB,OAAQwX,IACpC3B,EAAK2B,GAAMpW,UAAUoW,GAEzB,IAAIhV,EAASqT,EAAK,GACdizV,EAAU3mW,EAAMqjW,QAAQpM,gBAAgB52V,EAAO,GAAIL,EAAOiB,EAAOjB,EAAMyxK,SAAS,GAAGwzG,YAAajlR,EAAMyxK,SAAS,IAC/GzhF,EAAQ,EACR/uF,EAAM02V,kBACN3nQ,EAAQ22Q,EAAQ32Q,MAChB22Q,EAAUA,EAAQtmW,QAEtB,IAAIumW,EAAU5mW,EAAMqjW,QAAQpM,gBAAgB52V,EAAO,GAAIL,EAAOiB,EAAM6jW,SAAU9kW,EAAMyxK,SAAS,GAAGwzG,YAAajlR,EAAMyxK,SAAS,IAC5HzhF,EAAQ,EACJ/uF,EAAM6jW,SAASnN,kBACf3nQ,EAAQ42Q,EAAQ52Q,MAChB42Q,EAAUA,EAAQvmW,QAEtBy3V,GAASmN,eAAehkW,EAAM6jW,SAASlI,KAAM37V,EAAM6jW,SAAS1J,UAAWuL,EAASC,EAAS3lW,EAAM6jW,SAAS3sW,KACxG0tW,GAAa,EACb73T,EAAQ24T,EAAS32Q,EAAOhwF,EAAMyxK,SAAS,GAAGwzG,YAC9C,IAGA4gF,GAAa,CAErB,CACA,OAAO3N,CACX,EACAgM,EAAYnuW,UAAUsvR,WAAa,SAAUtqM,EAASu5G,GAClDp6L,KAAKmpW,QAAQh+E,WAAWnrR,KAAM6gF,EAASu5G,GAGvC,IAFA,IACI1pL,EADAg9F,EAAU1tG,KAAK68V,WAAWnvP,QAErB7oG,EAAI,EAAG6oG,GAAW7oG,EAAI6oG,EAAQ/pG,OAAQkB,IAAK,CAChD6L,EAAQ,GAER,IADA,IACSyK,EAAK,EAAGk4P,EADNz3Q,OAAOwB,KAAKswG,EAAQ7oG,IACCsW,EAAKk4P,EAAO1vQ,OAAQwX,IAAM,CACtD,IAAI9F,EAAOg+P,EAAOl4P,GAClBzK,EAAM3N,KAAKsS,GACXwrE,EAAQywB,iBAAiBj8F,EAAMq4F,EAAQ7oG,GAAGwQ,GAC9C,CACJ,CACJ,EAUA20V,EAAYnuW,UAAU42R,YAAc,SAAU+rE,EAASvgW,EAAK6hW,EAAW/4V,EAAOi7V,GAC1E,IAAIl8V,EAAQ9F,KACR8/V,aAAqB74I,KACrBlgN,EAAQ+4V,EACRA,EAAY,MAEhB,IAAItmV,EAAO,CACPs3B,IAAKgvT,EACL7hW,IAAKA,GAAO+B,KAAK68V,WAAW5+V,KAE5B+/V,EAAMh+V,KAAKmpW,QAAQ7K,aAAat+V,KAAMw+V,EAAShlV,EAAMzS,GAAS,IAAIkgN,GAAS+6I,GAC3E2K,EAAgB,gBACpB,GAAI3sW,KAAK68V,WAAWoN,QAChB,OAAOjM,EAEX,GAAKhrF,GAAkBhzQ,KAAKmpW,QAAQwD,IAG/B,IAAK3sW,KAAKqrW,oBAAoBrrW,KAAKmpW,SAqBpC,OAAOnpW,KAAK2sW,cAAc3O,EAAKh+V,KAAKmpW,QAAQ5sW,QAAQ+rW,aApBpD,IAAIsE,EAAS,IAAIxB,GACbyB,EAAS,IAAIjiF,GAAKozE,GAgBtB,OAfA6O,EAAO1hF,WAAa,WAChBrlR,EAAMqlR,WAAW0hF,EAAO9hF,YAAa8hF,EACzC,EACAA,EAAO/mJ,UAAY,SAAU7iN,EAAM49E,GAC3B/6E,EAAMumW,iBAAiBvmW,EAAMqjW,WACxBn2F,GAAkB/vQ,EAAa,SAChC4pW,EAAOxhF,UAAU/lN,KAAKC,UAAUtiE,EAAa,UAGrD2pW,EAAO7kT,QAAQjiD,EAAMqjW,QAAQpM,gBAAgB95V,EAAM6C,EAAO,KAAM+6E,EAAQkqM,YAAalqM,EAAS29Q,EAAShlV,GAC3G,EACAqzV,EAAOxhF,UAAY,SAAUx/Q,GACzB+gW,EAAO5kT,OAAO,CAAC,CAAE1lD,MAAOuJ,IAC5B,EACAghW,EAAO59S,OAAOC,OAAM,SAAUrjD,GAAK,OAAO,CAAM,IACzC+gW,EAAO/kT,OAIlB,CAxBI,OAAO7nD,KAAKmpW,QAAQwD,GAAe3O,EAyB3C,EAOAgM,EAAYnuW,UAAUkrF,OAAS,SAAU9jF,EAAM68V,EAAW/4V,EAAOiN,GACzD8rV,aAAqB74I,KACrBlgN,EAAQ+4V,EACRA,EAAY,MAEhB,IAAI9B,EAAMh+V,KAAKmpW,QAAQpiR,OAAO/mF,KAAMiD,EAAM68V,EAAW/4V,EAAOiN,GACxD24V,EAAgB,gBACpB,OAAI3sW,KAAK68V,WAAWoN,QACTjM,EAENhrF,GAAkBhzQ,KAAKmpW,QAAQwD,IAIzB3sW,KAAK2sW,cAAc3O,EAAKh+V,KAAKmpW,QAAQ5sW,QAAQ4rW,WAH7CnoW,KAAKmpW,QAAQwD,GAAe3O,EAK3C,EAQAgM,EAAYnuW,UAAUwoE,OAAS,SAAU07R,EAAUtkW,EAAOqkW,EAAW/4V,GAC5C,kBAAVtL,IACPA,EAAQmiW,GAASlqQ,UAAUqsQ,EAAUtkW,IAErCqkW,aAAqB74I,KACrBlgN,EAAQ+4V,EACRA,EAAY,MAEhB,IAAI9jV,EAAMhc,KAAKmpW,QAAQ9kS,OAAOrkE,KAAM+/V,EAAUtkW,EAAOqkW,EAAW/4V,GAC5D4lW,EAAgB,gBACpB,GAAI3sW,KAAK68V,WAAWoN,QAChB,OAAOjuV,EAEX,GAAKg3P,GAAkBhzQ,KAAKmpW,QAAQwD,IAG/B,CACD,IAAItoS,EAASrkE,KAAKmpW,QAAQ5sW,QAAQ8rW,aAClC,OAAOroW,KAAK2sW,cAAc3wV,EAAKqoD,EACnC,CALI,OAAOrkE,KAAKmpW,QAAQwD,GAAe3wV,EAM3C,EAQAguV,EAAYnuW,UAAUwpE,OAAS,SAAU06R,EAAUtkW,EAAOqkW,EAAW/4V,EAAOi7V,GACpElC,aAAqB74I,KACrBlgN,EAAQ+4V,EACRA,EAAY,MAEhB,IAAI9jV,EAAMhc,KAAKmpW,QAAQ9jS,OAAOrlE,KAAM+/V,EAAUtkW,EAAOqkW,EAAW/4V,EAAOi7V,GACnE2K,EAAgB,gBACpB,GAAI3sW,KAAK68V,WAAWoN,QAChB,OAAOjuV,EAEX,GAAKg3P,GAAkBhzQ,KAAKmpW,QAAQwD,IAG/B,CACD,IAAItnS,EAASrlE,KAAKmpW,QAAQ5sW,QAAQ6rW,aAClC,OAAOpoW,KAAK2sW,cAAc3wV,EAAKqpD,EACnC,CALI,OAAOrlE,KAAKmpW,QAAQwD,GAAe3wV,EAM3C,EACAguV,EAAYnuW,UAAUwvW,oBAAsB,SAAUxO,GAClD,OAAO78V,KAAKmpW,QAAQv2E,eACiB,sBAAjC5yR,KAAKmpW,QAAQv2E,eACrB,EACAo3E,EAAYnuW,UAAUwwW,iBAAmB,SAAUxP,GAC/C,OAAO78V,KAAKmpW,QAAQv2E,eACiB,mBAAjC5yR,KAAKmpW,QAAQv2E,eACrB,EACAo3E,EAAYnuW,UAAUixW,YAAc,SAAUC,EAAQlsR,GAClD,GAAI7gF,KAAKqsW,iBAAiBrsW,KAAKmpW,SAAU,CACrC,IAAIlmW,EAAOqiE,KAAK4U,MAAM6yR,GACjB/5F,GAAkB/vQ,EAAa,SAChCjD,KAAKgtW,YAAY1nS,KAAKC,UAAUtiE,EAAa,QAErD,CACIjD,KAAKqrW,oBAAoBrrW,KAAKmpW,WAC9BtoR,EAAU3kE,GAAO,CAAC,EAAGlc,KAAKssW,cAAezrR,IAE7C,IACI+8Q,GAAS1jR,MAAMsnR,UAAUuL,EAC7B,CACA,MAAOlhW,IACHkhW,EAAS,EACb,CACAA,EAAS/sW,KAAKmpW,QAAQpM,gBAAgBa,GAAS1jR,MAAMsnR,UAAUuL,GAAS/sW,KAAM,KAAM6gF,EAAQkqM,YAAalqM,GACzG7gF,KAAKitW,aAAallT,QAAQglT,EAC9B,EAEA/C,EAAYnuW,UAAUmxW,YAAc,SAAUnhW,GAC1C7L,KAAKitW,aAAajlT,OAAO,CAAC,CAAE1lD,MAAOuJ,IACvC,EAEAm+V,EAAYnuW,UAAU8wW,cAAgB,SAAU3wV,EAAKkxV,GACjD,IAAIpnW,EAAQ9F,KAOZ,GANAgc,EAAME,GAAO,CAAC,EAAG,CACbpc,KAAM,OACNs1G,YAAa,kCACbs2P,aAAa,GACd1vV,GACHhc,KAAKitW,aAAe,IAAI7B,GACnBprW,KAAKqrW,oBAAoBrrW,KAAKmpW,SAU/BnpW,KAAKssW,cAAgBtwV,EACrBkxV,EAASnxW,KAAKiE,KAAM,CAChBiD,KAAM+Y,EAAI/Y,KAAM6iN,UAAW9lN,KAAK8sW,YAAYlsS,KAAK5gE,MACjDqrR,UAAWrrR,KAAKgtW,YAAYpsS,KAAK5gE,YAbI,CACzC,IAAImtW,EAAS,IAAIviF,GAAK5uQ,GACtBmxV,EAAOhiF,WAAa,WAChBrlR,EAAMqlR,WAAWgiF,EAAOpiF,YAAaoiF,EACzC,EACAA,EAAOrnJ,UAAY9lN,KAAK8sW,YAAYlsS,KAAK5gE,MACzCmtW,EAAO9hF,UAAYrrR,KAAKgtW,YAAYpsS,KAAK5gE,MACzCmtW,EAAOl+S,OAAOC,OAAM,SAAUrjD,GAAK,OAAO,CAAM,GACpD,CAQA,OAAO7L,KAAKitW,aAAaplT,OAC7B,EACOmiT,CACX,CAhhBiC,GAqhB7BoB,GACA,WACI,IAAItlW,EAAQ9F,KAIZA,KAAK6nD,QAAU,IAAIC,SAAQ,SAAUC,EAASC,GAC1CliD,EAAMiiD,QAAUA,EAChBjiD,EAAMkiD,OAASA,CACnB,IAIAhoD,KAAK4tD,KAAO5tD,KAAK6nD,QAAQ+F,KAAKgT,KAAK5gE,KAAK6nD,SAIxC7nD,KAAKkvD,MAAQlvD,KAAK6nD,QAAQqH,MAAM0R,KAAK5gE,KAAK6nD,QAC9C,EC5iBAs0S,GAAS,CAAEC,UAAW,mBAKtBwB,GAA0B,WAC1B,SAASA,IACT,CA4+DA,OAp+DAA,EAASz5R,SAAW,SAAU1oE,EAAOw4Q,GACjC,MAAqB,oBAAVx4Q,EACAA,EAAMM,KAAKk4Q,GAAQ,CAAC,GAExBx4Q,CACX,EAMAmiW,EAAS/xR,SAAW,SAAUrwD,EAAO2G,GACjC,OAAO3G,EAAM3G,OAAS2G,EAAM3G,OAAOsN,EAAOxe,UAAYwe,CAC1D,EAMAy7U,EAAS3sT,WAAa,SAAUz1B,EAAOvH,GACnC,OAAOuH,EAAM3G,MAAM,EAAGZ,EAAMtQ,UAAYsQ,CAC5C,EAMA2pV,EAAS0B,OAAS,SAAU70P,GAExB,MAAc,eADdA,EAAQA,EAAQmzP,EAASnwV,YAAYg9F,GAAS,aAEnCzqG,KAAKotW,YAETptW,KAAKqtW,YAChB,EAOAzP,EAASwP,YAAc,SAAUj+U,EAAGnK,GAChC,OAAIguP,GAAkB7jP,IAAM6jP,GAAkBhuP,IAGpC,OAANA,QAAoB1kB,IAAN0kB,GAFN,EAKK,kBAANmK,EACAA,EAAEm+U,cAActoV,GAEjB,OAANmK,QAAoB7uB,IAAN6uB,EACP,EAEJA,EAAInK,CACf,EAOA44U,EAASyP,aAAe,SAAUl+U,EAAGnK,GACjC,OAAIguP,GAAkB7jP,IAAM6jP,GAAkBhuP,IAClC,EAEF,OAANA,QAAoB1kB,IAAN0kB,EACP,EAEM,kBAANmK,GACsB,EAAtBA,EAAEm+U,cAActoV,GAEjB,OAANmK,QAAoB7uB,IAAN6uB,GACN,EAELnK,EAAImK,CACf,EACAyuU,EAAS2P,cAAgB,SAAU76V,EAAKg5G,GAEpC,IADA,IAAIg1K,EAAS,CAAC,EACL77R,EAAI,EAAGA,EAAI6mH,EAAO/nH,OAAQkB,IAC/B67R,EAAS1gS,KAAKukE,SAASmnD,EAAO7mH,GAAI7E,KAAK0zF,UAAUg4B,EAAO7mH,GAAI6N,GAAMguR,GAEtE,OAAOA,CACX,EAMAk9D,EAAS3rR,OAAS,SAAUu7R,EAAW9hP,GAEnC,IADA,IAAIq8F,EAAU,GACLljN,EAAI,EAAGA,EAAI2oW,EAAU7pW,OAAQkB,IAClCkjN,EAAQhlN,KAAK/C,KAAKutW,cAAcC,EAAU3oW,GAAI6mH,IAElD,OAAOq8F,CACX,EAUA61I,EAAS3/P,MAAQ,SAAUuvQ,EAAWthU,EAAOywT,EAAY/pT,EAAO6uT,EAASrlV,EAAQqxV,GAC7E76T,EAAQA,GAAS,EACjB,IAAI86T,EAAWF,EACXzJ,EAAO,YACX,GAAI2J,EAAStR,YAAcD,GAAO4H,GAAO,CAerC,IAdA,IAAIxwF,EAAU,SAAU17O,GACpB,GAAKm7O,GAAkByuF,GAQnBiM,EAAS71U,GAAGygC,MAAQsoO,EAAO3iM,MAAMyvQ,EAAS71U,GAAGygC,MAAOpsB,EAAOywT,EAAY+Q,EAAS96T,MAAQ,EAAG,KAAMx2B,EAAQqxV,GACzGC,EAAS71U,GAAGi+D,MAAQ43Q,EAAS71U,GAAGygC,MAAM30D,WATT,CAC7B,IAAI0yU,EACA35S,EAAO+kU,EAAQnkW,QAAO,SAAUuO,GAAK,OAAOA,EAAE5N,MAAQyvW,EAAS71U,GAAG55B,GAAK,IAC3Eo4U,EAAOorB,EAAQvyV,QAAQwtB,EAAK,IAC5BgxU,EAAS71U,GAAGygC,MAAQsoO,EAAO3iM,MAAMyvQ,EAAS71U,GAAGygC,MAAOpsB,EAAOywT,EAAY+Q,EAAS96T,MAAQ,EAAG6uT,EAAQprB,GAAM/9Q,MAAOl8C,EAAQqxV,GACxHC,EAAS71U,GAAGi+D,MAAQ2rQ,EAAQprB,GAAMvgP,KACtC,CAKJ,EACI8qM,EAAS5gS,KACJ63B,EAAI,EAAGA,EAAI61U,EAAS/pW,OAAQk0B,IACjC07O,EAAQ17O,GAGZ,OADA61U,EAASC,aAAe,EACjBD,CACX,CACA,IAAIE,EAAU,CAAC,EACXC,EAAe,GACnBA,EAAazR,UAAYD,GAAO4H,GAChC8J,EAAaj7T,MAAQA,EACrBi7T,EAAaF,YAAc,EAC3BE,EAAa1P,QAAUuP,EA0BvB,IAzBA,IAAI9F,EAAU,SAAU/iW,GACpB,IAAInI,EAAMoxW,EAAOC,OAAOL,EAAU7oW,EAAGqnC,GAIrC,GAHK8mO,GAAkB52P,KACnB1f,EAAM0f,EAAO1f,EAAKwvC,KAEjB0hU,EAAQlxW,KACTkxW,EAAQlxW,GAAO,CACXuB,IAAKvB,EACLo5F,MAAO,EACPx9B,MAAO,GACPqkS,WAAY,CAAC,EACbzwT,MAAOA,GAEX2hU,EAAa9qW,KAAK6qW,EAAQlxW,KACrBs2Q,GAAkByuF,IAAU,CAC7B,IAAIuM,EAAUvM,EAAQnkW,QAAO,SAAUuO,GAAK,OAAOA,EAAE5N,MAAQ2vW,EAAQlxW,GAAKuB,GAAK,IAC/E2vW,EAAQlxW,GAAKo5F,MAAQk4Q,EAAQ,GAAGl4Q,KACpC,CAEJ83Q,EAAQlxW,GAAKo5F,MAASk9K,GAAkByuF,GAAgCmM,EAAQlxW,GAAKo5F,OAAS,EAA3C83Q,EAAQlxW,GAAKo5F,QAC3D23Q,GAAeA,GAAc9Q,EAAWh5V,SACzCiqW,EAAQlxW,GAAK47D,MAAMv1D,KAAK2qW,EAAS7oW,GAEzC,EACIipW,EAAS9tW,KACJ6E,EAAI,EAAGA,EAAI6oW,EAAS/pW,OAAQkB,IACjC+iW,EAAQ/iW,GAEZ,GAAI83V,GAAcA,EAAWh5V,OACzB,KAAIkkW,EAAU,SAAUhjW,GAIpB,IAHA,IAAImX,EAAM,CAAC,EACPxS,OAAK,EACLykW,EAAOtR,EACF9kU,EAAI,EAAGA,EAAI8kU,EAAWh5V,OAAQk0B,IAEnC,GADAruB,EAAKo0V,EAASjB,WAAWA,EAAW9kU,GAAG/3B,MAClCkzQ,GAAkByuF,GAOfj4V,IACAwS,EAAIiyV,EAAKp2U,GAAGqU,MAAQ,MAAQ+hU,EAAKp2U,GAAG/3B,MAAQ0J,EAAGqkW,EAAahpW,GAAGyzD,MAAO21S,EAAKp2U,GAAGqU,YARrD,CAC7B,IAAIxP,EAAO+kU,EAAQnkW,QAAO,SAAUuO,GAAK,OAAOA,EAAE5N,MAAQ4vW,EAAahpW,GAAG5G,GAAK,IAC3EuL,IACAwS,EAAIiyV,EAAKp2U,GAAGqU,MAAQ,MAAQ+hU,EAAKp2U,GAAG/3B,MAAQ0J,EAAGkzB,EAAK,GAAG47B,MAAO21S,EAAKp2U,GAAGqU,OAE9E,CAOJ2hU,EAAahpW,GAAG83V,WAAa3gV,CACjC,EACA,IAASnX,EAAI,EAAGA,EAAIgpW,EAAalqW,OAAQkB,IACrCgjW,EAAQhjW,EAFX,CAKL,GAAI4oW,GAAcI,EAAalqW,QAAUg5V,EAAWh5V,OAChD,IAASkB,EAAI,EAAGA,EAAIgpW,EAAalqW,OAAQkB,IACrCgpW,EAAahpW,GAAGyzD,MAAQ,GAGhC,OAAOo1S,EAAS/pW,QAAUkqW,GAAgBH,CAC9C,EAWA9P,EAASmN,eAAiB,SAAUrI,EAAM5jV,EAAM/hB,EAAQ8tW,EAAQlI,GAC5D,IAAI99V,EACAqpW,EAAM,CAAC,EAQX,IANIrD,EAAO1kW,SACP0kW,EAASA,EAAO1kW,QAEhB0kW,EAAOzO,WACPp8V,KAAK60N,WAAW,0DAEfhwN,EAAI,EAAGA,EAAIgmW,EAAOlnW,OAAQkB,IAAK,EAEzBqpW,EADHC,EAAWnuW,KAAK0zF,UAAUgvQ,EAAMmI,EAAOhmW,OAClBqpW,EAAIC,GAAY,KACpCprW,KAAK8nW,EAAOhmW,GACrB,CACA,IAAKA,EAAI,EAAGA,EAAI9H,EAAO4G,OAAQkB,IAAK,CAChC,IAAIspW,EAAWnuW,KAAK0zF,UAAUivQ,GAAQD,EAAM3lW,EAAO8H,IACnD9H,EAAO8H,GAAGia,GAAQovV,EAAIC,EAC1B,CACJ,EAQAvQ,EAASoB,aAAe,SAAUtsV,EAAKg5G,EAAQxlH,GAI3C,QAHe5F,IAAX4F,IACAA,EAAS,SAEE5F,IAAXorH,GAAmC,OAAXA,EACxB,OAAO1rH,KAAKg/V,aAAatsV,EAAK,GAAIxM,GAItC,IAFA,IAAIkoW,EAAU17V,EAELyI,EAAK,EAAGk4P,EADNz3Q,OAAOwB,KAAKsV,GACSyI,EAAKk4P,EAAO1vQ,OAAQwX,IAAM,CACtD,IAAI9F,EAAOg+P,EAAOl4P,GACW,kBAAlBizV,EAAQ/4V,IAAwB+4V,EAAQ/4V,aAAiB1Y,MAIhE+uH,EAAO3oH,KAAKmD,EAASmP,GAHrBrV,KAAKg/V,aAAaoP,EAAQ/4V,GAAOq2G,EAAQxlH,EAASmP,EAAO,IAKjE,CACA,OAAOq2G,CACX,EAOAkyO,EAASlqQ,UAAY,SAAUm/K,EAAW/zP,GACtC,IAAK+zP,EACD,OAAO/zP,EAEX,GAAKA,EAAL,CAGA,IAAgC,IAA5B+zP,EAAU3jQ,QAAQ,KAClB,OAAO4P,EAAK+zP,GAIhB,IAFA,IAAIp3Q,EAAQqjB,EACRg0P,EAASD,EAAUvgQ,MAAM,KACpBzN,EAAI,EAAGA,EAAIiuQ,EAAOnvQ,QACV,MAATlI,EAD2BoJ,IAI/BpJ,EAAQA,EAAMq3Q,EAAOjuQ,IAEzB,OAAOpJ,CAZP,CAaJ,EASAmiW,EAASr5R,SAAW,SAAUsuM,EAAWp3Q,EAAOiX,GAC5C,IAGI7N,EAEA5G,EALAb,EAAOy1Q,EAAU/2Q,WAAWwW,MAAM,KAClC2B,EAAQvB,GAAO,CAAC,EAChBqgQ,EAAU9+P,EAEVtQ,EAASvG,EAAKuG,OAElB,IAAKkB,EAAI,EAAGA,EAAIlB,EAAQkB,IACpB5G,EAAMb,EAAKyH,GACPA,EAAI,IAAMlB,EACVovQ,EAAQ90Q,QAAiBqC,IAAV7E,OAAsB6E,EAAY7E,EAE5Cu3Q,GAAkBD,EAAQ90Q,MAC/B80Q,EAAQ90Q,GAAO,CAAC,GAEpB80Q,EAAUA,EAAQ90Q,GAEtB,OAAOgW,CACX,EAOA2pV,EAAS10U,KAAO,SAAUozU,EAAIpwT,EAAO2xT,GACjC,GAAIvB,EAAG34V,QAAU,EACb,OAAO24V,EAEX,IAAI+R,EAAS92V,UAAU+kV,EAAG34V,OAAS,GAAG7H,WAAY,IAC9CkvE,EAAOsxR,EAAGznV,MAAM,EAAGw5V,GACnB9tK,EAAQ+7J,EAAGznV,MAAMw5V,GAGrB,OAFArjS,EAAOhrE,KAAKkpB,KAAK8hD,EAAM9+B,EAAO2xT,GAC9Bt9J,EAAQvgM,KAAKkpB,KAAKq3K,EAAOr0J,EAAO2xT,GACzB79V,KAAKy3N,MAAMzsJ,EAAMu1H,EAAOr0J,EAAO2xT,EAC1C,EACAD,EAAS0Q,iBAAmB,SAAU7yW,GAClC,MAAqB,kBAAVA,EACAA,EAEEA,EAAM6W,MAAM,IACHrV,KAAI,SAAUy/B,GAAQ,OAAOA,KAAQkhU,EAAS2Q,WAAa3Q,EAAS2Q,WAAW7xU,GAAQA,CAAM,IACnGvc,KAAK,GACzB,EACAy9U,EAASnmI,MAAQ,SAAUzsJ,EAAMu1H,EAAOpyE,EAAW0vO,GAG/C,IAFA,IACIhvV,EADA1I,EAAS,GAEN6kE,EAAKrnE,OAAS,GAAK48L,EAAM58L,OAAS,GAG7BkL,EAFJm8D,EAAKrnE,OAAS,GAAK48L,EAAM58L,OAAS,EAC9Bk6V,EACUA,EAAS79V,KAAK+tW,OAAO/iS,EAAM,EAAGmjD,GAAYnuH,KAAK+tW,OAAOxtK,EAAO,EAAGpyE,GAAYnjD,EAAK,GAAIu1H,EAAM,KAAO,EAAIv1H,EAAOu1H,EAG7Gv1H,EAAK,GAAGmjD,GAAanjD,EAAK,GAAGmjD,GAAanjD,EAAOu1H,EAIrDv1H,EAAKrnE,OAAS,EAAIqnE,EAAOu1H,EAEvCp6L,EAAOpD,KAAK8L,EAAQ29B,SAExB,OAAOrmC,CACX,EACAy3V,EAASmQ,OAAS,SAAUtvW,EAAOmQ,EAAOs9B,GACtC,OAAOA,EAAQlsC,KAAK0zF,UAAUxnD,EAAOztC,EAAMmQ,IAAUnQ,EAAMmQ,EAC/D,EACAgvV,EAASnwV,YAAc,SAAU/Q,GAC7B,OAAOA,EAAqB,kBAARA,EAAmBA,EAAI+Q,cAAgB/Q,EAAIZ,WAAsB,IAARY,IAAqB,IAARA,EAAiBA,EAAIZ,WAAa,EAChI,EASA8hW,EAAS2C,oBAAsB,SAAU4I,EAASqF,EAAQC,EAAQC,GAC9D,GAAIF,KAAUrF,EAAS,CACnB,IAAIntV,EAAMmtV,EAAQqF,GAAQC,EAAQC,GAC7B17F,GAAkBh3P,KACnByyV,EAASzyV,EAEjB,CACA,OAAOyyV,CACX,EACA7Q,EAAS0E,aAAe,SAAUqM,EAAKpQ,EAAIx3V,GACvC,IAAIi3V,EAAM,CAAC,EAOX,OANAJ,EAAS2C,oBAAoBoO,EAAK,YAAa,CAC3CpQ,GAAIA,EACJx3V,MAAOA,EACPmnD,OAAQnnD,EAAMmnD,OACd0yS,UAAW5C,IAERA,CACX,EAKAJ,EAASp8I,cAAgB,SAAU9uM,GAC/B,QAAUA,GAASA,EAAIlO,cAAgB5I,MAC3C,EAIAgiW,EAAS0M,OAAS,WACd,IAAIn5P,EAAM,KAEV,IACIA,EAAM,IAAIhqG,OAAc,cAC5B,CACA,MAAO0E,IACH,CAEJ,QAASslG,GAAQ,oBAAqBA,CAC1C,EAKAysP,EAASqI,QAAU,SAAU//V,GACzB,IACI0oW,EACJ,OAAQ1oW,GAAU,IAAM,uCAAuC2L,QAAQ,MAAM,SAAUnV,EAAKmI,GACxF,GAAI,WAAYsC,QAAU,oBAAqBuqC,OAAQ,CACnD,IAAI31B,EAAM,IAAI81B,WAAW,GACzB1qC,OAAOuqC,OAAOI,gBAAgB/1B,GAC9B6yV,EAAO7yV,EAAI,GAAK,GAAK,CACzB,MAEI6yV,EAAuB,GAAhB92V,KAAKi6B,SAAgB,EAEhC,MAXO,mBAWW,KAANltC,EAAkB,EAAP+pW,EAAa,EAAMA,EAC9C,GACJ,EAMAhR,EAAS8C,OAAS,SAAUhkW,GACxB,YAAe4D,IAAR5D,GAA6B,OAARA,CAChC,EASAkhW,EAASiR,oBAAsB,SAAUpwW,EAAOytC,EAAO2xT,GACnD,IAAIxyD,EACAx8R,EACA5Q,EACA4G,EAAI,EACJiqW,EAA2D,kBAArClR,EAASmQ,OAAOtvW,EAAO,EAAGytC,GACpD,GAAIztC,EAAMkF,OACN,KAAOqvQ,GAAkBq4B,IAAWxmS,EAAIpG,EAAMkF,QAC1C0nS,EAASuyD,EAASmQ,OAAOtvW,EAAOoG,EAAGqnC,GACnCjuC,EAAMQ,EAAMoG,KAGpB,KAAOA,EAAIpG,EAAMkF,OAAQkB,IAEjBmuQ,GADJnkQ,EAAU+uV,EAASmQ,OAAOtvW,EAAOoG,EAAGqnC,MAIhC4iU,IACAzjE,GAAUA,EACVx8R,GAAWA,GAEXgvV,EAASxyD,EAAQx8R,GAAW,IAC5Bw8R,EAASx8R,EACT5Q,EAAMQ,EAAMoG,KAGpB,OAAO5G,CACX,EAUA2/V,EAASmR,SAAW,SAAU5R,EAAMhvO,EAAW6gP,GAC3CA,GAAyBh8F,GAAkBg8F,IAAkCA,EAC7E,IACItyW,EADAyJ,EAAS,GAET68B,EAAM,CAAC,EAQX,OAPAm6T,EAAKn/V,SAAQ,SAAUiF,EAAM2L,IACzBlS,EAA+B,kBAAjBygW,EAAKvuV,GAAuBgvV,EAASmQ,OAAO5Q,EAAMvuV,EAAOu/G,GAAagvO,EAAKvuV,MAC5Eo0B,IACT78B,EAAOpD,KAAMisW,EAA+B7R,EAAKvuV,GAAXlS,GACtCsmC,EAAItmC,GAAO,EAEnB,IACOyJ,CACX,EAMAy3V,EAAS8N,YAAc,SAAUnN,EAAIJ,GACjC,IAAIp3V,EAAQ/G,KAAKivW,aAAa1Q,GAC1B2Q,EAAa,IAAIlF,GAAY7L,GAC7BI,EAAG4Q,gBACHpoW,EAAMqoW,gBAEV,IAAIjpW,EAAS+oW,EAAWvE,aAAa5jW,GACjCm5I,EAAc,CACd/5I,OAAQo4V,EAAG4Q,eAAiBhpW,EAAOA,OAASA,EAC5C2vF,MAAO3vF,EAAO2vF,MACd6mQ,WAAYr3R,KAAKC,UAAUp/D,EAAOw2V,aAEtC,OAAO4B,EAAG4Q,eAAiBjvN,EAAc/5I,CAC7C,EACAy3V,EAASqR,aAAe,SAAU1Q,GAC9B,IAAIz4V,EAAQ9F,KACR+G,EAAQ,IAAIkgN,IACZs3I,EAAGtsR,QACHlrE,EAAMkrE,OAAOssR,EAAGtsR,QAEhBssR,EAAG7B,QACSkB,EAAS1jR,MAAMsnR,UAAUjD,EAAG7B,OAClCp/V,QAAO,SAAU+xW,GACnB,GAAIr8F,GAAkBq8F,EAAK7K,WACvBz9V,EAAM21V,MAAM2S,EAAKnjU,MAAOmjU,EAAKxkQ,SAAUwkQ,EAAK5zW,MAAO4zW,EAAKnQ,WAAYmQ,EAAKlQ,kBAExE,CACD,IAAImQ,EAAgB,GAChBD,EAAKnjU,MACLojU,EAAcvsW,KAAK,IAAI8/V,GAAUwM,EAAKnjU,MAAOmjU,EAAKxkQ,SAAUwkQ,EAAK5zW,MAAO4zW,EAAKnQ,WAAYmQ,EAAKlQ,eAG9FmQ,EAAgBA,EAActyW,OAAO8I,EAAMypW,aAAaF,EAAKl1I,aAE3C,MAAlBk1I,EAAK7K,UACLz9V,EAAM21V,MAAMmG,GAAUC,GAAGwM,IAEF,OAAlBD,EAAK7K,WACVz9V,EAAM21V,MAAMmG,GAAU2M,IAAIF,GAElC,CACJ,IAEA/Q,EAAGl5M,QACUu4M,EAAS1jR,MAAMsnR,UAAUjD,EAAGl5M,QAClC/nJ,QAAO,SAAUuO,GAAK,OAAO9E,EAAMs+I,OAAOx5I,EAAE5N,IAAK4N,EAAE6/G,OAAQ7/G,EAAY,SAAGA,EAAc,WAAGA,EAAgB,aAAI,IAiB1H,OAfI0yV,EAAG5B,YACH4B,EAAG5B,WAAWr/V,QAAO,SAAUuO,GAAK,OAAO9E,EAAMi8V,UAAUn3V,EAAE/L,KAAM+L,EAAEqgC,MAAQ,IAE7EqyT,EAAGkR,QACHlR,EAAGkR,OAAOnyW,QAAO,SAAUuO,GAAK,OAAO9E,EAAMy1V,OAAO3wV,EAAElJ,KAAMkJ,EAAEi3B,UAAY,IAE1Ey7T,EAAGzkG,MACH/yP,EAAM+yP,KAAKykG,EAAGzkG,MAEdykG,EAAG9B,MACH11V,EAAM01V,KAAK8B,EAAG9B,MAEd8B,EAAGtgQ,OACHsgQ,EAAGtgQ,MAAM3gG,QAAO,SAAU4wW,GAAO,OAAOnnW,EAAMk3F,MAAMiwQ,EAAM,IAEvDnnW,CACX,EACA62V,EAAS2R,aAAe,SAAUF,GAE9B,IADA,IAAIK,EAAW,GACN7qW,EAAI,EAAGA,EAAIwqW,EAAK1rW,OAAQkB,IAAK,CAClC,IAAIgH,EAAIwjW,EAAKxqW,GACb,GAAIgH,EAAEqgC,MACFwjU,EAAS3sW,KAAK,IAAI8/V,GAAUh3V,EAAEqgC,MAAOrgC,EAAEg/F,SAAUh/F,EAAEpQ,MAAOoQ,EAAEqzV,WAAYrzV,EAAEszV,mBAEzE,CAGD,IAFA,IAAIwQ,EAAY,GACZC,EAAO5vW,KAAKuvW,aAAa1jW,EAAEsuN,YACtBh/M,EAAK,EAAGpV,EAAKnK,OAAOwB,KAAKwyW,GAAOz0V,EAAKpV,EAAGpC,OAAQwX,IAAM,CAC3D,IAAI9F,EAAOtP,EAAGoV,GACdw0V,EAAU5sW,KAAK6sW,EAAKv6V,GACxB,CACAq6V,EAAS3sW,KAAoB,MAAf8I,EAAE24V,UAAoB3B,GAAUC,GAAG6M,GAAa9M,GAAU2M,IAAIG,GAChF,CACJ,CACA,OAAOD,CACX,EAKA9R,EAASiS,qBAAuB,KAKhCjS,EAAS2D,kBAAmB,EAK5B3D,EAAS/oI,WAAa,SAAUvyN,GAC5B,IACI,MAAM,IAAI5D,MAAM4D,EACpB,CACA,MAAOuJ,IACH,MAAMA,GAAEm3C,QAAU,KAAOn3C,GAAEuU,KAC/B,CACJ,EACAw9U,EAASjB,WAAa,CAMlBr9P,IAAK,SAAUg9P,EAAIpwT,GAIf,IAHA,IACIxvC,EADAyJ,EAAS,EAET2oW,EAAwD,kBAAlClR,EAASmQ,OAAOzR,EAAI,EAAGpwT,GACxCrnC,EAAI,EAAGA,EAAIy3V,EAAG34V,OAAQkB,IAC3BnI,EAAMkhW,EAASmQ,OAAOzR,EAAIz3V,EAAGqnC,GACxB1xB,MAAM9d,IAAgB,OAARA,IACXoyW,IACApyW,GAAOA,GAEXyJ,GAAUzJ,GAGlB,OAAOyJ,CACX,EAMA2pW,QAAS,SAAUxT,EAAIpwT,GACnB,OAAO0xT,EAASjB,WAAWr9P,IAAIg9P,EAAIpwT,GAASowT,EAAG34V,MACnD,EAMAsU,IAAK,SAAUqkV,EAAIpwT,GACf,IAAI2xT,EAKJ,MAJqB,oBAAV3xT,IACP2xT,EAAW3xT,EACXA,EAAQ,MAEL0xT,EAASlqQ,UAAUxnD,EAAO0xT,EAASiR,oBAAoBvS,EAAIpwT,EAAO2xT,GAAYD,EAASwP,aAClG,EAOAr1V,IAAK,SAAUukV,EAAIpwT,GACf,IAAI2xT,EAKJ,MAJqB,oBAAV3xT,IACP2xT,EAAW3xT,EACXA,EAAQ,MAEL0xT,EAASlqQ,UAAUxnD,EAAO0xT,EAASiR,oBAAoBvS,EAAIpwT,EAAO2xT,GAAYD,EAASyP,cAClG,EAMA0C,UAAW,SAAUzT,EAAIpwT,GACrB,OAAO,IAAI89T,GAAY1N,GAAIqO,cAAa,IAAI1jJ,IAAQy1I,MAAMxwT,EAAO,SAAS,GAAM,IAAOvoC,MAC3F,EAMAqsW,WAAY,SAAU1T,EAAIpwT,GACtB,OAAO,IAAI89T,GAAY1N,GAAIqO,cAAa,IAAI1jJ,IAAQy1I,MAAMxwT,EAAO,SAAS,GAAO,IAAOvoC,MAC5F,EAOAmyF,MAAO,SAAUwmQ,EAAIpwT,GACjB,OAAOowT,EAAG34V,MACd,GAKJi6V,EAASqS,gBAAkB,CACvB,IAAK,WACL,IAAK,cACL,KAAM,kBACN,KAAM,qBACN,KAAM,QACN,KAAM,WACN,KAAM,WACN,KAAM,WACN,KAAM,cAMVrS,EAASuG,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,QAMhBvG,EAASwG,cAAgB,CACrB,KAAM,WACN,KAAM,aACN,KAAM,cACN,SAAY,WACZ,WAAc,aACd,SAAY,eAMhBxG,EAASyG,gBAAkB,CACvB,KAAM,WACN,KAAM,aACN,KAAM,WACN,SAAY,WACZ,WAAc,aACd,SAAY,YAEhBzG,EAAS2Q,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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","sources":["../node_modules/deepmerge/dist/cjs.js","../node_modules/domelementtype/lib/index.js","../node_modules/domhandler/lib/index.js","../node_modules/domhandler/lib/node.js","../node_modules/enquire.js/src/MediaQuery.js","../node_modules/enquire.js/src/MediaQueryDispatch.js","../node_modules/enquire.js/src/QueryHandler.js","../node_modules/enquire.js/src/Util.js","../node_modules/enquire.js/src/index.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/html-dom-parser/lib/client/constants.js","../node_modules/html-dom-parser/lib/client/domparser.js","../node_modules/html-dom-parser/lib/client/html-to-dom.js","../node_modules/html-dom-parser/lib/client/utilities.js","../node_modules/html-react-parser/index.js","../node_modules/html-react-parser/lib/attributes-to-props.js","../node_modules/html-react-parser/lib/dom-to-react.js","../node_modules/html-react-parser/lib/utilities.js","../node_modules/inline-style-parser/index.js","../node_modules/json2mq/index.js","../node_modules/load-script/index.js","../node_modules/lodash.debounce/index.js","../node_modules/memoize-one/dist/memoize-one.esm.js","../node_modules/moment/moment.js","../pdfjs-dist/build/pdf/webpack/universalModuleDefinition","../pdfjs-dist/build/pdf/src/shared/util.js","../pdfjs-dist/build/pdf/src/display/api.js","../pdfjs-dist/build/pdf/src/display/annotation_storage.js","../pdfjs-dist/build/pdf/src/display/editor/editor.js","../pdfjs-dist/build/pdf/src/display/editor/tools.js","../pdfjs-dist/build/pdf/src/display/display_utils.js","../pdfjs-dist/build/pdf/src/display/base_factory.js","../pdfjs-dist/build/pdf/src/shared/murmurhash3.js","../pdfjs-dist/build/pdf/src/display/font_loader.js","../pdfjs-dist/build/pdf/src/display/node_utils.js","../pdfjs-dist/build/pdf/src/display/canvas.js","../pdfjs-dist/build/pdf/src/display/pattern_helper.js","../pdfjs-dist/build/pdf/src/shared/image_utils.js","../pdfjs-dist/build/pdf/src/display/worker_options.js","../pdfjs-dist/build/pdf/src/shared/message_handler.js","../pdfjs-dist/build/pdf/src/display/metadata.js","../pdfjs-dist/build/pdf/src/display/optional_content_config.js","../pdfjs-dist/build/pdf/src/display/transport_stream.js","../pdfjs-dist/build/pdf/src/display/fetch_stream.js","../pdfjs-dist/build/pdf/src/display/network_utils.js","../pdfjs-dist/build/pdf/src/display/content_disposition.js","../pdfjs-dist/build/pdf/src/display/network.js","../pdfjs-dist/build/pdf/src/display/node_stream.js","../pdfjs-dist/build/pdf/src/display/svg.js","../pdfjs-dist/build/pdf/src/display/xfa_text.js","../pdfjs-dist/build/pdf/src/display/text_layer.js","../pdfjs-dist/build/pdf/src/display/editor/annotation_editor_layer.js","../pdfjs-dist/build/pdf/src/display/editor/freetext.js","../pdfjs-dist/build/pdf/src/display/annotation_layer.js","../pdfjs-dist/build/pdf/src/shared/scripting_utils.js","../pdfjs-dist/build/pdf/web/l10n_utils.js","../pdfjs-dist/build/pdf/src/display/xfa_layer.js","../pdfjs-dist/build/pdf/src/display/editor/ink.js","../pdfjs-dist/build/pdf/src/display/editor/stamp.js","../pdfjs-dist/build/pdf/webpack/bootstrap","../pdfjs-dist/build/pdf/src/pdf.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../Datetime/webpack/bootstrap","../Datetime/external \"react\"","../Datetime/external \"moment\"","../Datetime/external \"react-dom\"","../Datetime/node_modules/prop-types/index.js","../Datetime/node_modules/prop-types/factoryWithThrowingShims.js","../Datetime/node_modules/prop-types/lib/ReactPropTypesSecret.js","../Datetime/src/parts/ViewNavigation.js","../Datetime/src/views/DaysView.js","../Datetime/src/views/MonthsView.js","../Datetime/src/views/YearsView.js","../Datetime/src/views/TimeView.js","../Datetime/node_modules/react-onclickoutside/dist/react-onclickoutside.es.js","../Datetime/src/DateTime.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react-fast-compare/index.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/index.js","../node_modules/react-player/lib/Player.js","../node_modules/react-player/lib/ReactPlayer.js","../node_modules/react-player/lib/index.js","../node_modules/react-player/lib/patterns.js","../node_modules/react-player/lib/players/index.js","../node_modules/react-player/lib/props.js","../node_modules/react-player/lib/utils.js","../node_modules/react-property/lib/index.js","../node_modules/react-property/lib/possibleStandardNamesOptimized.js","../node_modules/react-slick/lib/arrows.js","../node_modules/react-slick/lib/default-props.js","../node_modules/react-slick/lib/dots.js","../node_modules/react-slick/lib/index.js","../node_modules/react-slick/lib/initial-state.js","../node_modules/react-slick/lib/inner-slider.js","../node_modules/react-slick/lib/slider.js","../node_modules/react-slick/lib/track.js","../node_modules/react-slick/lib/utils/innerSliderUtils.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/simple-react-validator/dist/simple-react-validator.min.js","../node_modules/string-convert/camel2hyphen.js","../node_modules/style-to-js/cjs/index.js","../node_modules/style-to-js/cjs/utilities.js","../node_modules/style-to-object/index.js","../node_modules/toastify-js/src/toastify.js","../node_modules/warning/warning.js","../node_modules/classnames/index.js","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/node module decorator","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../node_modules/@remix-run/router/history.ts","../node_modules/@remix-run/router/utils.ts","../node_modules/@remix-run/router/router.ts","../node_modules/react-router/lib/context.ts","../node_modules/react-router/lib/hooks.tsx","../node_modules/react-router/lib/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/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","assets/images/landing-slide-graphics-1.svg","assets/images/gst-executive-graphics.svg","../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/is.ts","../node_modules/@sentry/src/worldwide.ts","../node_modules/@sentry/src/misc.ts","../node_modules/@sentry/src/time.ts","../node_modules/@sentry/src/debug-build.ts","../node_modules/@sentry/src/logger.ts","../node_modules/@sentry/src/constants.ts","../node_modules/@sentry/src/syncpromise.ts","../node_modules/@sentry/src/eventProcessors.ts","../node_modules/@sentry/src/object.ts","../node_modules/@sentry/src/session.ts","../node_modules/@sentry/src/utils/getRootSpan.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/utils/prepareEvent.ts","../node_modules/@sentry/src/exports.ts","utils/apiConfig.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/useBaseQuery.ts","../node_modules/@tanstack/react-query/src/suspense.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/finance-executive-graphics.svg","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-5486c51c.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","modules/Dashboard/containers/LandingPage.js","assets/images/confirm-icon-graphics.svg","assets/images/invalid-icon-graphics.svg","assets/images/error-theory-not-found-graphics.svg","assets/images/check-graphics.svg","../node_modules/reactstrap/esm/Spinner.js","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/Program/Program.js","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/lock-icon.svg","assets/images/icons/certificate-icon-black.svg","assets/images/icons/logout-icon-black.svg","modules/Profile/components/ProfileDropDown.js","modules/Profile/components/ChangePassword.js","modules/Profile/components/ChangePasswordModalBody.js","modules/Profile/api/profile.api.js","modules/Profile/hooks/useProfileQuery.js","modules/Profile/api/profile.key.js","modules/Profile/hooks/usePassword.js","modules/LearningMaterials/LearningMaterials.js","modules/LearningMaterials/containers/CourseGroupList.js","modules/LearningMaterials/containers/CourseList.js","modules/LearningMaterials/containers/CourseTask.js","modules/LearningMaterials/containers/CourseTaskDetailsMobileView.js","modules/LearningMaterials/hooks/useLearningMaterials.js","modules/LearningMaterials/hooks/useCourseTask.js","modules/LearningMaterials/hooks/useCourse.js","modules/LearningMaterials/hooks/useCourseTaskListQuery.js","modules/LearningMaterials/hooks/useStudentSpecificDataQuery.js","modules/LearningMaterials/hooks/useCourseTaskDetailsQuery.js","modules/LearningMaterials/api/LearningMaterials.api.js","utils/queryBuilder.js","modules/LearningMaterials/api/LearningMaterials.key.js","assets/images/icons/green-check-filled.svg","assets/images/icons/right-direction-icon.svg","modules/LearningMaterials/components/CourseCard.js","modules/LearningMaterials/components/CourseGroupCard.js","assets/images/student-specific-data-img.svg","modules/LearningMaterials/components/CourseTaskSideBar.js","assets/images/icons/fullscreen.svg","modules/LearningMaterials/components/CouseTaskView.js","modules/LearningMaterials/components/CourseTaskSideBarCard.js","modules/LearningMaterials/components/CourseTaskTheory.js","modules/LearningMaterials/components/CourseTaskVideo.js","modules/LearningMaterials/components/CourseTaskDocs.js","modules/LearningMaterials/components/CourseTaskFooter.js","assets/images/icons/link-icon.svg","modules/LearningMaterials/components/ExternalLinkContent.js","assets/images/icons/pdf-icon.svg","modules/LearningMaterials/components/PdfContent.js","assets/images/icons/video-icon.svg","modules/LearningMaterials/components/VideoContent.js","modules/LearningMaterials/components/VideoLinkContent.js","modules/LearningMaterials/components/CourseTheoryAttachment.js","shared/hooks/useVideoPlayer.js","modules/LearningMaterials/components/StudentSpecificDataList.js","modules/LearningMaterials/components/StudentSpecificDataBtn.js","modules/LearningMaterials/components/CourseTheory.js","../node_modules/@syncfusion/ej2-base/src/util.js","../node_modules/@syncfusion/ej2-base/src/intl/parser-base.js","../node_modules/@syncfusion/ej2-base/src/hijri-parser.js","../node_modules/@syncfusion/ej2-base/src/intl/date-formatter.js","../node_modules/@syncfusion/ej2-base/src/intl/number-formatter.js","../node_modules/@syncfusion/ej2-base/src/intl/date-parser.js","../node_modules/@syncfusion/ej2-base/src/intl/number-parser.js","../node_modules/@syncfusion/ej2-base/src/observer.js","../node_modules/@syncfusion/ej2-base/src/internationalization.js","../node_modules/@syncfusion/ej2-base/src/intl/intl-base.js","../node_modules/@syncfusion/ej2-base/src/ajax.js","../node_modules/@syncfusion/ej2-base/src/browser.js","../node_modules/@syncfusion/ej2-base/src/event-handler.js","../node_modules/@syncfusion/ej2-base/src/dom.js","../node_modules/@syncfusion/ej2-base/src/base.js","../node_modules/@syncfusion/ej2-base/src/notify-property-change.js","../node_modules/@syncfusion/ej2-base/src/animation.js","../node_modules/@syncfusion/ej2-base/src/module-loader.js","../node_modules/@syncfusion/ej2-base/src/validate-lic.js","../node_modules/@syncfusion/ej2-base/src/child-property.js","../node_modules/@syncfusion/ej2-base/src/component.js","../node_modules/@syncfusion/ej2-base/src/draggable.js","../node_modules/@syncfusion/ej2-base/src/droppable.js","../node_modules/@syncfusion/ej2-base/src/keyboard.js","../node_modules/@syncfusion/ej2-base/src/l10n.js","../node_modules/@syncfusion/ej2-base/src/touch.js","../node_modules/@syncfusion/ej2-base/src/template.js","../node_modules/@syncfusion/ej2-base/src/template-engine.js","../node_modules/@syncfusion/ej2-base/src/sanitize-helper.js","../node_modules/@syncfusion/ej2-buttons/src/common/common.js","../node_modules/@syncfusion/ej2-buttons/src/button/button.js","../node_modules/@syncfusion/ej2-popups/src/common/position.js","../node_modules/@syncfusion/ej2-popups/src/common/collision.js","../node_modules/@syncfusion/ej2-popups/src/popup/popup.js","../node_modules/@syncfusion/ej2-popups/src/common/resize.js","../node_modules/@syncfusion/ej2-popups/src/dialog/dialog.js","../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/base/text-layer.js","../node_modules/@syncfusion/ej2-drawings/src/drawing/utility/path-util.js","../node_modules/@syncfusion/ej2-inputs/src/input/input.js","../node_modules/@syncfusion/ej2-inputs/src/textbox/textbox.js","../node_modules/@syncfusion/ej2-drawings/src/drawing/primitives/matrix.js","../node_modules/@syncfusion/ej2-drawings/src/drawing/primitives/point.js","../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/drawing/drawing-util.js","../node_modules/@syncfusion/ej2-buttons/src/check-box/check-box.js","../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/base/types.js","../node_modules/@syncfusion/ej2-navigations/src/common/h-scroll.js","../node_modules/@syncfusion/ej2-navigations/src/common/v-scroll.js","../node_modules/@syncfusion/ej2-navigations/src/toolbar/toolbar.js","../node_modules/@syncfusion/ej2-navigations/src/tab/tab.js","../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/base/signature.js","../node_modules/@syncfusion/ej2-lists/src/common/list-base.js","../node_modules/@syncfusion/ej2-data/src/adaptors.js","../node_modules/@syncfusion/ej2-data/src/manager.js","../node_modules/@syncfusion/ej2-data/src/util.js","../node_modules/@syncfusion/ej2-data/src/query.js","../node_modules/@syncfusion/ej2-navigations/src/common/menu-scroll.js","../node_modules/@syncfusion/ej2-navigations/src/common/menu-base.js","../node_modules/@syncfusion/ej2-notifications/src/toast/toast.js","../node_modules/@syncfusion/ej2-navigations/src/context-menu/context-menu.js","../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/base/context-menu.js","../node_modules/@syncfusion/ej2-drawings/src/drawing/primitives/size.js","../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/drawing/pdf-annotation.js","../node_modules/@syncfusion/ej2-popups/src/tooltip/tooltip.js","../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/base/navigation-pane.js","../node_modules/@syncfusion/ej2-drawings/src/drawing/enum/enum.js","../node_modules/@syncfusion/ej2-inputs/src/numerictextbox/numerictextbox.js","../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/base/ajax-handler.js","../node_modules/@syncfusion/ej2-drawings/src/drawing/primitives/rect.js","../node_modules/@syncfusion/ej2-drawings/src/drawing/utility/diagram-util.js","../node_modules/@syncfusion/ej2-drawings/src/drawing/utility/dom-util.js","../node_modules/@syncfusion/ej2-drawings/src/drawing/utility/base-util.js","../node_modules/@syncfusion/ej2-drawings/src/drawing/core/elements/drawing-element.js","../node_modules/@syncfusion/ej2-drawings/src/drawing/core/elements/text-element.js","../node_modules/@syncfusion/ej2-drawings/src/drawing/core/containers/container.js","../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/drawing/selector.js","../node_modules/@syncfusion/ej2-drawings/src/drawing/core/elements/path-element.js","../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/drawing/connector-util.js","../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/drawing/action.js","../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/drawing/tools.js","../node_modules/@syncfusion/ej2-drawings/src/drawing/rendering/canvas-renderer.js","../node_modules/@syncfusion/ej2-drawings/src/drawing/rendering/svg-renderer.js","../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/drawing/dom-util.js","../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/base/blazor-context-menu.js","../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/base/spinner.js","../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/base/blazor-ui-adaptor.js","../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/base/pdfviewer-base.js","../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/form-fields/form-fields.js","../node_modules/@syncfusion/ej2-drawings/src/drawing/core/elements/image-element.js","../node_modules/@syncfusion/ej2-drawings/src/drawing/rendering/renderer.js","../node_modules/@syncfusion/ej2-drawings/src/drawing/core/containers/canvas.js","../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/drawing/html-element.js","../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/drawing/drawing.js","../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/pdfviewer.js","../node_modules/@syncfusion/ej2-react-base/src/component-base.js","../node_modules/@syncfusion/ej2-react-base/src/complex-base.js","../node_modules/@syncfusion/ej2-react-base/src/services.js","../node_modules/@syncfusion/ej2-react-base/src/template.js","../node_modules/@syncfusion/ej2-react-pdfviewer/src/pdfviewer/pdfviewer.component.js","../node_modules/@syncfusion/ej2-react-base/src/util.js","../node_modules/@syncfusion/ej2-popups/src/spinner/spinner.js","../node_modules/@syncfusion/ej2-dropdowns/src/common/incremental-search.js","../node_modules/@syncfusion/ej2-dropdowns/src/drop-down-base/drop-down-base.js","../node_modules/@syncfusion/ej2-dropdowns/src/drop-down-list/drop-down-list.js","../node_modules/@syncfusion/ej2-dropdowns/src/combo-box/combo-box.js","../node_modules/@syncfusion/ej2-navigations/src/menu/menu.js","../node_modules/@syncfusion/ej2-splitbuttons/src/common/common.js","../node_modules/@syncfusion/ej2-splitbuttons/src/drop-down-button/drop-down-button.js","../node_modules/@syncfusion/ej2-splitbuttons/src/split-button/split-button.js","../node_modules/@syncfusion/ej2-inputs/src/slider/slider.js","../node_modules/@syncfusion/ej2-inputs/src/color-picker/color-picker.js","../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/toolbar/annotation-toolbar.js","../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/toolbar/formdesigner-toolbar.js","../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/toolbar/toolbar.js","../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/navigation/page-navigation.js","../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/text-search/text-search.js","../node_modules/@syncfusion/ej2-pdfviewer/src/pdfviewer/magnification/magnification.js","modules/ContentViewer/PDFViewer.js","modules/Help/Help.js","assets/images/error-something-went-wrong-graphics.svg","modules/Help/container/HelpView.js","modules/Help/hooks/useHelp.js","modules/Help/hooks/useHelpQuery.js","modules/Help/api/help.key.js","modules/Help/api/help.api.js","modules/Privacy/container/PrivacyAndPolicy.js","modules/Privacy/hooks/usePrivacy.js","modules/Privacy/Privacy.js","modules/FAQ/Faq.js","modules/FAQ/container/FrequentlyQuestions.js","modules/FAQ/hooks/useFaq.js","modules/TermsAndCondition/container/TermsCondition.js","modules/TermsAndCondition/hooks/useTermsAndCondition.js","modules/TermsAndCondition/TermsAndConditions.js","modules/Assessment/Assessment.js","modules/Assessment/hook/useAssessment.js","modules/Assessment/hook/useAssessmentQuery.js","modules/Assessment/hook/useAssessmentScheduleQuery.js","modules/Assessment/hook/useAssessmentSlotQuery.js","modules/Assessment/hook/useAssessmentResultQuery.js","modules/Assessment/hook/useTimeout.js","assets/images/assessmet-empty-graphics.svg","modules/Assessment/containers/AssessmentList.js","assets/images/icons/tile-menu-icon-grey.svg","assets/images/icons/prev-icon-black.svg","assets/images/icons/next-icon-black.svg","assets/images/icons/close-icon-blue.svg","assets/images/icons/flag-icon-blue.svg","modules/Assessment/containers/Questionnaire.js","modules/Assessment/containers/Review.js","assets/images/assessment-session-expired.svg","modules/Assessment/containers/ExpiredPage.js","modules/Assessment/containers/QuestionsAllMobile.js","modules/Assessment/containers/AssessmentResult.js","assets/images/icons/quesion-mark-grey.svg","assets/images/icons/timer-icon-dark-grey.svg","assets/images/icons/close-filled-red.svg","assets/images/icons/sand-timer-bown-icon.svg","assets/images/icons/not-attempted.svg","modules/Assessment/components/AssessmentItem.js","assets/images/icons/calendar-icon-dark-grey.svg","modules/Assessment/components/AttemptItem.js","modules/Assessment/components/AssessmentStatusRow.js","modules/Assessment/components/AssessmentSpinnerElement.js","../node_modules/reactstrap/esm/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","../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/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/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","shared/hooks/useProfileDropDown.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/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.key.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","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/contexts/AppScope.js","master/contexts/QuestionnaireScope.js","master/components/NetworkStatusMessage.js","master/components/OfflineIcon.js","master/components/OnlineIcon.js","index.js"],"sourcesContent":["'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction getMergeFunction(key, options) {\n\tif (!options.customMerge) {\n\t\treturn deepmerge\n\t}\n\tvar customMerge = options.customMerge(key);\n\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n\treturn Object.getOwnPropertySymbols\n\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\treturn Object.propertyIsEnumerable.call(target, symbol)\n\t\t})\n\t\t: []\n}\n\nfunction getKeys(target) {\n\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n}\n\nfunction propertyIsOnObject(object, property) {\n\ttry {\n\t\treturn property in object\n\t} catch(_) {\n\t\treturn false\n\t}\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n\treturn propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n\t\t&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n\t\t\t&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tgetKeys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tgetKeys(source).forEach(function(key) {\n\t\tif (propertyIsUnsafe(target, key)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\t// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n\t// implementations can use it. The caller may not replace it.\n\toptions.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Doctype = exports.CDATA = exports.Tag = exports.Style = exports.Script = exports.Comment = exports.Directive = exports.Text = exports.Root = exports.isTag = exports.ElementType = void 0;\n/** Types of elements found in htmlparser2's DOM */\nvar ElementType;\n(function (ElementType) {\n /** Type for the root element of a document */\n ElementType[\"Root\"] = \"root\";\n /** Type for Text */\n ElementType[\"Text\"] = \"text\";\n /** Type for */\n ElementType[\"Directive\"] = \"directive\";\n /** Type for */\n ElementType[\"Comment\"] = \"comment\";\n /** Type for ' + '');\n printWindow.document.close();\n printWindow.focus();\n // eslint-disable-next-line\n var interval = setInterval(function () {\n if (printWindow.ready) {\n printWindow.print();\n printWindow.close();\n clearInterval(interval);\n }\n }, 500);\n return printWindow;\n}\n/**\n * Function to normalize the units applied to the element.\n *\n * @param {number|string} value ?\n * @returns {string} result\n * @private\n */\nexport function formatUnit(value) {\n var result = value + '';\n if (result.match(/auto|cm|mm|in|px|pt|pc|%|em|ex|ch|rem|vw|vh|vmin|vmax/)) {\n return result;\n }\n return result + 'px';\n}\n/**\n * Function to check whether the platform is blazor or not.\n *\n * @returns {void} result\n * @private\n */\nexport function enableBlazorMode() {\n isBlazorPlatform = true;\n}\n/**\n * Function to check whether the platform is blazor or not.\n *\n * @returns {boolean} result\n * @private\n */\nexport function isBlazor() {\n return isBlazorPlatform;\n}\n/**\n * Function to convert xPath to DOM element in blazor platform\n *\n * @returns {HTMLElement} result\n * @param {HTMLElement | object} element ?\n * @private\n */\nexport function getElement(element) {\n var xPath = 'xPath';\n if (!(element instanceof Node) && isBlazor() && !isNullOrUndefined(element[\"\" + xPath])) {\n return document.evaluate(element[\"\" + xPath], document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;\n }\n return element;\n}\n/**\n * Function to fetch the Instances of a HTML element for the given component.\n *\n * @param {string | HTMLElement} element ?\n * @param {any} component ?\n * @returns {Object} ?\n * @private\n */\n// eslint-disable-next-line\nexport function getInstance(element, component) {\n // eslint-disable-next-line\n var elem = (typeof (element) === 'string') ? document.querySelector(element) : element;\n if (elem[\"\" + instances]) {\n for (var _i = 0, _a = elem[\"\" + instances]; _i < _a.length; _i++) {\n var inst = _a[_i];\n if (inst instanceof component) {\n return inst;\n }\n }\n }\n return null;\n}\n/**\n * Function to add instances for the given element.\n *\n * @param {string | HTMLElement} element ?\n * @param {Object} instance ?\n * @returns {void} ?\n * @private\n */\nexport function addInstance(element, instance) {\n // eslint-disable-next-line\n var elem = (typeof (element) === 'string') ? document.querySelector(element) : element;\n if (elem[\"\" + instances]) {\n elem[\"\" + instances].push(instance);\n }\n else {\n elem[\"\" + instances] = [instance];\n }\n}\n/**\n * Function to generate the unique id.\n *\n * @returns {any} ?\n * @private\n */\n// eslint-disable-next-line\nexport function uniqueID() {\n if ((typeof window) === 'undefined') {\n return;\n }\n // eslint-disable-next-line\n var num = new Uint16Array(5);\n var intCrypto = window.msCrypto || window.crypto;\n return intCrypto.getRandomValues(num);\n}\n/**\n *\n * @param {Int16Array} num ?\n * @returns {string} ?\n */\nfunction combineArray(num) {\n var ret = '';\n for (var i = 0; i < 5; i++) {\n ret += (i ? ',' : '') + num[parseInt(i.toString(), 10)];\n }\n return ret;\n}\n","/**\n * Parser\n */\nvar defaultNumberingSystem = {\n 'latn': {\n '_digits': '0123456789',\n '_type': 'numeric'\n }\n};\nimport { isUndefined, getValue, isBlazor } from '../util';\nvar defaultNumberSymbols = {\n 'decimal': '.',\n 'group': ',',\n 'percentSign': '%',\n 'plusSign': '+',\n 'minusSign': '-',\n 'infinity': '∞',\n 'nan': 'NaN',\n 'exponential': 'E'\n};\nvar latnNumberSystem = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];\n/**\n * Interface for parser base\n *\n * @private\n */\nvar ParserBase = /** @class */ (function () {\n function ParserBase() {\n }\n /**\n * Returns the cldr object for the culture specifies\n *\n * @param {Object} obj - Specifies the object from which culture object to be acquired.\n * @param {string} cName - Specifies the culture name.\n * @returns {Object} ?\n */\n ParserBase.getMainObject = function (obj, cName) {\n var value = isBlazor() ? cName : 'main.' + cName;\n return getValue(value, obj);\n };\n /**\n * Returns the numbering system object from given cldr data.\n *\n * @param {Object} obj - Specifies the object from which number system is acquired.\n * @returns {Object} ?\n */\n ParserBase.getNumberingSystem = function (obj) {\n return getValue('supplemental.numberingSystems', obj) || this.numberingSystems;\n };\n /**\n * Returns the reverse of given object keys or keys specified.\n *\n * @param {Object} prop - Specifies the object to be reversed.\n * @param {number[]} keys - Optional parameter specifies the custom keyList for reversal.\n * @returns {Object} ?\n */\n ParserBase.reverseObject = function (prop, keys) {\n var propKeys = keys || Object.keys(prop);\n var res = {};\n for (var _i = 0, propKeys_1 = propKeys; _i < propKeys_1.length; _i++) {\n var key = propKeys_1[_i];\n // eslint-disable-next-line\n if (!res.hasOwnProperty(prop[key])) {\n // eslint-disable-next-line\n res[prop[key]] = key;\n }\n }\n return res;\n };\n /**\n * Returns the symbol regex by skipping the escape sequence.\n *\n * @param {string[]} props - Specifies the array values to be skipped.\n * @returns {RegExp} ?\n */\n ParserBase.getSymbolRegex = function (props) {\n var regexStr = props.map(function (str) {\n return str.replace(/([.*+?^=!:${}()|[\\]/\\\\])/g, '\\\\$1');\n }).join('|');\n return new RegExp(regexStr, 'g');\n };\n /**\n *\n * @param {Object} prop ?\n * @returns {Object} ?\n */\n ParserBase.getSymbolMatch = function (prop) {\n var matchKeys = Object.keys(defaultNumberSymbols);\n var ret = {};\n for (var _i = 0, matchKeys_1 = matchKeys; _i < matchKeys_1.length; _i++) {\n var key = matchKeys_1[_i];\n // eslint-disable-next-line\n ret[prop[key]] = defaultNumberSymbols[key];\n }\n return ret;\n };\n /**\n * Returns regex string for provided value\n *\n * @param {string} val ?\n * @returns {string} ?\n */\n ParserBase.constructRegex = function (val) {\n var len = val.length;\n var ret = '';\n for (var i = 0; i < len; i++) {\n if (i !== len - 1) {\n ret += val[parseInt(i.toString(), 10)] + '|';\n }\n else {\n ret += val[parseInt(i.toString(), 10)];\n }\n }\n return ret;\n };\n /**\n * Returns the replaced value of matching regex and obj mapper.\n *\n * @param {string} value - Specifies the values to be replaced.\n * @param {RegExp} regex - Specifies the regex to search.\n * @param {Object} obj - Specifies the object matcher to be replace value parts.\n * @returns {string} ?\n */\n ParserBase.convertValueParts = function (value, regex, obj) {\n return value.replace(regex, function (str) {\n // eslint-disable-next-line\n return obj[str];\n });\n };\n /**\n * Returns default numbering system object for formatting from cldr data\n *\n * @param {Object} obj ?\n * @returns {NumericObject} ?\n */\n ParserBase.getDefaultNumberingSystem = function (obj) {\n var ret = {};\n ret.obj = getValue('numbers', obj);\n ret.nSystem = getValue('defaultNumberingSystem', ret.obj);\n return ret;\n };\n /**\n * Returns the replaced value of matching regex and obj mapper.\n *\n * @param {Object} curObj ?\n * @param {Object} numberSystem ?\n * @param {boolean} needSymbols ?\n * @param {boolean} blazorMode ?\n * @returns {Object} ?\n */\n ParserBase.getCurrentNumericOptions = function (curObj, numberSystem, needSymbols, blazorMode) {\n var ret = {};\n var cur = this.getDefaultNumberingSystem(curObj);\n if (!isUndefined(cur.nSystem) || blazorMode) {\n var digits = blazorMode ? getValue('obj.mapperDigits', cur) : getValue(cur.nSystem + '._digits', numberSystem);\n if (!isUndefined(digits)) {\n ret.numericPair = this.reverseObject(digits, latnNumberSystem);\n ret.numberParseRegex = new RegExp(this.constructRegex(digits), 'g');\n ret.numericRegex = '[' + digits[0] + '-' + digits[9] + ']';\n if (needSymbols) {\n ret.numericRegex = digits[0] + '-' + digits[9];\n ret.symbolNumberSystem = getValue(blazorMode ? 'numberSymbols' : 'symbols-numberSystem-' + cur.nSystem, cur.obj);\n ret.symbolMatch = this.getSymbolMatch(ret.symbolNumberSystem);\n ret.numberSystem = cur.nSystem;\n }\n }\n }\n return ret;\n };\n /**\n * Returns number mapper object for the provided cldr data\n *\n * @param {Object} curObj ?\n * @param {Object} numberSystem ?\n * @param {boolean} isNumber ?\n * @returns {NumberMapper} ?\n */\n // eslint-disable-next-line\n ParserBase.getNumberMapper = function (curObj, numberSystem, isNumber) {\n var ret = { mapper: {} };\n var cur = this.getDefaultNumberingSystem(curObj);\n if (!isUndefined(cur.nSystem)) {\n ret.numberSystem = cur.nSystem;\n ret.numberSymbols = getValue('symbols-numberSystem-' + cur.nSystem, cur.obj);\n ret.timeSeparator = getValue('timeSeparator', ret.numberSymbols);\n var digits = getValue(cur.nSystem + '._digits', numberSystem);\n if (!isUndefined(digits)) {\n for (var _i = 0, latnNumberSystem_1 = latnNumberSystem; _i < latnNumberSystem_1.length; _i++) {\n var i = latnNumberSystem_1[_i];\n // eslint-disable-next-line\n ret.mapper[i] = digits[i];\n }\n }\n }\n return ret;\n };\n ParserBase.nPair = 'numericPair';\n ParserBase.nRegex = 'numericRegex';\n ParserBase.numberingSystems = defaultNumberingSystem;\n return ParserBase;\n}());\nexport { ParserBase };\n/**\n * @private\n */\nvar blazorCurrencyData = {\n 'DJF': 'Fdj',\n 'ERN': 'Nfk',\n 'ETB': 'Br',\n 'NAD': '$',\n 'ZAR': 'R',\n 'XAF': 'FCFA',\n 'GHS': 'GH₵',\n 'XDR': 'XDR',\n 'AED': 'د.إ.‏',\n 'BHD': 'د.ب.‏',\n 'DZD': 'د.ج.‏',\n 'EGP': 'ج.م.‏',\n 'ILS': '₪',\n 'IQD': 'د.ع.‏',\n 'JOD': 'د.ا.‏',\n 'KMF': 'CF',\n 'KWD': 'د.ك.‏',\n 'LBP': 'ل.ل.‏',\n 'LYD': 'د.ل.‏',\n 'MAD': 'د.م.‏',\n 'MRU': 'أ.م.',\n 'OMR': 'ر.ع.‏',\n 'QAR': 'ر.ق.‏',\n 'SAR': 'ر.س.‏',\n 'SDG': 'ج.س.',\n 'SOS': 'S',\n 'SSP': '£',\n 'SYP': 'ل.س.‏',\n 'TND': 'د.ت.‏',\n 'YER': 'ر.ي.‏',\n 'CLP': '$',\n 'INR': '₹',\n 'TZS': 'TSh',\n 'EUR': '€',\n 'AZN': '₼',\n 'RUB': '₽',\n 'BYN': 'Br',\n 'ZMW': 'K',\n 'BGN': 'лв.',\n 'NGN': '₦',\n 'XOF': 'CFA',\n 'BDT': '৳',\n 'CNY': '¥',\n 'BAM': 'КМ',\n 'UGX': 'USh',\n 'USD': '$',\n 'CZK': 'Kč',\n 'GBP': '£',\n 'DKK': 'kr.',\n 'KES': 'Ksh',\n 'CHF': 'CHF',\n 'MVR': 'ރ.',\n 'BTN': 'Nu.',\n 'XCD': 'EC$',\n 'AUD': '$',\n 'BBD': '$',\n 'BIF': 'FBu',\n 'BMD': '$',\n 'BSD': '$',\n 'BWP': 'P',\n 'BZD': '$',\n 'CAD': '$',\n 'NZD': '$',\n 'FJD': '$',\n 'FKP': '£',\n 'GIP': '£',\n 'GMD': 'D',\n 'GYD': '$',\n 'HKD': '$',\n 'IDR': 'Rp',\n 'JMD': '$',\n 'KYD': '$',\n 'LRD': '$',\n 'MGA': 'Ar',\n 'MOP': 'MOP$',\n 'MUR': 'Rs',\n 'MWK': 'MK',\n 'MYR': 'RM',\n 'PGK': 'K',\n 'PHP': '₱',\n 'PKR': 'Rs',\n 'RWF': 'RF',\n 'SBD': '$',\n 'SCR': 'SR',\n 'SEK': 'kr',\n 'SGD': '$',\n 'SHP': '£',\n 'SLL': 'Le',\n 'ANG': 'NAf.',\n 'SZL': 'E',\n 'TOP': 'T$',\n 'TTD': '$',\n 'VUV': 'VT',\n 'WST': 'WS$',\n 'ARS': '$',\n 'BOB': 'Bs',\n 'BRL': 'R$',\n 'COP': '$',\n 'CRC': '₡',\n 'CUP': '$',\n 'DOP': '$',\n 'GTQ': 'Q',\n 'HNL': 'L',\n 'MXN': '$',\n 'NIO': 'C$',\n 'PAB': 'B/.',\n 'PEN': 'S/',\n 'PYG': '₲',\n 'UYU': '$',\n 'VES': 'Bs.S',\n 'IRR': 'ريال',\n 'GNF': 'FG',\n 'CDF': 'FC',\n 'HTG': 'G',\n 'XPF': 'FCFP',\n 'HRK': 'kn',\n 'HUF': 'Ft',\n 'AMD': '֏',\n 'ISK': 'kr',\n 'JPY': '¥',\n 'GEL': '₾',\n 'CVE': '​',\n 'KZT': '₸',\n 'KHR': '៛',\n 'KPW': '₩',\n 'KRW': '₩',\n 'KGS': 'сом',\n 'AOA': 'Kz',\n 'LAK': '₭',\n 'MZN': 'MTn',\n 'MKD': 'ден',\n 'MNT': '₮',\n 'BND': '$',\n 'MMK': 'K',\n 'NOK': 'kr',\n 'NPR': 'रु',\n 'AWG': 'Afl.',\n 'SRD': '$',\n 'PLN': 'zł',\n 'AFN': '؋',\n 'STN': 'Db',\n 'MDL': 'L',\n 'RON': 'lei',\n 'UAH': '₴',\n 'LKR': 'රු.',\n 'ALL': 'Lekë',\n 'RSD': 'дин.',\n 'TJS': 'смн',\n 'THB': '฿',\n 'TMT': 'm.',\n 'TRY': '₺',\n 'UZS': 'сўм',\n 'VND': '₫',\n 'TWD': 'NT$'\n};\n/**\n *\n * @param {string} currencyCode ?\n * @returns {string} ?\n */\nexport function getBlazorCurrencySymbol(currencyCode) {\n return getValue(currencyCode || '', blazorCurrencyData);\n}\n","/***\n * Hijri parser\n */\n// eslint-disable-next-line\nexport var HijriParser;\n(function (HijriParser) {\n var dateCorrection = [28607, 28636, 28665, 28695, 28724, 28754, 28783, 28813, 28843, 28872, 28901, 28931, 28960, 28990,\n 29019, 29049, 29078, 29108, 29137, 29167, 29196, 29226, 29255, 29285, 29315, 29345, 29375, 29404, 29434, 29463, 29492, 29522,\n 29551, 29580, 29610, 29640, 29669, 29699, 29729, 29759, 29788, 29818, 29847, 29876, 29906, 29935, 29964, 29994, 30023, 30053,\n 30082, 30112, 30141, 30171, 30200, 30230, 30259, 30289, 30318, 30348, 30378, 30408, 30437, 30467, 30496, 30526, 30555, 30585,\n 30614, 30644, 30673, 30703, 30732, 30762, 30791, 30821, 30850, 30880, 30909, 30939, 30968, 30998, 31027, 31057, 31086, 31116,\n 31145, 31175, 31204, 31234, 31263, 31293, 31322, 31352, 31381, 31411, 31441, 31471, 31500, 31530, 31559, 31589, 31618, 31648,\n 31676, 31706, 31736, 31766, 31795, 31825, 31854, 31884, 31913, 31943, 31972, 32002, 32031, 32061, 32090, 32120, 32150, 32180,\n 32209, 32239, 32268, 32298, 32327, 32357, 32386, 32416, 32445, 32475, 32504, 32534, 32563, 32593, 32622, 32652, 32681, 32711,\n 32740, 32770, 32799, 32829, 32858, 32888, 32917, 32947, 32976, 33006, 33035, 33065, 33094, 33124, 33153, 33183, 33213, 33243,\n 33272, 33302, 33331, 33361, 33390, 33420, 33450, 33479, 33509, 33539, 33568, 33598, 33627, 33657, 33686, 33716, 33745, 33775,\n 33804, 33834, 33863, 33893, 33922, 33952, 33981, 34011, 34040, 34069, 34099, 34128, 34158, 34187, 34217, 34247, 34277, 34306,\n 34336, 34365, 34395, 34424, 34454, 34483, 34512, 34542, 34571, 34601, 34631, 34660, 34690, 34719, 34749, 34778, 34808, 34837,\n 34867, 34896, 34926, 34955, 34985, 35015, 35044, 35074, 35103, 35133, 35162, 35192, 35222, 35251, 35280, 35310, 35340, 35370,\n 35399, 35429, 35458, 35488, 35517, 35547, 35576, 35605, 35635, 35665, 35694, 35723, 35753, 35782, 35811, 35841, 35871, 35901,\n 35930, 35960, 35989, 36019, 36048, 36078, 36107, 36136, 36166, 36195, 36225, 36254, 36284, 36314, 36343, 36373, 36403, 36433,\n 36462, 36492, 36521, 36551, 36580, 36610, 36639, 36669, 36698, 36728, 36757, 36786, 36816, 36845, 36875, 36904, 36934, 36963,\n 36993, 37022, 37052, 37081, 37111, 37141, 37170, 37200, 37229, 37259, 37288, 37318, 37347, 37377, 37406, 37436, 37465, 37495,\n 37524, 37554, 37584, 37613, 37643, 37672, 37701, 37731, 37760, 37790, 37819, 37849, 37878, 37908, 37938, 37967, 37997, 38027,\n 38056, 38085, 38115, 38144, 38174, 38203, 38233, 38262, 38292, 38322, 38351, 38381, 38410, 38440, 38469, 38499, 38528, 38558,\n 38587, 38617, 38646, 38676, 38705, 38735, 38764, 38794, 38823, 38853, 38882, 38912, 38941, 38971, 39001, 39030, 39059, 39089,\n 39118, 39148, 39178, 39208, 39237, 39267, 39297, 39326, 39355, 39385, 39414, 39444, 39473, 39503, 39532, 39562, 39592, 39621,\n 39650, 39680, 39709, 39739, 39768, 39798, 39827, 39857, 39886, 39916, 39946, 39975, 40005, 40035, 40064, 40094, 40123, 40153,\n 40182, 40212, 40241, 40271, 40300, 40330, 40359, 40389, 40418, 40448, 40477, 40507, 40536, 40566, 40595, 40625, 40655, 40685,\n 40714, 40744, 40773, 40803, 40832, 40862, 40892, 40921, 40951, 40980, 41009, 41039, 41068, 41098, 41127, 41157, 41186, 41216,\n 41245, 41275, 41304, 41334, 41364, 41393, 41422, 41452, 41481, 41511, 41540, 41570, 41599, 41629, 41658, 41688, 41718, 41748,\n 41777, 41807, 41836, 41865, 41894, 41924, 41953, 41983, 42012, 42042, 42072, 42102, 42131, 42161, 42190, 42220, 42249, 42279,\n 42308, 42337, 42367, 42397, 42426, 42456, 42485, 42515, 42545, 42574, 42604, 42633, 42662, 42692, 42721, 42751, 42780, 42810,\n 42839, 42869, 42899, 42929, 42958, 42988, 43017, 43046, 43076, 43105, 43135, 43164, 43194, 43223, 43253, 43283, 43312, 43342,\n 43371, 43401, 43430, 43460, 43489, 43519, 43548, 43578, 43607, 43637, 43666, 43696, 43726, 43755, 43785, 43814, 43844, 43873,\n 43903, 43932, 43962, 43991, 44021, 44050, 44080, 44109, 44139, 44169, 44198, 44228, 44258, 44287, 44317, 44346, 44375, 44405,\n 44434, 44464, 44493, 44523, 44553, 44582, 44612, 44641, 44671, 44700, 44730, 44759, 44788, 44818, 44847, 44877, 44906, 44936,\n 44966, 44996, 45025, 45055, 45084, 45114, 45143, 45172, 45202, 45231, 45261, 45290, 45320, 45350, 45380, 45409, 45439, 45468,\n 45498, 45527, 45556, 45586, 45615, 45644, 45674, 45704, 45733, 45763, 45793, 45823, 45852, 45882, 45911, 45940, 45970, 45999,\n 46028, 46058, 46088, 46117, 46147, 46177, 46206, 46236, 46265, 46295, 46324, 46354, 46383, 46413, 46442, 46472, 46501, 46531,\n 46560, 46590, 46620, 46649, 46679, 46708, 46738, 46767, 46797, 46826, 46856, 46885, 46915, 46944, 46974, 47003, 47033, 47063,\n 47092, 47122, 47151, 47181, 47210, 47240, 47269, 47298, 47328, 47357, 47387, 47417, 47446, 47476, 47506, 47535, 47565, 47594,\n 47624, 47653, 47682, 47712, 47741, 47771, 47800, 47830, 47860, 47890, 47919, 47949, 47978, 48008, 48037, 48066, 48096, 48125,\n 48155, 48184, 48214, 48244, 48273, 48303, 48333, 48362, 48392, 48421, 48450, 48480, 48509, 48538, 48568, 48598, 48627, 48657,\n 48687, 48717, 48746, 48776, 48805, 48834, 48864, 48893, 48922, 48952, 48982, 49011, 49041, 49071, 49100, 49130, 49160, 49189,\n 49218, 49248, 49277, 49306, 49336, 49365, 49395, 49425, 49455, 49484, 49514, 49543, 49573, 49602, 49632, 49661, 49690, 49720,\n 49749, 49779, 49809, 49838, 49868, 49898, 49927, 49957, 49986, 50016, 50045, 50075, 50104, 50133, 50163, 50192, 50222, 50252,\n 50281, 50311, 50340, 50370, 50400, 50429, 50459, 50488, 50518, 50547, 50576, 50606, 50635, 50665, 50694, 50724, 50754, 50784,\n 50813, 50843, 50872, 50902, 50931, 50960, 50990, 51019, 51049, 51078, 51108, 51138, 51167, 51197, 51227, 51256, 51286, 51315,\n 51345, 51374, 51403, 51433, 51462, 51492, 51522, 51552, 51582, 51611, 51641, 51670, 51699, 51729, 51758, 51787, 51816, 51846,\n 51876, 51906, 51936, 51965, 51995, 52025, 52054, 52083, 52113, 52142, 52171, 52200, 52230, 52260, 52290, 52319, 52349, 52379,\n 52408, 52438, 52467, 52497, 52526, 52555, 52585, 52614, 52644, 52673, 52703, 52733, 52762, 52792, 52822, 52851, 52881, 52910,\n 52939, 52969, 52998, 53028, 53057, 53087, 53116, 53146, 53176, 53205, 53235, 53264, 53294, 53324, 53353, 53383, 53412, 53441,\n 53471, 53500, 53530, 53559, 53589, 53619, 53648, 53678, 53708, 53737, 53767, 53796, 53825, 53855, 53884, 53913, 53943, 53973,\n 54003, 54032, 54062, 54092, 54121, 54151, 54180, 54209, 54239, 54268, 54297, 54327, 54357, 54387, 54416, 54446, 54476, 54505,\n 54535, 54564, 54593, 54623, 54652, 54681, 54711, 54741, 54770, 54800, 54830, 54859, 54889, 54919, 54948, 54977, 55007, 55036,\n 55066, 55095, 55125, 55154, 55184, 55213, 55243, 55273, 55302, 55332, 55361, 55391, 55420, 55450, 55479, 55508, 55538, 55567,\n 55597, 55627, 55657, 55686, 55716, 55745, 55775, 55804, 55834, 55863, 55892, 55922, 55951, 55981, 56011, 56040, 56070, 56100,\n 56129, 56159, 56188, 56218, 56247, 56276, 56306, 56335, 56365, 56394, 56424, 56454, 56483, 56513, 56543, 56572, 56601, 56631,\n 56660, 56690, 56719, 56749, 56778, 56808, 56837, 56867, 56897, 56926, 56956, 56985, 57015, 57044, 57074, 57103, 57133, 57162,\n 57192, 57221, 57251, 57280, 57310, 57340, 57369, 57399, 57429, 57458, 57487, 57517, 57546, 57576, 57605, 57634, 57664, 57694,\n 57723, 57753, 57783, 57813, 57842, 57871, 57901, 57930, 57959, 57989, 58018, 58048, 58077, 58107, 58137, 58167, 58196, 58226,\n 58255, 58285, 58314, 58343, 58373, 58402, 58432, 58461, 58491, 58521, 58551, 58580, 58610, 58639, 58669, 58698, 58727, 58757,\n 58786, 58816, 58845, 58875, 58905, 58934, 58964, 58994, 59023, 59053, 59082, 59111, 59141, 59170, 59200, 59229, 59259, 59288,\n 59318, 59348, 59377, 59407, 59436, 59466, 59495, 59525, 59554, 59584, 59613, 59643, 59672, 59702, 59731, 59761, 59791, 59820,\n 59850, 59879, 59909, 59939, 59968, 59997, 60027, 60056, 60086, 60115, 60145, 60174, 60204, 60234, 60264, 60293, 60323, 60352,\n 60381, 60411, 60440, 60469, 60499, 60528, 60558, 60588, 60618, 60648, 60677, 60707, 60736, 60765, 60795, 60824, 60853, 60883,\n 60912, 60942, 60972, 61002, 61031, 61061, 61090, 61120, 61149, 61179, 61208, 61237, 61267, 61296, 61326, 61356, 61385, 61415,\n 61445, 61474, 61504, 61533, 61563, 61592, 61621, 61651, 61680, 61710, 61739, 61769, 61799, 61828, 61858, 61888, 61917, 61947,\n 61976, 62006, 62035, 62064, 62094, 62123, 62153, 62182, 62212, 62242, 62271, 62301, 62331, 62360, 62390, 62419, 62448, 62478,\n 62507, 62537, 62566, 62596, 62625, 62655, 62685, 62715, 62744, 62774, 62803, 62832, 62862, 62891, 62921, 62950, 62980, 63009,\n 63039, 63069, 63099, 63128, 63157, 63187, 63216, 63246, 63275, 63305, 63334, 63363, 63393, 63423, 63453, 63482, 63512, 63541,\n 63571, 63600, 63630, 63659, 63689, 63718, 63747, 63777, 63807, 63836, 63866, 63895, 63925, 63955, 63984, 64014, 64043, 64073,\n 64102, 64131, 64161, 64190, 64220, 64249, 64279, 64309, 64339, 64368, 64398, 64427, 64457, 64486, 64515, 64545, 64574, 64603,\n 64633, 64663, 64692, 64722, 64752, 64782, 64811, 64841, 64870, 64899, 64929, 64958, 64987, 65017, 65047, 65076, 65106, 65136,\n 65166, 65195, 65225, 65254, 65283, 65313, 65342, 65371, 65401, 65431, 65460, 65490, 65520, 65549, 65579, 65608, 65638, 65667,\n 65697, 65726, 65755, 65785, 65815, 65844, 65874, 65903, 65933, 65963, 65992, 66022, 66051, 66081, 66110, 66140, 66169, 66199,\n 66228, 66258, 66287, 66317, 66346, 66376, 66405, 66435, 66465, 66494, 66524, 66553, 66583, 66612, 66641, 66671, 66700, 66730,\n 66760, 66789, 66819, 66849, 66878, 66908, 66937, 66967, 66996, 67025, 67055, 67084, 67114, 67143, 67173, 67203, 67233, 67262,\n 67292, 67321, 67351, 67380, 67409, 67439, 67468, 67497, 67527, 67557, 67587, 67617, 67646, 67676, 67705, 67735, 67764, 67793,\n 67823, 67852, 67882, 67911, 67941, 67971, 68000, 68030, 68060, 68089, 68119, 68148, 68177, 68207, 68236, 68266, 68295, 68325,\n 68354, 68384, 68414, 68443, 68473, 68502, 68532, 68561, 68591, 68620, 68650, 68679, 68708, 68738, 68768, 68797, 68827, 68857,\n 68886, 68916, 68946, 68975, 69004, 69034, 69063, 69092, 69122, 69152, 69181, 69211, 69240, 69270, 69300, 69330, 69359, 69388,\n 69418, 69447, 69476, 69506, 69535, 69565, 69595, 69624, 69654, 69684, 69713, 69743, 69772, 69802, 69831, 69861, 69890, 69919,\n 69949, 69978, 70008, 70038, 70067, 70097, 70126, 70156, 70186, 70215, 70245, 70274, 70303, 70333, 70362, 70392, 70421, 70451,\n 70481, 70510, 70540, 70570, 70599, 70629, 70658, 70687, 70717, 70746, 70776, 70805, 70835, 70864, 70894, 70924, 70954, 70983,\n 71013, 71042, 71071, 71101, 71130, 71159, 71189, 71218, 71248, 71278, 71308, 71337, 71367, 71397, 71426, 71455, 71485, 71514,\n 71543, 71573, 71602, 71632, 71662, 71691, 71721, 71751, 71781, 71810, 71839, 71869, 71898, 71927, 71957, 71986, 72016, 72046,\n 72075, 72105, 72135, 72164, 72194, 72223, 72253, 72282, 72311, 72341, 72370, 72400, 72429, 72459, 72489, 72518, 72548, 72577,\n 72607, 72637, 72666, 72695, 72725, 72754, 72784, 72813, 72843, 72872, 72902, 72931, 72961, 72991, 73020, 73050, 73080, 73109,\n 73139, 73168, 73197, 73227, 73256, 73286, 73315, 73345, 73375, 73404, 73434, 73464, 73493, 73523, 73552, 73581, 73611, 73640,\n 73669, 73699, 73729, 73758, 73788, 73818, 73848, 73877, 73907, 73936, 73965, 73995, 74024, 74053, 74083, 74113, 74142, 74172,\n 74202, 74231, 74261, 74291, 74320, 74349, 74379, 74408, 74437, 74467, 74497, 74526, 74556, 74586, 74615, 74645, 74675, 74704,\n 74733, 74763, 74792, 74822, 74851, 74881, 74910, 74940, 74969, 74999, 75029, 75058, 75088, 75117, 75147, 75176, 75206, 75235,\n 75264, 75294, 75323, 75353, 75383, 75412, 75442, 75472, 75501, 75531, 75560, 75590, 75619, 75648, 75678, 75707, 75737, 75766,\n 75796, 75826, 75856, 75885, 75915, 75944, 75974, 76003, 76032, 76062, 76091, 76121, 76150, 76180, 76210, 76239, 76269, 76299,\n 76328, 76358, 76387, 76416, 76446, 76475, 76505, 76534, 76564, 76593, 76623, 76653, 76682, 76712, 76741, 76771, 76801, 76830,\n 76859, 76889, 76918, 76948, 76977, 77007, 77036, 77066, 77096, 77125, 77155, 77185, 77214, 77243, 77273, 77302, 77332, 77361,\n 77390, 77420, 77450, 77479, 77509, 77539, 77569, 77598, 77627, 77657, 77686, 77715, 77745, 77774, 77804, 77833, 77863, 77893,\n 77923, 77952, 77982, 78011, 78041, 78070, 78099, 78129, 78158, 78188, 78217, 78247, 78277, 78307, 78336, 78366, 78395, 78425,\n 78454, 78483, 78513, 78542, 78572, 78601, 78631, 78661, 78690, 78720, 78750, 78779, 78808, 78838, 78867, 78897, 78926, 78956,\n 78985, 79015, 79044, 79074, 79104, 79133, 79163, 79192, 79222, 79251, 79281, 79310, 79340, 79369, 79399, 79428, 79458, 79487,\n 79517, 79546, 79576, 79606, 79635, 79665, 79695, 79724, 79753, 79783, 79812, 79841, 79871, 79900, 79930, 79960, 79990\n ];\n /**\n *\n * @param {Date} gDate ?\n * @returns {Object} ?\n */\n function getHijriDate(gDate) {\n var day = gDate.getDate();\n var month = gDate.getMonth();\n var year = gDate.getFullYear();\n var tMonth = month + 1;\n var tYear = year;\n if (tMonth < 3) {\n tYear -= 1;\n tMonth += 12;\n }\n var yPrefix = Math.floor(tYear / 100.);\n var julilanOffset = yPrefix - Math.floor(yPrefix / 4.) - 2;\n var julianNumber = Math.floor(365.25 * (tYear + 4716)) + Math.floor(30.6001 * (tMonth + 1)) + day - julilanOffset - 1524;\n yPrefix = Math.floor((julianNumber - 1867216.25) / 36524.25);\n julilanOffset = yPrefix - Math.floor(yPrefix / 4.) + 1;\n var b = julianNumber + julilanOffset + 1524;\n var c = Math.floor((b - 122.1) / 365.25);\n var d = Math.floor(365.25 * c);\n var tempMonth = Math.floor((b - d) / 30.6001);\n day = (b - d) - Math.floor(30.6001 * tempMonth);\n month = Math.floor((b - d) / 20.6001);\n if (month > 13) {\n c += 1;\n month -= 12;\n }\n month -= 1;\n year = c - 4716;\n var modifiedJulianDate = julianNumber - 2400000;\n // date calculation for year after 2077\n var iyear = 10631. / 30.;\n var z = julianNumber - 1948084;\n var cyc = Math.floor(z / 10631.);\n z = z - 10631 * cyc;\n var j = Math.floor((z - 0.1335) / iyear);\n var iy = 30 * cyc + j;\n z = z - Math.floor(j * iyear + 0.1335);\n var im = Math.floor((z + 28.5001) / 29.5);\n /* istanbul ignore next */\n if (im === 13) {\n im = 12;\n }\n var tempDay = z - Math.floor(29.5001 * im - 29);\n var i = 0;\n for (; i < dateCorrection.length; i++) {\n if (dateCorrection[parseInt(i.toString(), 10)] > modifiedJulianDate) {\n break;\n }\n }\n var iln = i + 16260;\n var ii = Math.floor((iln - 1) / 12);\n var hYear = ii + 1;\n var hmonth = iln - 12 * ii;\n var hDate = modifiedJulianDate - dateCorrection[i - 1] + 1;\n if ((hDate + '').length > 2) {\n hDate = tempDay;\n hmonth = im;\n hYear = iy;\n }\n return { year: hYear, month: hmonth, date: hDate };\n }\n HijriParser.getHijriDate = getHijriDate;\n /**\n *\n * @param {number} year ?\n * @param {number} month ?\n * @param {number} day ?\n * @returns {Date} ?\n */\n function toGregorian(year, month, day) {\n var iy = year;\n var im = month;\n var id = day;\n var ii = iy - 1;\n var iln = (ii * 12) + 1 + (im - 1);\n var i = iln - 16260;\n var mcjdn = id + dateCorrection[i - 1] - 1;\n var julianDate = mcjdn + 2400000;\n var z = Math.floor(julianDate + 0.5);\n var a = Math.floor((z - 1867216.25) / 36524.25);\n a = z + 1 + a - Math.floor(a / 4);\n var b = a + 1524;\n var c = Math.floor((b - 122.1) / 365.25);\n var d = Math.floor(365.25 * c);\n var e = Math.floor((b - d) / 30.6001);\n var gDay = b - d - Math.floor(e * 30.6001);\n var gMonth = e - (e > 13.5 ? 13 : 1);\n var gYear = c - (gMonth > 2.5 ? 4716 : 4715);\n /* istanbul ignore next */\n if (gYear <= 0) {\n gMonth--;\n } // No year zero\n return new Date(gYear + '/' + (gMonth) + '/' + gDay);\n }\n HijriParser.toGregorian = toGregorian;\n})(HijriParser || (HijriParser = {}));\n","import { ParserBase as parser } from './parser-base';\nimport { IntlBase as base } from './intl-base';\nimport { isUndefined, throwError, getValue, isBlazor } from '../util';\nimport { HijriParser } from '../hijri-parser';\nimport { isNullOrUndefined, extend } from '../util';\nvar abbreviateRegexGlobal = /\\/MMMMM|MMMM|MMM|a|LLLL|LLL|EEEEE|EEEE|E|K|cccc|ccc|WW|W|G+|z+/gi;\nvar standalone = 'stand-alone';\nvar weekdayKey = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'];\nexport var basicPatterns = ['short', 'medium', 'long', 'full'];\nvar timeSetter = {\n m: 'getMinutes',\n h: 'getHours',\n H: 'getHours',\n s: 'getSeconds',\n d: 'getDate',\n f: 'getMilliseconds'\n};\nexport var datePartMatcher = {\n 'M': 'month',\n 'd': 'day',\n 'E': 'weekday',\n 'c': 'weekday',\n 'y': 'year',\n 'm': 'minute',\n 'h': 'hour',\n 'H': 'hour',\n 's': 'second',\n 'L': 'month',\n 'a': 'designator',\n 'z': 'timeZone',\n 'Z': 'timeZone',\n 'G': 'era',\n 'f': 'milliseconds'\n};\nvar timeSeparator = 'timeSeparator';\n/* tslint:disable no-any */\n/**\n * Date Format is a framework provides support for date formatting.\n *\n * @private\n */\nvar DateFormat = /** @class */ (function () {\n function DateFormat() {\n }\n /**\n * Returns the formatter function for given skeleton.\n *\n * @param {string} culture - Specifies the culture name to be which formatting.\n * @param {DateFormatOptions} option - Specific the format in which date will format.\n * @param {Object} cldr - Specifies the global cldr data collection.\n * @returns {Function} ?\n */\n DateFormat.dateFormat = function (culture, option, cldr) {\n var _this = this;\n var dependable = base.getDependables(cldr, culture, option.calendar);\n var numObject = getValue('parserObject.numbers', dependable);\n var dateObject = dependable.dateObject;\n var formatOptions = { isIslamic: base.islamicRegex.test(option.calendar) };\n if (isBlazor() && option.isServerRendered) {\n option = base.compareBlazorDateFormats(option, culture);\n }\n var resPattern = option.format ||\n base.getResultantPattern(option.skeleton, dependable.dateObject, option.type, false, isBlazor() ? culture : '');\n formatOptions.dateSeperator = isBlazor() ? getValue('dateSeperator', dateObject) : base.getDateSeparator(dependable.dateObject);\n if (isUndefined(resPattern)) {\n throwError('Format options or type given must be invalid');\n }\n else {\n resPattern = base.ConvertDateToWeekFormat(resPattern);\n if (isBlazor()) {\n resPattern = resPattern.replace(/tt/, 'a');\n }\n formatOptions.pattern = resPattern;\n formatOptions.numMapper = isBlazor() ?\n extend({}, numObject) : parser.getNumberMapper(dependable.parserObject, parser.getNumberingSystem(cldr));\n var patternMatch = resPattern.match(abbreviateRegexGlobal) || [];\n for (var _i = 0, patternMatch_1 = patternMatch; _i < patternMatch_1.length; _i++) {\n var str = patternMatch_1[_i];\n var len = str.length;\n var char = str[0];\n if (char === 'K') {\n char = 'h';\n }\n switch (char) {\n case 'E':\n case 'c':\n if (isBlazor()) {\n // eslint-disable-next-line\n formatOptions.weekday = getValue('days.' + base.monthIndex[len], dateObject);\n }\n else {\n // eslint-disable-next-line\n formatOptions.weekday = dependable.dateObject[base.days][standalone][base.monthIndex[len]];\n }\n break;\n case 'M':\n case 'L':\n if (isBlazor()) {\n // eslint-disable-next-line\n formatOptions.month = getValue('months.' + base.monthIndex[len], dateObject);\n }\n else {\n // eslint-disable-next-line\n formatOptions.month = dependable.dateObject[base.month][standalone][base.monthIndex[len]];\n }\n break;\n case 'a':\n formatOptions.designator = isBlazor() ?\n getValue('dayPeriods', dateObject) : getValue('dayPeriods.format.wide', dateObject);\n break;\n case 'G':\n // eslint-disable-next-line\n var eText = (len <= 3) ? 'eraAbbr' : (len === 4) ? 'eraNames' : 'eraNarrow';\n formatOptions.era = isBlazor() ? getValue('eras', dateObject) : getValue('eras.' + eText, dependable.dateObject);\n break;\n case 'z':\n formatOptions.timeZone = getValue('dates.timeZoneNames', dependable.parserObject);\n break;\n }\n }\n }\n return function (value) {\n if (isNaN(value.getDate())) {\n return null;\n }\n return _this.intDateFormatter(value, formatOptions);\n };\n };\n /**\n * Returns formatted date string based on options passed.\n *\n * @param {Date} value ?\n * @param {FormatOptions} options ?\n * @returns {string} ?\n */\n DateFormat.intDateFormatter = function (value, options) {\n var pattern = options.pattern;\n var ret = '';\n var matches = pattern.match(base.dateParseRegex);\n var dObject = this.getCurrentDateValue(value, options.isIslamic);\n for (var _i = 0, matches_1 = matches; _i < matches_1.length; _i++) {\n var match = matches_1[_i];\n var length_1 = match.length;\n var char = match[0];\n if (char === 'K') {\n char = 'h';\n }\n var curval = void 0;\n var curvalstr = '';\n var isNumber = void 0;\n var processNumber = void 0;\n var curstr = '';\n switch (char) {\n case 'M':\n case 'L':\n curval = dObject.month;\n if (length_1 > 2) {\n // eslint-disable-next-line\n ret += options.month[curval];\n }\n else {\n isNumber = true;\n }\n break;\n case 'E':\n case 'c':\n // eslint-disable-next-line\n ret += options.weekday[weekdayKey[value.getDay()]];\n break;\n case 'H':\n case 'h':\n case 'm':\n case 's':\n case 'd':\n case 'f':\n isNumber = true;\n if (char === 'd') {\n curval = dObject.date;\n }\n else if (char === 'f') {\n isNumber = false;\n processNumber = true;\n // eslint-disable-next-line\n curvalstr = value[timeSetter[char]]().toString();\n curvalstr = curvalstr.substring(0, length_1);\n var curlength = curvalstr.length;\n if (length_1 !== curlength) {\n if (length_1 > 3) {\n continue;\n }\n for (var i = 0; i < length_1 - curlength; i++) {\n curvalstr = '0' + curvalstr.toString();\n }\n }\n curstr += curvalstr;\n }\n else {\n // eslint-disable-next-line\n curval = value[timeSetter[char]]();\n }\n if (char === 'h') {\n curval = curval % 12 || 12;\n }\n break;\n case 'y':\n processNumber = true;\n curstr += dObject.year;\n if (length_1 === 2) {\n curstr = curstr.substr(curstr.length - 2);\n }\n break;\n case 'a':\n // eslint-disable-next-line\n var desig = value.getHours() < 12 ? 'am' : 'pm';\n // eslint-disable-next-line\n ret += options.designator[desig];\n break;\n case 'G':\n // eslint-disable-next-line\n var dec = value.getFullYear() < 0 ? 0 : 1;\n // eslint-disable-next-line\n var retu = options.era[dec];\n if (isNullOrUndefined(retu)) {\n // eslint-disable-next-line\n retu = options.era[dec ? 0 : 1];\n }\n ret += retu || '';\n break;\n case '\\'':\n ret += (match === '\\'\\'') ? '\\'' : match.replace(/'/g, '');\n break;\n case 'z':\n // eslint-disable-next-line\n var timezone = value.getTimezoneOffset();\n // eslint-disable-next-line\n var pattern_1 = (length_1 < 4) ? '+H;-H' : options.timeZone.hourFormat;\n pattern_1 = pattern_1.replace(/:/g, options.numMapper.timeSeparator);\n if (timezone === 0) {\n ret += options.timeZone.gmtZeroFormat;\n }\n else {\n processNumber = true;\n curstr = this.getTimeZoneValue(timezone, pattern_1);\n }\n curstr = options.timeZone.gmtFormat.replace(/\\{0\\}/, curstr);\n break;\n case ':':\n // eslint-disable-next-line\n ret += options.numMapper.numberSymbols[timeSeparator];\n break;\n case '/':\n ret += options.dateSeperator;\n break;\n case 'W':\n isNumber = true;\n curval = base.getWeekOfYear(value);\n break;\n default:\n ret += match;\n }\n if (isNumber) {\n processNumber = true;\n curstr = this.checkTwodigitNumber(curval, length_1);\n }\n if (processNumber) {\n ret += parser.convertValueParts(curstr, base.latnParseRegex, options.numMapper.mapper);\n }\n }\n return ret;\n };\n DateFormat.getCurrentDateValue = function (value, isIslamic) {\n if (isIslamic) {\n return HijriParser.getHijriDate(value);\n }\n return { year: value.getFullYear(), month: value.getMonth() + 1, date: value.getDate() };\n };\n /**\n * Returns two digit numbers for given value and length\n *\n * @param {number} val ?\n * @param {number} len ?\n * @returns {string} ?\n */\n DateFormat.checkTwodigitNumber = function (val, len) {\n var ret = val + '';\n if (len === 2 && ret.length !== 2) {\n return '0' + ret;\n }\n return ret;\n };\n /**\n * Returns the value of the Time Zone.\n *\n * @param {number} tVal ?\n * @param {string} pattern ?\n * @returns {string} ?\n * @private\n */\n DateFormat.getTimeZoneValue = function (tVal, pattern) {\n var _this = this;\n var splt = pattern.split(';');\n var curPattern = splt[tVal > 0 ? 1 : 0];\n var no = Math.abs(tVal);\n return curPattern = curPattern.replace(/HH?|mm/g, function (str) {\n var len = str.length;\n var ishour = str.indexOf('H') !== -1;\n return _this.checkTwodigitNumber(Math.floor(ishour ? (no / 60) : (no % 60)), len);\n });\n };\n return DateFormat;\n}());\nexport { DateFormat };\n","import { isUndefined, throwError, isNullOrUndefined, extend, isBlazor, getValue } from '../util';\nimport { defaultCurrencyCode } from '../internationalization';\nimport { IntlBase as base } from './intl-base';\nimport { ParserBase as parser } from './parser-base';\nvar errorText = {\n 'ms': 'minimumSignificantDigits',\n 'ls': 'maximumSignificantDigits',\n 'mf': 'minimumFractionDigits',\n 'lf': 'maximumFractionDigits'\n};\nvar integerError = 'minimumIntegerDigits';\nvar percentSign = 'percentSign';\nvar minusSign = 'minusSign';\nvar spaceRegex = /\\s/;\nvar mapper = ['infinity', 'nan', 'group', 'decimal', 'exponential'];\nvar infinity = 'infinity';\nvar nan = 'nan';\n/**\n * Module for number formatting.\n *\n * @private\n */\nvar NumberFormat = /** @class */ (function () {\n function NumberFormat() {\n }\n /**\n * Returns the formatter function for given skeleton.\n *\n * @param {string} culture - Specifies the culture name to be which formatting.\n * @param {NumberFormatOptions} option - Specific the format in which number will format.\n * @param {Object} cldr - Specifies the global cldr data collection.\n * @returns {Function} ?\n */\n NumberFormat.numberFormatter = function (culture, option, cldr) {\n var _this = this;\n var fOptions = extend({}, option);\n var cOptions = {};\n var dOptions = {};\n var symbolPattern;\n var dependable = base.getDependables(cldr, culture, '', true);\n var numObject = dependable.numericObject;\n dOptions.numberMapper = isBlazor() ? extend({}, numObject) :\n parser.getNumberMapper(dependable.parserObject, parser.getNumberingSystem(cldr), true);\n dOptions.currencySymbol = isBlazor() ? getValue('currencySymbol', numObject) : base.getCurrencySymbol(dependable.numericObject, fOptions.currency || defaultCurrencyCode, option.altSymbol);\n /* eslint-disable @typescript-eslint/no-explicit-any */\n dOptions.percentSymbol = isBlazor() ? getValue('numberSymbols.percentSign', numObject) :\n dOptions.numberMapper.numberSymbols[\"\" + percentSign];\n dOptions.minusSymbol = isBlazor() ? getValue('numberSymbols.minusSign', numObject) :\n dOptions.numberMapper.numberSymbols[\"\" + minusSign];\n var symbols = dOptions.numberMapper.numberSymbols;\n if ((option.format) && !(base.formatRegex.test(option.format))) {\n cOptions = base.customFormat(option.format, dOptions, dependable.numericObject);\n }\n else {\n extend(fOptions, base.getProperNumericSkeleton(option.format || 'N'));\n fOptions.isCurrency = fOptions.type === 'currency';\n fOptions.isPercent = fOptions.type === 'percent';\n if (!isBlazor()) {\n symbolPattern = base.getSymbolPattern(fOptions.type, dOptions.numberMapper.numberSystem, dependable.numericObject, fOptions.isAccount);\n }\n fOptions.groupOne = this.checkValueRange(fOptions.maximumSignificantDigits, fOptions.minimumSignificantDigits, true);\n this.checkValueRange(fOptions.maximumFractionDigits, fOptions.minimumFractionDigits, false, true);\n if (!isUndefined(fOptions.fractionDigits)) {\n fOptions.minimumFractionDigits = fOptions.maximumFractionDigits = fOptions.fractionDigits;\n }\n if (isUndefined(fOptions.useGrouping)) {\n fOptions.useGrouping = true;\n }\n if (fOptions.isCurrency && !isBlazor()) {\n symbolPattern = symbolPattern.replace(/\\u00A4/g, base.defaultCurrency);\n }\n if (!isBlazor()) {\n var split = symbolPattern.split(';');\n cOptions.nData = base.getFormatData(split[1] || '-' + split[0], true, dOptions.currencySymbol);\n cOptions.pData = base.getFormatData(split[0], false, dOptions.currencySymbol);\n if (fOptions.useGrouping) {\n fOptions.groupSeparator = symbols[mapper[2]];\n fOptions.groupData = this.getGroupingDetails(split[0]);\n }\n }\n else {\n cOptions.nData = extend({}, {}, getValue(fOptions.type + 'nData', numObject));\n cOptions.pData = extend({}, {}, getValue(fOptions.type + 'pData', numObject));\n if (fOptions.type === 'currency' && option.currency) {\n base.replaceBlazorCurrency([cOptions.pData, cOptions.nData], dOptions.currencySymbol, option.currency);\n }\n }\n var minFrac = isUndefined(fOptions.minimumFractionDigits);\n if (minFrac) {\n fOptions.minimumFractionDigits = cOptions.nData.minimumFraction;\n }\n if (isUndefined(fOptions.maximumFractionDigits)) {\n var mval = cOptions.nData.maximumFraction;\n fOptions.maximumFractionDigits = isUndefined(mval) && fOptions.isPercent ? 0 : mval;\n }\n var mfrac = fOptions.minimumFractionDigits;\n var lfrac = fOptions.maximumFractionDigits;\n if (!isUndefined(mfrac) && !isUndefined(lfrac)) {\n if (mfrac > lfrac) {\n fOptions.maximumFractionDigits = mfrac;\n }\n }\n }\n extend(cOptions.nData, fOptions);\n extend(cOptions.pData, fOptions);\n return function (value) {\n if (isNaN(value)) {\n return symbols[mapper[1]];\n }\n else if (!isFinite(value)) {\n return symbols[mapper[0]];\n }\n return _this.intNumberFormatter(value, cOptions, dOptions);\n };\n };\n /**\n * Returns grouping details for the pattern provided\n *\n * @param {string} pattern ?\n * @returns {GroupDetails} ?\n */\n NumberFormat.getGroupingDetails = function (pattern) {\n var ret = {};\n var match = pattern.match(base.negativeDataRegex);\n if (match && match[4]) {\n var pattern_1 = match[4];\n var p = pattern_1.lastIndexOf(',');\n if (p !== -1) {\n var temp = pattern_1.split('.')[0];\n ret.primary = (temp.length - p) - 1;\n var s = pattern_1.lastIndexOf(',', p - 1);\n if (s !== -1) {\n ret.secondary = p - 1 - s;\n }\n }\n }\n return ret;\n };\n /**\n * Returns if the provided integer range is valid.\n *\n * @param {number} val1 ?\n * @param {number} val2 ?\n * @param {boolean} checkbothExist ?\n * @param {boolean} isFraction ?\n * @returns {boolean} ?\n */\n NumberFormat.checkValueRange = function (val1, val2, checkbothExist, isFraction) {\n var decide = isFraction ? 'f' : 's';\n var dint = 0;\n var str1 = errorText['l' + decide];\n // eslint-disable-next-line\n var str2 = errorText['m' + decide];\n if (!isUndefined(val1)) {\n this.checkRange(val1, str1, isFraction);\n dint++;\n }\n if (!isUndefined(val2)) {\n this.checkRange(val2, str2, isFraction);\n dint++;\n }\n if (dint === 2) {\n if (val1 < val2) {\n throwError(str2 + 'specified must be less than the' + str1);\n }\n else {\n return true;\n }\n }\n else if (checkbothExist && dint === 1) {\n throwError('Both' + str2 + 'and' + str2 + 'must be present');\n }\n return false;\n };\n /**\n * Check if the provided fraction range is valid\n *\n * @param {number} val ?\n * @param {string} text ?\n * @param {boolean} isFraction ?\n * @returns {void} ?\n */\n NumberFormat.checkRange = function (val, text, isFraction) {\n var range = isFraction ? [0, 20] : [1, 21];\n if (val < range[0] || val > range[1]) {\n throwError(text + 'value must be within the range' + range[0] + 'to' + range[1]);\n }\n };\n /**\n * Returns formatted numeric string for provided formatting options\n *\n * @param {number} value ?\n * @param {base.GenericFormatOptions} fOptions ?\n * @param {CommonOptions} dOptions ?\n * @returns {string} ?\n */\n NumberFormat.intNumberFormatter = function (value, fOptions, dOptions) {\n var curData;\n if (isUndefined(fOptions.nData.type)) {\n return undefined;\n }\n else {\n if (value < 0) {\n value = value * -1;\n curData = fOptions.nData;\n }\n else if (value === 0) {\n curData = fOptions.zeroData || fOptions.pData;\n }\n else {\n curData = fOptions.pData;\n }\n var fValue = '';\n if (curData.isPercent) {\n value = value * 100;\n }\n if (curData.groupOne) {\n fValue = this.processSignificantDigits(value, curData.minimumSignificantDigits, curData.maximumSignificantDigits);\n }\n else {\n fValue = this.processFraction(value, curData.minimumFractionDigits, curData.maximumFractionDigits);\n if (curData.minimumIntegerDigits) {\n fValue = this.processMinimumIntegers(fValue, curData.minimumIntegerDigits);\n }\n }\n if (curData.type === 'scientific') {\n fValue = value.toExponential(curData.maximumFractionDigits);\n fValue = fValue.replace('e', dOptions.numberMapper.numberSymbols[mapper[4]]);\n }\n fValue = fValue.replace('.', dOptions.numberMapper.numberSymbols[mapper[3]]);\n fValue = curData.format === \"#,###,,;(#,###,,)\" ? this.customPivotFormat(parseInt(fValue)) : fValue;\n if (curData.useGrouping) {\n /* eslint-disable @typescript-eslint/no-explicit-any */\n fValue = this.groupNumbers(fValue, curData.groupData.primary, curData.groupSeparator || ',', dOptions.numberMapper.numberSymbols[mapper[3]] || '.', curData.groupData.secondary);\n }\n fValue = parser.convertValueParts(fValue, base.latnParseRegex, dOptions.numberMapper.mapper);\n if (curData.nlead === 'N/A') {\n return curData.nlead;\n }\n else {\n return curData.nlead + fValue + curData.nend;\n }\n }\n };\n /**\n * Returns significant digits processed numeric string\n *\n * @param {number} value ?\n * @param {number} min ?\n * @param {number} max ?\n * @returns {string} ?\n */\n NumberFormat.processSignificantDigits = function (value, min, max) {\n var temp = value + '';\n var tn;\n var length = temp.length;\n if (length < min) {\n return value.toPrecision(min);\n }\n else {\n temp = value.toPrecision(max);\n tn = +temp;\n return tn + '';\n }\n };\n /**\n * Returns grouped numeric string\n *\n * @param {string} val ?\n * @param {number} level1 ?\n * @param {string} sep ?\n * @param {string} decimalSymbol ?\n * @param {number} level2 ?\n * @returns {string} ?\n */\n NumberFormat.groupNumbers = function (val, level1, sep, decimalSymbol, level2) {\n var flag = !isNullOrUndefined(level2) && level2 !== 0;\n var split = val.split(decimalSymbol);\n var prefix = split[0];\n var length = prefix.length;\n var str = '';\n while (length > level1) {\n str = prefix.slice(length - level1, length) + (str.length ?\n (sep + str) : '');\n length -= level1;\n if (flag) {\n level1 = level2;\n flag = false;\n }\n }\n split[0] = prefix.slice(0, length) + (str.length ? sep : '') + str;\n return split.join(decimalSymbol);\n };\n /**\n * Returns fraction processed numeric string\n *\n * @param {number} value ?\n * @param {number} min ?\n * @param {number} max ?\n * @returns {string} ?\n */\n NumberFormat.processFraction = function (value, min, max) {\n var temp = (value + '').split('.')[1];\n var length = temp ? temp.length : 0;\n if (min && length < min) {\n var ret = '';\n if (length === 0) {\n ret = value.toFixed(min);\n }\n else {\n ret += value;\n for (var j = 0; j < min - length; j++) {\n ret += '0';\n }\n return ret;\n }\n return value.toFixed(min);\n }\n else if (!isNullOrUndefined(max) && (length > max || max === 0)) {\n return value.toFixed(max);\n }\n return value + '';\n };\n /**\n * Returns integer processed numeric string\n *\n * @param {string} value ?\n * @param {number} min ?\n * @returns {string} ?\n */\n NumberFormat.processMinimumIntegers = function (value, min) {\n var temp = value.split('.');\n var lead = temp[0];\n var len = lead.length;\n if (len < min) {\n for (var i = 0; i < min - len; i++) {\n lead = '0' + lead;\n }\n temp[0] = lead;\n }\n return temp.join('.');\n };\n /**\n * Returns custom format for pivot table\n *\n * @param {number} value ?\n */\n NumberFormat.customPivotFormat = function (value) {\n if (value >= 500000) {\n value /= 1000000;\n var _a = value.toString().split(\".\"), integer = _a[0], decimal = _a[1];\n return decimal && +decimal.substring(0, 1) >= 5\n ? Math.ceil(value).toString()\n : Math.floor(value).toString();\n }\n return \"\";\n };\n return NumberFormat;\n}());\nexport { NumberFormat };\n","import { IntlBase as base } from './intl-base';\nimport { ParserBase as parser } from './parser-base';\nimport { isUndefined, throwError, getValue, isNullOrUndefined, isBlazor } from '../util';\nimport { datePartMatcher } from './date-formatter';\nimport { HijriParser } from '../hijri-parser';\nvar standalone = 'stand-alone';\nvar latnRegex = /^[0-9]*$/;\nvar timeSetter = {\n minute: 'setMinutes',\n hour: 'setHours',\n second: 'setSeconds',\n day: 'setDate',\n month: 'setMonth',\n milliseconds: 'setMilliseconds'\n};\nvar month = 'months';\n/* tslint:disable no-any */\n/**\n * Date Parser.\n *\n * @private\n */\nvar DateParser = /** @class */ (function () {\n function DateParser() {\n }\n /**\n * Returns the parser function for given skeleton.\n *\n * @param {string} culture - Specifies the culture name to be which formatting.\n * @param {DateFormatOptions} option - Specific the format in which string date will be parsed.\n * @param {Object} cldr - Specifies the global cldr data collection.\n * @returns {Function} ?\n */\n DateParser.dateParser = function (culture, option, cldr) {\n var _this = this;\n var dependable = base.getDependables(cldr, culture, option.calendar);\n var numOptions = parser.getCurrentNumericOptions(dependable.parserObject, parser.getNumberingSystem(cldr), false, isBlazor());\n var parseOptions = {};\n if (isBlazor() && option.isServerRendered) {\n option = base.compareBlazorDateFormats(option, culture);\n }\n var resPattern = option.format ||\n base.getResultantPattern(option.skeleton, dependable.dateObject, option.type, false, isBlazor() ? culture : '');\n var regexString = '';\n var hourOnly;\n if (isUndefined(resPattern)) {\n throwError('Format options or type given must be invalid');\n }\n else {\n resPattern = base.ConvertDateToWeekFormat(resPattern);\n parseOptions = { isIslamic: base.islamicRegex.test(option.calendar), pattern: resPattern, evalposition: {}, culture: culture };\n var patternMatch = resPattern.match(base.dateParseRegex) || [];\n var length_1 = patternMatch.length;\n var gmtCorrection = 0;\n var zCorrectTemp = 0;\n var isgmtTraversed = false;\n var nRegx = numOptions.numericRegex;\n // eslint-disable-next-line\n var numMapper = isBlazor() ? dependable.parserObject.numbers :\n parser.getNumberMapper(dependable.parserObject, parser.getNumberingSystem(cldr));\n for (var i = 0; i < length_1; i++) {\n var str = patternMatch[parseInt(i.toString(), 10)];\n var len = str.length;\n var char = (str[0] === 'K') ? 'h' : str[0];\n var isNumber = void 0;\n var canUpdate = void 0;\n // eslint-disable-next-line\n var charKey = datePartMatcher[char];\n var optional = (len === 2) ? '' : '?';\n if (isgmtTraversed) {\n gmtCorrection = zCorrectTemp;\n isgmtTraversed = false;\n }\n switch (char) {\n case 'E':\n case 'c':\n // eslint-disable-next-line\n var weekData = void 0;\n if (isBlazor()) {\n // eslint-disable-next-line\n weekData = getValue('days.' + base.monthIndex[len], dependable.dateObject);\n }\n else {\n // eslint-disable-next-line\n weekData = dependable.dateObject[base.days][standalone][base.monthIndex[len]];\n }\n // eslint-disable-next-line\n var weekObject = parser.reverseObject(weekData);\n // tslint:enable\n regexString += '(' + Object.keys(weekObject).join('|') + ')';\n break;\n case 'M':\n case 'L':\n case 'd':\n case 'm':\n case 's':\n case 'h':\n case 'H':\n case 'f':\n canUpdate = true;\n if ((char === 'M' || char === 'L') && len > 2) {\n var monthData = void 0;\n if (isBlazor()) {\n // eslint-disable-next-line\n monthData = getValue('months.' + base.monthIndex[len], dependable.dateObject);\n }\n else {\n // eslint-disable-next-line\n monthData = dependable.dateObject[month][standalone][base.monthIndex[len]];\n }\n // eslint-disable-next-line\n parseOptions[charKey] = parser.reverseObject(monthData);\n // eslint-disable-next-line\n regexString += '(' + Object.keys(parseOptions[charKey]).join('|') + ')';\n }\n else if (char === 'f') {\n if (len > 3) {\n continue;\n }\n isNumber = true;\n regexString += '(' + nRegx + nRegx + '?' + nRegx + '?' + ')';\n }\n else {\n isNumber = true;\n regexString += '(' + nRegx + nRegx + optional + ')';\n }\n if (char === 'h') {\n parseOptions.hour12 = true;\n }\n break;\n case 'W':\n // eslint-disable-next-line\n var opt = len === 1 ? '?' : '';\n regexString += '(' + nRegx + opt + nRegx + ')';\n break;\n case 'y':\n canUpdate = isNumber = true;\n if (len === 2) {\n regexString += '(' + nRegx + nRegx + ')';\n }\n else {\n regexString += '(' + nRegx + '{' + len + ',})';\n }\n break;\n case 'a':\n canUpdate = true;\n // eslint-disable-next-line\n var periodValur = isBlazor() ?\n getValue('dayPeriods', dependable.dateObject) :\n getValue('dayPeriods.format.wide', dependable.dateObject);\n // eslint-disable-next-line\n parseOptions[charKey] = parser.reverseObject(periodValur);\n // eslint-disable-next-line\n regexString += '(' + Object.keys(parseOptions[charKey]).join('|') + ')';\n break;\n case 'G':\n canUpdate = true;\n // eslint-disable-next-line\n var eText = (len <= 3) ? 'eraAbbr' : (len === 4) ? 'eraNames' : 'eraNarrow';\n // eslint-disable-next-line\n parseOptions[charKey] = parser.reverseObject(isBlazor() ?\n getValue('eras', dependable.dateObject) : getValue('eras.' + eText, dependable.dateObject));\n // eslint-disable-next-line\n regexString += '(' + Object.keys(parseOptions[charKey]).join('|') + '?)';\n break;\n case 'z':\n // eslint-disable-next-line\n var tval = new Date().getTimezoneOffset();\n canUpdate = (tval !== 0);\n // eslint-disable-next-line\n parseOptions[charKey] = getValue('dates.timeZoneNames', dependable.parserObject);\n // eslint-disable-next-line\n var tzone = parseOptions[charKey];\n hourOnly = (len < 4);\n // eslint-disable-next-line\n var hpattern = hourOnly ? '+H;-H' : tzone.hourFormat;\n hpattern = hpattern.replace(/:/g, numMapper.timeSeparator);\n regexString += '(' + this.parseTimeZoneRegx(hpattern, tzone, nRegx) + ')?';\n isgmtTraversed = true;\n zCorrectTemp = hourOnly ? 6 : 12;\n break;\n case '\\'':\n // eslint-disable-next-line\n var iString = str.replace(/'/g, '');\n regexString += '(' + iString + ')?';\n break;\n default:\n regexString += '([\\\\D])';\n break;\n }\n if (canUpdate) {\n parseOptions.evalposition[\"\" + charKey] = { isNumber: isNumber, pos: i + 1 + gmtCorrection, hourOnly: hourOnly };\n }\n if (i === length_1 - 1 && !isNullOrUndefined(regexString)) {\n parseOptions.parserRegex = new RegExp('^' + regexString + '$', 'i');\n }\n }\n }\n return function (value) {\n var parsedDateParts = _this.internalDateParse(value, parseOptions, numOptions);\n if (isNullOrUndefined(parsedDateParts) || !Object.keys(parsedDateParts).length) {\n return null;\n }\n if (parseOptions.isIslamic) {\n var dobj = {};\n var tYear = parsedDateParts.year;\n var tDate = parsedDateParts.day;\n var tMonth = parsedDateParts.month;\n var ystrig = tYear ? (tYear + '') : '';\n var is2DigitYear = (ystrig.length === 2);\n if (!tYear || !tMonth || !tDate || is2DigitYear) {\n dobj = HijriParser.getHijriDate(new Date());\n }\n if (is2DigitYear) {\n tYear = parseInt((dobj.year + '').slice(0, 2) + ystrig, 10);\n }\n // tslint:disable-next-line\n var dateObject = HijriParser.toGregorian(tYear || dobj.year, tMonth || dobj.month, tDate || dobj.date);\n parsedDateParts.year = dateObject.getFullYear();\n parsedDateParts.month = dateObject.getMonth() + 1;\n parsedDateParts.day = dateObject.getDate();\n }\n return _this.getDateObject(parsedDateParts);\n };\n };\n /* tslint:disable */\n /**\n * Returns date object for provided date options\n *\n * @param {DateParts} options ?\n * @param {Date} value ?\n * @returns {Date} ?\n */\n DateParser.getDateObject = function (options, value) {\n var res = value || new Date();\n res.setMilliseconds(0);\n var tKeys = ['hour', 'minute', 'second', 'milliseconds', 'month', 'day'];\n var y = options.year;\n var desig = options.designator;\n var tzone = options.timeZone;\n if (!isUndefined(y)) {\n var len = (y + '').length;\n if (len <= 2) {\n var century = Math.floor(res.getFullYear() / 100) * 100;\n y += century;\n }\n res.setFullYear(y);\n }\n for (var _i = 0, tKeys_1 = tKeys; _i < tKeys_1.length; _i++) {\n var key = tKeys_1[_i];\n // eslint-disable-next-line\n var tValue = options[key];\n if (isUndefined(tValue) && key === 'day') {\n res.setDate(1);\n }\n if (!isUndefined(tValue)) {\n if (key === 'month') {\n tValue -= 1;\n if (tValue < 0 || tValue > 11) {\n return new Date('invalid');\n }\n var pDate = res.getDate();\n res.setDate(1);\n // eslint-disable-next-line\n res[timeSetter[key]](tValue);\n var lDate = new Date(res.getFullYear(), tValue + 1, 0).getDate();\n res.setDate(pDate < lDate ? pDate : lDate);\n }\n else {\n if (key === 'day') {\n var lastDay = new Date(res.getFullYear(), res.getMonth() + 1, 0).getDate();\n if ((tValue < 1 || tValue > lastDay)) {\n return null;\n }\n }\n // eslint-disable-next-line\n res[timeSetter[key]](tValue);\n }\n }\n }\n if (!isUndefined(desig)) {\n var hour = res.getHours();\n if (desig === 'pm') {\n res.setHours(hour + (hour === 12 ? 0 : 12));\n }\n else if (hour === 12) {\n res.setHours(0);\n }\n }\n if (!isUndefined(tzone)) {\n var tzValue = tzone - res.getTimezoneOffset();\n if (tzValue !== 0) {\n res.setMinutes(res.getMinutes() + tzValue);\n }\n }\n return res;\n };\n /**\n * Returns date parsing options for provided value along with parse and numeric options\n *\n * @param {string} value ?\n * @param {ParseOptions} parseOptions ?\n * @param {NumericOptions} num ?\n * @returns {DateParts} ?\n */\n DateParser.internalDateParse = function (value, parseOptions, num) {\n var matches = value.match(parseOptions.parserRegex);\n var retOptions = { 'hour': 0, 'minute': 0, 'second': 0 };\n if (isNullOrUndefined(matches)) {\n return null;\n }\n else {\n var props = Object.keys(parseOptions.evalposition);\n for (var _i = 0, props_1 = props; _i < props_1.length; _i++) {\n var prop = props_1[_i];\n var curObject = parseOptions.evalposition[\"\" + prop];\n var matchString = matches[curObject.pos];\n if (curObject.isNumber) {\n // eslint-disable-next-line\n retOptions[prop] = this.internalNumberParser(matchString, num);\n }\n else {\n if (prop === 'timeZone' && !isUndefined(matchString)) {\n var pos = curObject.pos;\n var val = void 0;\n var tmatch = matches[pos + 1];\n var flag = !isUndefined(tmatch);\n if (curObject.hourOnly) {\n val = this.getZoneValue(flag, tmatch, matches[pos + 4], num) * 60;\n }\n else {\n val = this.getZoneValue(flag, tmatch, matches[pos + 7], num) * 60;\n val += this.getZoneValue(flag, matches[pos + 4], matches[pos + 10], num);\n }\n if (!isNullOrUndefined(val)) {\n retOptions[\"\" + prop] = val;\n }\n }\n else {\n // eslint-disable-next-line\n matchString = ((prop === 'month') && (!parseOptions.isIslamic) && (parseOptions.culture === 'en' || parseOptions.culture === 'en-GB' || parseOptions.culture === 'en-US'))\n ? matchString[0].toUpperCase() + matchString.substring(1).toLowerCase() : matchString;\n // eslint-disable-next-line\n retOptions[prop] = parseOptions[prop][matchString];\n }\n }\n }\n if (parseOptions.hour12) {\n retOptions.hour12 = true;\n }\n }\n return retOptions;\n };\n /**\n * Returns parsed number for provided Numeric string and Numeric Options\n *\n * @param {string} value ?\n * @param {NumericOptions} option ?\n * @returns {number} ?\n */\n DateParser.internalNumberParser = function (value, option) {\n value = parser.convertValueParts(value, option.numberParseRegex, option.numericPair);\n if (latnRegex.test(value)) {\n return +value;\n }\n return null;\n };\n /**\n * Returns parsed time zone RegExp for provided hour format and time zone\n *\n * @param {string} hourFormat ?\n * @param {base.TimeZoneOptions} tZone ?\n * @param {string} nRegex ?\n * @returns {string} ?\n */\n DateParser.parseTimeZoneRegx = function (hourFormat, tZone, nRegex) {\n var pattern = tZone.gmtFormat;\n var ret;\n var cRegex = '(' + nRegex + ')' + '(' + nRegex + ')';\n var splitStr;\n ret = hourFormat.replace('+', '\\\\+');\n if (hourFormat.indexOf('HH') !== -1) {\n ret = ret.replace(/HH|mm/g, '(' + cRegex + ')');\n }\n else {\n ret = ret.replace(/H|m/g, '(' + cRegex + '?)');\n }\n // eslint-disable-next-line\n splitStr = (ret.split(';').map(function (str) {\n return pattern.replace('{0}', str);\n }));\n ret = splitStr.join('|') + '|' + tZone.gmtZeroFormat;\n return ret;\n };\n /**\n * Returns zone based value.\n *\n * @param {boolean} flag ?\n * @param {string} val1 ?\n * @param {string} val2 ?\n * @param {NumericOptions} num ?\n * @returns {number} ?\n */\n DateParser.getZoneValue = function (flag, val1, val2, num) {\n var ival = flag ? val1 : val2;\n if (!ival) {\n return 0;\n }\n var value = this.internalNumberParser(ival, num);\n if (flag) {\n return -value;\n }\n return value;\n };\n return DateParser;\n}());\nexport { DateParser };\n","import { extend, isNullOrUndefined, isBlazor, getValue } from '../util';\nimport { ParserBase as parser } from './parser-base';\nimport { IntlBase as base } from './intl-base';\nvar parseRegex = /^([^0-9]*)(([0-9,]*[0-9]+)(\\.[0-9]+)?)([Ee][+-]?[0-9]+)?([^0-9]*)$/;\nvar groupRegex = /,/g;\nvar keys = ['minusSign', 'infinity'];\n/**\n * Module for Number Parser.\n *\n * @private\n */\nvar NumberParser = /** @class */ (function () {\n function NumberParser() {\n }\n /**\n * Returns the parser function for given skeleton.\n *\n * @param {string} culture - Specifies the culture name to be which formatting.\n * @param {NumberFormatOptions} option - Specific the format in which number will parsed.\n * @param {Object} cldr - Specifies the global cldr data collection.\n * @returns {Function} ?\n */\n NumberParser.numberParser = function (culture, option, cldr) {\n var _this = this;\n var dependable = base.getDependables(cldr, culture, '', true);\n var parseOptions = { custom: true };\n var numOptions;\n if ((base.formatRegex.test(option.format)) || !(option.format)) {\n extend(parseOptions, base.getProperNumericSkeleton(option.format || 'N'));\n parseOptions.custom = false;\n if (!parseOptions.fractionDigits) {\n if (option.maximumFractionDigits) {\n parseOptions.maximumFractionDigits = option.maximumFractionDigits;\n }\n }\n }\n else {\n extend(parseOptions, base.customFormat(option.format, null, null));\n }\n var numbers = getValue('numbers', dependable.parserObject);\n // eslint-disable-next-line\n numOptions = parser.getCurrentNumericOptions(dependable.parserObject, parser.getNumberingSystem(cldr), true, isBlazor());\n parseOptions.symbolRegex = parser.getSymbolRegex(Object.keys(numOptions.symbolMatch));\n // eslint-disable-next-line\n parseOptions.infinity = numOptions.symbolNumberSystem[keys[1]];\n var symbolpattern;\n if (!isBlazor()) {\n symbolpattern = base.getSymbolPattern(parseOptions.type, numOptions.numberSystem, dependable.numericObject, parseOptions.isAccount);\n if (symbolpattern) {\n symbolpattern = symbolpattern.replace(/\\u00A4/g, base.defaultCurrency);\n var split = symbolpattern.split(';');\n parseOptions.nData = base.getFormatData(split[1] || '-' + split[0], true, '');\n parseOptions.pData = base.getFormatData(split[0], true, '');\n }\n }\n else {\n parseOptions.nData = extend({}, {}, getValue(parseOptions.type + 'nData', numbers));\n parseOptions.pData = extend({}, {}, getValue(parseOptions.type + 'pData', numbers));\n if (parseOptions.type === 'currency' && option.currency) {\n base.replaceBlazorCurrency([parseOptions.pData, parseOptions.nData], getValue('currencySymbol', numbers), option.currency);\n }\n }\n return function (value) {\n return _this.getParsedNumber(value, parseOptions, numOptions);\n };\n };\n /**\n * Returns parsed number for the provided formatting options\n *\n * @param {string} value ?\n * @param {NumericParts} options ?\n * @param {NumericOptions} numOptions ?\n * @returns {number} ?\n */\n NumberParser.getParsedNumber = function (value, options, numOptions) {\n var isNegative;\n var isPercent;\n var tempValue;\n var lead;\n var end;\n var ret;\n if (value.indexOf(options.infinity) !== -1) {\n return Infinity;\n }\n else {\n value = parser.convertValueParts(value, options.symbolRegex, numOptions.symbolMatch);\n value = parser.convertValueParts(value, numOptions.numberParseRegex, numOptions.numericPair);\n value = value.indexOf('-') !== -1 ? value.replace('-.', '-0.') : value;\n if (value.indexOf('.') === 0) {\n value = '0' + value;\n }\n var matches = value.match(parseRegex);\n if (isNullOrUndefined(matches)) {\n return NaN;\n }\n lead = matches[1];\n tempValue = matches[2];\n var exponent = matches[5];\n end = matches[6];\n isNegative = options.custom ? ((lead === options.nData.nlead) && (end === options.nData.nend)) :\n ((lead.indexOf(options.nData.nlead) !== -1) && (end.indexOf(options.nData.nend) !== -1));\n isPercent = isNegative ?\n options.nData.isPercent :\n options.pData.isPercent;\n tempValue = tempValue.replace(groupRegex, '');\n if (exponent) {\n tempValue += exponent;\n }\n ret = +tempValue;\n if (options.type === 'percent' || isPercent) {\n ret = ret / 100;\n }\n if (options.custom || options.fractionDigits) {\n ret = parseFloat(ret.toFixed(options.custom ?\n (isNegative ? options.nData.maximumFractionDigits : options.pData.maximumFractionDigits) : options.fractionDigits));\n }\n if (options.maximumFractionDigits) {\n ret = this.convertMaxFracDigits(tempValue, options, ret, isNegative);\n }\n if (isNegative) {\n ret *= -1;\n }\n return ret;\n }\n };\n NumberParser.convertMaxFracDigits = function (value, options, ret, isNegative) {\n var decimalSplitValue = value.split('.');\n if (decimalSplitValue[1] && decimalSplitValue[1].length > options.maximumFractionDigits) {\n ret = +(ret.toFixed(options.custom ?\n (isNegative ? options.nData.maximumFractionDigits : options.pData.maximumFractionDigits) : options.maximumFractionDigits));\n }\n return ret;\n };\n return NumberParser;\n}());\nexport { NumberParser };\n","import { isNullOrUndefined, getValue, extend, isBlazor } from './util';\nvar Observer = /** @class */ (function () {\n function Observer(context) {\n this.ranArray = [];\n this.boundedEvents = {};\n if (isNullOrUndefined(context)) {\n return;\n }\n this.context = context;\n }\n /**\n * To attach handler for given property in current context.\n *\n * @param {string} property - specifies the name of the event.\n * @param {Function} handler - Specifies the handler function to be called while event notified.\n * @param {Object} context - Specifies the context binded to the handler.\n * @param {string} id - specifies the random generated id.\n * @returns {void}\n */\n Observer.prototype.on = function (property, handler, context, id) {\n if (isNullOrUndefined(handler)) {\n return;\n }\n var cntxt = context || this.context;\n if (this.notExist(property)) {\n this.boundedEvents[\"\" + property] = [{ handler: handler, context: cntxt }];\n return;\n }\n if (!isNullOrUndefined(id)) {\n if (this.ranArray.indexOf(id) === -1) {\n this.ranArray.push(id);\n this.boundedEvents[\"\" + property].push({ handler: handler, context: cntxt, id: id });\n }\n }\n else if (!this.isHandlerPresent(this.boundedEvents[\"\" + property], handler)) {\n this.boundedEvents[\"\" + property].push({ handler: handler, context: cntxt });\n }\n };\n /**\n * To remove handlers from a event attached using on() function.\n *\n * @param {string} property - specifies the name of the event.\n * @param {Function} handler - Optional argument specifies the handler function to be called while event notified.\n * @param {string} id - specifies the random generated id.\n * @returns {void} ?\n */\n Observer.prototype.off = function (property, handler, id) {\n if (this.notExist(property)) {\n return;\n }\n var curObject = getValue(property, this.boundedEvents);\n if (handler) {\n for (var i = 0; i < curObject.length; i++) {\n if (id) {\n if (curObject[parseInt(i.toString(), 10)].id === id) {\n curObject.splice(i, 1);\n var indexLocation = this.ranArray.indexOf(id);\n if (indexLocation !== -1) {\n this.ranArray.splice(indexLocation, 1);\n }\n break;\n }\n }\n else if (handler === curObject[parseInt(i.toString(), 10)].handler) {\n curObject.splice(i, 1);\n break;\n }\n }\n }\n else {\n delete this.boundedEvents[\"\" + property];\n }\n };\n /**\n * To notify the handlers in the specified event.\n *\n * @param {string} property - Specifies the event to be notify.\n * @param {Object} argument - Additional parameters to pass while calling the handler.\n * @param {Function} successHandler - this function will invoke after event successfully triggered\n * @param {Function} errorHandler - this function will invoke after event if it was failure to call.\n * @returns {void} ?\n */\n Observer.prototype.notify = function (property, argument, successHandler, errorHandler) {\n if (this.notExist(property)) {\n if (successHandler) {\n successHandler.call(this, argument);\n }\n return;\n }\n if (argument) {\n argument.name = property;\n }\n var blazor = 'Blazor';\n var curObject = getValue(property, this.boundedEvents).slice(0);\n if (window[\"\" + blazor]) {\n return this.blazorCallback(curObject, argument, successHandler, errorHandler, 0);\n }\n else {\n for (var _i = 0, curObject_1 = curObject; _i < curObject_1.length; _i++) {\n var cur = curObject_1[_i];\n cur.handler.call(cur.context, argument);\n }\n if (successHandler) {\n successHandler.call(this, argument);\n }\n }\n };\n Observer.prototype.blazorCallback = function (objs, argument, successHandler, errorHandler, index) {\n var _this = this;\n var isTrigger = index === objs.length - 1;\n if (index < objs.length) {\n var obj_1 = objs[parseInt(index.toString(), 10)];\n var promise = obj_1.handler.call(obj_1.context, argument);\n if (promise && typeof promise.then === 'function') {\n if (!successHandler) {\n return promise;\n }\n promise.then(function (data) {\n data = typeof data === 'string' && _this.isJson(data) ? JSON.parse(data, _this.dateReviver) : data;\n extend(argument, argument, data, true);\n if (successHandler && isTrigger) {\n successHandler.call(obj_1.context, argument);\n }\n else {\n return _this.blazorCallback(objs, argument, successHandler, errorHandler, index + 1);\n }\n }).catch(function (data) {\n if (errorHandler) {\n errorHandler.call(obj_1.context, typeof data === 'string' &&\n _this.isJson(data) ? JSON.parse(data, _this.dateReviver) : data);\n }\n });\n }\n else if (successHandler && isTrigger) {\n successHandler.call(obj_1.context, argument);\n }\n else {\n return this.blazorCallback(objs, argument, successHandler, errorHandler, index + 1);\n }\n }\n };\n // eslint-disable-next-line\n Observer.prototype.dateReviver = function (key, value) {\n var dPattern = /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}/;\n if (isBlazor && typeof value === 'string' && value.match(dPattern) !== null) {\n return (new Date(value));\n }\n return (value);\n };\n Observer.prototype.isJson = function (value) {\n try {\n JSON.parse(value);\n }\n catch (e) {\n return false;\n }\n return true;\n };\n /**\n * To destroy handlers in the event\n *\n * @returns {void} ?\n */\n Observer.prototype.destroy = function () {\n this.boundedEvents = this.context = undefined;\n };\n /**\n * Returns if the property exists.\n *\n * @param {string} prop ?\n * @returns {boolean} ?\n */\n Observer.prototype.notExist = function (prop) {\n // eslint-disable-next-line\n return this.boundedEvents.hasOwnProperty(prop) === false || this.boundedEvents[prop].length <= 0;\n };\n /**\n * Returns if the handler is present.\n *\n * @param {BoundOptions[]} boundedEvents ?\n * @param {Function} handler ?\n * @returns {boolean} ?\n */\n Observer.prototype.isHandlerPresent = function (boundedEvents, handler) {\n for (var _i = 0, boundedEvents_1 = boundedEvents; _i < boundedEvents_1.length; _i++) {\n var cur = boundedEvents_1[_i];\n if (cur.handler === handler) {\n return true;\n }\n }\n return false;\n };\n return Observer;\n}());\nexport { Observer };\n","import { DateFormat } from './intl/date-formatter';\nimport { NumberFormat } from './intl/number-formatter';\nimport { DateParser } from './intl/date-parser';\nimport { NumberParser } from './intl/number-parser';\nimport { IntlBase } from './intl/intl-base';\nimport { extend, getValue, isBlazor } from './util';\nimport { Observer } from './observer';\n/**\n * Specifies the observer used for external change detection.\n */\nexport var onIntlChange = new Observer();\n/**\n * Specifies the default rtl status for EJ2 components.\n */\nexport var rightToLeft = false;\n/**\n * Specifies the CLDR data loaded for internationalization functionalities.\n *\n * @private\n */\nexport var cldrData = {};\n/**\n * Specifies the default culture value to be considered.\n *\n * @private\n */\nexport var defaultCulture = 'en-US';\n/**\n * Specifies default currency code to be considered\n *\n * @private\n */\nexport var defaultCurrencyCode = 'USD';\nvar mapper = ['numericObject', 'dateObject'];\n/**\n * Internationalization class provides support to parse and format the number and date object to the desired format.\n * ```typescript\n * // To set the culture globally\n * setCulture('en-GB');\n *\n * // To set currency code globally\n * setCurrencyCode('EUR');\n *\n * //Load cldr data\n * loadCldr(gregorainData);\n * loadCldr(timeZoneData);\n * loadCldr(numbersData);\n * loadCldr(numberSystemData);\n *\n * // To use formatter in component side\n * let Intl:Internationalization = new Internationalization();\n *\n * // Date formatting\n * let dateFormatter: Function = Intl.getDateFormat({skeleton:'long',type:'dateTime'});\n * dateFormatter(new Date('11/2/2016'));\n * dateFormatter(new Date('25/2/2030'));\n * Intl.formatDate(new Date(),{skeleton:'E'});\n *\n * //Number formatting\n * let numberFormatter: Function = Intl.getNumberFormat({skeleton:'C5'})\n * numberFormatter(24563334);\n * Intl.formatNumber(123123,{skeleton:'p2'});\n *\n * // Date parser\n * let dateParser: Function = Intl.getDateParser({skeleton:'short',type:'time'});\n * dateParser('10:30 PM');\n * Intl.parseDate('10',{skeleton:'H'});\n * ```\n */\nvar Internationalization = /** @class */ (function () {\n function Internationalization(cultureName) {\n if (cultureName) {\n this.culture = cultureName;\n }\n }\n /**\n * Returns the format function for given options.\n *\n * @param {DateFormatOptions} options - Specifies the format options in which the format function will return.\n * @returns {Function} ?\n */\n Internationalization.prototype.getDateFormat = function (options) {\n return DateFormat.dateFormat(this.getCulture(), options || { type: 'date', skeleton: 'short' }, cldrData);\n };\n /**\n * Returns the format function for given options.\n *\n * @param {NumberFormatOptions} options - Specifies the format options in which the format function will return.\n * @returns {Function} ?\n */\n Internationalization.prototype.getNumberFormat = function (options) {\n if (options && !options.currency) {\n options.currency = defaultCurrencyCode;\n }\n if (isBlazor() && options && !options.format) {\n options.minimumFractionDigits = 0;\n }\n return NumberFormat.numberFormatter(this.getCulture(), options || {}, cldrData);\n };\n /**\n * Returns the parser function for given options.\n *\n * @param {DateFormatOptions} options - Specifies the format options in which the parser function will return.\n * @returns {Function} ?\n */\n Internationalization.prototype.getDateParser = function (options) {\n return DateParser.dateParser(this.getCulture(), options || { skeleton: 'short', type: 'date' }, cldrData);\n };\n /**\n * Returns the parser function for given options.\n *\n * @param {NumberFormatOptions} options - Specifies the format options in which the parser function will return.\n * @returns {Function} ?\n */\n Internationalization.prototype.getNumberParser = function (options) {\n if (isBlazor() && options && !options.format) {\n options.minimumFractionDigits = 0;\n }\n return NumberParser.numberParser(this.getCulture(), options || { format: 'N' }, cldrData);\n };\n /**\n * Returns the formatted string based on format options.\n *\n * @param {number} value - Specifies the number to format.\n * @param {NumberFormatOptions} option - Specifies the format options in which the number will be formatted.\n * @returns {string} ?\n */\n Internationalization.prototype.formatNumber = function (value, option) {\n return this.getNumberFormat(option)(value);\n };\n /**\n * Returns the formatted date string based on format options.\n *\n * @param {Date} value - Specifies the number to format.\n * @param {DateFormatOptions} option - Specifies the format options in which the number will be formatted.\n * @returns {string} ?\n */\n Internationalization.prototype.formatDate = function (value, option) {\n return this.getDateFormat(option)(value);\n };\n /**\n * Returns the date object for given date string and options.\n *\n * @param {string} value - Specifies the string to parse.\n * @param {DateFormatOptions} option - Specifies the parse options in which the date string will be parsed.\n * @returns {Date} ?\n */\n Internationalization.prototype.parseDate = function (value, option) {\n return this.getDateParser(option)(value);\n };\n /**\n * Returns the number object from the given string value and options.\n *\n * @param {string} value - Specifies the string to parse.\n * @param {NumberFormatOptions} option - Specifies the parse options in which the string number will be parsed.\n * @returns {number} ?\n */\n Internationalization.prototype.parseNumber = function (value, option) {\n return this.getNumberParser(option)(value);\n };\n /**\n * Returns Native Date Time Pattern\n *\n * @param {DateFormatOptions} option - Specifies the parse options for resultant date time pattern.\n * @param {boolean} isExcelFormat - Specifies format value to be converted to excel pattern.\n * @returns {string} ?\n * @private\n */\n Internationalization.prototype.getDatePattern = function (option, isExcelFormat) {\n return IntlBase.getActualDateTimeFormat(this.getCulture(), option, cldrData, isExcelFormat);\n };\n /**\n * Returns Native Number Pattern\n *\n * @param {NumberFormatOptions} option - Specifies the parse options for resultant number pattern.\n * @param {boolean} isExcel ?\n * @returns {string} ?\n * @private\n */\n Internationalization.prototype.getNumberPattern = function (option, isExcel) {\n return IntlBase.getActualNumberFormat(this.getCulture(), option, cldrData, isExcel);\n };\n /**\n * Returns the First Day of the Week\n *\n * @returns {number} ?\n */\n Internationalization.prototype.getFirstDayOfWeek = function () {\n return IntlBase.getWeekData(this.getCulture(), cldrData);\n };\n /**\n * Returns the culture\n *\n * @returns {string} ?\n */\n Internationalization.prototype.getCulture = function () {\n return this.culture || defaultCulture;\n };\n return Internationalization;\n}());\nexport { Internationalization };\n/**\n * Set the default culture to all EJ2 components\n *\n * @param {string} cultureName - Specifies the culture name to be set as default culture.\n * @returns {void} ?\n */\nexport function setCulture(cultureName) {\n defaultCulture = cultureName;\n onIntlChange.notify('notifyExternalChange', { 'locale': defaultCulture });\n}\n/**\n * Set the default currency code to all EJ2 components\n *\n * @param {string} currencyCode Specifies the culture name to be set as default culture.\n * @returns {void} ?\n */\nexport function setCurrencyCode(currencyCode) {\n defaultCurrencyCode = currencyCode;\n onIntlChange.notify('notifyExternalChange', { 'currencyCode': defaultCurrencyCode });\n}\n/**\n * Load the CLDR data into context\n *\n * @param {Object[]} data Specifies the CLDR data's to be used for formatting and parser.\n * @returns {void} ?\n */\nexport function loadCldr() {\n var data = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n data[_i] = arguments[_i];\n }\n for (var _a = 0, data_1 = data; _a < data_1.length; _a++) {\n var obj = data_1[_a];\n extend(cldrData, obj, {}, true);\n }\n}\n/**\n * To enable or disable RTL functionality for all components globally.\n *\n * @param {boolean} status - Optional argument Specifies the status value to enable or disable rtl option.\n * @returns {void} ?\n */\nexport function enableRtl(status) {\n if (status === void 0) { status = true; }\n rightToLeft = status;\n onIntlChange.notify('notifyExternalChange', { enableRtl: rightToLeft });\n}\n/**\n * To get the numeric CLDR object for given culture\n *\n * @param {string} locale - Specifies the locale for which numericObject to be returned.\n * @param {string} type ?\n * @returns {Object} ?\n * @ignore\n * @private\n */\nexport function getNumericObject(locale, type) {\n // eslint-disable-next-line\n var numObject = IntlBase.getDependables(cldrData, locale, '', true)[mapper[0]];\n // eslint-disable-next-line\n var dateObject = IntlBase.getDependables(cldrData, locale, '')[mapper[1]];\n var numSystem = getValue('defaultNumberingSystem', numObject);\n var symbPattern = isBlazor() ? getValue('numberSymbols', numObject) : getValue('symbols-numberSystem-' + numSystem, numObject);\n var pattern = IntlBase.getSymbolPattern(type || 'decimal', numSystem, numObject, false);\n return extend(symbPattern, IntlBase.getFormatData(pattern, true, '', true), { 'dateSeparator': IntlBase.getDateSeparator(dateObject) });\n}\n/**\n * To get the numeric CLDR number base object for given culture\n *\n * @param {string} locale - Specifies the locale for which numericObject to be returned.\n * @param {string} currency - Specifies the currency for which numericObject to be returned.\n * @returns {string} ?\n * @ignore\n * @private\n */\nexport function getNumberDependable(locale, currency) {\n // eslint-disable-next-line\n var numObject = IntlBase.getDependables(cldrData, locale, '', true);\n // eslint-disable-next-line\n return IntlBase.getCurrencySymbol(numObject.numericObject, currency);\n}\n/**\n * To get the default date CLDR object.\n *\n * @param {string} mode ?\n * @returns {Object} ?\n * @ignore\n * @private\n */\nexport function getDefaultDateObject(mode) {\n // eslint-disable-next-line\n return IntlBase.getDependables(cldrData, '', mode, false)[mapper[1]];\n}\n","import { defaultCurrencyCode } from '../internationalization';\nimport { getValue, isNullOrUndefined, extend, isBlazor } from '../util';\nimport { ParserBase as parser, getBlazorCurrencySymbol } from './parser-base';\nimport { DateFormat } from './date-formatter';\nimport { NumberFormat } from './number-formatter';\nimport { isUndefined } from '../util';\nexport var blazorCultureFormats = {\n 'en-US': {\n 'd': 'M/d/y',\n 'D': 'EEEE, MMMM d, y',\n 'f': 'EEEE, MMMM d, y h:mm a',\n 'F': 'EEEE, MMMM d, y h:mm:s a',\n 'g': 'M/d/y h:mm a',\n 'G': 'M/d/yyyy h:mm:ss tt',\n 'm': 'MMMM d',\n 'M': 'MMMM d',\n 'r': 'ddd, dd MMM yyyy HH\\':\\'mm\\':\\'ss \\'GMT\\'',\n 'R': 'ddd, dd MMM yyyy HH\\':\\'mm\\':\\'ss \\'GMT\\'',\n 's': 'yyyy\\'-\\'MM\\'-\\'dd\\'T\\'HH\\':\\'mm\\':\\'ss',\n 't': 'h:mm tt',\n 'T': 'h:m:s tt',\n 'u': 'yyyy\\'-\\'MM\\'-\\'dd HH\\':\\'mm\\':\\'ss\\'Z\\'',\n 'U': 'dddd, MMMM d, yyyy h:mm:ss tt',\n 'y': 'MMMM yyyy',\n 'Y': 'MMMM yyyy'\n }\n};\n/**\n * Date base common constants and function for date parser and formatter.\n */\n// eslint-disable-next-line\nexport var IntlBase;\n(function (IntlBase) {\n // tslint:disable-next-line:max-line-length\n IntlBase.negativeDataRegex = /^(('[^']+'|''|[^*#@0,.E])*)(\\*.)?((([#,]*[0,]*0+)(\\.0*[0-9]*#*)?)|([#,]*@+#*))(E\\+?0+)?(('[^']+'|''|[^*#@0,.E])*)$/;\n IntlBase.customRegex = /^(('[^']+'|''|[^*#@0,.])*)(\\*.)?((([0#,]*[0,]*[0#]*[0#\\ ]*)(\\.[0#]*)?)|([#,]*@+#*))(E\\+?0+)?(('[^']+'|''|[^*#@0,.E])*)$/;\n IntlBase.latnParseRegex = /0|1|2|3|4|5|6|7|8|9/g;\n var fractionRegex = /[0-9]/g;\n IntlBase.defaultCurrency = '$';\n var mapper = ['infinity', 'nan', 'group', 'decimal'];\n var patternRegex = /G|M|L|H|c|'| a|yy|y|EEEE|E/g;\n var patternMatch = {\n 'G': '',\n 'M': 'm',\n 'L': 'm',\n 'H': 'h',\n 'c': 'd',\n '\\'': '\"',\n ' a': ' AM/PM',\n 'yy': 'yy',\n 'y': 'yyyy',\n 'EEEE': 'dddd',\n 'E': 'ddd'\n };\n IntlBase.dateConverterMapper = /dddd|ddd/ig;\n var defaultFirstDay = 'sun';\n IntlBase.islamicRegex = /^islamic/;\n var firstDayMapper = {\n 'sun': 0,\n 'mon': 1,\n 'tue': 2,\n 'wed': 3,\n 'thu': 4,\n 'fri': 5,\n 'sat': 6\n };\n IntlBase.formatRegex = /(^[ncpae]{1})([0-1]?[0-9]|20)?$/i;\n IntlBase.currencyFormatRegex = /(^[ca]{1})([0-1]?[0-9]|20)?$/i;\n IntlBase.curWithoutNumberRegex = /(c|a)$/ig;\n var typeMapper = {\n '$': 'isCurrency',\n '%': 'isPercent',\n '-': 'isNegative',\n 0: 'nlead',\n 1: 'nend'\n };\n IntlBase.dateParseRegex = /([a-z])\\1*|'([^']|'')+'|''|./gi;\n IntlBase.basicPatterns = ['short', 'medium', 'long', 'full'];\n /* tslint:disable:quotemark */\n IntlBase.defaultObject = {\n 'dates': {\n 'calendars': {\n 'gregorian': {\n 'months': {\n 'stand-alone': {\n 'abbreviated': {\n '1': 'Jan',\n '2': 'Feb',\n '3': 'Mar',\n '4': 'Apr',\n '5': 'May',\n '6': 'Jun',\n '7': 'Jul',\n '8': 'Aug',\n '9': 'Sep',\n '10': 'Oct',\n '11': 'Nov',\n '12': 'Dec'\n },\n 'narrow': {\n '1': 'J',\n '2': 'F',\n '3': 'M',\n '4': 'A',\n '5': 'M',\n '6': 'J',\n '7': 'J',\n '8': 'A',\n '9': 'S',\n '10': 'O',\n '11': 'N',\n '12': 'D'\n },\n 'wide': {\n '1': 'January',\n '2': 'February',\n '3': 'March',\n '4': 'April',\n '5': 'May',\n '6': 'June',\n '7': 'July',\n '8': 'August',\n '9': 'September',\n '10': 'October',\n '11': 'November',\n '12': 'December'\n }\n }\n },\n 'days': {\n 'stand-alone': {\n 'abbreviated': {\n 'sun': 'Sun',\n 'mon': 'Mon',\n 'tue': 'Tue',\n 'wed': 'Wed',\n 'thu': 'Thu',\n 'fri': 'Fri',\n 'sat': 'Sat'\n },\n 'narrow': {\n 'sun': 'S',\n 'mon': 'M',\n 'tue': 'T',\n 'wed': 'W',\n 'thu': 'T',\n 'fri': 'F',\n 'sat': 'S'\n },\n 'short': {\n 'sun': 'Su',\n 'mon': 'Mo',\n 'tue': 'Tu',\n 'wed': 'We',\n 'thu': 'Th',\n 'fri': 'Fr',\n 'sat': 'Sa'\n },\n 'wide': {\n 'sun': 'Sunday',\n 'mon': 'Monday',\n 'tue': 'Tuesday',\n 'wed': 'Wednesday',\n 'thu': 'Thursday',\n 'fri': 'Friday',\n 'sat': 'Saturday'\n }\n }\n },\n 'dayPeriods': {\n 'format': {\n 'wide': {\n 'am': 'AM',\n 'pm': 'PM'\n }\n }\n },\n 'eras': {\n 'eraNames': {\n '0': 'Before Christ',\n '0-alt-variant': 'Before Common Era',\n '1': 'Anno Domini',\n '1-alt-variant': 'Common Era'\n },\n 'eraAbbr': {\n '0': 'BC',\n '0-alt-variant': 'BCE',\n '1': 'AD',\n '1-alt-variant': 'CE'\n },\n 'eraNarrow': {\n '0': 'B',\n '0-alt-variant': 'BCE',\n '1': 'A',\n '1-alt-variant': 'CE'\n }\n },\n 'dateFormats': {\n 'full': 'EEEE, MMMM d, y',\n 'long': 'MMMM d, y',\n 'medium': 'MMM d, y',\n 'short': 'M/d/yy'\n },\n 'timeFormats': {\n 'full': 'h:mm:ss a zzzz',\n 'long': 'h:mm:ss a z',\n 'medium': 'h:mm:ss a',\n 'short': 'h:mm a'\n },\n 'dateTimeFormats': {\n 'full': '{1} \\'at\\' {0}',\n 'long': '{1} \\'at\\' {0}',\n 'medium': '{1}, {0}',\n 'short': '{1}, {0}',\n 'availableFormats': {\n 'd': 'd',\n 'E': 'ccc',\n 'Ed': 'd E',\n 'Ehm': 'E h:mm a',\n 'EHm': 'E HH:mm',\n 'Ehms': 'E h:mm:ss a',\n 'EHms': 'E HH:mm:ss',\n 'Gy': 'y G',\n 'GyMMM': 'MMM y G',\n 'GyMMMd': 'MMM d, y G',\n 'GyMMMEd': 'E, MMM d, y G',\n 'h': 'h a',\n 'H': 'HH',\n 'hm': 'h:mm a',\n 'Hm': 'HH:mm',\n 'hms': 'h:mm:ss a',\n 'Hms': 'HH:mm:ss',\n 'hmsv': 'h:mm:ss a v',\n 'Hmsv': 'HH:mm:ss v',\n 'hmv': 'h:mm a v',\n 'Hmv': 'HH:mm v',\n 'M': 'L',\n 'Md': 'M/d',\n 'MEd': 'E, M/d',\n 'MMM': 'LLL',\n 'MMMd': 'MMM d',\n 'MMMEd': 'E, MMM d',\n 'MMMMd': 'MMMM d',\n 'ms': 'mm:ss',\n 'y': 'y',\n 'yM': 'M/y',\n 'yMd': 'M/d/y',\n 'yMEd': 'E, M/d/y',\n 'yMMM': 'MMM y',\n 'yMMMd': 'MMM d, y',\n 'yMMMEd': 'E, MMM d, y',\n 'yMMMM': 'MMMM y'\n }\n }\n },\n 'islamic': {\n 'months': {\n 'stand-alone': {\n 'abbreviated': {\n '1': 'Muh.',\n '2': 'Saf.',\n '3': 'Rab. I',\n '4': 'Rab. II',\n '5': 'Jum. I',\n '6': 'Jum. II',\n '7': 'Raj.',\n '8': 'Sha.',\n '9': 'Ram.',\n '10': 'Shaw.',\n '11': 'Dhuʻl-Q.',\n '12': 'Dhuʻl-H.'\n },\n 'narrow': {\n '1': '1',\n '2': '2',\n '3': '3',\n '4': '4',\n '5': '5',\n '6': '6',\n '7': '7',\n '8': '8',\n '9': '9',\n '10': '10',\n '11': '11',\n '12': '12'\n },\n 'wide': {\n '1': 'Muharram',\n '2': 'Safar',\n '3': 'Rabiʻ I',\n '4': 'Rabiʻ II',\n '5': 'Jumada I',\n '6': 'Jumada II',\n '7': 'Rajab',\n '8': 'Shaʻban',\n '9': 'Ramadan',\n '10': 'Shawwal',\n '11': 'Dhuʻl-Qiʻdah',\n '12': 'Dhuʻl-Hijjah'\n }\n }\n },\n 'days': {\n 'stand-alone': {\n 'abbreviated': {\n 'sun': 'Sun',\n 'mon': 'Mon',\n 'tue': 'Tue',\n 'wed': 'Wed',\n 'thu': 'Thu',\n 'fri': 'Fri',\n 'sat': 'Sat'\n },\n 'narrow': {\n 'sun': 'S',\n 'mon': 'M',\n 'tue': 'T',\n 'wed': 'W',\n 'thu': 'T',\n 'fri': 'F',\n 'sat': 'S'\n },\n 'short': {\n 'sun': 'Su',\n 'mon': 'Mo',\n 'tue': 'Tu',\n 'wed': 'We',\n 'thu': 'Th',\n 'fri': 'Fr',\n 'sat': 'Sa'\n },\n 'wide': {\n 'sun': 'Sunday',\n 'mon': 'Monday',\n 'tue': 'Tuesday',\n 'wed': 'Wednesday',\n 'thu': 'Thursday',\n 'fri': 'Friday',\n 'sat': 'Saturday'\n }\n }\n },\n 'dayPeriods': {\n 'format': {\n 'wide': {\n 'am': 'AM',\n 'pm': 'PM'\n }\n }\n },\n 'eras': {\n 'eraNames': {\n '0': 'AH'\n },\n 'eraAbbr': {\n '0': 'AH'\n },\n 'eraNarrow': {\n '0': 'AH'\n }\n },\n 'dateFormats': {\n 'full': 'EEEE, MMMM d, y G',\n 'long': 'MMMM d, y G',\n 'medium': 'MMM d, y G',\n 'short': 'M/d/y GGGGG'\n },\n 'timeFormats': {\n 'full': 'h:mm:ss a zzzz',\n 'long': 'h:mm:ss a z',\n 'medium': 'h:mm:ss a',\n 'short': 'h:mm a'\n },\n 'dateTimeFormats': {\n 'full': '{1} \\'at\\' {0}',\n 'long': '{1} \\'at\\' {0}',\n 'medium': '{1}, {0}',\n 'short': '{1}, {0}',\n 'availableFormats': {\n 'd': 'd',\n 'E': 'ccc',\n 'Ed': 'd E',\n 'Ehm': 'E h:mm a',\n 'EHm': 'E HH:mm',\n 'Ehms': 'E h:mm:ss a',\n 'EHms': 'E HH:mm:ss',\n 'Gy': 'y G',\n 'GyMMM': 'MMM y G',\n 'GyMMMd': 'MMM d, y G',\n 'GyMMMEd': 'E, MMM d, y G',\n 'h': 'h a',\n 'H': 'HH',\n 'hm': 'h:mm a',\n 'Hm': 'HH:mm',\n 'hms': 'h:mm:ss a',\n 'Hms': 'HH:mm:ss',\n 'M': 'L',\n 'Md': 'M/d',\n 'MEd': 'E, M/d',\n 'MMM': 'LLL',\n 'MMMd': 'MMM d',\n 'MMMEd': 'E, MMM d',\n 'MMMMd': 'MMMM d',\n 'ms': 'mm:ss',\n 'y': 'y G',\n 'yyyy': 'y G',\n 'yyyyM': 'M/y GGGGG',\n 'yyyyMd': 'M/d/y GGGGG',\n 'yyyyMEd': 'E, M/d/y GGGGG',\n 'yyyyMMM': 'MMM y G',\n 'yyyyMMMd': 'MMM d, y G',\n 'yyyyMMMEd': 'E, MMM d, y G',\n 'yyyyMMMM': 'MMMM y G',\n 'yyyyQQQ': 'QQQ y G',\n 'yyyyQQQQ': 'QQQQ y G'\n }\n }\n }\n },\n 'timeZoneNames': {\n 'hourFormat': '+HH:mm;-HH:mm',\n 'gmtFormat': 'GMT{0}',\n 'gmtZeroFormat': 'GMT'\n }\n },\n 'numbers': {\n 'currencies': {\n 'USD': {\n 'displayName': 'US Dollar',\n 'symbol': '$',\n 'symbol-alt-narrow': '$'\n },\n 'EUR': {\n 'displayName': 'Euro',\n 'symbol': '€',\n 'symbol-alt-narrow': '€'\n },\n 'GBP': {\n 'displayName': 'British Pound',\n 'symbol-alt-narrow': '£'\n }\n },\n 'defaultNumberingSystem': 'latn',\n 'minimumGroupingDigits': '1',\n 'symbols-numberSystem-latn': {\n 'decimal': '.',\n 'group': ',',\n 'list': ';',\n 'percentSign': '%',\n 'plusSign': '+',\n 'minusSign': '-',\n 'exponential': 'E',\n 'superscriptingExponent': '×',\n 'perMille': '‰',\n 'infinity': '∞',\n 'nan': 'NaN',\n 'timeSeparator': ':'\n },\n 'decimalFormats-numberSystem-latn': {\n 'standard': '#,##0.###'\n },\n 'percentFormats-numberSystem-latn': {\n 'standard': '#,##0%'\n },\n 'currencyFormats-numberSystem-latn': {\n 'standard': '¤#,##0.00',\n 'accounting': '¤#,##0.00;(¤#,##0.00)'\n },\n 'scientificFormats-numberSystem-latn': {\n 'standard': '#E0'\n }\n }\n };\n IntlBase.blazorDefaultObject = {\n 'numbers': {\n 'mapper': {\n '0': '0',\n '1': '1',\n '2': '2',\n '3': '3',\n '4': '4',\n '5': '5',\n '6': '6',\n '7': '7',\n '8': '8',\n '9': '9'\n },\n 'mapperDigits': '0123456789',\n 'numberSymbols': {\n 'decimal': '.',\n 'group': ',',\n 'plusSign': '+',\n 'minusSign': '-',\n 'percentSign': '%',\n 'nan': 'NaN',\n 'timeSeparator': ':',\n 'infinity': '∞'\n },\n 'timeSeparator': ':',\n 'currencySymbol': '$',\n 'currencypData': {\n 'nlead': '$',\n 'nend': '',\n 'groupSeparator': ',',\n 'groupData': {\n 'primary': 3\n },\n 'maximumFraction': 2,\n 'minimumFraction': 2\n },\n 'percentpData': {\n 'nlead': '',\n 'nend': '%',\n 'groupSeparator': ',',\n 'groupData': {\n 'primary': 3\n },\n 'maximumFraction': 2,\n 'minimumFraction': 2\n },\n 'percentnData': {\n 'nlead': '-',\n 'nend': '%',\n 'groupSeparator': ',',\n 'groupData': {\n 'primary': 3\n },\n 'maximumFraction': 2,\n 'minimumFraction': 2\n },\n 'currencynData': {\n 'nlead': '($',\n 'nend': ')',\n 'groupSeparator': ',',\n 'groupData': {\n 'primary': 3\n },\n 'maximumFraction': 2,\n 'minimumFraction': 2\n },\n 'decimalnData': {\n 'nlead': '-',\n 'nend': '',\n 'groupData': {\n 'primary': 3\n },\n 'maximumFraction': 2,\n 'minimumFraction': 2\n },\n 'decimalpData': {\n 'nlead': '',\n 'nend': '',\n 'groupData': {\n 'primary': 3\n },\n 'maximumFraction': 2,\n 'minimumFraction': 2\n }\n },\n 'dates': {\n 'dayPeriods': {\n 'am': 'AM',\n 'pm': 'PM'\n },\n 'dateSeperator': '/',\n 'days': {\n 'abbreviated': {\n 'sun': 'Sun',\n 'mon': 'Mon',\n 'tue': 'Tue',\n 'wed': 'Wed',\n 'thu': 'Thu',\n 'fri': 'Fri',\n 'sat': 'Sat'\n },\n 'short': {\n 'sun': 'Su',\n 'mon': 'Mo',\n 'tue': 'Tu',\n 'wed': 'We',\n 'thu': 'Th',\n 'fri': 'Fr',\n 'sat': 'Sa'\n },\n 'wide': {\n 'sun': 'Sunday',\n 'mon': 'Monday',\n 'tue': 'Tuesday',\n 'wed': 'Wednesday',\n 'thu': 'Thursday',\n 'fri': 'Friday',\n 'sat': 'Saturday'\n }\n },\n 'months': {\n 'abbreviated': {\n '1': 'Jan',\n '2': 'Feb',\n '3': 'Mar',\n '4': 'Apr',\n '5': 'May',\n '6': 'Jun',\n '7': 'Jul',\n '8': 'Aug',\n '9': 'Sep',\n '10': 'Oct',\n '11': 'Nov',\n '12': 'Dec'\n },\n 'wide': {\n '1': 'January',\n '2': 'February',\n '3': 'March',\n '4': 'April',\n '5': 'May',\n '6': 'June',\n '7': 'July',\n '8': 'August',\n '9': 'September',\n '10': 'October',\n '11': 'November',\n '12': 'December'\n }\n },\n 'eras': {\n '1': 'AD'\n }\n }\n };\n /* tslint:enable:quotemark */\n IntlBase.monthIndex = {\n 3: 'abbreviated',\n 4: 'wide',\n 5: 'narrow',\n 1: 'abbreviated'\n };\n /**\n *\n */\n IntlBase.month = 'months';\n IntlBase.days = 'days';\n /**\n * Default numerber Object\n */\n IntlBase.patternMatcher = {\n C: 'currency',\n P: 'percent',\n N: 'decimal',\n A: 'currency',\n E: 'scientific'\n };\n /**\n * Returns the resultant pattern based on the skeleton, dateObject and the type provided\n *\n * @private\n * @param {string} skeleton ?\n * @param {Object} dateObject ?\n * @param {string} type ?\n * @param {boolean} isIslamic ?\n * @param {string} blazorCulture ?\n * @returns {string} ?\n */\n function getResultantPattern(skeleton, dateObject, type, isIslamic, blazorCulture) {\n var resPattern;\n var iType = type || 'date';\n if (blazorCulture) {\n resPattern = compareBlazorDateFormats({ skeleton: skeleton }, blazorCulture).format ||\n compareBlazorDateFormats({ skeleton: 'd' }, 'en-US').format;\n }\n else {\n if (IntlBase.basicPatterns.indexOf(skeleton) !== -1) {\n resPattern = getValue(iType + 'Formats.' + skeleton, dateObject);\n if (iType === 'dateTime') {\n var dPattern = getValue('dateFormats.' + skeleton, dateObject);\n var tPattern = getValue('timeFormats.' + skeleton, dateObject);\n resPattern = resPattern.replace('{1}', dPattern).replace('{0}', tPattern);\n }\n }\n else {\n resPattern = getValue('dateTimeFormats.availableFormats.' + skeleton, dateObject);\n }\n if (isUndefined(resPattern) && skeleton === 'yMd') {\n resPattern = 'M/d/y';\n }\n }\n return resPattern;\n }\n IntlBase.getResultantPattern = getResultantPattern;\n /**\n * Returns the dependable object for provided cldr data and culture\n *\n * @private\n * @param {Object} cldr ?\n * @param {string} culture ?\n * @param {string} mode ?\n * @param {boolean} isNumber ?\n * @returns {any} ?\n */\n function getDependables(cldr, culture, mode, isNumber) {\n var ret = {};\n var calendartype = mode || 'gregorian';\n ret.parserObject = parser.getMainObject(cldr, culture) || (isBlazor() ? IntlBase.blazorDefaultObject : IntlBase.defaultObject);\n if (isNumber) {\n ret.numericObject = getValue('numbers', ret.parserObject);\n }\n else {\n var dateString = isBlazor() ? 'dates' : ('dates.calendars.' + calendartype);\n ret.dateObject = getValue(dateString, ret.parserObject);\n }\n return ret;\n }\n IntlBase.getDependables = getDependables;\n /**\n * Returns the symbol pattern for provided parameters\n *\n * @private\n * @param {string} type ?\n * @param {string} numSystem ?\n * @param {Object} obj ?\n * @param {boolean} isAccount ?\n * @returns {string} ?\n */\n function getSymbolPattern(type, numSystem, obj, isAccount) {\n return getValue(type + 'Formats-numberSystem-' +\n numSystem + (isAccount ? '.accounting' : '.standard'), obj) || (isAccount ? getValue(type + 'Formats-numberSystem-' +\n numSystem + '.standard', obj) : '');\n }\n IntlBase.getSymbolPattern = getSymbolPattern;\n /**\n *\n * @param {string} format ?\n * @returns {string} ?\n */\n function ConvertDateToWeekFormat(format) {\n var convertMapper = format.match(IntlBase.dateConverterMapper);\n if (convertMapper && isBlazor()) {\n var tempString = convertMapper[0].length === 3 ? 'EEE' : 'EEEE';\n return format.replace(IntlBase.dateConverterMapper, tempString);\n }\n return format;\n }\n IntlBase.ConvertDateToWeekFormat = ConvertDateToWeekFormat;\n /**\n *\n * @param {DateFormatOptions} formatOptions ?\n * @param {string} culture ?\n * @returns {DateFormatOptions} ?\n */\n function compareBlazorDateFormats(formatOptions, culture) {\n var format = formatOptions.format || formatOptions.skeleton;\n var curFormatMapper = getValue((culture || 'en-US') + '.' + format, blazorCultureFormats);\n if (!curFormatMapper) {\n curFormatMapper = getValue('en-US.' + format, blazorCultureFormats);\n }\n if (curFormatMapper) {\n curFormatMapper = ConvertDateToWeekFormat(curFormatMapper);\n formatOptions.format = curFormatMapper.replace(/tt/, 'a');\n }\n return formatOptions;\n }\n IntlBase.compareBlazorDateFormats = compareBlazorDateFormats;\n /**\n * Returns proper numeric skeleton\n *\n * @private\n * @param {string} skeleton ?\n * @returns {any} ?\n */\n function getProperNumericSkeleton(skeleton) {\n var matches = skeleton.match(IntlBase.formatRegex);\n var ret = {};\n var pattern = matches[1].toUpperCase();\n ret.isAccount = (pattern === 'A');\n // eslint-disable-next-line\n ret.type = IntlBase.patternMatcher[pattern];\n if (skeleton.length > 1) {\n ret.fractionDigits = parseInt(matches[2], 10);\n }\n return ret;\n }\n IntlBase.getProperNumericSkeleton = getProperNumericSkeleton;\n /**\n * Returns format data for number formatting like minimum fraction, maximum fraction, etc..,\n *\n * @private\n * @param {string} pattern ?\n * @param {boolean} needFraction ?\n * @param {string} cSymbol ?\n * @param {boolean} fractionOnly ?\n * @returns {any} ?\n */\n function getFormatData(pattern, needFraction, cSymbol, fractionOnly) {\n var nData = fractionOnly ? {} : { nlead: '', nend: '' };\n var match = pattern.match(IntlBase.customRegex);\n if (match) {\n if (!fractionOnly) {\n nData.nlead = changeCurrencySymbol(match[1], cSymbol);\n nData.nend = changeCurrencySymbol(match[10], cSymbol);\n nData.groupPattern = match[4];\n }\n var fraction = match[7];\n if (fraction && needFraction) {\n var fmatch = fraction.match(fractionRegex);\n if (!isNullOrUndefined(fmatch)) {\n nData.minimumFraction = fmatch.length;\n }\n else {\n nData.minimumFraction = 0;\n }\n nData.maximumFraction = fraction.length - 1;\n }\n }\n return nData;\n }\n IntlBase.getFormatData = getFormatData;\n /**\n * Changes currency symbol\n *\n * @private\n * @param {string} val ?\n * @param {string} sym ?\n * @returns {string} ?\n */\n function changeCurrencySymbol(val, sym) {\n if (val) {\n return val.replace(IntlBase.defaultCurrency, sym);\n }\n return '';\n }\n IntlBase.changeCurrencySymbol = changeCurrencySymbol;\n /**\n * Returns currency symbol based on currency code ?\n *\n * @private\n * @param {Object} numericObject ?\n * @param {string} currencyCode ?\n * @param {string} altSymbol ?\n * @returns {string} ?\n */\n function getCurrencySymbol(numericObject, currencyCode, altSymbol) {\n var symbol = altSymbol ? ('.' + altSymbol) : '.symbol';\n var getCurrency = getValue('currencies.' + currencyCode + symbol, numericObject) ||\n getValue('currencies.' + currencyCode + '.symbol-alt-narrow', numericObject) || '$';\n return getCurrency;\n }\n IntlBase.getCurrencySymbol = getCurrencySymbol;\n /**\n * Returns formatting options for custom number format\n *\n * @private\n * @param {string} format ?\n * @param {CommonOptions} dOptions ?\n * @param {any} obj ?\n * @returns {any} ?\n */\n function customFormat(format, dOptions, obj) {\n var options = {};\n var formatSplit = format.split(';');\n var data = ['pData', 'nData', 'zeroData'];\n for (var i = 0; i < formatSplit.length; i++) {\n // eslint-disable-next-line\n options[data[i]] = customNumberFormat(formatSplit[i], dOptions, obj);\n }\n if (isNullOrUndefined(options.nData)) {\n options.nData = extend({}, options.pData);\n options.nData.nlead = isNullOrUndefined(dOptions) ? '-' + options.nData.nlead : dOptions.minusSymbol + options.nData.nlead;\n }\n return options;\n }\n IntlBase.customFormat = customFormat;\n /**\n * Returns custom formatting options\n *\n * @private\n * @param {string} format ?\n * @param {CommonOptions} dOptions ?\n * @param {Object} numObject ?\n * @returns {any} ?\n */\n function customNumberFormat(format, dOptions, numObject) {\n var cOptions = { type: 'decimal', minimumFractionDigits: 0, maximumFractionDigits: 0 };\n var pattern = format.match(IntlBase.customRegex);\n if (isNullOrUndefined(pattern) || (pattern[5] === '' && format !== 'N/A')) {\n cOptions.type = undefined;\n return cOptions;\n }\n cOptions.nlead = pattern[1];\n cOptions.nend = pattern[10];\n var integerPart = pattern[6];\n var spaceCapture = integerPart.match(/\\ $/g) ? true : false;\n var spaceGrouping = integerPart.replace(/\\ $/g, '').indexOf(' ') !== -1;\n cOptions.useGrouping = integerPart.indexOf(',') !== -1 || spaceGrouping;\n integerPart = integerPart.replace(/,/g, '');\n var fractionPart = pattern[7];\n if (integerPart.indexOf('0') !== -1) {\n cOptions.minimumIntegerDigits = integerPart.length - integerPart.indexOf('0');\n }\n if (!isNullOrUndefined(fractionPart)) {\n cOptions.minimumFractionDigits = fractionPart.lastIndexOf('0');\n cOptions.maximumFractionDigits = fractionPart.lastIndexOf('#');\n if (cOptions.minimumFractionDigits === -1) {\n cOptions.minimumFractionDigits = 0;\n }\n if (cOptions.maximumFractionDigits === -1 || cOptions.maximumFractionDigits < cOptions.minimumFractionDigits) {\n cOptions.maximumFractionDigits = cOptions.minimumFractionDigits;\n }\n }\n if (!isNullOrUndefined(dOptions)) {\n extend(cOptions, isCurrencyPercent([cOptions.nlead, cOptions.nend], '$', dOptions.currencySymbol));\n if (!cOptions.isCurrency) {\n extend(cOptions, isCurrencyPercent([cOptions.nlead, cOptions.nend], '%', dOptions.percentSymbol));\n }\n }\n else {\n extend(cOptions, isCurrencyPercent([cOptions.nlead, cOptions.nend], '%', '%'));\n }\n if (!isNullOrUndefined(numObject)) {\n var symbolPattern = getSymbolPattern(cOptions.type, dOptions.numberMapper.numberSystem, numObject, false);\n if (cOptions.useGrouping) {\n // eslint-disable-next-line\n cOptions.groupSeparator = spaceGrouping ? ' ' : dOptions.numberMapper.numberSymbols[mapper[2]];\n cOptions.groupData = NumberFormat.getGroupingDetails(symbolPattern.split(';')[0]);\n }\n cOptions.nlead = cOptions.nlead.replace(/'/g, '');\n cOptions.nend = spaceCapture ? ' ' + cOptions.nend.replace(/'/g, '') : cOptions.nend.replace(/'/g, '');\n }\n return cOptions;\n }\n IntlBase.customNumberFormat = customNumberFormat;\n /**\n * Returns formatting options for currency or percent type\n *\n * @private\n * @param {string[]} parts ?\n * @param {string} actual ?\n * @param {string} symbol ?\n * @returns {any} ?\n */\n function isCurrencyPercent(parts, actual, symbol) {\n var options = { nlead: parts[0], nend: parts[1] };\n for (var i = 0; i < 2; i++) {\n var part = parts[parseInt(i.toString(), 10)];\n var loc = part.indexOf(actual);\n if ((loc !== -1) && ((loc < part.indexOf('\\'')) || (loc > part.lastIndexOf('\\'')))) {\n // eslint-disable-next-line\n options[typeMapper[i]] = part.substr(0, loc) + symbol + part.substr(loc + 1);\n // eslint-disable-next-line\n options[typeMapper[actual]] = true;\n options.type = options.isCurrency ? 'currency' : 'percent';\n break;\n }\n }\n return options;\n }\n IntlBase.isCurrencyPercent = isCurrencyPercent;\n /**\n * Returns culture based date separator\n *\n * @private\n * @param {Object} dateObj ?\n * @returns {string} ?\n */\n function getDateSeparator(dateObj) {\n var value = (getValue('dateFormats.short', dateObj) || '').match(/[d‏M‏]([^d‏M])[d‏M‏]/i);\n return value ? value[1] : '/';\n }\n IntlBase.getDateSeparator = getDateSeparator;\n /**\n * Returns Native Date Time pattern\n *\n * @private\n * @param {string} culture ?\n * @param {DateFormatOptions} options ?\n * @param {Object} cldr ?\n * @param {boolean} isExcelFormat ?\n * @returns {string} ?\n */\n function getActualDateTimeFormat(culture, options, cldr, isExcelFormat) {\n var dependable = getDependables(cldr, culture, options.calendar);\n if (isBlazor()) {\n options = compareBlazorDateFormats(options, culture);\n }\n var actualPattern = options.format || getResultantPattern(options.skeleton, dependable.dateObject, options.type);\n if (isExcelFormat) {\n actualPattern = actualPattern.replace(patternRegex, function (pattern) {\n // eslint-disable-next-line\n return patternMatch[pattern];\n });\n if (actualPattern.indexOf('z') !== -1) {\n var tLength = actualPattern.match(/z/g).length;\n var timeZonePattern = void 0;\n var options_1 = { 'timeZone': {} };\n options_1.numMapper = parser.getNumberMapper(dependable.parserObject, parser.getNumberingSystem(cldr));\n options_1.timeZone = getValue('dates.timeZoneNames', dependable.parserObject);\n var value = new Date();\n var timezone = value.getTimezoneOffset();\n var pattern = (tLength < 4) ? '+H;-H' : options_1.timeZone.hourFormat;\n pattern = pattern.replace(/:/g, options_1.numMapper.timeSeparator);\n if (timezone === 0) {\n timeZonePattern = options_1.timeZone.gmtZeroFormat;\n }\n else {\n timeZonePattern = DateFormat.getTimeZoneValue(timezone, pattern);\n timeZonePattern = options_1.timeZone.gmtFormat.replace(/\\{0\\}/, timeZonePattern);\n }\n actualPattern = actualPattern.replace(/[z]+/, '\"' + timeZonePattern + '\"');\n }\n actualPattern = actualPattern.replace(/ $/, '');\n }\n return actualPattern;\n }\n IntlBase.getActualDateTimeFormat = getActualDateTimeFormat;\n /**\n *\n * @param {string} actual ?\n * @param {any} option ?\n * @returns {any} ?\n */\n // eslint-disable-next-line\n function processSymbol(actual, option) {\n if (actual.indexOf(',') !== -1) {\n // eslint-disable-next-line\n var split = actual.split(',');\n actual = (split[0] + getValue('numberMapper.numberSymbols.group', option) +\n split[1].replace('.', getValue('numberMapper.numberSymbols.decimal', option)));\n }\n else {\n actual = actual.replace('.', getValue('numberMapper.numberSymbols.decimal', option));\n }\n return actual;\n }\n /**\n * Returns Native Number pattern\n *\n * @private\n * @param {string} culture ?\n * @param {NumberFormatOptions} options ?\n * @param {Object} cldr ?\n * @param {boolean} isExcel ?\n * @returns {string} ?\n */\n function getActualNumberFormat(culture, options, cldr, isExcel) {\n var dependable = getDependables(cldr, culture, '', true);\n var parseOptions = { custom: true };\n var numrericObject = dependable.numericObject;\n var minFrac;\n var curObj = {};\n var curMatch = (options.format || '').match(IntlBase.currencyFormatRegex);\n var type = IntlBase.formatRegex.test(options.format) ? getProperNumericSkeleton(options.format || 'N') : {};\n var dOptions = {};\n if (curMatch) {\n dOptions.numberMapper = isBlazor() ?\n extend({}, dependable.numericObject) :\n parser.getNumberMapper(dependable.parserObject, parser.getNumberingSystem(cldr), true);\n var curCode = isBlazor() ? getValue('currencySymbol', dependable.numericObject) :\n getCurrencySymbol(dependable.numericObject, options.currency || defaultCurrencyCode, options.altSymbol);\n var symbolPattern = getSymbolPattern('currency', dOptions.numberMapper.numberSystem, dependable.numericObject, (/a/i).test(options.format));\n symbolPattern = symbolPattern.replace(/\\u00A4/g, curCode);\n var split = symbolPattern.split(';');\n curObj.hasNegativePattern = isBlazor() ? true : (split.length > 1);\n curObj.nData = isBlazor() ? getValue(type.type + 'nData', numrericObject) :\n getFormatData(split[1] || '-' + split[0], true, curCode);\n curObj.pData = isBlazor() ? getValue(type.type + 'pData', numrericObject) :\n getFormatData(split[0], false, curCode);\n if (!curMatch[2] && !options.minimumFractionDigits && !options.maximumFractionDigits) {\n minFrac = getFormatData(symbolPattern.split(';')[0], true, '', true).minimumFraction;\n }\n }\n var actualPattern;\n if ((IntlBase.formatRegex.test(options.format)) || !(options.format)) {\n extend(parseOptions, getProperNumericSkeleton(options.format || 'N'));\n parseOptions.custom = false;\n actualPattern = '###0';\n if (parseOptions.fractionDigits || options.minimumFractionDigits || options.maximumFractionDigits || minFrac) {\n var defaultMinimum = 0;\n if (parseOptions.fractionDigits) {\n options.minimumFractionDigits = options.maximumFractionDigits = parseOptions.fractionDigits;\n }\n actualPattern = fractionDigitsPattern(actualPattern, minFrac || parseOptions.fractionDigits ||\n options.minimumFractionDigits || defaultMinimum, options.maximumFractionDigits || defaultMinimum);\n }\n if (options.minimumIntegerDigits) {\n actualPattern = minimumIntegerPattern(actualPattern, options.minimumIntegerDigits);\n }\n if (options.useGrouping) {\n actualPattern = groupingPattern(actualPattern);\n }\n if (parseOptions.type === 'currency' || (parseOptions.type && isBlazor())) {\n if (isBlazor() && parseOptions.type !== 'currency') {\n curObj.pData = getValue(parseOptions.type + 'pData', numrericObject);\n curObj.nData = getValue(parseOptions.type + 'nData', numrericObject);\n }\n var cPattern = actualPattern;\n actualPattern = curObj.pData.nlead + cPattern + curObj.pData.nend;\n if (curObj.hasNegativePattern || isBlazor()) {\n actualPattern += ';' + curObj.nData.nlead + cPattern + curObj.nData.nend;\n }\n }\n if (parseOptions.type === 'percent' && !isBlazor()) {\n actualPattern += ' %';\n }\n }\n else {\n actualPattern = options.format.replace(/'/g, '\"');\n }\n if (Object.keys(dOptions).length > 0) {\n actualPattern = !isExcel ? processSymbol(actualPattern, dOptions) : actualPattern;\n }\n return actualPattern;\n }\n IntlBase.getActualNumberFormat = getActualNumberFormat;\n /**\n *\n * @param {string} pattern ?\n * @param {number} minDigits ?\n * @param {number} maxDigits ?\n * @returns {string} ?\n */\n function fractionDigitsPattern(pattern, minDigits, maxDigits) {\n pattern += '.';\n for (var a = 0; a < minDigits; a++) {\n pattern += '0';\n }\n if (minDigits < maxDigits) {\n var diff = maxDigits - minDigits;\n for (var b = 0; b < diff; b++) {\n pattern += '#';\n }\n }\n return pattern;\n }\n IntlBase.fractionDigitsPattern = fractionDigitsPattern;\n /**\n *\n * @param {string} pattern ?\n * @param {number} digits ?\n * @returns {string} ?\n */\n function minimumIntegerPattern(pattern, digits) {\n var temp = pattern.split('.');\n var integer = '';\n for (var x = 0; x < digits; x++) {\n integer += '0';\n }\n return temp[1] ? (integer + '.' + temp[1]) : integer;\n }\n IntlBase.minimumIntegerPattern = minimumIntegerPattern;\n /**\n *\n * @param {string} pattern ?\n * @returns {string} ?\n */\n function groupingPattern(pattern) {\n var temp = pattern.split('.');\n var integer = temp[0];\n var no = 3 - integer.length % 3;\n var hash = (no && no === 1) ? '#' : (no === 2 ? '##' : '');\n integer = hash + integer;\n pattern = '';\n for (var x = integer.length - 1; x > 0; x = x - 3) {\n pattern = ',' + integer[x - 2] + integer[x - 1] + integer[parseInt(x.toString(), 10)] + pattern;\n }\n pattern = pattern.slice(1);\n return temp[1] ? (pattern + '.' + temp[1]) : pattern;\n }\n IntlBase.groupingPattern = groupingPattern;\n /**\n *\n * @param {string} culture ?\n * @param {Object} cldr ?\n * @returns {number} ?\n */\n function getWeekData(culture, cldr) {\n var firstDay = defaultFirstDay;\n var mapper = getValue('supplemental.weekData.firstDay', cldr);\n var iCulture = culture;\n if ((/en-/).test(iCulture)) {\n iCulture = iCulture.slice(3);\n }\n iCulture = iCulture.slice(0, 2).toUpperCase() + iCulture.substr(2);\n if (mapper) {\n firstDay = mapper[\"\" + iCulture] || mapper[iCulture.slice(0, 2)] || defaultFirstDay;\n }\n return firstDayMapper[\"\" + firstDay];\n }\n IntlBase.getWeekData = getWeekData;\n /**\n * @private\n * @param {any} pData ?\n * @param {string} aCurrency ?\n * @param {string} rCurrency ?\n * @returns {void} ?\n */\n function replaceBlazorCurrency(pData, aCurrency, rCurrency) {\n var iCurrency = getBlazorCurrencySymbol(rCurrency);\n if (aCurrency !== iCurrency) {\n for (var _i = 0, pData_1 = pData; _i < pData_1.length; _i++) {\n var data = pData_1[_i];\n data.nend = data.nend.replace(aCurrency, iCurrency);\n data.nlead = data.nlead.replace(aCurrency, iCurrency);\n }\n }\n }\n IntlBase.replaceBlazorCurrency = replaceBlazorCurrency;\n /**\n * @private\n * @param {Date} date ?\n * @returns {number} ?\n */\n function getWeekOfYear(date) {\n var newYear = new Date(date.getFullYear(), 0, 1);\n var day = newYear.getDay();\n var weeknum;\n day = (day >= 0 ? day : day + 7);\n var daynum = Math.floor((date.getTime() - newYear.getTime() -\n (date.getTimezoneOffset() - newYear.getTimezoneOffset()) * 60000) / 86400000) + 1;\n if (day < 4) {\n weeknum = Math.floor((daynum + day - 1) / 7) + 1;\n if (weeknum > 52) {\n var nYear = new Date(date.getFullYear() + 1, 0, 1);\n var nday = nYear.getDay();\n nday = nday >= 0 ? nday : nday + 7;\n weeknum = nday < 4 ? 1 : 53;\n }\n }\n else {\n weeknum = Math.floor((daynum + day - 1) / 7);\n }\n return weeknum;\n }\n IntlBase.getWeekOfYear = getWeekOfYear;\n})(IntlBase || (IntlBase = {}));\n","import { isNullOrUndefined, merge } from './util';\nvar headerRegex = /^(.*?):[ \\t]*([^\\r\\n]*)$/gm;\nvar defaultType = 'GET';\n/**\n * Ajax class provides ability to make asynchronous HTTP request to the server\n * ```typescript\n * var ajax = new Ajax(\"index.html\", \"GET\", true);\n * ajax.send().then(\n * function (value) {\n * console.log(value);\n * },\n * function (reason) {\n * console.log(reason);\n * });\n * ```\n */\nvar Ajax = /** @class */ (function () {\n /**\n * Constructor for Ajax class\n *\n * @param {string|Object} options ?\n * @param {string} type ?\n * @param {boolean} async ?\n * @returns defaultType any\n */\n function Ajax(options, type, async, contentType) {\n /**\n * A boolean value indicating whether the request should be sent asynchronous or not.\n *\n * @default true\n */\n this.mode = true;\n /**\n * A boolean value indicating whether to ignore the promise reject.\n *\n * @private\n * @default true\n */\n this.emitError = true;\n this.options = {};\n if (typeof options === 'string') {\n this.url = options;\n this.type = type ? type.toUpperCase() : defaultType;\n this.mode = !isNullOrUndefined(async) ? async : true;\n }\n else if (typeof options === 'object') {\n this.options = options;\n merge(this, this.options);\n }\n this.type = this.type ? this.type.toUpperCase() : defaultType;\n this.contentType = (this.contentType !== undefined) ? this.contentType : contentType;\n }\n /**\n *\n * Send the request to server.\n *\n * @param {any} data - To send the user data\n * @return {Promise} ?\n */\n Ajax.prototype.send = function (data) {\n var _this = this;\n this.data = isNullOrUndefined(data) ? this.data : data;\n var eventArgs = {\n cancel: false,\n httpRequest: null\n };\n var promise = new Promise(function (resolve, reject) {\n _this.httpRequest = new XMLHttpRequest();\n _this.httpRequest.onreadystatechange = function () { _this.stateChange(resolve, reject); };\n if (!isNullOrUndefined(_this.onLoad)) {\n _this.httpRequest.onload = _this.onLoad;\n }\n if (!isNullOrUndefined(_this.onProgress)) {\n _this.httpRequest.onprogress = _this.onProgress;\n }\n /* istanbul ignore next */\n if (!isNullOrUndefined(_this.onAbort)) {\n _this.httpRequest.onabort = _this.onAbort;\n }\n /* istanbul ignore next */\n if (!isNullOrUndefined(_this.onError)) {\n _this.httpRequest.onerror = _this.onError;\n }\n //** Upload Events **/\n /* istanbul ignore next */\n if (!isNullOrUndefined(_this.onUploadProgress)) {\n _this.httpRequest.upload.onprogress = _this.onUploadProgress;\n }\n _this.httpRequest.open(_this.type, _this.url, _this.mode);\n // Set default headers\n if (!isNullOrUndefined(_this.data) && _this.contentType !== null) {\n _this.httpRequest.setRequestHeader('Content-Type', _this.contentType || 'application/json; charset=utf-8');\n }\n if (_this.beforeSend) {\n eventArgs.httpRequest = _this.httpRequest;\n _this.beforeSend(eventArgs);\n }\n if (!eventArgs.cancel) {\n _this.httpRequest.send(!isNullOrUndefined(_this.data) ? _this.data : null);\n }\n });\n return promise;\n };\n Ajax.prototype.successHandler = function (data) {\n if (this.onSuccess) {\n this.onSuccess(data, this);\n }\n return data;\n };\n Ajax.prototype.failureHandler = function (reason) {\n if (this.onFailure) {\n this.onFailure(this.httpRequest);\n }\n return reason;\n };\n Ajax.prototype.stateChange = function (resolve, reject) {\n var data = this.httpRequest.responseText;\n if (this.dataType && this.dataType.toLowerCase() === 'json') {\n if (data === '') {\n data = undefined;\n }\n else {\n try {\n data = JSON.parse(data);\n }\n catch (error) {\n // no exception handle\n }\n }\n }\n if (this.httpRequest.readyState === 4) {\n //success range should be 200 to 299\n if ((this.httpRequest.status >= 200 && this.httpRequest.status <= 299) || this.httpRequest.status === 304) {\n resolve(this.successHandler(data));\n }\n else {\n if (this.emitError) {\n reject(new Error(this.failureHandler(this.httpRequest.statusText)));\n }\n else {\n resolve();\n }\n }\n }\n };\n /**\n * To get the response header from XMLHttpRequest\n *\n * @param {string} key Key to search in the response header\n * @returns {string} ?\n */\n Ajax.prototype.getResponseHeader = function (key) {\n var responseHeaders;\n var header;\n // eslint-disable-next-line\n responseHeaders = {};\n var headers = headerRegex.exec(this.httpRequest.getAllResponseHeaders());\n while (headers) {\n responseHeaders[headers[1].toLowerCase()] = headers[2];\n headers = headerRegex.exec(this.httpRequest.getAllResponseHeaders());\n }\n // eslint-disable-next-line\n header = responseHeaders[key.toLowerCase()];\n return isNullOrUndefined(header) ? null : header;\n };\n return Ajax;\n}());\nexport { Ajax };\n","import { isUndefined } from './util';\nvar REGX_MOBILE = /android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini|mobile/i;\nvar REGX_IE = /msie|trident/i;\nvar REGX_IE11 = /Trident\\/7\\./;\nvar REGX_IOS = /(ipad|iphone|ipod touch)/i;\nvar REGX_IOS7 = /(ipad|iphone|ipod touch);.*os 7_\\d|(ipad|iphone|ipod touch);.*os 8_\\d/i;\nvar REGX_ANDROID = /android/i;\nvar REGX_WINDOWS = /trident|windows phone|edge/i;\nvar REGX_VERSION = /(version)[ /]([\\w.]+)/i;\nvar REGX_BROWSER = {\n OPERA: /(opera|opr)(?:.*version|)[ /]([\\w.]+)/i,\n EDGE: /(edge)(?:.*version|)[ /]([\\w.]+)/i,\n CHROME: /(chrome|crios)[ /]([\\w.]+)/i,\n PANTHOMEJS: /(phantomjs)[ /]([\\w.]+)/i,\n SAFARI: /(safari)[ /]([\\w.]+)/i,\n WEBKIT: /(webkit)[ /]([\\w.]+)/i,\n MSIE: /(msie|trident) ([\\w.]+)/i,\n MOZILLA: /(mozilla)(?:.*? rv:([\\w.]+)|)/i\n};\n/* istanbul ignore else */\nif (typeof window !== 'undefined') {\n window.browserDetails = window.browserDetails || {};\n}\n/**\n * Get configuration details for Browser\n *\n * @private\n */\nvar Browser = /** @class */ (function () {\n function Browser() {\n }\n Browser.extractBrowserDetail = function () {\n var browserInfo = { culture: {} };\n var keys = Object.keys(REGX_BROWSER);\n var clientInfo = [];\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var key = keys_1[_i];\n clientInfo = Browser.userAgent.match(REGX_BROWSER[\"\" + key]);\n if (clientInfo) {\n browserInfo.name = (clientInfo[1].toLowerCase() === 'opr' ? 'opera' : clientInfo[1].toLowerCase());\n browserInfo.name = (clientInfo[1].toLowerCase() === 'crios' ? 'chrome' : browserInfo.name);\n browserInfo.version = clientInfo[2];\n browserInfo.culture.name = browserInfo.culture.language = navigator.language;\n // eslint-disable-next-line\n if (!!Browser.userAgent.match(REGX_IE11)) {\n browserInfo.name = 'msie';\n break;\n }\n var version = Browser.userAgent.match(REGX_VERSION);\n if (browserInfo.name === 'safari' && version) {\n browserInfo.version = version[2];\n }\n break;\n }\n }\n return browserInfo;\n };\n /**\n * To get events from the browser\n *\n * @param {string} event - type of event triggered.\n * @returns {boolean}\n */\n Browser.getEvent = function (event) {\n // eslint-disable-next-line\n var events = {\n start: {\n isPointer: 'pointerdown', isTouch: 'touchstart', isDevice: 'mousedown'\n },\n move: {\n isPointer: 'pointermove', isTouch: 'touchmove', isDevice: 'mousemove'\n },\n end: {\n isPointer: 'pointerup', isTouch: 'touchend', isDevice: 'mouseup'\n },\n cancel: {\n isPointer: 'pointercancel', isTouch: 'touchcancel', isDevice: 'mouseleave'\n }\n };\n return (Browser.isPointer ? events[\"\" + event].isPointer :\n (Browser.isTouch ? events[\"\" + event].isTouch + (!Browser.isDevice ? ' ' + events[\"\" + event].isDevice : '')\n : events[\"\" + event].isDevice));\n };\n /**\n * To get the Touch start event from browser\n *\n * @returns {string}\n */\n Browser.getTouchStartEvent = function () {\n return Browser.getEvent('start');\n };\n /**\n * To get the Touch end event from browser\n *\n * @returns {string}\n */\n Browser.getTouchEndEvent = function () {\n return Browser.getEvent('end');\n };\n /**\n * To get the Touch move event from browser\n *\n * @returns {string}\n */\n Browser.getTouchMoveEvent = function () {\n return Browser.getEvent('move');\n };\n /**\n * To cancel the touch event from browser\n *\n * @returns {string}\n */\n Browser.getTouchCancelEvent = function () {\n return Browser.getEvent('cancel');\n };\n /**\n * To get the value based on provided key and regX\n *\n * @param {string} key ?\n * @param {RegExp} regX ?\n * @returns {Object} ?\n */\n Browser.getValue = function (key, regX) {\n var browserDetails = typeof window !== 'undefined' ? window.browserDetails : {};\n if (typeof navigator !== 'undefined' && navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1 && Browser.isTouch === true) {\n browserDetails['isIos'] = true;\n browserDetails['isDevice'] = true;\n browserDetails['isTouch'] = true;\n browserDetails['isPointer'] = true;\n }\n if ('undefined' === typeof browserDetails[\"\" + key]) {\n return browserDetails[\"\" + key] = regX.test(Browser.userAgent);\n }\n return browserDetails[\"\" + key];\n };\n Object.defineProperty(Browser, \"userAgent\", {\n get: function () {\n return Browser.uA;\n },\n //Properties\n /**\n * Property specifies the userAgent of the browser. Default userAgent value is based on the browser.\n * Also we can set our own userAgent.\n *\n * @param {string} uA ?\n */\n set: function (uA) {\n Browser.uA = uA;\n window.browserDetails = {};\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"info\", {\n //Read Only Properties\n /**\n * Property is to get the browser information like Name, Version and Language\n *\n * @returns {BrowserInfo} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.info)) {\n return window.browserDetails.info = Browser.extractBrowserDetail();\n }\n return window.browserDetails.info;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isIE\", {\n /**\n * Property is to get whether the userAgent is based IE.\n *\n * @returns {boolean} ?\n */\n get: function () {\n return Browser.getValue('isIE', REGX_IE);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isTouch\", {\n /**\n * Property is to get whether the browser has touch support.\n *\n * @returns {boolean} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.isTouch)) {\n return (window.browserDetails.isTouch =\n ('ontouchstart' in window.navigator) ||\n (window &&\n window.navigator &&\n (window.navigator.maxTouchPoints > 0)) || ('ontouchstart' in window));\n }\n return window.browserDetails.isTouch;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isPointer\", {\n /**\n * Property is to get whether the browser has Pointer support.\n *\n * @returns {boolean} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.isPointer)) {\n return window.browserDetails.isPointer = ('pointerEnabled' in window.navigator);\n }\n return window.browserDetails.isPointer;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isMSPointer\", {\n /**\n * Property is to get whether the browser has MSPointer support.\n *\n * @returns {boolean} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.isMSPointer)) {\n return window.browserDetails.isMSPointer = ('msPointerEnabled' in window.navigator);\n }\n return window.browserDetails.isMSPointer;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isDevice\", {\n /**\n * Property is to get whether the userAgent is device based.\n *\n * @returns {boolean} ?\n */\n get: function () {\n return Browser.getValue('isDevice', REGX_MOBILE);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isIos\", {\n /**\n * Property is to get whether the userAgent is IOS.\n *\n * @returns {boolean} ?\n */\n get: function () {\n return Browser.getValue('isIos', REGX_IOS);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isIos7\", {\n /**\n * Property is to get whether the userAgent is Ios7.\n *\n * @returns {boolean} ?\n */\n get: function () {\n return Browser.getValue('isIos7', REGX_IOS7);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isAndroid\", {\n /**\n * Property is to get whether the userAgent is Android.\n *\n * @returns {boolean} ?\n */\n get: function () {\n return Browser.getValue('isAndroid', REGX_ANDROID);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isWebView\", {\n /**\n * Property is to identify whether application ran in web view.\n *\n * @returns {boolean} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.isWebView)) {\n window.browserDetails.isWebView = !(isUndefined(window.cordova) && isUndefined(window.PhoneGap)\n && isUndefined(window.phonegap) && window.forge !== 'object');\n return window.browserDetails.isWebView;\n }\n return window.browserDetails.isWebView;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isWindows\", {\n /**\n * Property is to get whether the userAgent is Windows.\n *\n * @returns {boolean} ?\n */\n get: function () {\n return Browser.getValue('isWindows', REGX_WINDOWS);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"touchStartEvent\", {\n /**\n * Property is to get the touch start event. It returns event name based on browser.\n *\n * @returns {string} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.touchStartEvent)) {\n return window.browserDetails.touchStartEvent = Browser.getTouchStartEvent();\n }\n return window.browserDetails.touchStartEvent;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"touchMoveEvent\", {\n /**\n * Property is to get the touch move event. It returns event name based on browser.\n *\n * @returns {string} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.touchMoveEvent)) {\n return window.browserDetails.touchMoveEvent = Browser.getTouchMoveEvent();\n }\n return window.browserDetails.touchMoveEvent;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"touchEndEvent\", {\n /**\n * Property is to get the touch end event. It returns event name based on browser.\n *\n * @returns {string} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.touchEndEvent)) {\n return window.browserDetails.touchEndEvent = Browser.getTouchEndEvent();\n }\n return window.browserDetails.touchEndEvent;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"touchCancelEvent\", {\n /**\n * Property is to cancel the touch end event.\n *\n * @returns {string} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.touchCancelEvent)) {\n return window.browserDetails.touchCancelEvent = Browser.getTouchCancelEvent();\n }\n return window.browserDetails.touchCancelEvent;\n },\n enumerable: true,\n configurable: true\n });\n /* istanbul ignore next */\n Browser.uA = typeof navigator !== 'undefined' ? navigator.userAgent : '';\n return Browser;\n}());\nexport { Browser };\n","import { debounce, extend } from './util';\nimport { Browser } from './browser';\n/**\n * EventHandler class provides option to add, remove, clear and trigger events to a HTML DOM element\n * ```html\n *
\n * \n * ```\n */\nvar EventHandler = /** @class */ (function () {\n function EventHandler() {\n }\n // to get the event data based on element\n EventHandler.addOrGetEventData = function (element) {\n if ('__eventList' in element) {\n return element.__eventList.events;\n }\n else {\n element.__eventList = {};\n return element.__eventList.events = [];\n }\n };\n /**\n * Add an event to the specified DOM element.\n *\n * @param {any} element - Target HTML DOM element\n * @param {string} eventName - A string that specifies the name of the event\n * @param {Function} listener - Specifies the function to run when the event occurs\n * @param {Object} bindTo - A object that binds 'this' variable in the event handler\n * @param {number} intDebounce - Specifies at what interval given event listener should be triggered.\n * @returns {Function} ?\n */\n EventHandler.add = function (element, eventName, listener, bindTo, intDebounce) {\n var eventData = EventHandler.addOrGetEventData(element);\n var debounceListener;\n if (intDebounce) {\n debounceListener = debounce(listener, intDebounce);\n }\n else {\n debounceListener = listener;\n }\n if (bindTo) {\n debounceListener = debounceListener.bind(bindTo);\n }\n var event = eventName.split(' ');\n for (var i = 0; i < event.length; i++) {\n eventData.push({\n name: event[parseInt(i.toString(), 10)],\n listener: listener,\n debounce: debounceListener\n });\n if (Browser.isIE) {\n element.addEventListener(event[parseInt(i.toString(), 10)], debounceListener);\n }\n else {\n element.addEventListener(event[parseInt(i.toString(), 10)], debounceListener, { passive: false });\n }\n }\n return debounceListener;\n };\n /**\n * Remove an event listener that has been attached before.\n *\n * @param {any} element - Specifies the target html element to remove the event\n * @param {string} eventName - A string that specifies the name of the event to remove\n * @param {Function} listener - Specifies the function to remove\n * @returns {void} ?\n */\n EventHandler.remove = function (element, eventName, listener) {\n var eventData = EventHandler.addOrGetEventData(element);\n var event = eventName.split(' ');\n var _loop_1 = function (j) {\n var index = -1;\n var debounceListener;\n if (eventData && eventData.length !== 0) {\n eventData.some(function (x, i) {\n return x.name === event[parseInt(j.toString(), 10)] && x.listener === listener ?\n (index = i, debounceListener = x.debounce, true) : false;\n });\n }\n if (index !== -1) {\n eventData.splice(index, 1);\n }\n if (debounceListener) {\n element.removeEventListener(event[parseInt(j.toString(), 10)], debounceListener);\n }\n };\n for (var j = 0; j < event.length; j++) {\n _loop_1(j);\n }\n };\n /**\n * Clear all the event listeners that has been previously attached to the element.\n *\n * @param {any} element - Specifies the target html element to clear the events\n * @returns {void} ?\n */\n EventHandler.clearEvents = function (element) {\n var eventData;\n var copyData;\n // eslint-disable-next-line\n eventData = EventHandler.addOrGetEventData(element);\n // eslint-disable-next-line\n copyData = extend([], copyData, eventData);\n for (var i = 0; i < copyData.length; i++) {\n element.removeEventListener(copyData[parseInt(i.toString(), 10)].name, copyData[parseInt(i.toString(), 10)].debounce);\n eventData.shift();\n }\n };\n /**\n * Trigger particular event of the element.\n *\n * @param {any} element - Specifies the target html element to trigger the events\n * @param {string} eventName - Specifies the event to trigger for the specified element.\n * Can be a custom event, or any of the standard events.\n * @param {any} eventProp - Additional parameters to pass on to the event properties\n * @returns {void} ?\n */\n EventHandler.trigger = function (element, eventName, eventProp) {\n var eventData = EventHandler.addOrGetEventData(element);\n for (var _i = 0, eventData_1 = eventData; _i < eventData_1.length; _i++) {\n var event_1 = eventData_1[_i];\n if (event_1.name === eventName) {\n event_1.debounce.call(this, eventProp);\n }\n }\n };\n return EventHandler;\n}());\nexport { EventHandler };\n","/**\n * Functions related to dom operations.\n */\nimport { EventHandler } from './event-handler';\nimport { isNullOrUndefined, getValue, setValue, isObject, extend } from './util';\nvar SVG_REG = /^svg|^path|^g/;\n/**\n * Function to create Html element.\n *\n * @param {string} tagName - Name of the tag, id and class names.\n * @param {ElementProperties} properties - Object to set properties in the element.\n * @param {ElementProperties} properties.id - To set the id to the created element.\n * @param {ElementProperties} properties.className - To add classes to the element.\n * @param {ElementProperties} properties.innerHTML - To set the innerHTML to element.\n * @param {ElementProperties} properties.styles - To set the some custom styles to element.\n * @param {ElementProperties} properties.attrs - To set the attributes to element.\n * @returns {any} ?\n * @private\n */\nexport function createElement(tagName, properties) {\n var element = (SVG_REG.test(tagName) ? document.createElementNS('http://www.w3.org/2000/svg', tagName) : document.createElement(tagName));\n if (typeof (properties) === 'undefined') {\n return element;\n }\n element.innerHTML = (properties.innerHTML ? properties.innerHTML : '');\n if (properties.className !== undefined) {\n element.className = properties.className;\n }\n if (properties.id !== undefined) {\n element.id = properties.id;\n }\n if (properties.styles !== undefined) {\n element.setAttribute('style', properties.styles);\n }\n if (properties.attrs !== undefined) {\n attributes(element, properties.attrs);\n }\n return element;\n}\n/**\n * The function used to add the classes to array of elements\n *\n * @param {Element[]|NodeList} elements - An array of elements that need to add a list of classes\n * @param {string|string[]} classes - String or array of string that need to add an individual element as a class\n * @returns {any} .\n * @private\n */\nexport function addClass(elements, classes) {\n var classList = getClassList(classes);\n for (var _i = 0, _a = elements; _i < _a.length; _i++) {\n var ele = _a[_i];\n for (var _b = 0, classList_1 = classList; _b < classList_1.length; _b++) {\n var className = classList_1[_b];\n if (isObject(ele)) {\n var curClass = getValue('attributes.className', ele);\n if (isNullOrUndefined(curClass)) {\n setValue('attributes.className', className, ele);\n }\n else if (!new RegExp('\\\\b' + className + '\\\\b', 'i').test(curClass)) {\n setValue('attributes.className', curClass + ' ' + className, ele);\n }\n }\n else {\n if (!ele.classList.contains(className)) {\n ele.classList.add(className);\n }\n }\n }\n }\n return elements;\n}\n/**\n * The function used to add the classes to array of elements\n *\n * @param {Element[]|NodeList} elements - An array of elements that need to remove a list of classes\n * @param {string|string[]} classes - String or array of string that need to add an individual element as a class\n * @returns {any} .\n * @private\n */\nexport function removeClass(elements, classes) {\n var classList = getClassList(classes);\n for (var _i = 0, _a = elements; _i < _a.length; _i++) {\n var ele = _a[_i];\n var flag = isObject(ele);\n var canRemove = flag ? getValue('attributes.className', ele) : ele.className !== '';\n if (canRemove) {\n for (var _b = 0, classList_2 = classList; _b < classList_2.length; _b++) {\n var className = classList_2[_b];\n if (flag) {\n var classes_1 = getValue('attributes.className', ele);\n var classArr = classes_1.split(' ');\n var index = classArr.indexOf(className);\n if (index !== -1) {\n classArr.splice(index, 1);\n }\n setValue('attributes.className', classArr.join(' '), ele);\n }\n else {\n ele.classList.remove(className);\n }\n }\n }\n }\n return elements;\n}\n/**\n * The function used to get classlist.\n *\n * @param {string | string[]} classes - An element the need to check visibility\n * @returns {string[]} ?\n * @private\n */\nfunction getClassList(classes) {\n var classList = [];\n if (typeof classes === 'string') {\n classList.push(classes);\n }\n else {\n classList = classes;\n }\n return classList;\n}\n/**\n * The function used to check element is visible or not.\n *\n * @param {Element|Node} element - An element the need to check visibility\n * @returns {boolean} ?\n * @private\n */\nexport function isVisible(element) {\n var ele = element;\n return (ele.style.visibility === '' && ele.offsetWidth > 0);\n}\n/**\n * The function used to insert an array of elements into a first of the element.\n *\n * @param {Element[]|NodeList} fromElements - An array of elements that need to prepend.\n * @param {Element} toElement - An element that is going to prepend.\n * @param {boolean} isEval - ?\n * @returns {Element[] | NodeList} ?\n * @private\n */\nexport function prepend(fromElements, toElement, isEval) {\n var docFrag = document.createDocumentFragment();\n for (var _i = 0, _a = fromElements; _i < _a.length; _i++) {\n var ele = _a[_i];\n docFrag.appendChild(ele);\n }\n toElement.insertBefore(docFrag, toElement.firstElementChild);\n if (isEval) {\n executeScript(toElement);\n }\n return fromElements;\n}\n/**\n * The function used to insert an array of elements into last of the element.\n *\n * @param {Element[]|NodeList} fromElements - An array of elements that need to append.\n * @param {Element} toElement - An element that is going to prepend.\n * @param {boolean} isEval - ?\n * @returns {Element[] | NodeList} ?\n * @private\n */\nexport function append(fromElements, toElement, isEval) {\n var docFrag = document.createDocumentFragment();\n for (var _i = 0, _a = fromElements; _i < _a.length; _i++) {\n var ele = _a[_i];\n docFrag.appendChild(ele);\n }\n toElement.appendChild(docFrag);\n if (isEval) {\n executeScript(toElement);\n }\n return fromElements;\n}\n/**\n * The function is used to evaluate script from Ajax request\n *\n * @param {Element} ele - An element is going to evaluate the script\n * @returns {void} ?\n */\nfunction executeScript(ele) {\n var eleArray = ele.querySelectorAll('script');\n eleArray.forEach(function (element) {\n var script = document.createElement('script');\n script.text = element.innerHTML;\n document.head.appendChild(script);\n detach(script);\n });\n}\n/**\n * The function used to remove the element from parentnode\n *\n * @param {Element|Node|HTMLElement} element - An element that is going to detach from the Dom\n * @returns {any} ?\n * @private\n */\n// eslint-disable-next-line\nexport function detach(element) {\n var parentNode = element.parentNode;\n if (parentNode) {\n return parentNode.removeChild(element);\n }\n}\n/**\n * The function used to remove the element from Dom also clear the bounded events\n *\n * @param {Element|Node|HTMLElement} element - An element remove from the Dom\n * @returns {void} ?\n * @private\n */\nexport function remove(element) {\n var parentNode = element.parentNode;\n EventHandler.clearEvents(element);\n parentNode.removeChild(element);\n}\n/**\n * The function helps to set multiple attributes to an element\n *\n * @param {Element|Node} element - An element that need to set attributes.\n * @param {string} attributes - JSON Object that is going to as attributes.\n * @returns {Element} ?\n * @private\n */\n// eslint-disable-next-line\nexport function attributes(element, attributes) {\n var keys = Object.keys(attributes);\n var ele = element;\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var key = keys_1[_i];\n if (isObject(ele)) {\n var iKey = key;\n if (key === 'tabindex') {\n iKey = 'tabIndex';\n }\n ele.attributes[\"\" + iKey] = attributes[\"\" + key];\n }\n else {\n ele.setAttribute(key, attributes[\"\" + key]);\n }\n }\n return ele;\n}\n/**\n * The function selects the element from giving context.\n *\n * @param {string} selector - Selector string need fetch element\n * @param {Document|Element} context - It is an optional type, That specifies a Dom context.\n * @param {boolean} needsVDOM ?\n * @returns {any} ?\n * @private\n */\n// eslint-disable-next-line\nexport function select(selector, context, needsVDOM) {\n if (context === void 0) { context = document; }\n selector = querySelectId(selector);\n return context.querySelector(selector);\n}\n/**\n * The function selects an array of element from the given context.\n *\n * @param {string} selector - Selector string need fetch element\n * @param {Document|Element} context - It is an optional type, That specifies a Dom context.\n * @param {boolean} needsVDOM ?\n * @returns {HTMLElement[]} ?\n * @private\n */\n// eslint-disable-next-line\nexport function selectAll(selector, context, needsVDOM) {\n if (context === void 0) { context = document; }\n selector = querySelectId(selector);\n var nodeList = context.querySelectorAll(selector);\n return nodeList;\n}\n/**\n * The function selects an id of element from the given context.\n *\n * @param {string} selector - Selector string need fetch element\n * @returns {string} ?\n * @private\n */\nfunction querySelectId(selector) {\n var charRegex = /(!|\"|\\$|%|&|'|\\(|\\)|\\*|\\/|:|;|<|=|\\?|@|\\]|\\^|`|{|}|\\||\\+|~)/g;\n if (selector.match(/#[0-9]/g) || selector.match(charRegex)) {\n var idList = selector.split(',');\n for (var i = 0; i < idList.length; i++) {\n var list = idList[parseInt(i.toString(), 10)].split(' ');\n for (var j = 0; j < list.length; j++) {\n if (list[parseInt(j.toString(), 10)].indexOf('#') > -1) {\n if (!list[parseInt(j.toString(), 10)].match(/\\[.*\\]/)) {\n var splitId = list[parseInt(j.toString(), 10)].split('#');\n if (splitId[1].match(/^\\d/) || splitId[1].match(charRegex)) {\n var setId = list[parseInt(j.toString(), 10)].split('.');\n setId[0] = setId[0].replace(/#/, '[id=\\'') + '\\']';\n list[parseInt(j.toString(), 10)] = setId.join('.');\n }\n }\n }\n }\n idList[parseInt(i.toString(), 10)] = list.join(' ');\n }\n return idList.join(',');\n }\n return selector;\n}\n/**\n * Returns single closest parent element based on class selector.\n *\n * @param {Element} element - An element that need to find the closest element.\n * @param {string} selector - A classSelector of closest element.\n * @returns {Element} ?\n * @private\n */\nexport function closest(element, selector) {\n var el = element;\n if (typeof el.closest === 'function') {\n return el.closest(selector);\n }\n while (el && el.nodeType === 1) {\n if (matches(el, selector)) {\n return el;\n }\n el = el.parentNode;\n }\n return null;\n}\n/**\n * Returns all sibling elements of the given element.\n *\n * @param {Element|Node} element - An element that need to get siblings.\n * @returns {Element[]} ?\n * @private\n */\nexport function siblings(element) {\n var siblings = [];\n var childNodes = Array.prototype.slice.call(element.parentNode.childNodes);\n for (var _i = 0, childNodes_1 = childNodes; _i < childNodes_1.length; _i++) {\n var curNode = childNodes_1[_i];\n if (curNode.nodeType === Node.ELEMENT_NODE && element !== curNode) {\n siblings.push(curNode);\n }\n }\n return siblings;\n}\n/**\n * set the value if not exist. Otherwise set the existing value\n *\n * @param {HTMLElement} element - An element to which we need to set value.\n * @param {string} property - Property need to get or set.\n * @param {string} value - value need to set.\n * @returns {string} ?\n * @private\n */\nexport function getAttributeOrDefault(element, property, value) {\n var attrVal;\n var isObj = isObject(element);\n if (isObj) {\n attrVal = getValue('attributes.' + property, element);\n }\n else {\n attrVal = element.getAttribute(property);\n }\n if (isNullOrUndefined(attrVal) && value) {\n if (!isObj) {\n element.setAttribute(property, value.toString());\n }\n else {\n element.attributes[\"\" + property] = value;\n }\n attrVal = value;\n }\n return attrVal;\n}\n/**\n * Set the style attributes to Html element.\n *\n * @param {HTMLElement} element - Element which we want to set attributes\n * @param {any} attrs - Set the given attributes to element\n * @returns {void} ?\n * @private\n */\nexport function setStyleAttribute(element, attrs) {\n if (attrs !== undefined) {\n Object.keys(attrs).forEach(function (key) {\n // eslint-disable-next-line\n element.style[key] = attrs[key];\n });\n }\n}\n/**\n * Method for add and remove classes to a dom element.\n *\n * @param {Element} element - Element for add and remove classes\n * @param {string[]} addClasses - List of classes need to be add to the element\n * @param {string[]} removeClasses - List of classes need to be remove from the element\n * @returns {void} ?\n * @private\n */\nexport function classList(element, addClasses, removeClasses) {\n addClass([element], addClasses);\n removeClass([element], removeClasses);\n}\n/**\n * Method to check whether the element matches the given selector.\n *\n * @param {Element} element - Element to compare with the selector.\n * @param {string} selector - String selector which element will satisfy.\n * @returns {void} ?\n * @private\n */\nexport function matches(element, selector) {\n // eslint-disable-next-line\n var matches = element.matches || element.msMatchesSelector || element.webkitMatchesSelector;\n if (matches) {\n return matches.call(element, selector);\n }\n else {\n return [].indexOf.call(document.querySelectorAll(selector), element) !== -1;\n }\n}\n/**\n * Method to get the html text from DOM.\n *\n * @param {HTMLElement} ele - Element to compare with the selector.\n * @param {string} innerHTML - String selector which element will satisfy.\n * @returns {void} ?\n * @private\n */\nexport function includeInnerHTML(ele, innerHTML) {\n ele.innerHTML = innerHTML;\n}\n/**\n * Method to get the containsclass.\n *\n * @param {HTMLElement} ele - Element to compare with the selector.\n * @param {string} className - String selector which element will satisfy.\n * @returns {any} ?\n * @private\n */\n// eslint-disable-next-line\nexport function containsClass(ele, className) {\n if (isObject(ele)) {\n // eslint-disable-next-line\n return new RegExp('\\\\b' + className + '\\\\b', 'i').test(ele.attributes.className);\n }\n else {\n return ele.classList.contains(className);\n }\n}\n/**\n * Method to check whether the element matches the given selector.\n *\n * @param {Object} element - Element to compare with the selector.\n * @param {boolean} deep ?\n * @returns {any} ?\n * @private\n */\n// eslint-disable-next-line\nexport function cloneNode(element, deep) {\n if (isObject(element)) {\n if (deep) {\n return extend({}, {}, element, true);\n }\n }\n else {\n return element.cloneNode(deep);\n }\n}\n","import { isUndefined, isNullOrUndefined, merge, setImmediate, setValue, isBlazor, getValue, extend } from './util';\nimport { addClass, removeClass } from './dom';\nimport { Observer } from './observer';\nvar isColEName = new RegExp(']');\n/* tslint:enable:no-any */\n/**\n * Base library module is common module for Framework modules like touch,keyboard and etc.,\n *\n * @private\n */\nvar Base = /** @class */ (function () {\n /**\n * Base constructor accept options and element\n *\n * @param {Object} options ?\n * @param {string} element ?\n */\n function Base(options, element) {\n this.isRendered = false;\n this.isComplexArraySetter = false;\n this.isServerRendered = false;\n this.allowServerDataBinding = true;\n this.isProtectedOnChange = true;\n this.properties = {};\n this.changedProperties = {};\n this.oldProperties = {};\n this.bulkChanges = {};\n this.refreshing = false;\n this.ignoreCollectionWatch = false;\n // eslint-disable-next-line\n this.finalUpdate = function () { };\n this.childChangedProperties = {};\n this.modelObserver = new Observer(this);\n if (!isUndefined(element)) {\n if ('string' === typeof (element)) {\n this.element = document.querySelector(element);\n }\n else {\n this.element = element;\n }\n if (!isNullOrUndefined(this.element)) {\n this.isProtectedOnChange = false;\n this.addInstance();\n }\n }\n if (!isUndefined(options)) {\n this.setProperties(options, true);\n }\n this.isDestroyed = false;\n }\n /** Property base section */\n /**\n * Function used to set bunch of property at a time.\n *\n * @private\n * @param {Object} prop - JSON object which holds components properties.\n * @param {boolean} muteOnChange ? - Specifies to true when we set properties.\n * @returns {void} ?\n */\n Base.prototype.setProperties = function (prop, muteOnChange) {\n var prevDetection = this.isProtectedOnChange;\n this.isProtectedOnChange = !!muteOnChange;\n merge(this, prop);\n if (muteOnChange !== true) {\n merge(this.changedProperties, prop);\n this.dataBind();\n }\n else if (isBlazor() && this.isRendered) {\n this.serverDataBind(prop);\n }\n this.finalUpdate();\n this.changedProperties = {};\n this.oldProperties = {};\n this.isProtectedOnChange = prevDetection;\n };\n /**\n * Calls for child element data bind\n *\n * @param {Object} obj ?\n * @param {Object} parent ?\n * @returns {void} ?\n */\n // tslint:disable-next-line:no-any\n Base.callChildDataBind = function (obj, parent) {\n var keys = Object.keys(obj);\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var key = keys_1[_i];\n if (parent[\"\" + key] instanceof Array) {\n for (var _a = 0, _b = parent[\"\" + key]; _a < _b.length; _a++) {\n var obj_1 = _b[_a];\n if (obj_1.dataBind !== undefined) {\n obj_1.dataBind();\n }\n }\n }\n else {\n parent[\"\" + key].dataBind();\n }\n }\n };\n Base.prototype.clearChanges = function () {\n this.finalUpdate();\n this.changedProperties = {};\n this.oldProperties = {};\n this.childChangedProperties = {};\n };\n /**\n * Bind property changes immediately to components\n *\n * @returns {void} ?\n */\n Base.prototype.dataBind = function () {\n Base.callChildDataBind(this.childChangedProperties, this);\n if (Object.getOwnPropertyNames(this.changedProperties).length) {\n var prevDetection = this.isProtectedOnChange;\n var newChanges = this.changedProperties;\n var oldChanges = this.oldProperties;\n this.clearChanges();\n this.isProtectedOnChange = true;\n this.onPropertyChanged(newChanges, oldChanges);\n this.isProtectedOnChange = prevDetection;\n }\n };\n /* tslint:disable:no-any */\n Base.prototype.serverDataBind = function (newChanges) {\n if (!isBlazor()) {\n return;\n }\n newChanges = newChanges ? newChanges : {};\n extend(this.bulkChanges, {}, newChanges, true);\n var sfBlazor = 'sfBlazor';\n if (this.allowServerDataBinding && window[\"\" + sfBlazor].updateModel) {\n window[\"\" + sfBlazor].updateModel(this);\n this.bulkChanges = {};\n }\n };\n /* tslint:enable:no-any */\n Base.prototype.saveChanges = function (key, newValue, oldValue) {\n if (isBlazor()) {\n // tslint:disable-next-line:no-any\n var newChanges = {};\n newChanges[\"\" + key] = newValue;\n this.serverDataBind(newChanges);\n }\n if (this.isProtectedOnChange) {\n return;\n }\n this.oldProperties[\"\" + key] = oldValue;\n this.changedProperties[\"\" + key] = newValue;\n this.finalUpdate();\n this.finalUpdate = setImmediate(this.dataBind.bind(this));\n };\n /** Event Base Section */\n /**\n * Adds the handler to the given event listener.\n *\n * @param {string} eventName - A String that specifies the name of the event\n * @param {Function} handler - Specifies the call to run when the event occurs.\n * @returns {void} ?\n */\n Base.prototype.addEventListener = function (eventName, handler) {\n this.modelObserver.on(eventName, handler);\n };\n /**\n * Removes the handler from the given event listener.\n *\n * @param {string} eventName - A String that specifies the name of the event to remove\n * @param {Function} handler - Specifies the function to remove\n * @returns {void} ?\n */\n Base.prototype.removeEventListener = function (eventName, handler) {\n this.modelObserver.off(eventName, handler);\n };\n /**\n * Triggers the handlers in the specified event.\n *\n * @private\n * @param {string} eventName - Specifies the event to trigger for the specified component properties.\n * Can be a custom event, or any of the standard events.\n * @param {Event} eventProp - Additional parameters to pass on to the event properties\n * @param {Function} successHandler - this function will invoke after event successfully triggered\n * @param {Function} errorHandler - this function will invoke after event if it failured to call.\n * @returns {void} ?\n */\n Base.prototype.trigger = function (eventName, eventProp, successHandler, errorHandler) {\n var _this = this;\n if (this.isDestroyed !== true) {\n var prevDetection = this.isProtectedOnChange;\n this.isProtectedOnChange = false;\n var data = this.modelObserver.notify(eventName, eventProp, successHandler, errorHandler);\n if (isColEName.test(eventName)) {\n var handler = getValue(eventName, this);\n if (handler) {\n var blazor = 'Blazor';\n if (window[\"\" + blazor]) {\n var promise = handler.call(this, eventProp);\n if (promise && typeof promise.then === 'function') {\n if (!successHandler) {\n data = promise;\n }\n else {\n promise.then(function (data) {\n if (successHandler) {\n data = typeof data === 'string' && _this.modelObserver.isJson(data) ?\n JSON.parse(data) : data;\n successHandler.call(_this, data);\n }\n }).catch(function (data) {\n if (errorHandler) {\n data = typeof data === 'string' && _this.modelObserver.isJson(data) ? JSON.parse(data) : data;\n errorHandler.call(_this, data);\n }\n });\n }\n }\n else if (successHandler) {\n successHandler.call(this, eventProp);\n }\n }\n else {\n handler.call(this, eventProp);\n if (successHandler) {\n successHandler.call(this, eventProp);\n }\n }\n }\n else if (successHandler) {\n successHandler.call(this, eventProp);\n }\n }\n this.isProtectedOnChange = prevDetection;\n return data;\n }\n };\n /**\n * To maintain instance in base class\n *\n * @returns {void} ?\n */\n Base.prototype.addInstance = function () {\n // Add module class to the root element\n var moduleClass = 'e-' + this.getModuleName().toLowerCase();\n addClass([this.element], ['e-lib', moduleClass]);\n if (!isNullOrUndefined(this.element.ej2_instances)) {\n this.element.ej2_instances.push(this);\n }\n else {\n setValue('ej2_instances', [this], this.element);\n }\n };\n /**\n * To remove the instance from the element\n *\n * @returns {void} ?\n */\n Base.prototype.destroy = function () {\n var _this = this;\n // eslint-disable-next-line\n this.element.ej2_instances =\n this.element.ej2_instances.filter(function (i) { return i !== _this; });\n removeClass([this.element], ['e-' + this.getModuleName()]);\n if (this.element.ej2_instances.length === 0) {\n // Remove module class from the root element\n removeClass([this.element], ['e-lib']);\n }\n this.clearChanges();\n this.modelObserver.destroy();\n this.isDestroyed = true;\n };\n return Base;\n}());\nexport { Base };\n/**\n * Global function to get the component instance from the rendered element.\n *\n * @param {HTMLElement} elem Specifies the HTMLElement or element id string.\n * @param {string} comp Specifies the component module name or Component.\n * @returns {any} ?\n */\n// tslint:disable-next-line:no-any\nexport function getComponent(elem, comp) {\n var instance;\n var i;\n var ele = typeof elem === 'string' ? document.getElementById(elem) : elem;\n for (i = 0; i < ele.ej2_instances.length; i++) {\n instance = ele.ej2_instances[parseInt(i.toString(), 10)];\n if (typeof comp === 'string') {\n var compName = instance.getModuleName();\n if (comp === compName) {\n return instance;\n }\n }\n else {\n // tslint:disable-next-line:no-any\n if (instance instanceof comp) {\n return instance;\n }\n }\n }\n return undefined;\n}\n/**\n * Function to remove the child instances.\n *\n * @param {HTMLElement} element ?\n * @return {void}\n * @private\n */\n// tslint:disable-next-line:no-any\nexport function removeChildInstance(element) {\n // tslint:disable-next-line:no-any\n var childEle = [].slice.call(element.getElementsByClassName('e-control'));\n for (var i = 0; i < childEle.length; i++) {\n var compName = childEle[parseInt(i.toString(), 10)].classList[1].split('e-')[1];\n // tslint:disable-next-line:no-any\n var compInstance = getComponent(childEle[parseInt(i.toString(), 10)], compName);\n if (!isUndefined(compInstance)) {\n compInstance.destroy();\n }\n }\n}\n","import { createInstance, isUndefined, merge, extend, getValue } from './util';\n/**\n * Returns the Class Object\n *\n * @param {ClassObject} instance - instance of ClassObject\n * @param {string} curKey - key of the current instance\n * @param {Object} defaultValue - default Value\n * @param {Object[]} type ?\n * @returns {ClassObject} ?\n */\n// eslint-disable-next-line\nfunction getObject(instance, curKey, defaultValue, type) {\n // eslint-disable-next-line\n if (!instance.properties.hasOwnProperty(curKey) || !(instance.properties[curKey] instanceof type)) {\n instance.properties[\"\" + curKey] = createInstance(type, [instance, curKey, defaultValue]);\n }\n return instance.properties[\"\" + curKey];\n}\n/**\n * Returns object array\n *\n * @param {ClassObject} instance ?\n * @param {string} curKey ?\n * @param {Object[]} defaultValue ?\n * @param {Object} type ?\n * @param {boolean} isSetter ?\n * @param {boolean} isFactory ?\n * @returns {Object[]} ?\n */\n// eslint-disable-next-line\nfunction getObjectArray(instance, curKey, defaultValue, type, isSetter, isFactory) {\n var result = [];\n var len = defaultValue ? defaultValue.length : 0;\n for (var i = 0; i < len; i++) {\n var curType = type;\n if (isFactory) {\n curType = type(defaultValue[parseInt(i.toString(), 10)], instance);\n }\n if (isSetter) {\n var inst = createInstance(curType, [instance, curKey, {}, true]);\n inst.setProperties(defaultValue[parseInt(i.toString(), 10)], true);\n result.push(inst);\n }\n else {\n result.push(createInstance(curType, [instance, curKey, defaultValue[parseInt(i.toString(), 10)], false]));\n }\n }\n return result;\n}\n/**\n * Returns the properties of the object\n *\n * @param {Object} defaultValue ?\n * @param {string} curKey ?\n * @returns {void} ?\n */\nfunction propertyGetter(defaultValue, curKey) {\n return function () {\n // eslint-disable-next-line\n if (!this.properties.hasOwnProperty(curKey)) {\n this.properties[\"\" + curKey] = defaultValue;\n }\n return this.properties[\"\" + curKey];\n };\n}\n/**\n * Set the properties for the object\n *\n * @param {Object} defaultValue ?\n * @param {string} curKey ?\n * @returns {void} ?\n */\nfunction propertySetter(defaultValue, curKey) {\n return function (newValue) {\n if (this.properties[\"\" + curKey] !== newValue) {\n // eslint-disable-next-line\n var oldVal = this.properties.hasOwnProperty(curKey) ? this.properties[curKey] : defaultValue;\n this.saveChanges(curKey, newValue, oldVal);\n this.properties[\"\" + curKey] = newValue;\n }\n };\n}\n/**\n * Returns complex objects\n *\n * @param {Object} defaultValue ?\n * @param {string} curKey ?\n * @param {Object[]} type ?\n * @returns {void} ?\n */\n// eslint-disable-next-line\nfunction complexGetter(defaultValue, curKey, type) {\n return function () {\n return getObject(this, curKey, defaultValue, type);\n };\n}\n/**\n * Sets complex objects\n *\n * @param {Object} defaultValue ?\n * @param {string} curKey ?\n * @param {Object[]} type ?\n * @returns {void} ?\n */\nfunction complexSetter(defaultValue, curKey, type) {\n return function (newValue) {\n getObject(this, curKey, defaultValue, type).setProperties(newValue);\n };\n}\n/**\n *\n * @param {Object} defaultValue ?\n * @param {string} curKey ?\n * @param {FunctionConstructor} type ?\n * @returns {void} ?\n */\n// eslint-disable-next-line\nfunction complexFactoryGetter(defaultValue, curKey, type) {\n return function () {\n var curType = type({});\n // eslint-disable-next-line\n if (this.properties.hasOwnProperty(curKey)) {\n return this.properties[\"\" + curKey];\n }\n else {\n return getObject(this, curKey, defaultValue, curType);\n }\n };\n}\n/**\n *\n * @param {Object} defaultValue ?\n * @param {string} curKey ?\n * @param {Object[]} type ?\n * @returns {void} ?\n */\nfunction complexFactorySetter(defaultValue, curKey, type) {\n return function (newValue) {\n var curType = type(newValue, this);\n getObject(this, curKey, defaultValue, curType).setProperties(newValue);\n };\n}\n/**\n *\n * @param {Object[]} defaultValue ?\n * @param {string} curKey ?\n * @param {Object[]} type ?\n * @returns {void} ?\n */\nfunction complexArrayGetter(defaultValue, curKey, type) {\n return function () {\n var _this = this;\n // eslint-disable-next-line\n if (!this.properties.hasOwnProperty(curKey)) {\n var defCollection = getObjectArray(this, curKey, defaultValue, type, false);\n this.properties[\"\" + curKey] = defCollection;\n }\n var ignore = ((this.controlParent !== undefined && this.controlParent.ignoreCollectionWatch)\n || this.ignoreCollectionWatch);\n // eslint-disable-next-line\n if (!this.properties[curKey].hasOwnProperty('push') && !ignore) {\n ['push', 'pop'].forEach(function (extendFunc) {\n var descriptor = {\n value: complexArrayDefinedCallback(extendFunc, curKey, type, _this.properties[\"\" + curKey]).bind(_this),\n configurable: true\n };\n Object.defineProperty(_this.properties[\"\" + curKey], extendFunc, descriptor);\n });\n }\n // eslint-disable-next-line\n if (!this.properties[curKey].hasOwnProperty('isComplexArray')) {\n Object.defineProperty(this.properties[\"\" + curKey], 'isComplexArray', { value: true });\n }\n return this.properties[\"\" + curKey];\n };\n}\n/**\n *\n * @param {Object[]} defaultValue ?\n * @param {string} curKey ?\n * @param {Object[]} type ?\n * @returns {void} ?\n */\nfunction complexArraySetter(defaultValue, curKey, type) {\n return function (newValue) {\n this.isComplexArraySetter = true;\n var oldValueCollection = getObjectArray(this, curKey, defaultValue, type, false);\n var newValCollection = getObjectArray(this, curKey, newValue, type, true);\n this.isComplexArraySetter = false;\n this.saveChanges(curKey, newValCollection, oldValueCollection);\n this.properties[\"\" + curKey] = newValCollection;\n };\n}\n/**\n *\n * @param {Object[]} defaultValue ?\n * @param {string} curKey ?\n * @param {Object[]} type ?\n * @returns {void} ?\n */\nfunction complexArrayFactorySetter(defaultValue, curKey, type) {\n return function (newValue) {\n // eslint-disable-next-line\n var oldValueCollection = this.properties.hasOwnProperty(curKey) ? this.properties[curKey] : defaultValue;\n var newValCollection = getObjectArray(this, curKey, newValue, type, true, true);\n this.saveChanges(curKey, newValCollection, oldValueCollection);\n this.properties[\"\" + curKey] = newValCollection;\n };\n}\n/**\n *\n * @param {Object[]} defaultValue ?\n * @param {string} curKey ?\n * @param {FunctionConstructor} type ?\n * @returns {void} ?\n */\nfunction complexArrayFactoryGetter(defaultValue, curKey, type) {\n return function () {\n var curType = type({});\n // eslint-disable-next-line\n if (!this.properties.hasOwnProperty(curKey)) {\n var defCollection = getObjectArray(this, curKey, defaultValue, curType, false);\n this.properties[\"\" + curKey] = defCollection;\n }\n return this.properties[\"\" + curKey];\n };\n}\n/**\n *\n * @param {string} dFunc ?\n * @param {string} curKey ?\n * @param {Object} type ?\n * @param {Object} prop ?\n * @returns {Object} ?\n */\nfunction complexArrayDefinedCallback(dFunc, curKey, type, prop) {\n /* tslint:disable no-function-expression */\n return function () {\n var newValue = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n newValue[_i] = arguments[_i];\n }\n var keyString = this.propName ? this.getParentKey() + '.' + curKey + '-' : curKey + '-';\n switch (dFunc) {\n case 'push':\n for (var i = 0; i < newValue.length; i++) {\n Array.prototype[\"\" + dFunc].apply(prop, [newValue[parseInt(i.toString(), 10)]]);\n var model_1 = getArrayModel(keyString + (prop.length - 1), newValue[parseInt(i.toString(), 10)], !this.controlParent, dFunc);\n this.serverDataBind(model_1, newValue[parseInt(i.toString(), 10)], false, dFunc);\n }\n break;\n case 'pop':\n Array.prototype[\"\" + dFunc].apply(prop);\n // eslint-disable-next-line\n var model = getArrayModel(keyString + prop.length, null, !this.controlParent, dFunc);\n this.serverDataBind(model, { ejsAction: 'pop' }, false, dFunc);\n break;\n }\n return prop;\n };\n}\n/**\n *\n * @param {string} keyString ?\n * @param {Object} value ?\n * @param {boolean} isControlParent ?\n * @param {string} arrayFunction ?\n * @returns {Object} ?\n */\nfunction getArrayModel(keyString, value, isControlParent, arrayFunction) {\n var modelObject = keyString;\n if (isControlParent) {\n modelObject = {};\n modelObject[\"\" + keyString] = value;\n if (value && typeof value === 'object') {\n var action = 'ejsAction';\n modelObject[\"\" + keyString][\"\" + action] = arrayFunction;\n }\n }\n return modelObject;\n}\n// eslint-disable-next-line\n/**\n * Method used to create property. General syntax below.\n *\n * @param {Object} defaultValue - Specifies the default value of property.\n * @returns {PropertyDecorator} ?\n * ```\n * @Property('TypeScript')\n * propertyName: Type;\n * ```\n * @private\n */\nexport function Property(defaultValue) {\n return function (target, key) {\n var propertyDescriptor = {\n set: propertySetter(defaultValue, key),\n get: propertyGetter(defaultValue, key),\n enumerable: true,\n configurable: true\n };\n //new property creation\n Object.defineProperty(target, key, propertyDescriptor);\n addPropertyCollection(target, key, 'prop', defaultValue);\n };\n}\n/**\n * Method used to create complex property. General syntax below.\n *\n * @param {any} defaultValue - Specifies the default value of property.\n * @param {Function} type - Specifies the class type of complex object.\n * @returns {PropertyDecorator} ?\n * ```\n * @Complex({},Type)\n * propertyName: Type;\n * ```\n * @private\n */\nexport function Complex(defaultValue, type) {\n return function (target, key) {\n var propertyDescriptor = {\n set: complexSetter(defaultValue, key, type),\n get: complexGetter(defaultValue, key, type),\n enumerable: true,\n configurable: true\n };\n //new property creation\n Object.defineProperty(target, key, propertyDescriptor);\n addPropertyCollection(target, key, 'complexProp', defaultValue, type);\n };\n}\n/**\n * Method used to create complex Factory property. General syntax below.\n *\n * @param {Function} type - Specifies the class factory type of complex object.\n * @returns {PropertyDecorator} ?\n * ```\n * @ComplexFactory(defaultType, factoryFunction)\n * propertyName: Type1 | Type2;\n * ```\n * @private\n */\nexport function ComplexFactory(type) {\n return function (target, key) {\n var propertyDescriptor = {\n set: complexFactorySetter({}, key, type),\n get: complexFactoryGetter({}, key, type),\n enumerable: true,\n configurable: true\n };\n //new property creation\n Object.defineProperty(target, key, propertyDescriptor);\n addPropertyCollection(target, key, 'complexProp', {}, type);\n };\n}\n/**\n * Method used to create complex array property. General syntax below.\n *\n * @param {any} defaultValue - Specifies the default value of property.\n * @param {Function} type - Specifies the class type of complex object.\n * @returns {PropertyDecorator} ?\n * ```\n * @Collection([], Type);\n * propertyName: Type;\n * ```\n * @private\n */\nexport function Collection(defaultValue, type) {\n return function (target, key) {\n var propertyDescriptor = {\n set: complexArraySetter(defaultValue, key, type),\n get: complexArrayGetter(defaultValue, key, type),\n enumerable: true,\n configurable: true\n };\n //new property creation\n Object.defineProperty(target, key, propertyDescriptor);\n addPropertyCollection(target, key, 'colProp', defaultValue, type);\n };\n}\n/**\n * Method used to create complex factory array property. General syntax below.\n *\n * @param {Function} type - Specifies the class type of complex object.\n * @returns {PropertyCollectionInfo} ?\n * ```\n * @Collection([], Type);\n * propertyName: Type;\n * ```\n * @private\n */\nexport function CollectionFactory(type) {\n return function (target, key) {\n var propertyDescriptor = {\n set: complexArrayFactorySetter([], key, type),\n get: complexArrayFactoryGetter([], key, type),\n enumerable: true,\n configurable: true\n };\n //new property creation\n Object.defineProperty(target, key, propertyDescriptor);\n addPropertyCollection(target, key, 'colProp', {}, type);\n };\n}\n/**\n * Method used to create event property. General syntax below.\n *\n * @returns {PropertyDecorator} ?\n * ```\n * @Event(()=>{return true;})\n * ```\n * @private\n */\nexport function Event() {\n return function (target, key) {\n var eventDescriptor = {\n set: function (newValue) {\n var oldValue = this.properties[\"\" + key];\n if (oldValue !== newValue) {\n var finalContext = getParentContext(this, key);\n if (isUndefined(oldValue) === false) {\n finalContext.context.removeEventListener(finalContext.prefix, oldValue);\n }\n finalContext.context.addEventListener(finalContext.prefix, newValue);\n this.properties[\"\" + key] = newValue;\n }\n },\n get: propertyGetter(undefined, key),\n enumerable: true,\n configurable: true\n };\n Object.defineProperty(target, key, eventDescriptor);\n addPropertyCollection(target, key, 'event');\n };\n}\n/**\n * NotifyPropertyChanges is triggers the call back when the property has been changed.\n *\n * @param {Function} classConstructor ?\n * @returns {void} ?\n * ```\n * @NotifyPropertyChanges\n * class DemoClass implements INotifyPropertyChanged {\n *\n * @Property()\n * property1: string;\n *\n * dataBind: () => void;\n *\n * constructor() { }\n *\n * onPropertyChanged(newProp: any, oldProp: any) {\n * // Called when property changed\n * }\n * }\n * ```\n * @private\n */\n// eslint-disable-next-line\nexport function NotifyPropertyChanges(classConstructor) {\n /** Need to code */\n}\n/**\n * Method used to create the builderObject for the target component.\n *\n * @param {BuildInfo} target ?\n * @param {string} key ?\n * @param {string} propertyType ?\n * @param {Object} defaultValue ?\n * @param {Function} type ?\n * @returns {void} ?\n * @private\n */\nfunction addPropertyCollection(target, key, propertyType, defaultValue, type) {\n if (isUndefined(target.propList)) {\n target.propList = {\n props: [],\n complexProps: [],\n colProps: [],\n events: [],\n propNames: [],\n complexPropNames: [],\n colPropNames: [],\n eventNames: []\n };\n }\n // eslint-disable-next-line\n target.propList[propertyType + 's'].push({\n propertyName: key,\n defaultValue: defaultValue,\n type: type\n });\n // eslint-disable-next-line\n target.propList[propertyType + 'Names'].push(key);\n}\n/**\n * Returns an object containing the builder properties\n *\n * @param {Function} component ?\n * @returns {Object} ?\n * @private\n */\nfunction getBuilderProperties(component) {\n if (isUndefined(component.prototype.builderObject)) {\n component.prototype.builderObject = {\n properties: {}, propCollections: [], add: function () {\n this.isPropertyArray = true;\n this.propCollections.push(extend({}, this.properties, {}));\n }\n };\n var rex = /complex/;\n for (var _i = 0, _a = Object.keys(component.prototype.propList); _i < _a.length; _i++) {\n var key = _a[_i];\n var _loop_1 = function (prop) {\n if (rex.test(key)) {\n component.prototype.builderObject[prop.propertyName] = function (value) {\n var childType = {};\n merge(childType, getBuilderProperties(prop.type));\n value(childType);\n var tempValue;\n if (!childType.isPropertyArray) {\n tempValue = extend({}, childType.properties, {});\n }\n else {\n tempValue = childType.propCollections;\n }\n this.properties[prop.propertyName] = tempValue;\n childType.properties = {};\n childType.propCollections = [];\n childType.isPropertyArray = false;\n return this;\n };\n }\n else {\n component.prototype.builderObject[prop.propertyName] = function (value) {\n this.properties[prop.propertyName] = value;\n return this;\n };\n }\n };\n for (var _b = 0, _c = component.prototype.propList[\"\" + key]; _b < _c.length; _b++) {\n var prop = _c[_b];\n _loop_1(prop);\n }\n }\n }\n return component.prototype.builderObject;\n}\n/**\n * Method used to create builder for the components\n *\n * @param {any} component -specifies the target component for which builder to be created.\n * @returns {Object} ?\n * @private\n */\nexport function CreateBuilder(component) {\n var builderFunction = function (element) {\n this.element = element;\n return this;\n };\n var instanceFunction = function (element) {\n // eslint-disable-next-line\n if (!builderFunction.prototype.hasOwnProperty('create')) {\n builderFunction.prototype = getBuilderProperties(component);\n builderFunction.prototype.create = function () {\n var temp = extend({}, {}, this.properties);\n this.properties = {};\n return new component(temp, this.element);\n };\n }\n return new builderFunction(element);\n };\n return instanceFunction;\n}\n/**\n * Returns parent options for the object\n *\n * @param {Object} context ?\n * @param {string} prefix ?\n * @returns {ParentOption} ?\n * @private\n */\nfunction getParentContext(context, prefix) {\n // eslint-disable-next-line\n if (context.hasOwnProperty('parentObj') === false) {\n return { context: context, prefix: prefix };\n }\n else {\n var curText = getValue('propName', context);\n if (curText) {\n prefix = curText + '-' + prefix;\n }\n return getParentContext(getValue('parentObj', context), prefix);\n }\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { createElement, selectAll, closest } from './dom';\nimport { Base } from './base';\nimport { Browser } from './browser';\nimport { EventHandler } from './event-handler';\nimport { Property, NotifyPropertyChanges, Event } from './notify-property-change';\n/**\n * The Animation framework provide options to animate the html DOM elements\n * ```typescript\n * let animeObject = new Animation({\n * name: 'SlideLeftIn',\n * duration: 1000\n * });\n * animeObject.animate('#anime1');\n * animeObject.animate('#anime2', { duration: 500 });\n * ```\n */\nvar Animation = /** @class */ (function (_super) {\n __extends(Animation, _super);\n function Animation(options) {\n var _this = _super.call(this, options, undefined) || this;\n /**\n * @private\n */\n _this.easing = {\n ease: 'cubic-bezier(0.250, 0.100, 0.250, 1.000)',\n linear: 'cubic-bezier(0.250, 0.250, 0.750, 0.750)',\n easeIn: 'cubic-bezier(0.420, 0.000, 1.000, 1.000)',\n easeOut: 'cubic-bezier(0.000, 0.000, 0.580, 1.000)',\n easeInOut: 'cubic-bezier(0.420, 0.000, 0.580, 1.000)',\n elasticInOut: 'cubic-bezier(0.5,-0.58,0.38,1.81)',\n elasticIn: 'cubic-bezier(0.17,0.67,0.59,1.81)',\n elasticOut: 'cubic-bezier(0.7,-0.75,0.99,1.01)'\n };\n return _this;\n }\n Animation_1 = Animation;\n /**\n * Applies animation to the current element.\n *\n * @param {string | HTMLElement} element - Element which needs to be animated.\n * @param {AnimationModel} options - Overriding default animation settings.\n * @returns {void} ?\n */\n Animation.prototype.animate = function (element, options) {\n options = !options ? {} : options;\n var model = this.getModel(options);\n if (typeof element === 'string') {\n var elements = Array.prototype.slice.call(selectAll(element, document));\n for (var _i = 0, elements_1 = elements; _i < elements_1.length; _i++) {\n var element_1 = elements_1[_i];\n model.element = element_1;\n Animation_1.delayAnimation(model);\n }\n }\n else {\n model.element = element;\n Animation_1.delayAnimation(model);\n }\n };\n /**\n * Stop the animation effect on animated element.\n *\n * @param {HTMLElement} element - Element which needs to be stop the animation.\n * @param {AnimationOptions} model - Handling the animation model at stop function.\n * @return {void}\n */\n Animation.stop = function (element, model) {\n element.style.animation = '';\n element.removeAttribute('e-animate');\n var animationId = element.getAttribute('e-animation-id');\n if (animationId) {\n var frameId = parseInt(animationId, 10);\n cancelAnimationFrame(frameId);\n element.removeAttribute('e-animation-id');\n }\n if (model && model.end) {\n model.end.call(this, model);\n }\n };\n /**\n * Set delay to animation element\n *\n * @param {AnimationModel} model ?\n * @returns {void}\n */\n Animation.delayAnimation = function (model) {\n if (animationMode === 'Disable') {\n if (model.begin) {\n model.begin.call(this, model);\n }\n if (model.end) {\n model.end.call(this, model);\n }\n }\n else {\n if (model.delay) {\n setTimeout(function () { Animation_1.applyAnimation(model); }, model.delay);\n }\n else {\n Animation_1.applyAnimation(model);\n }\n }\n };\n /**\n * Triggers animation\n *\n * @param {AnimationModel} model ?\n * @returns {void}\n */\n Animation.applyAnimation = function (model) {\n var _this = this;\n model.timeStamp = 0;\n var step = 0;\n var timerId = 0;\n var prevTimeStamp = 0;\n var duration = model.duration;\n model.element.setAttribute('e-animate', 'true');\n var startAnimation = function (timeStamp) {\n try {\n if (timeStamp) {\n // let step: number = model.timeStamp = timeStamp - startTime;\n /** phantomjs workaround for timestamp fix */\n prevTimeStamp = prevTimeStamp === 0 ? timeStamp : prevTimeStamp;\n model.timeStamp = (timeStamp + model.timeStamp) - prevTimeStamp;\n prevTimeStamp = timeStamp;\n /** phantomjs workaround end */\n // trigger animation begin event\n if (!step && model.begin) {\n model.begin.call(_this, model);\n }\n step = step + 1;\n var avg = model.timeStamp / step;\n if (model.timeStamp < duration && model.timeStamp + avg < duration && model.element.getAttribute('e-animate')) {\n // apply animation effect to the current element\n model.element.style.animation = model.name + ' ' + model.duration + 'ms ' + model.timingFunction;\n if (model.progress) {\n model.progress.call(_this, model);\n }\n // repeat requestAnimationFrame\n requestAnimationFrame(startAnimation);\n }\n else {\n // clear requestAnimationFrame\n cancelAnimationFrame(timerId);\n model.element.removeAttribute('e-animation-id');\n model.element.removeAttribute('e-animate');\n model.element.style.animation = '';\n if (model.end) {\n model.end.call(_this, model);\n }\n }\n }\n else {\n //startTime = performance.now();\n // set initial requestAnimationFrame\n timerId = requestAnimationFrame(startAnimation);\n model.element.setAttribute('e-animation-id', timerId.toString());\n }\n }\n catch (e) {\n cancelAnimationFrame(timerId);\n model.element.removeAttribute('e-animation-id');\n if (model.fail) {\n model.fail.call(_this, e);\n }\n }\n };\n startAnimation();\n };\n /**\n * Returns Animation Model\n *\n * @param {AnimationModel} options ?\n * @returns {AnimationModel} ?\n */\n Animation.prototype.getModel = function (options) {\n return {\n name: options.name || this.name,\n delay: options.delay || this.delay,\n duration: (options.duration !== undefined ? options.duration : this.duration),\n begin: options.begin || this.begin,\n end: options.end || this.end,\n fail: options.fail || this.fail,\n progress: options.progress || this.progress,\n timingFunction: this.easing[options.timingFunction] ? this.easing[options.timingFunction] :\n (options.timingFunction || this.easing[this.timingFunction])\n };\n };\n /**\n * @private\n * @param {AnimationModel} newProp ?\n * @param {AnimationModel} oldProp ?\n * @returns {void} ?\n */\n // eslint-disable-next-line\n Animation.prototype.onPropertyChanged = function (newProp, oldProp) {\n // no code needed\n };\n /**\n * Returns module name as animation\n *\n * @private\n * @returns {void} ?\n */\n Animation.prototype.getModuleName = function () {\n return 'animation';\n };\n /**\n *\n * @private\n * @returns {void} ?\n */\n Animation.prototype.destroy = function () {\n //Override base destroy;\n };\n var Animation_1;\n __decorate([\n Property('FadeIn')\n ], Animation.prototype, \"name\", void 0);\n __decorate([\n Property(400)\n ], Animation.prototype, \"duration\", void 0);\n __decorate([\n Property('ease')\n ], Animation.prototype, \"timingFunction\", void 0);\n __decorate([\n Property(0)\n ], Animation.prototype, \"delay\", void 0);\n __decorate([\n Event()\n ], Animation.prototype, \"progress\", void 0);\n __decorate([\n Event()\n ], Animation.prototype, \"begin\", void 0);\n __decorate([\n Event()\n ], Animation.prototype, \"end\", void 0);\n __decorate([\n Event()\n ], Animation.prototype, \"fail\", void 0);\n Animation = Animation_1 = __decorate([\n NotifyPropertyChanges\n ], Animation);\n return Animation;\n}(Base));\nexport { Animation };\n/**\n * Ripple provides material theme's wave effect when an element is clicked\n * ```html\n *
\n * \n * ```\n *\n * @private\n * @param {HTMLElement} element - Target element\n * @param {RippleOptions} rippleOptions - Ripple options .\n * @param {Function} done .\n * @returns {void} .\n */\nexport function rippleEffect(element, rippleOptions, done) {\n var rippleModel = getRippleModel(rippleOptions);\n if (rippleModel.rippleFlag === false || (rippleModel.rippleFlag === undefined && !isRippleEnabled)) {\n return (function () {\n // do nothing.\n });\n }\n element.setAttribute('data-ripple', 'true');\n EventHandler.add(element, 'mousedown', rippleHandler, { parent: element, rippleOptions: rippleModel });\n EventHandler.add(element, 'mouseup', rippleUpHandler, { parent: element, rippleOptions: rippleModel, done: done });\n EventHandler.add(element, 'mouseleave', rippleLeaveHandler, { parent: element, rippleOptions: rippleModel });\n if (Browser.isPointer) {\n EventHandler.add(element, 'transitionend', rippleLeaveHandler, { parent: element, rippleOptions: rippleModel });\n }\n return (function () {\n element.removeAttribute('data-ripple');\n EventHandler.remove(element, 'mousedown', rippleHandler);\n EventHandler.remove(element, 'mouseup', rippleUpHandler);\n EventHandler.remove(element, 'mouseleave', rippleLeaveHandler);\n EventHandler.remove(element, 'transitionend', rippleLeaveHandler);\n });\n}\n/**\n * Handler for ripple model\n *\n * @param {RippleOptions} rippleOptions ?\n * @returns {RippleOptions} ?\n */\nfunction getRippleModel(rippleOptions) {\n var rippleModel = {\n selector: rippleOptions && rippleOptions.selector ? rippleOptions.selector : null,\n ignore: rippleOptions && rippleOptions.ignore ? rippleOptions.ignore : null,\n rippleFlag: rippleOptions && rippleOptions.rippleFlag,\n isCenterRipple: rippleOptions && rippleOptions.isCenterRipple,\n duration: rippleOptions && rippleOptions.duration ? rippleOptions.duration : 350\n };\n return rippleModel;\n}\n/**\n * Handler for ripple event\n *\n * @param {MouseEvent} e ?\n * @returns {void} ?\n * @private\n */\nfunction rippleHandler(e) {\n var target = (e.target);\n var selector = this.rippleOptions.selector;\n var element = selector ? closest(target, selector) : target;\n if (!element || (this.rippleOptions && closest(target, this.rippleOptions.ignore))) {\n return;\n }\n var offset = element.getBoundingClientRect();\n var offsetX = e.pageX - document.body.scrollLeft;\n var offsetY = e.pageY - ((!document.body.scrollTop && document.documentElement) ?\n document.documentElement.scrollTop : document.body.scrollTop);\n var pageX = Math.max(Math.abs(offsetX - offset.left), Math.abs(offsetX - offset.right));\n var pageY = Math.max(Math.abs(offsetY - offset.top), Math.abs(offsetY - offset.bottom));\n var radius = Math.sqrt(pageX * pageX + pageY * pageY);\n var diameter = radius * 2 + 'px';\n var x = offsetX - offset.left - radius;\n var y = offsetY - offset.top - radius;\n if (this.rippleOptions && this.rippleOptions.isCenterRipple) {\n x = 0;\n y = 0;\n diameter = '100%';\n }\n element.classList.add('e-ripple');\n var duration = this.rippleOptions.duration.toString();\n var styles = 'width: ' + diameter + ';height: ' + diameter + ';left: ' + x + 'px;top: ' + y + 'px;' +\n 'transition-duration: ' + duration + 'ms;';\n var rippleElement = createElement('div', { className: 'e-ripple-element', styles: styles });\n element.appendChild(rippleElement);\n window.getComputedStyle(rippleElement).getPropertyValue('opacity');\n rippleElement.style.transform = 'scale(1)';\n if (element !== this.parent) {\n EventHandler.add(element, 'mouseleave', rippleLeaveHandler, { parent: this.parent, rippleOptions: this.rippleOptions });\n }\n}\n/**\n * Handler for ripple element mouse up event\n *\n * @param {MouseEvent} e ?\n * @returns {void} ?\n * @private\n */\nfunction rippleUpHandler(e) {\n removeRipple(e, this);\n}\n/**\n * Handler for ripple element mouse move event\n *\n * @param {MouseEvent} e ?\n * @returns {void} ?\n * @private\n */\nfunction rippleLeaveHandler(e) {\n removeRipple(e, this);\n}\n/**\n * Handler for removing ripple element\n *\n * @param {MouseEvent} e ?\n * @param {RippleArgs} eventArgs ?\n * @returns {void} ?\n * @private\n */\nfunction removeRipple(e, eventArgs) {\n var duration = eventArgs.rippleOptions.duration;\n var target = (e.target);\n var selector = eventArgs.rippleOptions.selector;\n var element = selector ? closest(target, selector) : target;\n if (!element || (element && element.className.indexOf('e-ripple') === -1)) {\n return;\n }\n var rippleElements = selectAll('.e-ripple-element', element);\n var rippleElement = rippleElements[rippleElements.length - 1];\n if (rippleElement) {\n rippleElement.style.opacity = '0.5';\n }\n if (eventArgs.parent !== element) {\n EventHandler.remove(element, 'mouseleave', rippleLeaveHandler);\n }\n /* tslint:disable:align */\n setTimeout(function () {\n if (rippleElement && rippleElement.parentNode) {\n rippleElement.parentNode.removeChild(rippleElement);\n }\n if (!element.getElementsByClassName('e-ripple-element').length) {\n element.classList.remove('e-ripple');\n }\n if (eventArgs.done) {\n eventArgs.done(e);\n }\n }, duration);\n}\nexport var isRippleEnabled = false;\n/**\n * Animation Module provides support to enable ripple effect functionality to Essential JS 2 components.\n *\n * @param {boolean} isRipple Specifies the boolean value to enable or disable ripple effect.\n * @returns {boolean} ?\n */\nexport function enableRipple(isRipple) {\n isRippleEnabled = isRipple;\n return isRippleEnabled;\n}\n/**\n * Defines the Modes of Global animation.\n *\n * @private\n */\nexport var animationMode = '';\n/**\n * Method for set the Global animation modes for Syncfusion Blazor components.\n *\n * @param {string} value - Specifies the animation mode.\n * @returns {void}\n */\nexport function setGlobalAnimation(value) {\n animationMode = value;\n}\n","/**\n * Module loading operations\n */\nimport { createInstance, setValue, getValue, deleteObject } from './util';\nvar MODULE_SUFFIX = 'Module';\nvar ModuleLoader = /** @class */ (function () {\n function ModuleLoader(parent) {\n this.loadedModules = [];\n this.parent = parent;\n }\n /**\n * Inject required modules in component library\n *\n * @returns {void} ?\n * @param {ModuleDeclaration[]} requiredModules - Array of modules to be required\n * @param {Function[]} moduleList - Array of modules to be injected from sample side\n */\n ModuleLoader.prototype.inject = function (requiredModules, moduleList) {\n var reqLength = requiredModules.length;\n if (reqLength === 0) {\n this.clean();\n return;\n }\n if (this.loadedModules.length) {\n this.clearUnusedModule(requiredModules);\n }\n for (var i = 0; i < reqLength; i++) {\n var modl = requiredModules[parseInt(i.toString(), 10)];\n for (var _i = 0, moduleList_1 = moduleList; _i < moduleList_1.length; _i++) {\n var module = moduleList_1[_i];\n var modName = modl.member;\n if (module && module.prototype.getModuleName() === modl.member && !this.isModuleLoaded(modName)) {\n var moduleObject = createInstance(module, modl.args);\n var memberName = this.getMemberName(modName);\n if (modl.isProperty) {\n setValue(memberName, module, this.parent);\n }\n else {\n setValue(memberName, moduleObject, this.parent);\n }\n var loadedModule = modl;\n loadedModule.member = memberName;\n this.loadedModules.push(loadedModule);\n }\n }\n }\n };\n /**\n * To remove the created object while destroying the control\n *\n * @returns {void}\n */\n ModuleLoader.prototype.clean = function () {\n for (var _i = 0, _a = this.loadedModules; _i < _a.length; _i++) {\n var modules = _a[_i];\n if (!modules.isProperty) {\n getValue(modules.member, this.parent).destroy();\n }\n }\n this.loadedModules = [];\n };\n /**\n * Removes all unused modules\n *\n * @param {ModuleDeclaration[]} moduleList ?\n * @returns {void} ?\n */\n ModuleLoader.prototype.clearUnusedModule = function (moduleList) {\n var _this = this;\n var usedModules = moduleList.map(function (arg) { return _this.getMemberName(arg.member); });\n var removableModule = this.loadedModules.filter(function (module) {\n return usedModules.indexOf(module.member) === -1;\n });\n for (var _i = 0, removableModule_1 = removableModule; _i < removableModule_1.length; _i++) {\n var mod = removableModule_1[_i];\n if (!mod.isProperty) {\n getValue(mod.member, this.parent).destroy();\n }\n this.loadedModules.splice(this.loadedModules.indexOf(mod), 1);\n deleteObject(this.parent, mod.member);\n }\n };\n /**\n * To get the name of the member.\n *\n * @param {string} name ?\n * @returns {string} ?\n */\n ModuleLoader.prototype.getMemberName = function (name) {\n return name[0].toLowerCase() + name.substring(1) + MODULE_SUFFIX;\n };\n /**\n * Returns boolean based on whether the module specified is loaded or not\n *\n * @param {string} modName ?\n * @returns {boolean} ?\n */\n ModuleLoader.prototype.isModuleLoaded = function (modName) {\n for (var _i = 0, _a = this.loadedModules; _i < _a.length; _i++) {\n var mod = _a[_i];\n if (mod.member === this.getMemberName(modName)) {\n return true;\n }\n }\n return false;\n };\n return ModuleLoader;\n}());\nexport { ModuleLoader };\n","import { createElement } from './dom';\nimport { getValue, containerObject, setValue, isNullOrUndefined } from './util';\nexport var componentList = ['grid', 'pivotview', 'treegrid', 'spreadsheet', 'rangeNavigator', 'DocumentEditor', 'listbox', 'PdfViewer', 'richtexteditor', 'DashboardLayout', 'chart', 'stockChart', 'circulargauge', 'diagram', 'heatmap', 'lineargauge', 'maps', 'smithchart', 'barcode', 'sparkline', 'treemap', 'bulletChart', 'kanban', 'daterangepicker', 'schedule', 'gantt', 'signature', 'query-builder', 'drop-down-tree', 'carousel', 'filemanager', 'uploader', 'accordion', 'tab', 'treeview'];\nvar bypassKey = [115, 121, 110, 99, 102, 117, 115, 105,\n 111, 110, 46, 105, 115, 76, 105, 99, 86, 97, 108,\n 105, 100, 97, 116, 101, 100];\nvar accountURL;\n/**\n * License validation module\n *\n * @private\n */\nvar LicenseValidator = /** @class */ (function () {\n function LicenseValidator(key) {\n this.isValidated = false;\n this.isLicensed = true;\n this.version = '20.4';\n this.platform = /JavaScript|ASPNET|ASPNETCORE|ASPNETMVC|FileFormats/i;\n this.errors = {\n noLicense: 'This application was built using a trial version of Syncfusion Essential Studio.' +\n ' To remove the license validation message permanently, a valid license key must be included.',\n trailExpired: 'This application was built using a trial version of Syncfusion Essential Studio.' +\n ' To remove the license validation message permanently, a valid license key must be included.',\n versionMismatched: 'The included Syncfusion license key is invalid.',\n platformMismatched: 'The included Syncfusion license key is invalid.',\n invalidKey: 'The included Syncfusion license key is invalid.'\n };\n /**\n * To manage licensing operation.\n */\n this.manager = (function () {\n var licKey = null;\n /**\n * Sets the license key.\n *\n * @param {string} key - Specifies the license key.\n * @returns {void}\n */\n function set(key) { licKey = key; }\n /**\n * Gets the license key.\n *\n * @returns {string} -Gets the license key.\n */\n function get() { return licKey; }\n return {\n setKey: set,\n getKey: get\n };\n })();\n /**\n * To manage npx licensing operation.\n */\n this.npxManager = (function () {\n var npxLicKey = 'npxKeyReplace';\n /**\n * Gets the license key.\n *\n * @returns {string} - Gets the license key.\n */\n function get() { return npxLicKey; }\n return {\n getKey: get\n };\n })();\n this.manager.setKey(key);\n }\n /**\n * To validate the provided license key.\n */\n LicenseValidator.prototype.validate = function () {\n var contentKey = [115, 121, 110, 99, 102, 117, 115, 105, 111, 110, 46,\n 108, 105, 99, 101, 110, 115, 101, 67, 111, 110, 116, 101, 110, 116];\n var URLKey = [115, 121, 110, 99, 102, 117, 115, 105, 111, 110, 46,\n 99, 108, 97, 105, 109, 65, 99, 99, 111, 117, 110, 116, 85, 82, 76];\n if (!this.isValidated && (containerObject && !getValue(convertToChar(bypassKey), containerObject) && !getValue('Blazor', containerObject))) {\n var validateMsg = void 0;\n var validateURL = void 0;\n if ((this.manager && this.manager.getKey()) || (this.npxManager && this.npxManager.getKey() !== 'npxKeyReplace')) {\n var result = this.getInfoFromKey();\n if (result && result.length) {\n for (var _i = 0, result_1 = result; _i < result_1.length; _i++) {\n var res = result_1[_i];\n if (!this.platform.test(res.platform) || res.invalidPlatform) {\n validateMsg = this.errors.platformMismatched;\n }\n else if (res.version.indexOf(this.version) === -1) {\n validateMsg = this.errors.versionMismatched;\n validateMsg = validateMsg.replace('##LicenseVersion', res.version);\n validateMsg = validateMsg.replace('##Requireversion', this.version + '.x');\n }\n else if (res.expiryDate) {\n var expDate = new Date(res.expiryDate);\n var currDate = new Date();\n if (expDate !== currDate && expDate < currDate) {\n validateMsg = this.errors.trailExpired;\n }\n else {\n break;\n }\n }\n }\n }\n else {\n validateMsg = this.errors.invalidKey;\n }\n }\n else {\n var licenseContent = getValue(convertToChar(contentKey), containerObject);\n validateURL = getValue(convertToChar(URLKey), containerObject);\n if (licenseContent && licenseContent !== '') {\n validateMsg = licenseContent;\n }\n else {\n validateMsg = this.errors.noLicense;\n }\n }\n if (validateMsg && typeof document !== 'undefined' && !isNullOrUndefined(document)) {\n accountURL = (validateURL && validateURL !== '') ? validateURL : \"https://www.syncfusion.com/account/claim-license-key?pl=SmF2YVNjcmlwdA==&vs=MjAuNA==\";\n var errorDiv = createElement('div', {\n innerHTML: \"\" + validateMsg + ' ' + 'Claim your free account'\n });\n errorDiv.setAttribute('style', \"position: fixed;\\n top: 10px;\\n left: 10px;\\n right: 10px;\\n font-size: 14px;\\n background: #EEF2FF;\\n color: #222222;\\n z-index: 999999999;\\n text-align: left;\\n border: 1px solid #EEEEEE;\\n padding: 10px 11px 10px 50px;\\n border-radius: 8px;\\n font-family: Helvetica Neue, Helvetica, Arial;\");\n document.body.appendChild(errorDiv);\n this.isLicensed = false;\n }\n this.isValidated = true;\n setValue(convertToChar(bypassKey), this.isValidated, containerObject);\n }\n return this.isLicensed;\n };\n LicenseValidator.prototype.getDecryptedData = function (key) {\n try {\n return atob(key);\n }\n catch (error) {\n return '';\n }\n };\n /**\n * Get license information from key.\n *\n * @returns {IValidator} - Get license information from key.\n */\n LicenseValidator.prototype.getInfoFromKey = function () {\n try {\n var licKey = '';\n var pkey = [5439488, 7929856, 5111808, 6488064, 4587520, 7667712, 5439488,\n 6881280, 5177344, 7208960, 4194304, 4456448, 6619136, 7733248, 5242880, 7077888,\n 6356992, 7602176, 4587520, 7274496, 7471104, 7143424];\n var decryptedStr = [];\n var resultArray = [];\n var invalidPlatform = false;\n var isNpxKey = false;\n if (this.manager.getKey()) {\n licKey = this.manager.getKey();\n }\n else {\n isNpxKey = true;\n licKey = this.npxManager.getKey().split('npxKeyReplace')[1];\n }\n var licKeySplit = licKey.split(';');\n for (var _i = 0, licKeySplit_1 = licKeySplit; _i < licKeySplit_1.length; _i++) {\n var lKey = licKeySplit_1[_i];\n var decodeStr = this.getDecryptedData(lKey);\n if (!decodeStr) {\n continue;\n }\n var k = 0;\n var buffr = '';\n if (!isNpxKey) {\n for (var i = 0; i < decodeStr.length; i++, k++) {\n if (k === pkey.length) {\n k = 0;\n }\n var c = decodeStr.charCodeAt(i);\n buffr += String.fromCharCode(c ^ (pkey[parseInt(k.toString(), 10)] >> 16));\n }\n }\n else {\n var charKey = decodeStr[decodeStr.length - 1];\n var decryptedKey = [];\n for (var i = 0; i < decodeStr.length; i++) {\n decryptedKey[parseInt(i.toString(), 10)] = decodeStr[parseInt(i.toString(), 10)].charCodeAt(0) - charKey.charCodeAt(0);\n }\n for (var i = 0; i < decryptedKey.length; i++) {\n buffr += String.fromCharCode(decryptedKey[parseInt(i.toString(), 10)]);\n }\n }\n if (this.platform.test(buffr)) {\n decryptedStr = buffr.split(';');\n invalidPlatform = false;\n // checked the length to verify the key in proper strucutre\n if (decryptedStr.length > 3) {\n resultArray.push({ platform: decryptedStr[0],\n version: decryptedStr[1],\n expiryDate: decryptedStr[2] });\n }\n }\n else if (buffr && buffr.split(';').length > 3) {\n invalidPlatform = true;\n }\n }\n if (invalidPlatform && !resultArray.length) {\n return [{ invalidPlatform: invalidPlatform }];\n }\n else {\n return resultArray.length ? resultArray : null;\n }\n }\n catch (error) {\n return null;\n }\n };\n return LicenseValidator;\n}());\nvar licenseValidator = new LicenseValidator();\n/**\n * Converts the given number to characters.\n *\n * @param {number} cArr - Specifies the license key as number.\n * @returns {string}\n */\nfunction convertToChar(cArr) {\n var ret = '';\n for (var _i = 0, cArr_1 = cArr; _i < cArr_1.length; _i++) {\n var arr = cArr_1[_i];\n ret += String.fromCharCode(arr);\n }\n return ret;\n}\n/**\n * To set license key.\n *\n * @param {string} key - license key\n * @returns {void}\n */\nexport function registerLicense(key) {\n licenseValidator = new LicenseValidator(key);\n}\nexport var validateLicense = function (key) {\n if (key) {\n registerLicense(key);\n }\n return licenseValidator.validate();\n};\nexport var getVersion = function () {\n return licenseValidator.version;\n};\n// Method for create overlay over the sample\nexport var createLicenseOverlay = function () {\n var bannerTemplate = \"\\n
\\n
\\n
\\n \\n
\\n
Claim your FREE account and get a key in less than a minute
\\n
    \\n
  • Access to a 30-day free trial of any of our products.
  • \\n
  • Access to 24x5 support by developers via the support tickets, forum, feature & feedback page and chat.
  • \\n
  • 200+ ebooks on the latest technologies, industry trends, and research topics.\\n
  • \\n
  • Largest collection of over 7,000 flat and wireframe icons for free with Syncfusion Metro Studio.
  • \\n
  • Free and unlimited access to Syncfusion technical blogs and whitepapers.
  • \\n
\\n
Syncfusion is trusted by 29,000+ businesses worldwide
\\n \\n Claim your FREE account\\n
have a Syncfusion account? Sign In
\\n
\\n
\";\n if (typeof document !== 'undefined' && !isNullOrUndefined(document)) {\n var errorBackground = createElement('div', {\n innerHTML: bannerTemplate\n });\n document.body.appendChild(errorBackground);\n }\n};\n","import { getValue, setValue, merge, isBlazor } from './util';\nimport { Base } from './base';\n/**\n * To detect the changes for inner properties.\n *\n * @private\n */\nvar ChildProperty = /** @class */ (function () {\n function ChildProperty(parent, propName, defaultValue, isArray) {\n this.isComplexArraySetter = false;\n this.properties = {};\n this.changedProperties = {};\n this.childChangedProperties = {};\n this.oldProperties = {};\n // eslint-disable-next-line\n this.finalUpdate = function () { };\n this.callChildDataBind = getValue('callChildDataBind', Base);\n this.parentObj = parent;\n this.controlParent = this.parentObj.controlParent || this.parentObj;\n this.propName = propName;\n this.isParentArray = isArray;\n this.setProperties(defaultValue, true);\n }\n /**\n * Updates the property changes\n *\n * @param {boolean} val ?\n * @param {string} propName ?\n * @returns {void} ?\n */\n ChildProperty.prototype.updateChange = function (val, propName) {\n if (val === true) {\n this.parentObj.childChangedProperties[\"\" + propName] = val;\n }\n else {\n delete this.parentObj.childChangedProperties[\"\" + propName];\n }\n if (this.parentObj.updateChange) {\n this.parentObj.updateChange(val, this.parentObj.propName);\n }\n };\n /**\n * Updates time out duration\n *\n * @returns {void} ?\n */\n ChildProperty.prototype.updateTimeOut = function () {\n if (this.parentObj.updateTimeOut) {\n this.parentObj.finalUpdate();\n this.parentObj.updateTimeOut();\n }\n else {\n var changeTime_1 = setTimeout(this.parentObj.dataBind.bind(this.parentObj));\n var clearUpdate = function () {\n clearTimeout(changeTime_1);\n };\n this.finalUpdate = clearUpdate;\n }\n };\n /**\n * Clears changed properties\n *\n * @returns {void} ?\n */\n ChildProperty.prototype.clearChanges = function () {\n this.finalUpdate();\n this.updateChange(false, this.propName);\n this.oldProperties = {};\n this.changedProperties = {};\n };\n /**\n * Set property changes\n *\n * @param {Object} prop ?\n * @param {boolean} muteOnChange ?\n * @returns {void} ?\n */\n ChildProperty.prototype.setProperties = function (prop, muteOnChange) {\n if (muteOnChange === true) {\n merge(this, prop);\n this.updateChange(false, this.propName);\n this.clearChanges();\n }\n else {\n merge(this, prop);\n }\n };\n /**\n * Binds data\n *\n * @returns {void} ?\n */\n ChildProperty.prototype.dataBind = function () {\n this.callChildDataBind(this.childChangedProperties, this);\n if (this.isParentArray) {\n var curIndex = this.parentObj[this.propName].indexOf(this);\n if (Object.keys(this.changedProperties).length) {\n setValue(this.propName + '.' + curIndex, this.changedProperties, this.parentObj.changedProperties);\n setValue(this.propName + '.' + curIndex, this.oldProperties, this.parentObj.oldProperties);\n }\n }\n else {\n this.parentObj.changedProperties[this.propName] = this.changedProperties;\n this.parentObj.oldProperties[this.propName] = this.oldProperties;\n }\n this.clearChanges();\n };\n /**\n * Saves changes to newer values\n *\n * @param {string} key ?\n * @param {Object} newValue ?\n * @param {Object} oldValue ?\n * @param {boolean} restrictServerDataBind ?\n * @returns {void} ?\n */\n ChildProperty.prototype.saveChanges = function (key, newValue, oldValue, restrictServerDataBind) {\n if (this.controlParent.isProtectedOnChange) {\n return;\n }\n if (!restrictServerDataBind) {\n this.serverDataBind(key, newValue, true);\n }\n this.oldProperties[\"\" + key] = oldValue;\n this.changedProperties[\"\" + key] = newValue;\n this.updateChange(true, this.propName);\n this.finalUpdate();\n this.updateTimeOut();\n };\n ChildProperty.prototype.serverDataBind = function (key, value, isSaveChanges, action) {\n if (isBlazor() && !this.parentObj.isComplexArraySetter) {\n var parent_1;\n var newChanges = {};\n var parentKey = isSaveChanges ? this.getParentKey(true) + '.' + key : key;\n /* istanbul ignore else */\n if (parentKey.indexOf('.') !== -1) {\n var complexKeys = parentKey.split('.');\n parent_1 = newChanges;\n for (var i = 0; i < complexKeys.length; i++) {\n var isFinal = i === complexKeys.length - 1;\n parent_1[complexKeys[parseInt(i.toString(), 10)]] = isFinal ? value : {};\n parent_1 = isFinal ? parent_1 : parent_1[complexKeys[parseInt(i.toString(), 10)]];\n }\n }\n else {\n newChanges[\"\" + parentKey] = {};\n parent_1 = newChanges[\"\" + parentKey];\n newChanges[\"\" + parentKey][\"\" + key] = value;\n }\n /* istanbul ignore next */\n if (this.isParentArray) {\n var actionProperty = 'ejsAction';\n parent_1[\"\" + actionProperty] = action ? action : 'none';\n }\n this.controlParent.serverDataBind(newChanges);\n }\n };\n ChildProperty.prototype.getParentKey = function (isSaveChanges) {\n // eslint-disable-next-line\n var index = '';\n var propName = this.propName;\n /* istanbul ignore next */\n if (this.isParentArray) {\n index = this.parentObj[this.propName].indexOf(this);\n var valueLength = this.parentObj[this.propName].length;\n valueLength = isSaveChanges ? valueLength : (valueLength > 0 ? valueLength - 1 : 0);\n index = index !== -1 ? '-' + index : '-' + valueLength;\n propName = propName + index;\n }\n if (this.controlParent !== this.parentObj) {\n propName = this.parentObj.getParentKey() + '.' + this.propName + index;\n }\n return propName;\n };\n return ChildProperty;\n}());\nexport { ChildProperty };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { isUndefined, getValue, isNullOrUndefined, setValue, uniqueID, isBlazor } from './util';\nimport { ModuleLoader } from './module-loader';\nimport { Base } from './base';\nimport { Observer } from './observer';\nimport { ChildProperty } from './child-property';\nimport { Property, NotifyPropertyChanges } from './notify-property-change';\nimport { onIntlChange, rightToLeft, defaultCulture } from './internationalization';\nimport { createElement, addClass, removeClass, select } from './dom';\nimport { validateLicense, createLicenseOverlay, componentList } from './validate-lic';\nvar componentCount = 0;\nvar lastPageID;\nvar lastHistoryLen = 0;\n// Decalre the static variable to count the instance\nvar instancecount = 0;\n// Decalre the static variable to find if control limit exceed or not\nvar isvalid = true;\n// We have added styles to inline type so here declare the static variable to detect if banner is added or not\nvar isBannerAdded = false;\nexport var versionBasedStatePersistence = false;\n/**\n * To enable or disable version based statePersistence functionality for all components globally.\n *\n * @param {boolean} status - Optional argument Specifies the status value to enable or disable versionBasedStatePersistence option.\n * @returns {void}\n */\nexport function enableVersionBasedPersistence(status) {\n versionBasedStatePersistence = status;\n}\n/**\n * Base class for all Essential JavaScript components\n */\nvar Component = /** @class */ (function (_super) {\n __extends(Component, _super);\n /**\n * Initialize the constructor for component base\n *\n * @param {Object} options ?\n * @param {string} selector ?\n */\n function Component(options, selector) {\n var _this = _super.call(this, options, selector) || this;\n _this.randomId = uniqueID();\n /**\n * string template option for Blazor template rendering\n *\n * @private\n */\n _this.isStringTemplate = false;\n _this.needsID = false;\n _this.isReactHybrid = false;\n if (isNullOrUndefined(_this.enableRtl)) {\n _this.setProperties({ 'enableRtl': rightToLeft }, true);\n }\n if (isNullOrUndefined(_this.locale)) {\n _this.setProperties({ 'locale': defaultCulture }, true);\n }\n _this.moduleLoader = new ModuleLoader(_this);\n _this.localObserver = new Observer(_this);\n // tslint:disable-next-line:no-function-constructor-with-string-args\n onIntlChange.on('notifyExternalChange', _this.detectFunction, _this, _this.randomId);\n // Based on the considered control list we have count the instance\n if (typeof window !== \"undefined\" && typeof document !== \"undefined\" && !validateLicense()) {\n if (componentList.indexOf(_this.getModuleName()) !== -1) {\n instancecount = instancecount + 1;\n if (instancecount > 5) {\n isvalid = false;\n }\n }\n }\n if (!isUndefined(selector)) {\n _this.appendTo();\n }\n return _this;\n }\n Component.prototype.requiredModules = function () {\n return [];\n };\n /**\n * Destroys the sub modules while destroying the widget\n *\n * @returns {void} ?\n */\n Component.prototype.destroy = function () {\n if (this.isDestroyed) {\n return;\n }\n if (this.enablePersistence) {\n this.setPersistData();\n }\n this.localObserver.destroy();\n if (this.refreshing) {\n return;\n }\n removeClass([this.element], ['e-control']);\n this.trigger('destroyed', { cancel: false });\n _super.prototype.destroy.call(this);\n this.moduleLoader.clean();\n onIntlChange.off('notifyExternalChange', this.detectFunction, this.randomId);\n };\n /**\n * Applies all the pending property changes and render the component again.\n *\n * @returns {void} ?\n */\n Component.prototype.refresh = function () {\n this.refreshing = true;\n this.moduleLoader.clean();\n this.destroy();\n this.clearChanges();\n this.localObserver = new Observer(this);\n this.preRender();\n this.injectModules();\n this.render();\n this.refreshing = false;\n };\n Component.prototype.accessMount = function () {\n if (this.mount && !this.isReactHybrid) {\n this.mount();\n }\n };\n /**\n * Returns the route element of the component\n *\n * @returns {HTMLElement} ?\n */\n Component.prototype.getRootElement = function () {\n if (this.isReactHybrid) {\n // eslint-disable-next-line\n return this.actualElement;\n }\n else {\n return this.element;\n }\n };\n /**\n * Returns the persistence data for component\n *\n * @returns {any} ?\n */\n // eslint-disable-next-line\n Component.prototype.getLocalData = function () {\n var eleId = this.getModuleName() + this.element.id;\n if (versionBasedStatePersistence) {\n return window.localStorage.getItem(eleId + this.ej2StatePersistenceVersion);\n }\n else {\n return window.localStorage.getItem(eleId);\n }\n };\n /**\n * Appends the control within the given HTML element\n *\n * @param {string | HTMLElement} selector - Target element where control needs to be appended\n * @returns {void} ?\n */\n Component.prototype.appendTo = function (selector) {\n if (!isNullOrUndefined(selector) && typeof (selector) === 'string') {\n this.element = select(selector, document);\n }\n else if (!isNullOrUndefined(selector)) {\n this.element = selector;\n }\n if (!isNullOrUndefined(this.element)) {\n var moduleClass = 'e-' + this.getModuleName().toLowerCase();\n addClass([this.element], ['e-control', moduleClass]);\n this.isProtectedOnChange = false;\n if (this.needsID && !this.element.id) {\n this.element.id = this.getUniqueID(this.getModuleName());\n }\n if (this.enablePersistence) {\n this.mergePersistData();\n window.addEventListener('unload', this.setPersistData.bind(this));\n }\n var inst = getValue('ej2_instances', this.element);\n if (!inst || inst.indexOf(this) === -1) {\n _super.prototype.addInstance.call(this);\n }\n this.preRender();\n this.injectModules();\n // Checked weather cases are valid or not. If control leads to more than five counts \n if (!isvalid && !isBannerAdded) {\n createLicenseOverlay();\n isBannerAdded = true;\n }\n this.render();\n if (!this.mount) {\n this.trigger('created');\n }\n else {\n this.accessMount();\n }\n }\n };\n /**\n * It is used to process the post rendering functionalities to a component.\n *\n * @param {Node} wrapperElement ?\n * @returns {void} ?\n */\n Component.prototype.renderComplete = function (wrapperElement) {\n if (isBlazor()) {\n var sfBlazor = 'sfBlazor';\n // eslint-disable-next-line\n window[sfBlazor].renderComplete(this.element, wrapperElement);\n }\n this.isRendered = true;\n };\n /**\n * When invoked, applies the pending property changes immediately to the component.\n *\n * @returns {void} ?\n */\n Component.prototype.dataBind = function () {\n this.injectModules();\n _super.prototype.dataBind.call(this);\n };\n /**\n * Attach one or more event handler to the current component context.\n * It is used for internal handling event internally within the component only.\n *\n * @param {BoundOptions[]| string} event - It is optional type either to Set the collection of event list or the eventName.\n * @param {Function} handler - optional parameter Specifies the handler to run when the event occurs\n * @param {Object} context - optional parameter Specifies the context to be bind in the handler.\n * @returns {void} ?\n * @private\n */\n Component.prototype.on = function (event, handler, context) {\n if (typeof event === 'string') {\n this.localObserver.on(event, handler, context);\n }\n else {\n for (var _i = 0, event_1 = event; _i < event_1.length; _i++) {\n var arg = event_1[_i];\n this.localObserver.on(arg.event, arg.handler, arg.context);\n }\n }\n };\n /**\n * To remove one or more event handler that has been attached with the on() method.\n *\n * @param {BoundOptions[]| string} event - It is optional type either to Set the collection of event list or the eventName.\n * @param {Function} handler - optional parameter Specifies the function to run when the event occurs\n * @returns {void} ?\n * @private\n */\n Component.prototype.off = function (event, handler) {\n if (typeof event === 'string') {\n this.localObserver.off(event, handler);\n }\n else {\n for (var _i = 0, event_2 = event; _i < event_2.length; _i++) {\n var arg = event_2[_i];\n this.localObserver.off(arg.event, arg.handler);\n }\n }\n };\n /**\n * To notify the handlers in the specified event.\n *\n * @param {string} property - Specifies the event to be notify.\n * @param {Object} argument - Additional parameters to pass while calling the handler.\n * @returns {void} ?\n * @private\n */\n Component.prototype.notify = function (property, argument) {\n if (this.isDestroyed !== true) {\n this.localObserver.notify(property, argument);\n }\n };\n /**\n * Get injected modules\n *\n * @returns {Function} ?\n * @private\n */\n Component.prototype.getInjectedModules = function () {\n return this.injectedModules;\n };\n /**\n * Dynamically injects the required modules to the component.\n *\n * @param {Function} moduleList ?\n * @returns {void} ?\n */\n Component.Inject = function () {\n var moduleList = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n moduleList[_i] = arguments[_i];\n }\n if (!this.prototype.injectedModules) {\n this.prototype.injectedModules = [];\n }\n for (var i = 0; i < moduleList.length; i++) {\n if (this.prototype.injectedModules.indexOf(moduleList[parseInt(i.toString(), 10)]) === -1) {\n this.prototype.injectedModules.push(moduleList[parseInt(i.toString(), 10)]);\n }\n }\n };\n /**\n * This is a instance method to create an element.\n *\n * @param {string} tagName ?\n * @param {ElementProperties} prop ?\n * @param {boolean} isVDOM ?\n * @returns {any} ?\n * @private\n */\n // eslint-disable-next-line\n Component.prototype.createElement = function (tagName, prop, isVDOM) {\n return createElement(tagName, prop);\n };\n /**\n *\n * @param {Function} handler - handler to be triggered after state Updated.\n * @param {any} argument - Arguments to be passed to caller.\n * @returns {void} .\n * @private\n */\n // eslint-disable-next-line\n Component.prototype.triggerStateChange = function (handler, argument) {\n if (this.isReactHybrid) {\n // eslint-disable-next-line\n this.setState();\n this.currentContext = { calls: handler, args: argument };\n }\n };\n // tslint: enable: no-any\n Component.prototype.injectModules = function () {\n if (this.injectedModules && this.injectedModules.length) {\n this.moduleLoader.inject(this.requiredModules(), this.injectedModules);\n }\n };\n Component.prototype.detectFunction = function (args) {\n var prop = Object.keys(args);\n if (prop.length) {\n this[prop[0]] = args[prop[0]];\n }\n };\n Component.prototype.mergePersistData = function () {\n var data;\n if (versionBasedStatePersistence) {\n data = window.localStorage.getItem(this.getModuleName() + this.element.id + this.ej2StatePersistenceVersion);\n }\n else {\n data = window.localStorage.getItem(this.getModuleName() + this.element.id);\n }\n if (!(isNullOrUndefined(data) || (data === ''))) {\n this.setProperties(JSON.parse(data), true);\n }\n };\n Component.prototype.setPersistData = function () {\n if (!this.isDestroyed) {\n if (versionBasedStatePersistence) {\n window.localStorage.setItem(this.getModuleName() +\n this.element.id + this.ej2StatePersistenceVersion, this.getPersistData());\n }\n else {\n window.localStorage.setItem(this.getModuleName() + this.element.id, this.getPersistData());\n }\n }\n };\n // eslint-disable-next-line\n Component.prototype.renderReactTemplates = function (callback) {\n if (!isNullOrUndefined(callback)) {\n callback();\n }\n };\n // eslint-disable-next-line\n Component.prototype.clearTemplate = function (templateName, index) {\n //No Code\n };\n Component.prototype.getUniqueID = function (definedName) {\n if (this.isHistoryChanged()) {\n componentCount = 0;\n }\n lastPageID = this.pageID(location.href);\n lastHistoryLen = history.length;\n return definedName + '_' + lastPageID + '_' + componentCount++;\n };\n Component.prototype.pageID = function (url) {\n var hash = 0;\n if (url.length === 0) {\n return hash;\n }\n for (var i = 0; i < url.length; i++) {\n var char = url.charCodeAt(i);\n hash = ((hash << 5) - hash) + char;\n hash = hash & hash; // Convert to 32bit integer\n }\n return Math.abs(hash);\n };\n Component.prototype.isHistoryChanged = function () {\n return lastPageID !== this.pageID(location.href) || lastHistoryLen !== history.length;\n };\n Component.prototype.addOnPersist = function (options) {\n var _this = this;\n var persistObj = {};\n for (var _i = 0, options_1 = options; _i < options_1.length; _i++) {\n var key = options_1[_i];\n var objValue = void 0;\n // eslint-disable-next-line\n objValue = getValue(key, this);\n if (!isUndefined(objValue)) {\n setValue(key, this.getActualProperties(objValue), persistObj);\n }\n }\n return JSON.stringify(persistObj, function (key, value) {\n return _this.getActualProperties(value);\n });\n };\n Component.prototype.getActualProperties = function (obj) {\n if (obj instanceof ChildProperty) {\n return getValue('properties', obj);\n }\n else {\n return obj;\n }\n };\n Component.prototype.ignoreOnPersist = function (options) {\n return JSON.stringify(this.iterateJsonProperties(this.properties, options));\n };\n Component.prototype.iterateJsonProperties = function (obj, ignoreList) {\n var newObj = {};\n var _loop_1 = function (key) {\n if (ignoreList.indexOf(key) === -1) {\n // eslint-disable-next-line\n var value = obj[key];\n if (typeof value === 'object' && !(value instanceof Array)) {\n var newList = ignoreList.filter(function (str) {\n return new RegExp(key + '.').test(str);\n }).map(function (str) {\n return str.replace(key + '.', '');\n });\n newObj[\"\" + key] = this_1.iterateJsonProperties(this_1.getActualProperties(value), newList);\n }\n else {\n newObj[\"\" + key] = value;\n }\n }\n };\n var this_1 = this;\n for (var _i = 0, _a = Object.keys(obj); _i < _a.length; _i++) {\n var key = _a[_i];\n _loop_1(key);\n }\n return newObj;\n };\n __decorate([\n Property(false)\n ], Component.prototype, \"enablePersistence\", void 0);\n __decorate([\n Property()\n ], Component.prototype, \"enableRtl\", void 0);\n __decorate([\n Property()\n ], Component.prototype, \"locale\", void 0);\n Component = __decorate([\n NotifyPropertyChanges\n ], Component);\n return Component;\n}(Base));\nexport { Component };\n//Function handling for page navigation detection\n/* istanbul ignore next */\n(function () {\n if (typeof window !== 'undefined') {\n window.addEventListener('popstate', \n /* istanbul ignore next */\n function () {\n componentCount = 0;\n });\n }\n})();\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Base } from './base';\nimport { Browser } from './browser';\nimport { isVisible } from './dom';\nimport { Property, Complex, NotifyPropertyChanges, Event } from './notify-property-change';\nimport { EventHandler } from './event-handler';\nimport { ChildProperty } from './child-property';\nimport { select, closest, setStyleAttribute, addClass, createElement } from './dom';\nimport { extend, isUndefined, isNullOrUndefined, compareElementParent, isBlazor } from './util';\nvar defaultPosition = { left: 0, top: 0, bottom: 0, right: 0 };\nvar positionProp = ['offsetLeft', 'offsetTop'];\nvar axisMapper = ['x', 'y'];\nvar axisValueMapper = ['left', 'top'];\nvar isDraggedObject = { isDragged: false };\n/**\n * Specifies the position coordinates\n */\nvar Position = /** @class */ (function (_super) {\n __extends(Position, _super);\n function Position() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(0)\n ], Position.prototype, \"left\", void 0);\n __decorate([\n Property(0)\n ], Position.prototype, \"top\", void 0);\n return Position;\n}(ChildProperty));\nexport { Position };\n/**\n * Draggable Module provides support to enable draggable functionality in Dom Elements.\n * ```html\n *
Draggable
\n * \n * ```\n */\nvar Draggable = /** @class */ (function (_super) {\n __extends(Draggable, _super);\n function Draggable(element, options) {\n var _this = _super.call(this, options, element) || this;\n _this.dragLimit = Draggable_1.getDefaultPosition();\n _this.borderWidth = Draggable_1.getDefaultPosition();\n _this.padding = Draggable_1.getDefaultPosition();\n _this.diffX = 0;\n _this.prevLeft = 0;\n _this.prevTop = 0;\n _this.dragProcessStarted = false;\n _this.eleTop = 0;\n /* eslint-disable @typescript-eslint/no-explicit-any */\n _this.tapHoldTimer = 0;\n _this.externalInitialize = false;\n _this.diffY = 0;\n _this.parentScrollX = 0;\n _this.parentScrollY = 0;\n _this.droppables = {};\n _this.bind();\n return _this;\n }\n Draggable_1 = Draggable;\n Draggable.prototype.bind = function () {\n this.toggleEvents();\n if (Browser.isIE) {\n addClass([this.element], 'e-block-touch');\n }\n this.droppables[this.scope] = {};\n };\n Draggable.getDefaultPosition = function () {\n return extend({}, defaultPosition);\n };\n Draggable.prototype.toggleEvents = function (isUnWire) {\n var ele;\n if (!isUndefined(this.handle)) {\n ele = select(this.handle, this.element);\n }\n var handler = (this.enableTapHold && Browser.isDevice && Browser.isTouch) ? this.mobileInitialize : this.initialize;\n if (isUnWire) {\n EventHandler.remove(ele || this.element, Browser.touchStartEvent, handler);\n }\n else {\n EventHandler.add(ele || this.element, Browser.touchStartEvent, handler, this);\n }\n };\n /* istanbul ignore next */\n Draggable.prototype.mobileInitialize = function (evt) {\n var _this = this;\n var target = evt.currentTarget;\n this.tapHoldTimer = setTimeout(function () {\n _this.externalInitialize = true;\n _this.removeTapholdTimer();\n _this.initialize(evt, target);\n }, this.tapHoldThreshold);\n EventHandler.add(document, Browser.touchMoveEvent, this.removeTapholdTimer, this);\n EventHandler.add(document, Browser.touchEndEvent, this.removeTapholdTimer, this);\n };\n /* istanbul ignore next */\n Draggable.prototype.removeTapholdTimer = function () {\n clearTimeout(this.tapHoldTimer);\n EventHandler.remove(document, Browser.touchMoveEvent, this.removeTapholdTimer);\n EventHandler.remove(document, Browser.touchEndEvent, this.removeTapholdTimer);\n };\n /* istanbul ignore next */\n Draggable.prototype.getScrollableParent = function (element, axis) {\n var scroll = { 'vertical': 'scrollHeight', 'horizontal': 'scrollWidth' };\n var client = { 'vertical': 'clientHeight', 'horizontal': 'clientWidth' };\n if (isNullOrUndefined(element)) {\n return null;\n }\n if (element[scroll[\"\" + axis]] > element[client[\"\" + axis]]) {\n if (axis === 'vertical' ? element.scrollTop > 0 : element.scrollLeft > 0) {\n if (axis === 'vertical') {\n this.parentScrollY = this.parentScrollY +\n (this.parentScrollY === 0 ? element.scrollTop : element.scrollTop - this.parentScrollY);\n this.tempScrollHeight = element.scrollHeight;\n }\n else {\n this.parentScrollX = this.parentScrollX +\n (this.parentScrollX === 0 ? element.scrollLeft : element.scrollLeft - this.parentScrollX);\n this.tempScrollWidth = element.scrollWidth;\n }\n if (!isNullOrUndefined(element)) {\n return this.getScrollableParent(element.parentNode, axis);\n }\n else {\n return element;\n }\n }\n else {\n return this.getScrollableParent(element.parentNode, axis);\n }\n }\n else {\n return this.getScrollableParent(element.parentNode, axis);\n }\n };\n Draggable.prototype.getScrollableValues = function () {\n this.parentScrollX = 0;\n this.parentScrollY = 0;\n var isModalDialog = this.element.classList.contains('e-dialog') && this.element.classList.contains('e-dlg-modal');\n var verticalScrollParent = this.getScrollableParent(this.element.parentNode, 'vertical');\n var horizontalScrollParent = this.getScrollableParent(this.element.parentNode, 'horizontal');\n };\n Draggable.prototype.initialize = function (evt, curTarget) {\n this.currentStateTarget = evt.target;\n if (this.isDragStarted()) {\n return;\n }\n else {\n this.isDragStarted(true);\n this.externalInitialize = false;\n }\n this.target = (evt.currentTarget || curTarget);\n this.dragProcessStarted = false;\n if (this.abort) {\n /* tslint:disable no-any */\n var abortSelectors = this.abort;\n if (typeof abortSelectors === 'string') {\n abortSelectors = [abortSelectors];\n }\n for (var i = 0; i < abortSelectors.length; i++) {\n if (!isNullOrUndefined(closest(evt.target, abortSelectors[parseInt(i.toString(), 10)]))) {\n /* istanbul ignore next */\n if (this.isDragStarted()) {\n this.isDragStarted(true);\n }\n return;\n }\n }\n }\n if (this.preventDefault && !isUndefined(evt.changedTouches) && evt.type !== 'touchstart') {\n evt.preventDefault();\n }\n this.element.setAttribute('aria-grabbed', 'true');\n var intCoord = this.getCoordinates(evt);\n this.initialPosition = { x: intCoord.pageX, y: intCoord.pageY };\n if (!this.clone) {\n var pos = this.element.getBoundingClientRect();\n this.getScrollableValues();\n if (evt.clientX === evt.pageX) {\n this.parentScrollX = 0;\n }\n if (evt.clientY === evt.pageY) {\n this.parentScrollY = 0;\n }\n this.relativeXPosition = intCoord.pageX - (pos.left + this.parentScrollX);\n this.relativeYPosition = intCoord.pageY - (pos.top + this.parentScrollY);\n }\n if (this.externalInitialize) {\n this.intDragStart(evt);\n }\n else {\n EventHandler.add(document, Browser.touchMoveEvent, this.intDragStart, this);\n EventHandler.add(document, Browser.touchEndEvent, this.intDestroy, this);\n }\n this.toggleEvents(true);\n if (evt.type !== 'touchstart' && this.isPreventSelect) {\n document.body.classList.add('e-prevent-select');\n }\n this.externalInitialize = false;\n EventHandler.trigger(document.documentElement, Browser.touchStartEvent, evt);\n };\n Draggable.prototype.intDragStart = function (evt) {\n this.removeTapholdTimer();\n var isChangeTouch = !isUndefined(evt.changedTouches);\n if (isChangeTouch && (evt.changedTouches.length !== 1)) {\n return;\n }\n var intCordinate = this.getCoordinates(evt);\n var pos;\n var styleProp = getComputedStyle(this.element);\n this.margin = {\n left: parseInt(styleProp.marginLeft, 10),\n top: parseInt(styleProp.marginTop, 10),\n right: parseInt(styleProp.marginRight, 10),\n bottom: parseInt(styleProp.marginBottom, 10)\n };\n var element = this.element;\n if (this.clone && this.dragTarget) {\n var intClosest = closest(evt.target, this.dragTarget);\n if (!isNullOrUndefined(intClosest)) {\n element = intClosest;\n }\n }\n /* istanbul ignore next */\n if (this.isReplaceDragEle) {\n element = this.currentStateCheck(evt.target, element);\n }\n this.offset = this.calculateParentPosition(element);\n this.position = this.getMousePosition(evt, this.isDragScroll);\n var x = this.initialPosition.x - intCordinate.pageX;\n var y = this.initialPosition.y - intCordinate.pageY;\n var distance = Math.sqrt((x * x) + (y * y));\n if ((distance >= this.distance || this.externalInitialize)) {\n var ele = this.getHelperElement(evt);\n if (!ele || isNullOrUndefined(ele)) {\n return;\n }\n if (isChangeTouch) {\n evt.preventDefault();\n }\n var dragTargetElement = this.helperElement = ele;\n this.parentClientRect = this.calculateParentPosition(dragTargetElement.offsetParent);\n if (this.dragStart) {\n var curTarget = this.getProperTargetElement(evt);\n var args = {\n event: evt,\n element: element,\n target: curTarget,\n bindEvents: isBlazor() ? this.bindDragEvents.bind(this) : null,\n dragElement: dragTargetElement\n };\n this.trigger('dragStart', args);\n }\n if (this.dragArea) {\n this.setDragArea();\n }\n else {\n this.dragLimit = { left: 0, right: 0, bottom: 0, top: 0 };\n this.borderWidth = { top: 0, left: 0 };\n }\n pos = { left: this.position.left - this.parentClientRect.left, top: this.position.top - this.parentClientRect.top };\n if (this.clone && !this.enableTailMode) {\n this.diffX = this.position.left - this.offset.left;\n this.diffY = this.position.top - this.offset.top;\n }\n this.getScrollableValues();\n // when drag element has margin-top\n var styles = getComputedStyle(element);\n var marginTop = parseFloat(styles.marginTop);\n /* istanbul ignore next */\n if (this.clone && marginTop !== 0) {\n pos.top += marginTop;\n }\n this.eleTop = !isNaN(parseFloat(styles.top)) ? parseFloat(styles.top) - this.offset.top : 0;\n /* istanbul ignore next */\n // if (this.eleTop > 0) {\n // pos.top += this.eleTop;\n // }\n if (this.enableScrollHandler && !this.clone) {\n pos.top -= this.parentScrollY;\n pos.left -= this.parentScrollX;\n }\n var posValue = this.getProcessedPositionValue({\n top: (pos.top - this.diffY) + 'px',\n left: (pos.left - this.diffX) + 'px'\n });\n if (this.dragArea && typeof this.dragArea !== 'string' && this.dragArea.classList.contains('e-kanban-content') && this.dragArea.style.position === 'relative') {\n pos.top += this.dragArea.scrollTop;\n }\n this.dragElePosition = { top: pos.top, left: pos.left };\n setStyleAttribute(dragTargetElement, this.getDragPosition({ position: 'absolute', left: posValue.left, top: posValue.top }));\n EventHandler.remove(document, Browser.touchMoveEvent, this.intDragStart);\n EventHandler.remove(document, Browser.touchEndEvent, this.intDestroy);\n if (!isBlazor()) {\n this.bindDragEvents(dragTargetElement);\n }\n }\n };\n Draggable.prototype.bindDragEvents = function (dragTargetElement) {\n if (isVisible(dragTargetElement)) {\n EventHandler.add(document, Browser.touchMoveEvent, this.intDrag, this);\n EventHandler.add(document, Browser.touchEndEvent, this.intDragStop, this);\n this.setGlobalDroppables(false, this.element, dragTargetElement);\n }\n else {\n this.toggleEvents();\n document.body.classList.remove('e-prevent-select');\n }\n };\n Draggable.prototype.elementInViewport = function (el) {\n this.top = el.offsetTop;\n this.left = el.offsetLeft;\n this.width = el.offsetWidth;\n this.height = el.offsetHeight;\n while (el.offsetParent) {\n el = el.offsetParent;\n this.top += el.offsetTop;\n this.left += el.offsetLeft;\n }\n return (this.top >= window.pageYOffset &&\n this.left >= window.pageXOffset &&\n (this.top + this.height) <= (window.pageYOffset + window.innerHeight) &&\n (this.left + this.width) <= (window.pageXOffset + window.innerWidth));\n };\n Draggable.prototype.getProcessedPositionValue = function (value) {\n if (this.queryPositionInfo) {\n return this.queryPositionInfo(value);\n }\n return value;\n };\n Draggable.prototype.calculateParentPosition = function (ele) {\n if (isNullOrUndefined(ele)) {\n return { left: 0, top: 0 };\n }\n var rect = ele.getBoundingClientRect();\n var style = getComputedStyle(ele);\n return {\n left: (rect.left + window.pageXOffset) - parseInt(style.marginLeft, 10),\n top: (rect.top + window.pageYOffset) - parseInt(style.marginTop, 10)\n };\n };\n // tslint:disable-next-line:max-func-body-length\n Draggable.prototype.intDrag = function (evt) {\n if (!isUndefined(evt.changedTouches) && (evt.changedTouches.length !== 1)) {\n return;\n }\n if (this.clone && evt.changedTouches && Browser.isDevice && Browser.isTouch) {\n evt.preventDefault();\n }\n var left;\n var top;\n this.position = this.getMousePosition(evt, this.isDragScroll);\n var docHeight = this.getDocumentWidthHeight('Height');\n if (docHeight < this.position.top) {\n this.position.top = docHeight;\n }\n var docWidth = this.getDocumentWidthHeight('Width');\n if (docWidth < this.position.left) {\n this.position.left = docWidth;\n }\n if (this.drag) {\n var curTarget = this.getProperTargetElement(evt);\n this.trigger('drag', { event: evt, element: this.element, target: curTarget });\n }\n var eleObj = this.checkTargetElement(evt);\n if (eleObj.target && eleObj.instance) {\n /* tslint:disable no-any */\n var flag = true;\n if (this.hoverObject) {\n if (this.hoverObject.instance !== eleObj.instance) {\n this.triggerOutFunction(evt, eleObj);\n }\n else {\n flag = false;\n }\n }\n if (flag) {\n eleObj.instance.dragData[this.scope] = this.droppables[this.scope];\n eleObj.instance.intOver(evt, eleObj.target);\n this.hoverObject = eleObj;\n }\n }\n else if (this.hoverObject) {\n this.triggerOutFunction(evt, eleObj);\n }\n var helperElement = this.droppables[this.scope].helper;\n this.parentClientRect = this.calculateParentPosition(this.helperElement.offsetParent);\n var tLeft = this.parentClientRect.left;\n var tTop = this.parentClientRect.top;\n var intCoord = this.getCoordinates(evt);\n var pagex = intCoord.pageX;\n var pagey = intCoord.pageY;\n var dLeft = this.position.left - this.diffX;\n var dTop = this.position.top - this.diffY;\n var styles = getComputedStyle(helperElement);\n if (this.dragArea) {\n if (this.pageX !== pagex || this.skipDistanceCheck) {\n var helperWidth = helperElement.offsetWidth + (parseFloat(styles.marginLeft)\n + parseFloat(styles.marginRight));\n if (this.dragLimit.left > dLeft && dLeft > 0) {\n left = this.dragLimit.left;\n }\n else if (this.dragLimit.right + window.pageXOffset < dLeft + helperWidth && dLeft > 0) {\n left = dLeft - (dLeft - this.dragLimit.right) + window.pageXOffset - helperWidth;\n }\n else {\n left = dLeft < 0 ? this.dragLimit.left : dLeft;\n }\n }\n if (this.pageY !== pagey || this.skipDistanceCheck) {\n var helperHeight = helperElement.offsetHeight + (parseFloat(styles.marginTop)\n + parseFloat(styles.marginBottom));\n if (this.dragLimit.top > dTop && dTop > 0) {\n top = this.dragLimit.top;\n }\n else if (this.dragLimit.bottom + window.pageYOffset < dTop + helperHeight && dTop > 0) {\n top = dTop - (dTop - this.dragLimit.bottom) + window.pageYOffset - helperHeight;\n }\n else {\n top = dTop < 0 ? this.dragLimit.top : dTop;\n }\n }\n }\n else {\n left = dLeft;\n top = dTop;\n }\n var iTop = tTop + this.borderWidth.top;\n var iLeft = tLeft + this.borderWidth.left;\n if (this.dragProcessStarted) {\n if (isNullOrUndefined(top)) {\n top = this.prevTop;\n }\n if (isNullOrUndefined(left)) {\n left = this.prevLeft;\n }\n }\n var draEleTop;\n var draEleLeft;\n if (this.helperElement.classList.contains('e-treeview')) {\n if (this.dragArea) {\n this.dragLimit.top = this.clone ? this.dragLimit.top : 0;\n draEleTop = (top - iTop) < 0 ? this.dragLimit.top : (top - this.borderWidth.top);\n draEleLeft = (left - iLeft) < 0 ? this.dragLimit.left : (left - this.borderWidth.left);\n }\n else {\n draEleTop = top - this.borderWidth.top;\n draEleLeft = left - this.borderWidth.left;\n }\n }\n else {\n if (this.dragArea) {\n this.dragLimit.top = this.clone ? this.dragLimit.top : 0;\n draEleTop = (top - iTop) < 0 ? this.dragLimit.top : (top - iTop);\n draEleLeft = (left - iLeft) < 0 ? this.dragElePosition.left : (left - iLeft);\n }\n else {\n draEleTop = top - iTop;\n draEleLeft = left - iLeft;\n }\n }\n var marginTop = parseFloat(getComputedStyle(this.element).marginTop);\n // when drag-element has margin-top\n /* istanbul ignore next */\n if (marginTop > 0) {\n if (this.clone) {\n draEleTop += marginTop;\n if (dTop < 0) {\n if ((marginTop + dTop) >= 0) {\n draEleTop = marginTop + dTop;\n }\n else {\n draEleTop -= marginTop;\n }\n }\n draEleTop = (this.dragLimit.bottom < draEleTop) ? this.dragLimit.bottom : draEleTop;\n }\n if ((top - iTop) < 0) {\n if (dTop + marginTop + (helperElement.offsetHeight - iTop) >= 0) {\n var tempDraEleTop = this.dragLimit.top + dTop - iTop;\n if ((tempDraEleTop + marginTop + iTop) < 0) {\n draEleTop -= marginTop + iTop;\n }\n else {\n draEleTop = tempDraEleTop;\n }\n }\n else {\n draEleTop -= marginTop + iTop;\n }\n }\n }\n if (this.dragArea && this.helperElement.classList.contains('e-treeview')) {\n var helperHeight = helperElement.offsetHeight + (parseFloat(styles.marginTop)\n + parseFloat(styles.marginBottom));\n draEleTop = (draEleTop + helperHeight) > this.dragLimit.bottom ? (this.dragLimit.bottom - helperHeight) : draEleTop;\n }\n /* istanbul ignore next */\n // if(this.eleTop > 0) {\n // draEleTop += this.eleTop;\n // }\n if (this.enableScrollHandler && !this.clone) {\n draEleTop -= this.parentScrollY;\n draEleLeft -= this.parentScrollX;\n }\n if (this.dragArea && typeof this.dragArea !== 'string' && this.dragArea.classList.contains('e-kanban-content') && this.dragArea.style.position === 'relative') {\n draEleTop += this.dragArea.scrollTop;\n }\n var dragValue = this.getProcessedPositionValue({ top: draEleTop + 'px', left: draEleLeft + 'px' });\n setStyleAttribute(helperElement, this.getDragPosition(dragValue));\n if (!this.elementInViewport(helperElement) && this.enableAutoScroll && !this.helperElement.classList.contains('e-treeview')) {\n this.helperElement.scrollIntoView();\n }\n var elements = document.querySelectorAll(':hover');\n if (this.enableAutoScroll && this.helperElement.classList.contains('e-treeview')) {\n if (elements.length === 0) {\n elements = this.getPathElements(evt);\n }\n /* tslint:disable no-any */\n var scrollParent = this.getScrollParent(elements, false);\n if (this.elementInViewport(this.helperElement)) {\n this.getScrollPosition(scrollParent, draEleTop);\n }\n else if (!this.elementInViewport(this.helperElement)) {\n elements = [].slice.call(document.querySelectorAll(':hover'));\n if (elements.length === 0) {\n elements = this.getPathElements(evt);\n }\n scrollParent = this.getScrollParent(elements, true);\n this.getScrollPosition(scrollParent, draEleTop);\n }\n }\n this.dragProcessStarted = true;\n this.prevLeft = left;\n this.prevTop = top;\n this.position.left = left;\n this.position.top = top;\n this.pageX = pagex;\n this.pageY = pagey;\n };\n /* tslint:disable no-any */\n Draggable.prototype.getScrollParent = function (node, reverse) {\n /* tslint:disable no-any */\n var nodeEl = reverse ? node.reverse() : node;\n var hasScroll;\n for (var i = nodeEl.length - 1; i >= 0; i--) {\n hasScroll = window.getComputedStyle(nodeEl[parseInt(i.toString(), 10)])['overflow-y'];\n if ((hasScroll === 'auto' || hasScroll === 'scroll')\n && nodeEl[parseInt(i.toString(), 10)].scrollHeight > nodeEl[parseInt(i.toString(), 10)].clientHeight) {\n return nodeEl[parseInt(i.toString(), 10)];\n }\n }\n hasScroll = window.getComputedStyle(document.scrollingElement)['overflow-y'];\n if (hasScroll === 'visible') {\n document.scrollingElement.style.overflow = 'auto';\n return document.scrollingElement;\n }\n };\n Draggable.prototype.getScrollPosition = function (nodeEle, draEleTop) {\n if (nodeEle && nodeEle === document.scrollingElement) {\n if ((nodeEle.clientHeight + document.scrollingElement.scrollTop - this.helperElement.clientHeight) < draEleTop\n && nodeEle.getBoundingClientRect().height + this.parentClientRect.top > draEleTop) {\n nodeEle.scrollTop += this.helperElement.clientHeight;\n }\n else if (nodeEle.scrollTop > draEleTop - this.helperElement.clientHeight) {\n nodeEle.scrollTop -= this.helperElement.clientHeight;\n }\n }\n else if (nodeEle && nodeEle !== document.scrollingElement) {\n if ((nodeEle.clientHeight + nodeEle.getBoundingClientRect().top - this.helperElement.clientHeight + document.scrollingElement.scrollTop) < draEleTop) {\n nodeEle.scrollTop += this.helperElement.clientHeight;\n }\n else if (nodeEle.getBoundingClientRect().top > (draEleTop - this.helperElement.clientHeight - document.scrollingElement.scrollTop)) {\n nodeEle.scrollTop -= this.helperElement.clientHeight;\n }\n }\n };\n Draggable.prototype.getPathElements = function (evt) {\n var elementTop = evt.clientX > 0 ? evt.clientX : 0;\n var elementLeft = evt.clientY > 0 ? evt.clientY : 0;\n return document.elementsFromPoint(elementTop, elementLeft);\n };\n Draggable.prototype.triggerOutFunction = function (evt, eleObj) {\n this.hoverObject.instance.intOut(evt, eleObj.target);\n this.hoverObject.instance.dragData[this.scope] = null;\n this.hoverObject = null;\n };\n Draggable.prototype.getDragPosition = function (dragValue) {\n var temp = extend({}, dragValue);\n if (this.axis) {\n if (this.axis === 'x') {\n delete temp.top;\n }\n else if (this.axis === 'y') {\n delete temp.left;\n }\n }\n return temp;\n };\n Draggable.prototype.getDocumentWidthHeight = function (str) {\n var docBody = document.body;\n var docEle = document.documentElement;\n var returnValue = Math.max(docBody['scroll' + str], docEle['scroll' + str], docBody['offset' + str], docEle['offset' + str], docEle['client' + str]);\n return returnValue;\n };\n Draggable.prototype.intDragStop = function (evt) {\n this.dragProcessStarted = false;\n if (!isUndefined(evt.changedTouches) && (evt.changedTouches.length !== 1)) {\n return;\n }\n var type = ['touchend', 'pointerup', 'mouseup'];\n if (type.indexOf(evt.type) !== -1) {\n if (this.dragStop) {\n var curTarget = this.getProperTargetElement(evt);\n this.trigger('dragStop', { event: evt, element: this.element, target: curTarget, helper: this.helperElement });\n }\n this.intDestroy(evt);\n }\n else {\n this.element.setAttribute('aria-grabbed', 'false');\n }\n var eleObj = this.checkTargetElement(evt);\n if (eleObj.target && eleObj.instance) {\n eleObj.instance.dragStopCalled = true;\n eleObj.instance.dragData[this.scope] = this.droppables[this.scope];\n eleObj.instance.intDrop(evt, eleObj.target);\n }\n this.setGlobalDroppables(true);\n document.body.classList.remove('e-prevent-select');\n };\n /**\n * @private\n */\n Draggable.prototype.intDestroy = function (evt) {\n this.dragProcessStarted = false;\n this.toggleEvents();\n document.body.classList.remove('e-prevent-select');\n this.element.setAttribute('aria-grabbed', 'false');\n EventHandler.remove(document, Browser.touchMoveEvent, this.intDragStart);\n EventHandler.remove(document, Browser.touchEndEvent, this.intDragStop);\n EventHandler.remove(document, Browser.touchEndEvent, this.intDestroy);\n EventHandler.remove(document, Browser.touchMoveEvent, this.intDrag);\n if (this.isDragStarted()) {\n this.isDragStarted(true);\n }\n };\n // triggers when property changed\n Draggable.prototype.onPropertyChanged = function (newProp, oldProp) {\n //No Code to handle\n };\n Draggable.prototype.getModuleName = function () {\n return 'draggable';\n };\n Draggable.prototype.isDragStarted = function (change) {\n if (change) {\n isDraggedObject.isDragged = !isDraggedObject.isDragged;\n }\n return isDraggedObject.isDragged;\n };\n Draggable.prototype.setDragArea = function () {\n var eleWidthBound;\n var eleHeightBound;\n var top = 0;\n var left = 0;\n var ele;\n var type = typeof this.dragArea;\n if (type === 'string') {\n ele = select(this.dragArea);\n }\n else {\n ele = this.dragArea;\n }\n if (ele) {\n var elementArea = ele.getBoundingClientRect();\n eleWidthBound = ele.scrollWidth ? ele.scrollWidth : elementArea.right - elementArea.left;\n eleHeightBound = ele.scrollHeight ? (this.dragArea && !isNullOrUndefined(this.helperElement) && this.helperElement.classList.contains('e-treeview')) ? ele.clientHeight : ele.scrollHeight : elementArea.bottom - elementArea.top;\n var keys = ['Top', 'Left', 'Bottom', 'Right'];\n var styles = getComputedStyle(ele);\n for (var i = 0; i < keys.length; i++) {\n var key = keys[parseInt(i.toString(), 10)];\n var tborder = styles['border' + key + 'Width'];\n var tpadding = styles['padding' + key];\n var lowerKey = key.toLowerCase();\n this.borderWidth[\"\" + lowerKey] = isNaN(parseFloat(tborder)) ? 0 : parseFloat(tborder);\n this.padding[\"\" + lowerKey] = isNaN(parseFloat(tpadding)) ? 0 : parseFloat(tpadding);\n }\n if (this.dragArea && !isNullOrUndefined(this.helperElement) && this.helperElement.classList.contains('e-treeview')) {\n top = elementArea.top + document.scrollingElement.scrollTop;\n }\n else {\n top = elementArea.top;\n }\n left = elementArea.left;\n this.dragLimit.left = left + this.borderWidth.left + this.padding.left;\n this.dragLimit.top = ele.offsetTop + this.borderWidth.top + this.padding.top;\n this.dragLimit.right = left + eleWidthBound - (this.borderWidth.right + this.padding.right);\n this.dragLimit.bottom = top + eleHeightBound - (this.borderWidth.bottom + this.padding.bottom);\n }\n };\n Draggable.prototype.getProperTargetElement = function (evt) {\n var intCoord = this.getCoordinates(evt);\n var ele;\n var prevStyle = this.helperElement.style.pointerEvents || '';\n var isPointer = evt.type.indexOf('pointer') !== -1 && Browser.info.name === 'safari' && parseInt(Browser.info.version) > 12;\n if (compareElementParent(evt.target, this.helperElement) || evt.type.indexOf('touch') !== -1 || isPointer) {\n this.helperElement.style.pointerEvents = 'none';\n ele = document.elementFromPoint(intCoord.clientX, intCoord.clientY);\n this.helperElement.style.pointerEvents = prevStyle;\n }\n else {\n ele = evt.target;\n }\n return ele;\n };\n /* istanbul ignore next */\n Draggable.prototype.currentStateCheck = function (ele, oldEle) {\n var elem;\n if (!isNullOrUndefined(this.currentStateTarget) && this.currentStateTarget !== ele) {\n elem = this.currentStateTarget;\n }\n else {\n elem = !isNullOrUndefined(oldEle) ? oldEle : ele;\n }\n return elem;\n };\n Draggable.prototype.getMousePosition = function (evt, isdragscroll) {\n /* tslint:disable no-any */\n var dragEle = evt.srcElement !== undefined ? evt.srcElement : evt.target;\n var intCoord = this.getCoordinates(evt);\n var pageX;\n var pageY;\n var isOffsetParent = isNullOrUndefined(dragEle.offsetParent);\n /* istanbul ignore next */\n if (isdragscroll) {\n pageX = this.clone ? intCoord.pageX :\n (intCoord.pageX + (isOffsetParent ? 0 : dragEle.offsetParent.scrollLeft)) - this.relativeXPosition;\n pageY = this.clone ? intCoord.pageY :\n (intCoord.pageY + (isOffsetParent ? 0 : dragEle.offsetParent.scrollTop)) - this.relativeYPosition;\n }\n else {\n pageX = this.clone ? intCoord.pageX : (intCoord.pageX + window.pageXOffset) - this.relativeXPosition;\n pageY = this.clone ? intCoord.pageY : (intCoord.pageY + window.pageYOffset) - this.relativeYPosition;\n }\n if (this.element && this.element.classList.length > 0 && this.element.classList.value.indexOf(\"e-dialog\") === -1 && document.scrollingElement) {\n var isVerticalScroll = document.scrollingElement.scrollHeight > 0 && document.scrollingElement.scrollHeight > document.scrollingElement.clientHeight && document.scrollingElement.scrollTop > 0;\n var isHorrizontalScroll = document.scrollingElement.scrollWidth > 0 && document.scrollingElement.scrollWidth > document.scrollingElement.clientWidth && document.scrollingElement.scrollLeft > 0;\n pageX = isHorrizontalScroll ? pageX - document.scrollingElement.scrollLeft : pageX;\n pageY = isVerticalScroll ? pageY - document.scrollingElement.scrollTop : pageY;\n }\n return {\n left: pageX - (this.margin.left + this.cursorAt.left),\n top: pageY - (this.margin.top + this.cursorAt.top)\n };\n };\n Draggable.prototype.getCoordinates = function (evt) {\n if (evt.type.indexOf('touch') > -1) {\n return evt.changedTouches[0];\n }\n return evt;\n };\n Draggable.prototype.getHelperElement = function (evt) {\n var element;\n if (this.clone) {\n if (this.helper) {\n element = this.helper({ sender: evt, element: this.target });\n }\n else {\n element = createElement('div', { className: 'e-drag-helper e-block-touch', innerHTML: 'Draggable' });\n document.body.appendChild(element);\n }\n }\n else {\n element = this.element;\n }\n return element;\n };\n Draggable.prototype.setGlobalDroppables = function (reset, drag, helper) {\n this.droppables[this.scope] = reset ? null : {\n draggable: drag,\n helper: helper,\n draggedElement: this.element\n };\n };\n Draggable.prototype.checkTargetElement = function (evt) {\n var target = this.getProperTargetElement(evt);\n var dropIns = this.getDropInstance(target);\n if (!dropIns && target && !isNullOrUndefined(target.parentNode)) {\n var parent_1 = closest(target.parentNode, '.e-droppable') || target.parentElement;\n if (parent_1) {\n dropIns = this.getDropInstance(parent_1);\n }\n }\n return { target: target, instance: dropIns };\n };\n Draggable.prototype.getDropInstance = function (ele) {\n var name = 'getModuleName';\n var drop;\n var eleInst = ele && ele.ej2_instances;\n if (eleInst) {\n for (var _i = 0, eleInst_1 = eleInst; _i < eleInst_1.length; _i++) {\n var inst = eleInst_1[_i];\n if (inst[\"\" + name]() === 'droppable') {\n drop = inst;\n break;\n }\n }\n }\n return drop;\n };\n Draggable.prototype.destroy = function () {\n this.toggleEvents(true);\n _super.prototype.destroy.call(this);\n };\n var Draggable_1;\n __decorate([\n Complex({}, Position)\n ], Draggable.prototype, \"cursorAt\", void 0);\n __decorate([\n Property(true)\n ], Draggable.prototype, \"clone\", void 0);\n __decorate([\n Property()\n ], Draggable.prototype, \"dragArea\", void 0);\n __decorate([\n Property()\n ], Draggable.prototype, \"isDragScroll\", void 0);\n __decorate([\n Property()\n ], Draggable.prototype, \"isReplaceDragEle\", void 0);\n __decorate([\n Property(true)\n ], Draggable.prototype, \"isPreventSelect\", void 0);\n __decorate([\n Event()\n ], Draggable.prototype, \"drag\", void 0);\n __decorate([\n Event()\n ], Draggable.prototype, \"dragStart\", void 0);\n __decorate([\n Event()\n ], Draggable.prototype, \"dragStop\", void 0);\n __decorate([\n Property(1)\n ], Draggable.prototype, \"distance\", void 0);\n __decorate([\n Property()\n ], Draggable.prototype, \"handle\", void 0);\n __decorate([\n Property()\n ], Draggable.prototype, \"abort\", void 0);\n __decorate([\n Property()\n ], Draggable.prototype, \"helper\", void 0);\n __decorate([\n Property('default')\n ], Draggable.prototype, \"scope\", void 0);\n __decorate([\n Property('')\n ], Draggable.prototype, \"dragTarget\", void 0);\n __decorate([\n Property()\n ], Draggable.prototype, \"axis\", void 0);\n __decorate([\n Property()\n ], Draggable.prototype, \"queryPositionInfo\", void 0);\n __decorate([\n Property(false)\n ], Draggable.prototype, \"enableTailMode\", void 0);\n __decorate([\n Property(false)\n ], Draggable.prototype, \"skipDistanceCheck\", void 0);\n __decorate([\n Property(true)\n ], Draggable.prototype, \"preventDefault\", void 0);\n __decorate([\n Property(false)\n ], Draggable.prototype, \"enableAutoScroll\", void 0);\n __decorate([\n Property(false)\n ], Draggable.prototype, \"enableTapHold\", void 0);\n __decorate([\n Property(750)\n ], Draggable.prototype, \"tapHoldThreshold\", void 0);\n __decorate([\n Property(false)\n ], Draggable.prototype, \"enableScrollHandler\", void 0);\n Draggable = Draggable_1 = __decorate([\n NotifyPropertyChanges\n ], Draggable);\n return Draggable;\n}(Base));\nexport { Draggable };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Base } from './base';\nimport { Browser } from './browser';\nimport { isVisible, matches } from './dom';\nimport { Property, NotifyPropertyChanges, Event } from './notify-property-change';\nimport { EventHandler } from './event-handler';\nimport { compareElementParent } from './util';\n/**\n * Droppable Module provides support to enable droppable functionality in Dom Elements.\n * ```html\n *
Droppable
\n * \n * ```\n */\nvar Droppable = /** @class */ (function (_super) {\n __extends(Droppable, _super);\n function Droppable(element, options) {\n var _this = _super.call(this, options, element) || this;\n _this.mouseOver = false;\n _this.dragData = {};\n _this.dragStopCalled = false;\n _this.bind();\n return _this;\n }\n Droppable.prototype.bind = function () {\n this.wireEvents();\n };\n Droppable.prototype.wireEvents = function () {\n EventHandler.add(this.element, Browser.touchEndEvent, this.intDrop, this);\n };\n // triggers when property changed\n // eslint-disable-next-line\n Droppable.prototype.onPropertyChanged = function (newProp, oldProp) {\n //No Code to handle\n };\n Droppable.prototype.getModuleName = function () {\n return 'droppable';\n };\n Droppable.prototype.intOver = function (event, element) {\n if (!this.mouseOver) {\n var drag = this.dragData[this.scope];\n this.trigger('over', { event: event, target: element, dragData: drag });\n this.mouseOver = true;\n }\n };\n Droppable.prototype.intOut = function (event, element) {\n if (this.mouseOver) {\n this.trigger('out', { evt: event, target: element });\n this.mouseOver = false;\n }\n };\n Droppable.prototype.intDrop = function (evt, element) {\n if (!this.dragStopCalled) {\n return;\n }\n else {\n this.dragStopCalled = false;\n }\n var accept = true;\n var drag = this.dragData[this.scope];\n var isDrag = drag ? (drag.helper && isVisible(drag.helper)) : false;\n var area;\n if (isDrag) {\n area = this.isDropArea(evt, drag.helper, element);\n if (this.accept) {\n accept = matches(drag.helper, this.accept);\n }\n }\n if (isDrag && this.drop && area.canDrop && accept) {\n this.trigger('drop', { event: evt, target: area.target, droppedElement: drag.helper, dragData: drag });\n }\n this.mouseOver = false;\n };\n Droppable.prototype.isDropArea = function (evt, helper, element) {\n var area = { canDrop: true, target: element || evt.target };\n var isTouch = evt.type === 'touchend';\n if (isTouch || area.target === helper) {\n helper.style.display = 'none';\n var coord = isTouch ? (evt.changedTouches[0]) : evt;\n var ele = document.elementFromPoint(coord.clientX, coord.clientY);\n area.canDrop = false;\n area.canDrop = compareElementParent(ele, this.element);\n if (area.canDrop) {\n area.target = ele;\n }\n helper.style.display = '';\n }\n return area;\n };\n Droppable.prototype.destroy = function () {\n EventHandler.remove(this.element, Browser.touchEndEvent, this.intDrop);\n _super.prototype.destroy.call(this);\n };\n __decorate([\n Property()\n ], Droppable.prototype, \"accept\", void 0);\n __decorate([\n Property('default')\n ], Droppable.prototype, \"scope\", void 0);\n __decorate([\n Event()\n ], Droppable.prototype, \"drop\", void 0);\n __decorate([\n Event()\n ], Droppable.prototype, \"over\", void 0);\n __decorate([\n Event()\n ], Droppable.prototype, \"out\", void 0);\n Droppable = __decorate([\n NotifyPropertyChanges\n ], Droppable);\n return Droppable;\n}(Base));\nexport { Droppable };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, NotifyPropertyChanges, Event } from './notify-property-change';\nimport { Base } from './base';\nvar keyCode = {\n 'backspace': 8,\n 'tab': 9,\n 'enter': 13,\n 'shift': 16,\n 'control': 17,\n 'alt': 18,\n 'pause': 19,\n 'capslock': 20,\n 'space': 32,\n 'escape': 27,\n 'pageup': 33,\n 'pagedown': 34,\n 'end': 35,\n 'home': 36,\n 'leftarrow': 37,\n 'uparrow': 38,\n 'rightarrow': 39,\n 'downarrow': 40,\n 'insert': 45,\n 'delete': 46,\n 'f1': 112,\n 'f2': 113,\n 'f3': 114,\n 'f4': 115,\n 'f5': 116,\n 'f6': 117,\n 'f7': 118,\n 'f8': 119,\n 'f9': 120,\n 'f10': 121,\n 'f11': 122,\n 'f12': 123,\n 'semicolon': 186,\n 'plus': 187,\n 'comma': 188,\n 'minus': 189,\n 'dot': 190,\n 'forwardslash': 191,\n 'graveaccent': 192,\n 'openbracket': 219,\n 'backslash': 220,\n 'closebracket': 221,\n 'singlequote': 222\n};\n/**\n * KeyboardEvents class enables you to bind key action desired key combinations for ex., Ctrl+A, Delete, Alt+Space etc.\n * ```html\n *
;\n * \n * ```\n */\nvar KeyboardEvents = /** @class */ (function (_super) {\n __extends(KeyboardEvents, _super);\n /**\n * Initializes the KeyboardEvents\n *\n * @param {HTMLElement} element ?\n * @param {KeyboardEventsModel} options ?\n */\n function KeyboardEvents(element, options) {\n var _this = _super.call(this, options, element) || this;\n /**\n * To handle a key press event returns null\n *\n * @param {KeyboardEventArgs} e ?\n * @returns {void} ?\n */\n _this.keyPressHandler = function (e) {\n var isAltKey = e.altKey;\n var isCtrlKey = e.ctrlKey;\n var isShiftKey = e.shiftKey;\n var curkeyCode = e.which;\n var keys = Object.keys(_this.keyConfigs);\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var key = keys_1[_i];\n var configCollection = _this.keyConfigs[\"\" + key].split(',');\n for (var _a = 0, configCollection_1 = configCollection; _a < configCollection_1.length; _a++) {\n var rconfig = configCollection_1[_a];\n var rKeyObj = KeyboardEvents_1.getKeyConfigData(rconfig.trim());\n if (isAltKey === rKeyObj.altKey && isCtrlKey === rKeyObj.ctrlKey &&\n isShiftKey === rKeyObj.shiftKey && curkeyCode === rKeyObj.keyCode) {\n e.action = key;\n if (_this.keyAction) {\n _this.keyAction(e);\n }\n }\n }\n }\n };\n _this.bind();\n return _this;\n }\n KeyboardEvents_1 = KeyboardEvents;\n /**\n * Unwire bound events and destroy the instance.\n *\n * @returns {void} ?\n */\n KeyboardEvents.prototype.destroy = function () {\n this.unwireEvents();\n _super.prototype.destroy.call(this);\n };\n /**\n * Function can be used to specify certain action if a property is changed\n *\n * @param {KeyboardEventsModel} newProp ?\n * @param {KeyboardEventsModel} oldProp ?\n * @returns {void} ?\n * @private\n */\n // eslint-disable-next-line\n KeyboardEvents.prototype.onPropertyChanged = function (newProp, oldProp) {\n // No code are needed\n };\n KeyboardEvents.prototype.bind = function () {\n this.wireEvents();\n };\n /**\n * To get the module name, returns 'keyboard'.\n *\n * @returns {string} ?\n * @private\n */\n KeyboardEvents.prototype.getModuleName = function () {\n return 'keyboard';\n };\n /**\n * Wiring event handlers to events\n *\n * @returns {void} ?\n * @private\n */\n KeyboardEvents.prototype.wireEvents = function () {\n this.element.addEventListener(this.eventName, this.keyPressHandler);\n };\n /**\n * Unwiring event handlers to events\n *\n * @returns {void} ?\n * @private\n */\n KeyboardEvents.prototype.unwireEvents = function () {\n this.element.removeEventListener(this.eventName, this.keyPressHandler);\n };\n /**\n * To get the key configuration data\n *\n * @param {string} config - configuration data\n * @returns {KeyData} ?\n */\n KeyboardEvents.getKeyConfigData = function (config) {\n if (config in this.configCache) {\n return this.configCache[\"\" + config];\n }\n var keys = config.toLowerCase().split('+');\n var keyData = {\n altKey: (keys.indexOf('alt') !== -1 ? true : false),\n ctrlKey: (keys.indexOf('ctrl') !== -1 ? true : false),\n shiftKey: (keys.indexOf('shift') !== -1 ? true : false),\n keyCode: null\n };\n if (keys[keys.length - 1].length > 1 && !!Number(keys[keys.length - 1])) {\n keyData.keyCode = Number(keys[keys.length - 1]);\n }\n else {\n keyData.keyCode = KeyboardEvents_1.getKeyCode(keys[keys.length - 1]);\n }\n KeyboardEvents_1.configCache[\"\" + config] = keyData;\n return keyData;\n };\n // Return the keycode value as string\n KeyboardEvents.getKeyCode = function (keyVal) {\n return keyCode[\"\" + keyVal] || keyVal.toUpperCase().charCodeAt(0);\n };\n var KeyboardEvents_1;\n KeyboardEvents.configCache = {};\n __decorate([\n Property({})\n ], KeyboardEvents.prototype, \"keyConfigs\", void 0);\n __decorate([\n Property('keyup')\n ], KeyboardEvents.prototype, \"eventName\", void 0);\n __decorate([\n Event()\n ], KeyboardEvents.prototype, \"keyAction\", void 0);\n KeyboardEvents = KeyboardEvents_1 = __decorate([\n NotifyPropertyChanges\n ], KeyboardEvents);\n return KeyboardEvents;\n}(Base));\nexport { KeyboardEvents };\n","import { extend, isNullOrUndefined } from './util';\nimport { defaultCulture } from './internationalization';\n/**\n * L10n modules provides localized text for different culture.\n * ```typescript\n * import {setCulture} from '@syncfusion/ts-base-library';\n * //load global locale object common for all components.\n * L10n.load({\n * 'fr-BE': {\n * 'button': {\n * 'check': 'vérifié'\n * }\n * }\n * });\n * //set globale default locale culture.\n * setCulture('fr-BE');\n * let instance: L10n = new L10n('button', {\n * check: 'checked'\n * });\n * //Get locale text for current property.\n * instance.getConstant('check');\n * //Change locale culture in a component.\n * instance.setLocale('en-US');\n * ```\n */\nvar L10n = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param {string} controlName ?\n * @param {Object} localeStrings ?\n * @param {string} locale ?\n */\n function L10n(controlName, localeStrings, locale) {\n this.controlName = controlName;\n this.localeStrings = localeStrings;\n this.setLocale(locale || defaultCulture);\n }\n /**\n * Sets the locale text\n *\n * @param {string} locale ?\n * @returns {void} ?\n */\n L10n.prototype.setLocale = function (locale) {\n var intLocale = this.intGetControlConstant(L10n.locale, locale);\n this.currentLocale = intLocale || this.localeStrings;\n };\n /**\n * Sets the global locale for all components.\n *\n * @param {Object} localeObject - specifies the localeObject to be set as global locale.\n * @returns {void} ?\n */\n L10n.load = function (localeObject) {\n this.locale = extend(this.locale, localeObject, {}, true);\n };\n /**\n * Returns current locale text for the property based on the culture name and control name.\n *\n * @param {string} prop - specifies the property for which localize text to be returned.\n * @returns {string} ?\n */\n L10n.prototype.getConstant = function (prop) {\n // Removed conditional operator because this method does not return correct value when passing 0 as value in localization\n if (!isNullOrUndefined(this.currentLocale[\"\" + prop])) {\n return this.currentLocale[\"\" + prop];\n }\n else {\n return this.localeStrings[\"\" + prop] || '';\n }\n };\n /**\n * Returns the control constant object for current object and the locale specified.\n *\n * @param {Object} curObject ?\n * @param {string} locale ?\n * @returns {Object} ?\n */\n L10n.prototype.intGetControlConstant = function (curObject, locale) {\n if ((curObject)[\"\" + locale]) {\n return (curObject)[\"\" + locale][this.controlName];\n }\n return null;\n };\n L10n.locale = {};\n return L10n;\n}());\nexport { L10n };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { extend } from './util';\nimport { Property, Complex, NotifyPropertyChanges, Event } from './notify-property-change';\nimport { Browser } from './browser';\nimport { Base } from './base';\nimport { ChildProperty } from './child-property';\nimport { EventHandler } from './event-handler';\n/**\n * SwipeSettings is a framework module that provides support to handle swipe event like swipe up, swipe right, etc..,\n */\nvar SwipeSettings = /** @class */ (function (_super) {\n __extends(SwipeSettings, _super);\n function SwipeSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(50)\n ], SwipeSettings.prototype, \"swipeThresholdDistance\", void 0);\n return SwipeSettings;\n}(ChildProperty));\nexport { SwipeSettings };\nvar swipeRegex = /(Up|Down)/;\n/**\n * Touch class provides support to handle the touch event like tap, double tap, tap hold, etc..,\n * ```typescript\n * let node: HTMLElement;\n * let touchObj: Touch = new Touch({\n * element: node,\n * tap: function (e) {\n * // tap handler function code\n * }\n * tapHold: function (e) {\n * // tap hold handler function code\n * }\n * scroll: function (e) {\n * // scroll handler function code\n * }\n * swipe: function (e) {\n * // swipe handler function code\n * }\n * });\n * ```\n */\nvar Touch = /** @class */ (function (_super) {\n __extends(Touch, _super);\n /* End-Properties */\n function Touch(element, options) {\n var _this = _super.call(this, options, element) || this;\n _this.touchAction = true;\n _this.tapCount = 0;\n /**\n *\n * @param {MouseEventArgs | TouchEventArgs} evt ?\n * @returns {void} ?\n */\n _this.startEvent = function (evt) {\n if (_this.touchAction === true) {\n var point = _this.updateChangeTouches(evt);\n if (evt.changedTouches !== undefined) {\n _this.touchAction = false;\n }\n _this.isTouchMoved = false;\n _this.movedDirection = '';\n _this.startPoint = _this.lastMovedPoint = { clientX: point.clientX, clientY: point.clientY };\n _this.startEventData = point;\n _this.hScrollLocked = _this.vScrollLocked = false;\n _this.tStampStart = Date.now();\n _this.timeOutTapHold = setTimeout(function () { _this.tapHoldEvent(evt); }, _this.tapHoldThreshold);\n EventHandler.add(_this.element, Browser.touchMoveEvent, _this.moveEvent, _this);\n EventHandler.add(_this.element, Browser.touchEndEvent, _this.endEvent, _this);\n EventHandler.add(_this.element, Browser.touchCancelEvent, _this.cancelEvent, _this);\n }\n };\n /**\n *\n * @param {MouseEventArgs | TouchEventArgs} evt ?\n * @returns {void} ?\n */\n _this.moveEvent = function (evt) {\n var point = _this.updateChangeTouches(evt);\n _this.movedPoint = point;\n _this.isTouchMoved = !(point.clientX === _this.startPoint.clientX && point.clientY === _this.startPoint.clientY);\n var eScrollArgs = {};\n if (_this.isTouchMoved) {\n clearTimeout(_this.timeOutTapHold);\n _this.calcScrollPoints(evt);\n var scrollArg = {\n startEvents: _this.startEventData,\n originalEvent: evt, startX: _this.startPoint.clientX,\n startY: _this.startPoint.clientY, distanceX: _this.distanceX,\n distanceY: _this.distanceY, scrollDirection: _this.scrollDirection,\n velocity: _this.getVelocity(point)\n };\n eScrollArgs = extend(eScrollArgs, {}, scrollArg);\n _this.trigger('scroll', eScrollArgs);\n _this.lastMovedPoint = { clientX: point.clientX, clientY: point.clientY };\n }\n };\n /**\n *\n * @param {MouseEventArgs | TouchEventArgs} evt ?\n * @returns {void} ?\n */\n _this.cancelEvent = function (evt) {\n clearTimeout(_this.timeOutTapHold);\n clearTimeout(_this.timeOutTap);\n _this.tapCount = 0;\n _this.swipeFn(evt);\n EventHandler.remove(_this.element, Browser.touchCancelEvent, _this.cancelEvent);\n };\n /**\n *\n * @param {MouseEventArgs | TouchEventArgs} evt ?\n * @returns {void} ?\n */\n _this.endEvent = function (evt) {\n _this.swipeFn(evt);\n if (!_this.isTouchMoved) {\n if (typeof _this.tap === 'function') {\n _this.trigger('tap', { originalEvent: evt, tapCount: ++_this.tapCount });\n _this.timeOutTap = setTimeout(function () {\n _this.tapCount = 0;\n }, _this.tapThreshold);\n }\n }\n _this.modeclear();\n };\n /**\n *\n * @param {MouseEventArgs | TouchEventArgs} evt ?\n * @returns {void} ?\n */\n _this.swipeFn = function (evt) {\n clearTimeout(_this.timeOutTapHold);\n clearTimeout(_this.timeOutTap);\n var point = _this.updateChangeTouches(evt);\n var diffX = point.clientX - _this.startPoint.clientX;\n var diffY = point.clientY - _this.startPoint.clientY;\n diffX = Math.floor(diffX < 0 ? -1 * diffX : diffX);\n diffY = Math.floor(diffY < 0 ? -1 * diffY : diffX);\n _this.isTouchMoved = diffX > 1 || diffY > 1;\n var isFirefox = (/Firefox/).test(Browser.userAgent);\n if (isFirefox && point.clientX === 0 && point.clientY === 0 && evt.type === 'mouseup') {\n _this.isTouchMoved = false;\n }\n _this.endPoint = point;\n _this.calcPoints(evt);\n var swipeArgs = {\n originalEvent: evt,\n startEvents: _this.startEventData,\n startX: _this.startPoint.clientX,\n startY: _this.startPoint.clientY,\n distanceX: _this.distanceX, distanceY: _this.distanceY, swipeDirection: _this.movedDirection,\n velocity: _this.getVelocity(point)\n };\n if (_this.isTouchMoved) {\n var eSwipeArgs = void 0;\n var tDistance = _this.swipeSettings.swipeThresholdDistance;\n // eslint-disable-next-line\n eSwipeArgs = extend(eSwipeArgs, _this.defaultArgs, swipeArgs);\n var canTrigger = false;\n var ele = _this.element;\n var scrollBool = _this.isScrollable(ele);\n var moved = swipeRegex.test(_this.movedDirection);\n if ((tDistance < _this.distanceX && !moved) || (tDistance < _this.distanceY && moved)) {\n if (!scrollBool) {\n canTrigger = true;\n }\n else {\n canTrigger = _this.checkSwipe(ele, moved);\n }\n }\n if (canTrigger) {\n _this.trigger('swipe', eSwipeArgs);\n }\n }\n _this.modeclear();\n };\n _this.modeclear = function () {\n _this.modeClear = setTimeout(function () {\n _this.touchAction = true;\n }, (typeof _this.tap !== 'function' ? 0 : 20));\n _this.lastTapTime = new Date().getTime();\n EventHandler.remove(_this.element, Browser.touchMoveEvent, _this.moveEvent);\n EventHandler.remove(_this.element, Browser.touchEndEvent, _this.endEvent);\n EventHandler.remove(_this.element, Browser.touchCancelEvent, _this.cancelEvent);\n };\n _this.bind();\n return _this;\n }\n // triggers when property changed\n /**\n *\n * @private\n * @param {TouchModel} newProp ?\n * @param {TouchModel} oldProp ?\n * @returns {void} ?\n */\n // eslint-disable-next-line\n Touch.prototype.onPropertyChanged = function (newProp, oldProp) {\n //No Code to handle\n };\n Touch.prototype.bind = function () {\n this.wireEvents();\n if (Browser.isIE) {\n this.element.classList.add('e-block-touch');\n }\n };\n /**\n * To destroy the touch instance.\n *\n * @returns {void}\n */\n Touch.prototype.destroy = function () {\n this.unwireEvents();\n _super.prototype.destroy.call(this);\n };\n // Need to changes the event binding once we updated the event handler.\n Touch.prototype.wireEvents = function () {\n EventHandler.add(this.element, Browser.touchStartEvent, this.startEvent, this);\n };\n Touch.prototype.unwireEvents = function () {\n EventHandler.remove(this.element, Browser.touchStartEvent, this.startEvent);\n };\n /**\n * Returns module name as touch\n *\n * @returns {string} ?\n * @private\n */\n Touch.prototype.getModuleName = function () {\n return 'touch';\n };\n /**\n * Returns if the HTML element is Scrollable.\n *\n * @param {HTMLElement} element - HTML Element to check if Scrollable.\n * @returns {boolean} ?\n */\n Touch.prototype.isScrollable = function (element) {\n var eleStyle = getComputedStyle(element);\n var style = eleStyle.overflow + eleStyle.overflowX + eleStyle.overflowY;\n if ((/(auto|scroll)/).test(style)) {\n return true;\n }\n return false;\n };\n /**\n *\n * @param {MouseEventArgs | TouchEventArgs} evt ?\n * @returns {void} ?\n */\n Touch.prototype.tapHoldEvent = function (evt) {\n this.tapCount = 0;\n this.touchAction = true;\n var eTapArgs;\n EventHandler.remove(this.element, Browser.touchMoveEvent, this.moveEvent);\n EventHandler.remove(this.element, Browser.touchEndEvent, this.endEvent);\n // eslint-disable-next-line\n eTapArgs = { originalEvent: evt };\n this.trigger('tapHold', eTapArgs);\n EventHandler.remove(this.element, Browser.touchCancelEvent, this.cancelEvent);\n };\n Touch.prototype.calcPoints = function (evt) {\n var point = this.updateChangeTouches(evt);\n this.defaultArgs = { originalEvent: evt };\n this.distanceX = Math.abs((Math.abs(point.clientX) - Math.abs(this.startPoint.clientX)));\n this.distanceY = Math.abs((Math.abs(point.clientY) - Math.abs(this.startPoint.clientY)));\n if (this.distanceX > this.distanceY) {\n this.movedDirection = (point.clientX > this.startPoint.clientX) ? 'Right' : 'Left';\n }\n else {\n this.movedDirection = (point.clientY < this.startPoint.clientY) ? 'Up' : 'Down';\n }\n };\n Touch.prototype.calcScrollPoints = function (evt) {\n var point = this.updateChangeTouches(evt);\n this.defaultArgs = { originalEvent: evt };\n this.distanceX = Math.abs((Math.abs(point.clientX) - Math.abs(this.lastMovedPoint.clientX)));\n this.distanceY = Math.abs((Math.abs(point.clientY) - Math.abs(this.lastMovedPoint.clientY)));\n if ((this.distanceX > this.distanceY || this.hScrollLocked === true) && this.vScrollLocked === false) {\n this.scrollDirection = (point.clientX > this.lastMovedPoint.clientX) ? 'Right' : 'Left';\n this.hScrollLocked = true;\n }\n else {\n this.scrollDirection = (point.clientY < this.lastMovedPoint.clientY) ? 'Up' : 'Down';\n this.vScrollLocked = true;\n }\n };\n Touch.prototype.getVelocity = function (pnt) {\n var newX = pnt.clientX;\n var newY = pnt.clientY;\n var newT = Date.now();\n var xDist = newX - this.startPoint.clientX;\n var yDist = newY - this.startPoint.clientX;\n var interval = newT - this.tStampStart;\n return Math.sqrt(xDist * xDist + yDist * yDist) / interval;\n };\n // eslint-disable-next-line\n Touch.prototype.checkSwipe = function (ele, flag) {\n var keys = ['scroll', 'offset'];\n var temp = flag ? ['Height', 'Top'] : ['Width', 'Left'];\n if ((ele[keys[0] + temp[0]] <= ele[keys[1] + temp[0]])) {\n return true;\n }\n return (ele[keys[0] + temp[1]] === 0) ||\n (ele[keys[1] + temp[0]] + ele[keys[0] + temp[1]] >= ele[keys[0] + temp[0]]);\n };\n Touch.prototype.updateChangeTouches = function (evt) {\n var point = evt.changedTouches && evt.changedTouches.length !== 0 ? evt.changedTouches[0] : evt;\n return point;\n };\n __decorate([\n Event()\n ], Touch.prototype, \"tap\", void 0);\n __decorate([\n Event()\n ], Touch.prototype, \"tapHold\", void 0);\n __decorate([\n Event()\n ], Touch.prototype, \"swipe\", void 0);\n __decorate([\n Event()\n ], Touch.prototype, \"scroll\", void 0);\n __decorate([\n Property(350)\n ], Touch.prototype, \"tapThreshold\", void 0);\n __decorate([\n Property(750)\n ], Touch.prototype, \"tapHoldThreshold\", void 0);\n __decorate([\n Complex({}, SwipeSettings)\n ], Touch.prototype, \"swipeSettings\", void 0);\n Touch = __decorate([\n NotifyPropertyChanges\n ], Touch);\n return Touch;\n}(Base));\nexport { Touch };\n","/**\n * Template Engine\n */\nvar LINES = new RegExp('\\\\n|\\\\r|\\\\s\\\\s+', 'g');\nvar QUOTES = new RegExp(/'|\"/g);\nvar IF_STMT = new RegExp('if ?\\\\(');\nvar ELSEIF_STMT = new RegExp('else if ?\\\\(');\nvar ELSE_STMT = new RegExp('else');\nvar FOR_STMT = new RegExp('for ?\\\\(');\nvar IF_OR_FOR = new RegExp('(/if|/for)');\nvar CALL_FUNCTION = new RegExp('\\\\((.*)\\\\)', '');\nvar NOT_NUMBER = new RegExp('^[0-9]+$', 'g');\nvar WORD = new RegExp('[\\\\w\"\\'.\\\\s+]+', 'g');\nvar DBL_QUOTED_STR = new RegExp('\"(.*?)\"', 'g');\nvar WORDIF = new RegExp('[\\\\w\"\\'@#$.\\\\s-+]+', 'g');\nvar exp = new RegExp('\\\\${([^}]*)}', 'g');\n// let cachedTemplate: Object = {};\nvar ARR_OBJ = /^\\..*/gm;\nvar SINGLE_SLASH = /\\\\/gi;\nvar DOUBLE_SLASH = /\\\\\\\\/gi;\nvar WORDFUNC = new RegExp('[\\\\w\"\\'@#$.\\\\s+]+', 'g');\nvar WINDOWFUNC = /\\window\\./gm;\n/**\n * The function to set regular expression for template expression string.\n *\n * @param {RegExp} value - Value expression.\n * @returns {RegExp} ?\n * @private\n */\nexport function expression(value) {\n if (value) {\n exp = value;\n }\n return exp;\n}\n// /**\n// * To render the template string from the given data.\n// * @param {string} template - String Template.\n// * @param {Object[]|JSON} data - DataSource for the template.\n// * @param {Object} helper? - custom helper object.\n// */\n// export function template(template: string, data: JSON, helper?: Object): string {\n// let hash: string = hashCode(template);\n// let tmpl: Function;\n// if (!cachedTemplate[hash]) {\n// tmpl = cachedTemplate[hash] = compile(template, helper);\n// } else {\n// tmpl = cachedTemplate[hash];\n// }\n// return tmpl(data);\n// }\n/**\n * Compile the template string into template function.\n *\n * @param {string} template - The template string which is going to convert.\n * @param {Object} helper - Helper functions as an object.\n * @param {boolean} ignorePrefix ?\n * @returns {string} ?\n * @private\n */\nexport function compile(template, helper, ignorePrefix) {\n var argName = 'data';\n var evalExpResult = evalExp(template, argName, helper, ignorePrefix);\n // eslint-disable-next-line\n var condtion = \"var valueRegEx = (/value=\\\\'([A-Za-z0-9 _]*)((.)([\\\\w)(!-;?-\\u25A0\\\\s]+)['])/g);\\n var hrefRegex = (/(?:href)([\\\\s='\\\"./]+)([\\\\w-./?=&\\\\\\\\#\\\"]+)((.)([\\\\w)(!-;/?-\\u25A0\\\\s]+)['])/g);\\n if(str.match(valueRegEx)){\\n var check = str.match(valueRegEx);\\n var str1 = str;\\n for (var i=0; i < check.length; i++) {\\n var check1 = str.match(valueRegEx)[i].split('value=')[1];\\n var change = check1.match(/^'/) !== null ? check1.replace(/^'/, '\\\"') : check1;\\n change =change.match(/.$/)[0] === '\\\\'' ? change.replace(/.$/,'\\\"') : change;\\n str1 = str1.replace(check1, change);\\n }\\n str = str.replace(str, str1);\\n }\\n else if (str.match(/(?:href='')/) === null) {\\n if(str.match(hrefRegex)) {\\n var check = str.match(hrefRegex);\\n var str1 = str;\\n for (var i=0; i < check.length; i++) {\\n var check1 = str.match(hrefRegex)[i].split('href=')[1];\\n if (check1) {\\n var change = check1.match(/^'/) !== null ? check1.replace(/^'/, '\\\"') : check1;\\n change =change.match(/.$/)[0] === '\\\\'' ? change.replace(/.$/,'\\\"') : change;\\n str1 = str1.replace(check1, change);\\n }\\n }\\n str = str.replace(str, str1);\\n }\\n }\\n \";\n var fnCode = 'var str=\\\"' + evalExpResult + '\\\";' + condtion + ' return str;';\n var fn = new Function(argName, fnCode);\n return fn.bind(helper);\n}\n/** function used to evaluate the function expression\n *\n * @param {string} str ?\n * @param {string} nameSpace ?\n * @param {Object} helper ?\n * @param {boolean} ignorePrefix ?\n * @returns {string} ?\n */\nfunction evalExp(str, nameSpace, helper, ignorePrefix) {\n var varCOunt = 0;\n /**\n * Variable containing Local Keys\n */\n var localKeys = [];\n var isClass = str.match(/class=\"([^\"]+|)\\s{2}/g);\n var singleSpace = '';\n if (isClass) {\n isClass.forEach(function (value) {\n singleSpace = value.replace(/\\s\\s+/g, ' ');\n str = str.replace(value, singleSpace);\n });\n }\n return str.replace(LINES, '').replace(DBL_QUOTED_STR, '\\'$1\\'').replace(exp, \n // eslint-disable-next-line\n function (match, cnt, offset, matchStr) {\n var SPECIAL_CHAR = /@|#|\\$/gm;\n var matches = cnt.match(CALL_FUNCTION);\n // matches to detect any function calls\n if (matches) {\n var rlStr = matches[1];\n if (ELSEIF_STMT.test(cnt)) {\n //handling else-if condition\n cnt = '\";} ' + cnt.replace(matches[1], rlStr.replace(WORD, function (str) {\n str = str.trim();\n return addNameSpace(str, !(QUOTES.test(str)) && (localKeys.indexOf(str) === -1), nameSpace, localKeys, ignorePrefix);\n })) + '{ \\n str = str + \"';\n }\n else if (IF_STMT.test(cnt)) {\n //handling if condition\n cnt = '\"; ' + cnt.replace(matches[1], rlStr.replace(WORDIF, function (strs) {\n return HandleSpecialCharArrObj(strs, nameSpace, localKeys, ignorePrefix);\n })) + '{ \\n str = str + \"';\n }\n else if (FOR_STMT.test(cnt)) {\n //handling for condition\n var rlStr_1 = matches[1].split(' of ');\n // replace for each into actual JavaScript\n // eslint-disable-next-line\n cnt = '\"; ' + cnt.replace(matches[1], function (mtc) {\n localKeys.push(rlStr_1[0]);\n localKeys.push(rlStr_1[0] + 'Index');\n varCOunt = varCOunt + 1;\n // tslint:disable-next-line\n return 'var i' + varCOunt + '=0; i' + varCOunt + ' < ' + addNameSpace(rlStr_1[1], true, nameSpace, localKeys, ignorePrefix) + '.length; i' + varCOunt + '++';\n }) + '{ \\n ' + rlStr_1[0] + '= ' + addNameSpace(rlStr_1[1], true, nameSpace, localKeys, ignorePrefix)\n + '[i' + varCOunt + ']; \\n var ' + rlStr_1[0] + 'Index=i' + varCOunt + '; \\n str = str + \"';\n }\n else {\n //helper function handling\n var fnStr = cnt.split('(');\n // eslint-disable-next-line\n var fNameSpace = (helper && helper.hasOwnProperty(fnStr[0]) ? 'this.' : 'global');\n fNameSpace = (/\\./.test(fnStr[0]) ? '' : fNameSpace);\n var ftArray = matches[1].split(',');\n if (matches[1].length !== 0 && !(/data/).test(ftArray[0]) && !(/window./).test(ftArray[0])) {\n matches[1] = (fNameSpace === 'global' ? nameSpace + '.' + matches[1] : matches[1]);\n }\n var splRegexp = /@|\\$|#/gm;\n var arrObj = /\\]\\./gm;\n if (WINDOWFUNC.test(cnt) && arrObj.test(cnt) || splRegexp.test(cnt)) {\n var splArrRegexp = /@|\\$|#|\\]\\./gm;\n if (splArrRegexp.test(cnt)) {\n // tslint:disable-next-line\n cnt = '\"+ ' + (fNameSpace === 'global' ? '' : fNameSpace) + cnt.replace(matches[1], rlStr.replace(WORDFUNC, function (strs) {\n return HandleSpecialCharArrObj(strs, nameSpace, localKeys, ignorePrefix);\n })) + '+ \"';\n }\n }\n else {\n cnt = '\" + ' + (fNameSpace === 'global' ? '' : fNameSpace) +\n cnt.replace(rlStr, addNameSpace(matches[1].replace(/,( |)data.|,/gi, ',' + nameSpace + '.').replace(/,( |)data.window/gi, ',window'), (fNameSpace === 'global' ? false : true), nameSpace, localKeys, ignorePrefix)) +\n '+\"';\n }\n }\n }\n else if (ELSE_STMT.test(cnt)) {\n // handling else condition\n cnt = '\"; ' + cnt.replace(ELSE_STMT, '} else { \\n str = str + \"');\n // eslint-disable-next-line\n }\n else if (!!cnt.match(IF_OR_FOR)) {\n // close condition\n cnt = cnt.replace(IF_OR_FOR, '\"; \\n } \\n str = str + \"');\n }\n else if (SPECIAL_CHAR.test(cnt)) {\n // template string with double slash with special character\n if (cnt.match(SINGLE_SLASH)) {\n cnt = SlashReplace(cnt);\n }\n cnt = '\"+' + NameSpaceForspecialChar(cnt, (localKeys.indexOf(cnt) === -1), nameSpace, localKeys) + '\"]+\"';\n }\n else {\n // template string with double slash\n if (cnt.match(SINGLE_SLASH)) {\n cnt = SlashReplace(cnt);\n cnt = '\"+' + NameSpaceForspecialChar(cnt, (localKeys.indexOf(cnt) === -1), nameSpace, localKeys) + '\"]+\"';\n }\n else {\n // evaluate normal expression\n cnt = cnt !== '' ? '\"+' + addNameSpace(cnt.replace(/,/gi, '+' + nameSpace + '.'), (localKeys.indexOf(cnt) === -1), nameSpace, localKeys, ignorePrefix) + '+\"' : ' ';\n }\n }\n return cnt;\n });\n}\n/**\n *\n * @param {string} str ?\n * @param {boolean} addNS ?\n * @param {string} nameSpace ?\n * @param {string[]} ignoreList ?\n * @param {boolean} ignorePrefix ?\n * @returns {string} ?\n */\nfunction addNameSpace(str, addNS, nameSpace, ignoreList, ignorePrefix) {\n return ((addNS && !(NOT_NUMBER.test(str)) && ignoreList.indexOf(str.split('.')[0]) === -1 && !ignorePrefix) ? nameSpace + '.' + str : str);\n}\n/**\n *\n * @param {string} str ?\n * @param {boolean} addNS ?\n * @param {string} nameSpace ?\n * @param {string[]} ignoreList ?\n * @returns {string} ?\n */\nfunction NameSpaceArrObj(str, addNS, nameSpace, ignoreList) {\n var arrObjReg = /^\\..*/gm;\n return ((addNS && !(NOT_NUMBER.test(str)) &&\n ignoreList.indexOf(str.split('.')[0]) === -1 && !(arrObjReg.test(str))) ? nameSpace + '.' + str : str);\n}\n// // Create hashCode for template string to storeCached function\n// function hashCode(str: string): string {\n// return str.split('').reduce((a: number, b: string) => { a = ((a << 5) - a) + b.charCodeAt(0); return a & a; }, 0).toString();\n// }\n/**\n *\n * @param {string} str ?\n * @param {boolean} addNS ?\n * @param {string} nameSpace ?\n * @param {string[]} ignoreList ?\n * @returns {string} ?\n */\nfunction NameSpaceForspecialChar(str, addNS, nameSpace, ignoreList) {\n return ((addNS && !(NOT_NUMBER.test(str)) && ignoreList.indexOf(str.split('.')[0]) === -1) ? nameSpace + '[\"' + str : str);\n}\n// eslint-disable-next-line\nfunction SlashReplace(tempStr) {\n var double = '\\\\\\\\';\n if (tempStr.match(DOUBLE_SLASH)) {\n // eslint-disable-next-line\n tempStr = tempStr;\n }\n else {\n tempStr = tempStr.replace(SINGLE_SLASH, double);\n }\n return tempStr;\n}\n/**\n *\n * @param {string} str ?\n * @param {string} nameSpaceNew ?\n * @param {string[]} keys ?\n * @param {boolean} ignorePrefix ?\n * @returns {string} ?\n */\nfunction HandleSpecialCharArrObj(str, nameSpaceNew, keys, ignorePrefix) {\n str = str.trim();\n var windowFunc = /\\window\\./gm;\n if (!windowFunc.test(str)) {\n var quotes = /'|\"/gm;\n var splRegexp = /@|\\$|#/gm;\n if (splRegexp.test(str)) {\n str = NameSpaceForspecialChar(str, (keys.indexOf(str) === -1), nameSpaceNew, keys) + '\"]';\n }\n if (ARR_OBJ.test(str)) {\n return NameSpaceArrObj(str, !(quotes.test(str)) && (keys.indexOf(str) === -1), nameSpaceNew, keys);\n }\n else {\n return addNameSpace(str, !(quotes.test(str)) && (keys.indexOf(str) === -1), nameSpaceNew, keys, ignorePrefix);\n }\n }\n else {\n return str;\n }\n}\n","/**\n * Template Engine Bridge\n */\nimport { compile as render } from './template';\nimport { createElement } from './dom';\nimport { isNullOrUndefined, isBlazor } from './util';\nvar HAS_ROW = /^[\\n\\r.]+ 0) {\n elements.forEach(function (element) {\n detach(element);\n });\n }\n else {\n return;\n }\n };\n SanitizeHtmlHelper.removeJsEvents = function () {\n var elements = this.wrapElement.querySelectorAll('[' + jsEvents.join('],[') + ']');\n if (elements.length > 0) {\n elements.forEach(function (element) {\n jsEvents.forEach(function (attr) {\n if (element.hasAttribute(attr)) {\n element.removeAttribute(attr);\n }\n });\n });\n }\n else {\n return;\n }\n };\n SanitizeHtmlHelper.removeXssAttrs = function () {\n var _this = this;\n // eslint-disable-next-line\n this.removeAttrs.forEach(function (item, index) {\n var elements = _this.wrapElement.querySelectorAll(item.selector);\n if (elements.length > 0) {\n elements.forEach(function (element) {\n element.removeAttribute(item.attribute);\n });\n }\n });\n };\n return SanitizeHtmlHelper;\n}());\nexport { SanitizeHtmlHelper };\n","import { detach, getUniqueID, rippleEffect, setValue, attributes } from '@syncfusion/ej2-base';\nimport { getValue, addClass, deleteObject } from '@syncfusion/ej2-base';\n/**\n * Initialize wrapper element for angular.\n *\n * @private\n *\n * @param {CreateElementArgs} createElement - Specifies created element args\n * @param {string} tag - Specifies tag name\n * @param {string} type - Specifies type name\n * @param {HTMLInputElement} element - Specifies input element\n * @param {string} WRAPPER - Specifies wrapper element\n * @param {string} role - Specifies role\n * @returns {HTMLInputElement} - Input Element\n */\nexport function wrapperInitialize(createElement, tag, type, element, WRAPPER, role) {\n var input = element;\n if (element.tagName === tag) {\n var ejInstance = getValue('ej2_instances', element);\n input = createElement('input', { attrs: { 'type': type } });\n var props = ['change', 'cssClass', 'label', 'labelPosition', 'id'];\n for (var index = 0, len = element.attributes.length; index < len; index++) {\n if (props.indexOf(element.attributes[index].nodeName) === -1) {\n input.setAttribute(element.attributes[index].nodeName, element.attributes[index].nodeValue);\n }\n }\n attributes(element, { 'class': WRAPPER });\n element.appendChild(input);\n setValue('ej2_instances', ejInstance, input);\n deleteObject(element, 'ej2_instances');\n }\n return input;\n}\n/**\n * Get the text node.\n *\n * @param {HTMLElement} element - Specifies html element\n * @private\n * @returns {Node} - Text node.\n */\nexport function getTextNode(element) {\n var node;\n var childnode = element.childNodes;\n for (var i = 0; i < childnode.length; i++) {\n node = childnode[i];\n if (node.nodeType === 3) {\n return node;\n }\n }\n return null;\n}\n/**\n * Destroy the button components.\n *\n * @private\n * @param {Switch | CheckBox} ejInst - Specifies eJ2 Instance\n * @param {Element} wrapper - Specifies wrapper element\n * @param {string} tagName - Specifies tag name\n * @returns {void}\n */\nexport function destroy(ejInst, wrapper, tagName) {\n if (tagName === 'INPUT') {\n wrapper.parentNode.insertBefore(ejInst.element, wrapper);\n detach(wrapper);\n ejInst.element.checked = false;\n ['name', 'value', 'disabled'].forEach(function (key) {\n ejInst.element.removeAttribute(key);\n });\n }\n else {\n ['role', 'aria-checked', 'class'].forEach(function (key) {\n wrapper.removeAttribute(key);\n });\n wrapper.innerHTML = '';\n }\n}\n/**\n * Initialize control pre rendering.\n *\n * @private\n * @param {Switch | CheckBox} proxy - Specifies proxy\n * @param {string} control - Specifies control\n * @param {string} wrapper - Specifies wrapper element\n * @param {HTMLInputElement} element - Specifies input element\n * @param {string} moduleName - Specifies module name\n * @returns {void}\n */\nexport function preRender(proxy, control, wrapper, element, moduleName) {\n element = wrapperInitialize(proxy.createElement, control, 'checkbox', element, wrapper, moduleName);\n proxy.element = element;\n if (proxy.element.getAttribute('type') !== 'checkbox') {\n proxy.element.setAttribute('type', 'checkbox');\n }\n if (!proxy.element.id) {\n proxy.element.id = getUniqueID('e-' + moduleName);\n }\n}\n/**\n * Creates CheckBox component UI with theming and ripple support.\n *\n * @private\n * @param {CreateElementArgs} createElement - Specifies Created Element args\n * @param {boolean} enableRipple - Specifies ripple effect\n * @param {CheckBoxUtilModel} options - Specifies Checkbox util Model\n * @returns {Element} - Checkbox Element\n */\nexport function createCheckBox(createElement, enableRipple, options) {\n if (enableRipple === void 0) { enableRipple = false; }\n if (options === void 0) { options = {}; }\n var wrapper = createElement('div', { className: 'e-checkbox-wrapper e-css' });\n if (options.cssClass) {\n addClass([wrapper], options.cssClass.split(' '));\n }\n if (options.enableRtl) {\n wrapper.classList.add('e-rtl');\n }\n if (enableRipple) {\n var rippleSpan = createElement('span', { className: 'e-ripple-container' });\n rippleEffect(rippleSpan, { isCenterRipple: true, duration: 400 });\n wrapper.appendChild(rippleSpan);\n }\n var frameSpan = createElement('span', { className: 'e-frame e-icons' });\n if (options.checked) {\n frameSpan.classList.add('e-check');\n }\n wrapper.appendChild(frameSpan);\n if (options.label) {\n var labelSpan = createElement('span', { className: 'e-label' });\n if (options.disableHtmlEncode) {\n labelSpan.textContent = options.label;\n }\n else {\n labelSpan.innerHTML = options.label;\n }\n wrapper.appendChild(labelSpan);\n }\n return wrapper;\n}\n/**\n * Handles ripple mouse.\n *\n * @private\n * @param {MouseEvent} e - Specifies mouse event\n * @param {Element} rippleSpan - Specifies Ripple span element\n * @returns {void}\n */\nexport function rippleMouseHandler(e, rippleSpan) {\n if (rippleSpan) {\n var event_1 = document.createEvent('MouseEvents');\n event_1.initEvent(e.type, false, true);\n rippleSpan.dispatchEvent(event_1);\n }\n}\n/**\n * Append hidden input to given element\n *\n * @private\n * @param {Switch | CheckBox} proxy - Specifies Proxy\n * @param {Element} wrap - Specifies Wrapper ELement\n * @returns {void}\n */\nexport function setHiddenInput(proxy, wrap) {\n if (proxy.element.getAttribute('ejs-for')) {\n wrap.appendChild(proxy.createElement('input', {\n attrs: { 'name': proxy.name || proxy.element.name, 'value': 'false', 'type': 'hidden' }\n }));\n }\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, NotifyPropertyChanges, Component, isBlazor, isRippleEnabled } from '@syncfusion/ej2-base';\nimport { addClass, Event, detach, removeClass } from '@syncfusion/ej2-base';\nimport { rippleEffect, EventHandler, Observer, SanitizeHtmlHelper } from '@syncfusion/ej2-base';\nimport { getTextNode } from '../common/common';\n/**\n * Defines the icon position of button.\n */\nexport var IconPosition;\n(function (IconPosition) {\n /**\n * Positions the Icon at the left of the text content in the Button.\n */\n IconPosition[\"Left\"] = \"Left\";\n /**\n * Positions the Icon at the right of the text content in the Button.\n */\n IconPosition[\"Right\"] = \"Right\";\n /**\n * Positions the Icon at the top of the text content in the Button.\n */\n IconPosition[\"Top\"] = \"Top\";\n /**\n * Positions the Icon at the bottom of the text content in the Button.\n */\n IconPosition[\"Bottom\"] = \"Bottom\";\n})(IconPosition || (IconPosition = {}));\nexport var buttonObserver = new Observer();\nvar cssClassName = {\n RTL: 'e-rtl',\n BUTTON: 'e-btn',\n PRIMARY: 'e-primary',\n ICONBTN: 'e-icon-btn'\n};\n/**\n * The Button is a graphical user interface element that triggers an event on its click action. It can contain a text, an image, or both.\n * ```html\n * \n * ```\n * ```typescript\n * \n * ```\n */\nvar Button = /** @class */ (function (_super) {\n __extends(Button, _super);\n /**\n * Constructor for creating the widget\n *\n * @param {ButtonModel} options - Specifies the button model\n * @param {string|HTMLButtonElement} element - Specifies the target element\n */\n function Button(options, element) {\n return _super.call(this, options, element) || this;\n }\n Button.prototype.preRender = function () {\n // pre render code snippets\n };\n /**\n * Initialize the control rendering\n *\n * @returns {void}\n * @private\n */\n Button.prototype.render = function () {\n this.initialize();\n this.removeRippleEffect = rippleEffect(this.element, { selector: '.' + cssClassName.BUTTON });\n this.renderComplete();\n };\n Button.prototype.initialize = function () {\n if (this.cssClass) {\n addClass([this.element], this.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n if (this.isPrimary) {\n this.element.classList.add(cssClassName.PRIMARY);\n }\n if (!isBlazor() || (isBlazor() && this.getModuleName() !== 'progress-btn')) {\n if (this.content) {\n var tempContent = (this.enableHtmlSanitizer) ? SanitizeHtmlHelper.sanitize(this.content) : this.content;\n this.element.innerHTML = tempContent;\n }\n this.setIconCss();\n }\n if (this.enableRtl) {\n this.element.classList.add(cssClassName.RTL);\n }\n if (this.disabled) {\n this.controlStatus(this.disabled);\n }\n else {\n this.wireEvents();\n }\n };\n Button.prototype.controlStatus = function (disabled) {\n this.element.disabled = disabled;\n };\n Button.prototype.setIconCss = function () {\n if (this.iconCss) {\n var span = this.createElement('span', { className: 'e-btn-icon ' + this.iconCss });\n if (!this.element.textContent.trim()) {\n this.element.classList.add(cssClassName.ICONBTN);\n }\n else {\n span.classList.add('e-icon-' + this.iconPosition.toLowerCase());\n if (this.iconPosition === 'Top' || this.iconPosition === 'Bottom') {\n this.element.classList.add('e-' + this.iconPosition.toLowerCase() + '-icon-btn');\n }\n }\n var node = this.element.childNodes[0];\n if (node && (this.iconPosition === 'Left' || this.iconPosition === 'Top')) {\n this.element.insertBefore(span, node);\n }\n else {\n this.element.appendChild(span);\n }\n }\n };\n Button.prototype.wireEvents = function () {\n if (this.isToggle) {\n EventHandler.add(this.element, 'click', this.btnClickHandler, this);\n }\n };\n Button.prototype.unWireEvents = function () {\n if (this.isToggle) {\n EventHandler.remove(this.element, 'click', this.btnClickHandler);\n }\n };\n Button.prototype.btnClickHandler = function () {\n if (this.element.classList.contains('e-active')) {\n this.element.classList.remove('e-active');\n }\n else {\n this.element.classList.add('e-active');\n }\n };\n /**\n * Destroys the widget.\n *\n * @returns {void}\n */\n Button.prototype.destroy = function () {\n var classList = [cssClassName.PRIMARY, cssClassName.RTL, cssClassName.ICONBTN, 'e-success', 'e-info', 'e-danger',\n 'e-warning', 'e-flat', 'e-outline', 'e-small', 'e-bigger', 'e-active', 'e-round',\n 'e-top-icon-btn', 'e-bottom-icon-btn'];\n if (this.cssClass) {\n classList = classList.concat(this.cssClass.split(' '));\n }\n _super.prototype.destroy.call(this);\n removeClass([this.element], classList);\n if (!this.element.getAttribute('class')) {\n this.element.removeAttribute('class');\n }\n if (this.disabled) {\n this.element.removeAttribute('disabled');\n }\n if (this.content) {\n this.element.innerHTML = this.element.innerHTML.replace(this.content, '');\n }\n var span = this.element.querySelector('span.e-btn-icon');\n if (span) {\n detach(span);\n }\n this.unWireEvents();\n if (isRippleEnabled) {\n this.removeRippleEffect();\n }\n };\n /**\n * Get component name.\n *\n * @returns {string} - Module name\n * @private\n */\n Button.prototype.getModuleName = function () {\n return 'btn';\n };\n /**\n * Get the properties to be maintained in the persisted state.\n *\n * @returns {string} - Persist Data\n * @private\n */\n Button.prototype.getPersistData = function () {\n return this.addOnPersist([]);\n };\n /**\n * Dynamically injects the required modules to the component.\n *\n * @private\n * @returns {void}\n */\n Button.Inject = function () {\n // Inject code snippets\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {ButtonModel} newProp - Specifies new properties\n * @param {ButtonModel} oldProp - Specifies old properties\n * @returns {void}\n * @private\n */\n Button.prototype.onPropertyChanged = function (newProp, oldProp) {\n var span = this.element.querySelector('span.e-btn-icon');\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'isPrimary':\n if (newProp.isPrimary) {\n this.element.classList.add(cssClassName.PRIMARY);\n }\n else {\n this.element.classList.remove(cssClassName.PRIMARY);\n }\n break;\n case 'disabled':\n this.controlStatus(newProp.disabled);\n break;\n case 'iconCss': {\n if (span) {\n if (newProp.iconCss) {\n span.className = 'e-btn-icon ' + newProp.iconCss;\n if (this.element.textContent.trim()) {\n if (this.iconPosition === 'Left') {\n span.classList.add('e-icon-left');\n }\n else {\n span.classList.add('e-icon-right');\n }\n }\n }\n else {\n detach(span);\n }\n }\n else {\n this.setIconCss();\n }\n break;\n }\n case 'iconPosition':\n removeClass([this.element], ['e-top-icon-btn', 'e-bottom-icon-btn']);\n span = this.element.querySelector('span.e-btn-icon');\n if (span) {\n detach(span);\n }\n this.setIconCss();\n break;\n case 'cssClass':\n if (oldProp.cssClass) {\n removeClass([this.element], oldProp.cssClass.split(' '));\n }\n if (newProp.cssClass) {\n addClass([this.element], newProp.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n break;\n case 'enableRtl':\n if (newProp.enableRtl) {\n this.element.classList.add(cssClassName.RTL);\n }\n else {\n this.element.classList.remove(cssClassName.RTL);\n }\n break;\n case 'content': {\n var node = getTextNode(this.element);\n if (!node) {\n this.element.classList.remove(cssClassName.ICONBTN);\n }\n if (!isBlazor() || (isBlazor() && !this.isServerRendered && this.getModuleName() !== 'progress-btn')) {\n if (this.enableHtmlSanitizer) {\n newProp.content = SanitizeHtmlHelper.sanitize(newProp.content);\n }\n this.element.innerHTML = newProp.content;\n this.setIconCss();\n }\n break;\n }\n case 'isToggle':\n if (newProp.isToggle) {\n EventHandler.add(this.element, 'click', this.btnClickHandler, this);\n }\n else {\n EventHandler.remove(this.element, 'click', this.btnClickHandler);\n removeClass([this.element], ['e-active']);\n }\n break;\n }\n }\n };\n /**\n * Click the button element\n * its native method\n *\n * @public\n * @returns {void}\n */\n Button.prototype.click = function () {\n this.element.click();\n };\n /**\n * Sets the focus to Button\n * its native method\n *\n * @public\n * @returns {void}\n */\n Button.prototype.focusIn = function () {\n this.element.focus();\n };\n __decorate([\n Property('Left')\n ], Button.prototype, \"iconPosition\", void 0);\n __decorate([\n Property('')\n ], Button.prototype, \"iconCss\", void 0);\n __decorate([\n Property(false)\n ], Button.prototype, \"disabled\", void 0);\n __decorate([\n Property(false)\n ], Button.prototype, \"isPrimary\", void 0);\n __decorate([\n Property('')\n ], Button.prototype, \"cssClass\", void 0);\n __decorate([\n Property('')\n ], Button.prototype, \"content\", void 0);\n __decorate([\n Property(false)\n ], Button.prototype, \"isToggle\", void 0);\n __decorate([\n Property()\n ], Button.prototype, \"locale\", void 0);\n __decorate([\n Property(false)\n ], Button.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Event()\n ], Button.prototype, \"created\", void 0);\n Button = __decorate([\n NotifyPropertyChanges\n ], Button);\n return Button;\n}(Component));\nexport { Button };\n","/**\n * Position library\n */\nimport { isNullOrUndefined } from '@syncfusion/ej2-base';\nvar elementRect;\nvar popupRect;\nvar element;\nvar parentDocument;\nvar fixedParent = false;\n/**\n *\n * @param {HTMLElement} anchor - specifies the element\n * @param {HTMLElement} element - specifies the element\n * @returns {OffsetPosition} - returns the value\n */\nexport function calculateRelativeBasedPosition(anchor, element) {\n var fixedElement = false;\n var anchorPos = { left: 0, top: 0 };\n var tempAnchor = anchor;\n if (!anchor || !element) {\n return anchorPos;\n }\n if (isNullOrUndefined(element.offsetParent) && element.style.position === 'fixed') {\n fixedElement = true;\n }\n while ((element.offsetParent || fixedElement) && anchor && element.offsetParent !== anchor) {\n anchorPos.left += anchor.offsetLeft;\n anchorPos.top += anchor.offsetTop;\n anchor = anchor.offsetParent;\n }\n anchor = tempAnchor;\n while ((element.offsetParent || fixedElement) && anchor && element.offsetParent !== anchor) {\n anchorPos.left -= anchor.scrollLeft;\n anchorPos.top -= anchor.scrollTop;\n anchor = anchor.parentElement;\n }\n return anchorPos;\n}\n/**\n *\n * @param {Element} currentElement - specifies the element\n * @param {string} positionX - specifies the position\n * @param {string} positionY - specifies the position\n * @param {boolean} parentElement - specifies the boolean\n * @param {ClientRect} targetValues - specifies the client\n * @returns {OffsetPosition} - returns the position\n */\nexport function calculatePosition(currentElement, positionX, positionY, parentElement, targetValues) {\n popupRect = undefined;\n popupRect = targetValues;\n fixedParent = parentElement ? true : false;\n if (!currentElement) {\n return { left: 0, top: 0 };\n }\n if (!positionX) {\n positionX = 'left';\n }\n if (!positionY) {\n positionY = 'top';\n }\n parentDocument = currentElement.ownerDocument;\n element = currentElement;\n var pos = { left: 0, top: 0 };\n return updatePosition(positionX.toLowerCase(), positionY.toLowerCase(), pos);\n}\n/**\n *\n * @param {number} value - specifies the number\n * @param {OffsetPosition} pos - specifies the position\n * @returns {void}\n */\nfunction setPosx(value, pos) {\n pos.left = value;\n}\n/**\n *\n * @param {number} value - specifies the number\n * @param {OffsetPosition} pos - specifies the position\n * @returns {void}\n */\nfunction setPosy(value, pos) {\n pos.top = value;\n}\n/**\n *\n * @param {string} posX - specifies the position\n * @param {string} posY - specifies the position\n * @param {OffsetPosition} pos - specifies the position\n * @returns {OffsetPosition} - returns the postion\n */\nfunction updatePosition(posX, posY, pos) {\n elementRect = element.getBoundingClientRect();\n switch (posY + posX) {\n case 'topcenter':\n setPosx(getElementHCenter(), pos);\n setPosy(getElementTop(), pos);\n break;\n case 'topright':\n setPosx(getElementRight(), pos);\n setPosy(getElementTop(), pos);\n break;\n case 'centercenter':\n setPosx(getElementHCenter(), pos);\n setPosy(getElementVCenter(), pos);\n break;\n case 'centerright':\n setPosx(getElementRight(), pos);\n setPosy(getElementVCenter(), pos);\n break;\n case 'centerleft':\n setPosx(getElementLeft(), pos);\n setPosy(getElementVCenter(), pos);\n break;\n case 'bottomcenter':\n setPosx(getElementHCenter(), pos);\n setPosy(getElementBottom(), pos);\n break;\n case 'bottomright':\n setPosx(getElementRight(), pos);\n setPosy(getElementBottom(), pos);\n break;\n case 'bottomleft':\n setPosx(getElementLeft(), pos);\n setPosy(getElementBottom(), pos);\n break;\n default:\n case 'topleft':\n setPosx(getElementLeft(), pos);\n setPosy(getElementTop(), pos);\n break;\n }\n element = null;\n return pos;\n}\n/**\n * @returns {number} - specifies the number value\n */\nfunction getBodyScrollTop() {\n return parentDocument.documentElement.scrollTop || parentDocument.body.scrollTop;\n}\n/**\n * @returns {number} - specifies the number value\n */\nfunction getBodyScrollLeft() {\n return parentDocument.documentElement.scrollLeft || parentDocument.body.scrollLeft;\n}\n/**\n * @returns {number} - specifies the number value\n */\nfunction getElementBottom() {\n return fixedParent ? elementRect.bottom : elementRect.bottom + getBodyScrollTop();\n}\n/**\n * @returns {number} - specifies the number value\n */\nfunction getElementVCenter() {\n return getElementTop() + (elementRect.height / 2);\n}\n/**\n * @returns {number} - specifies the number value\n */\nfunction getElementTop() {\n return fixedParent ? elementRect.top : elementRect.top + getBodyScrollTop();\n}\n/**\n * @returns {number} - specifies the number value\n */\nfunction getElementLeft() {\n return elementRect.left + getBodyScrollLeft();\n}\n/**\n * @returns {number} - specifies the number value\n */\nfunction getElementRight() {\n var popupWidth = (element && element.classList.contains('e-date-range-wrapper')) ? (popupRect ? popupRect.width : 0) :\n (popupRect && (elementRect.width >= popupRect.width) ? popupRect.width : 0);\n return elementRect.right + getBodyScrollLeft() - popupWidth;\n}\n/**\n * @returns {number} - specifies the number value\n */\nfunction getElementHCenter() {\n return getElementLeft() + (elementRect.width / 2);\n}\n","/**\n * Collision module.\n */\nimport { calculatePosition } from './position';\nimport { isNullOrUndefined } from '@syncfusion/ej2-base';\nvar parentDocument;\nvar targetContainer;\n/**\n *\n * @param {HTMLElement} element - specifies the element\n * @param {HTMLElement} viewPortElement - specifies the element\n * @param {CollisionCoordinates} axis - specifies the collision coordinates\n * @param {OffsetPosition} position - specifies the position\n * @returns {void}\n */\nexport function fit(element, viewPortElement, axis, position) {\n if (viewPortElement === void 0) { viewPortElement = null; }\n if (axis === void 0) { axis = { X: false, Y: false }; }\n if (!axis.Y && !axis.X) {\n return { left: 0, top: 0 };\n }\n var elemData = element.getBoundingClientRect();\n targetContainer = viewPortElement;\n parentDocument = element.ownerDocument;\n if (!position) {\n position = calculatePosition(element, 'left', 'top');\n }\n if (axis.X) {\n var containerWidth = targetContainer ? getTargetContainerWidth() : getViewPortWidth();\n var containerLeft = ContainerLeft();\n var containerRight = ContainerRight();\n var overLeft = containerLeft - position.left;\n var overRight = position.left + elemData.width - containerRight;\n if (elemData.width > containerWidth) {\n if (overLeft > 0 && overRight <= 0) {\n position.left = containerRight - elemData.width;\n }\n else if (overRight > 0 && overLeft <= 0) {\n position.left = containerLeft;\n }\n else {\n position.left = overLeft > overRight ? (containerRight - elemData.width) : containerLeft;\n }\n }\n else if (overLeft > 0) {\n position.left += overLeft;\n }\n else if (overRight > 0) {\n position.left -= overRight;\n }\n }\n if (axis.Y) {\n var containerHeight = targetContainer ? getTargetContainerHeight() : getViewPortHeight();\n var containerTop = ContainerTop();\n var containerBottom = ContainerBottom();\n var overTop = containerTop - position.top;\n var overBottom = position.top + elemData.height - containerBottom;\n if (elemData.height > containerHeight) {\n if (overTop > 0 && overBottom <= 0) {\n position.top = containerBottom - elemData.height;\n }\n else if (overBottom > 0 && overTop <= 0) {\n position.top = containerTop;\n }\n else {\n position.top = overTop > overBottom ? (containerBottom - elemData.height) : containerTop;\n }\n }\n else if (overTop > 0) {\n position.top += overTop;\n }\n else if (overBottom > 0) {\n position.top -= overBottom;\n }\n }\n return position;\n}\n/**\n *\n * @param {HTMLElement} element - specifies the html element\n * @param {HTMLElement} viewPortElement - specifies the html element\n * @param {number} x - specifies the number\n * @param {number} y - specifies the number\n * @returns {string[]} - returns the string value\n */\nexport function isCollide(element, viewPortElement, x, y) {\n if (viewPortElement === void 0) { viewPortElement = null; }\n var elemOffset = calculatePosition(element, 'left', 'top');\n if (x) {\n elemOffset.left = x;\n }\n if (y) {\n elemOffset.top = y;\n }\n var data = [];\n targetContainer = viewPortElement;\n parentDocument = element.ownerDocument;\n var elementRect = element.getBoundingClientRect();\n var top = elemOffset.top;\n var left = elemOffset.left;\n var right = elemOffset.left + elementRect.width;\n var bottom = elemOffset.top + elementRect.height;\n // eslint-disable-next-line\n var topData = '', leftData = '';\n var yAxis = topCollideCheck(top, bottom);\n var xAxis = leftCollideCheck(left, right);\n if (yAxis.topSide) {\n data.push('top');\n }\n if (xAxis.rightSide) {\n data.push('right');\n }\n if (xAxis.leftSide) {\n data.push('left');\n }\n if (yAxis.bottomSide) {\n data.push('bottom');\n }\n return data;\n}\n/**\n *\n * @param {HTMLElement} element - specifies the element\n * @param {HTMLElement} target - specifies the element\n * @param {number} offsetX - specifies the number\n * @param {number} offsetY - specifies the number\n * @param {string} positionX - specifies the string value\n * @param {string} positionY - specifies the string value\n * @param {HTMLElement} viewPortElement - specifies the element\n * @param {CollisionCoordinates} axis - specifies the collision axis\n * @param {boolean} fixedParent - specifies the boolean\n * @returns {void}\n */\nexport function flip(element, target, offsetX, offsetY, positionX, positionY, viewPortElement, \n/* eslint-disable */\naxis, fixedParent) {\n if (viewPortElement === void 0) { viewPortElement = null; }\n if (axis === void 0) { axis = { X: true, Y: true }; }\n if (!target || !element || !positionX || !positionY || (!axis.X && !axis.Y)) {\n return;\n }\n var tEdge = { TL: null,\n TR: null,\n BL: null,\n BR: null\n }, eEdge = {\n TL: null,\n TR: null,\n BL: null,\n BR: null\n /* eslint-enable */\n };\n var elementRect;\n if (window.getComputedStyle(element).display === 'none') {\n var oldVisibility = element.style.visibility;\n element.style.visibility = 'hidden';\n element.style.display = 'block';\n elementRect = element.getBoundingClientRect();\n element.style.removeProperty('display');\n element.style.visibility = oldVisibility;\n }\n else {\n elementRect = element.getBoundingClientRect();\n }\n var pos = {\n posX: positionX, posY: positionY, offsetX: offsetX, offsetY: offsetY, position: { left: 0, top: 0 }\n };\n targetContainer = viewPortElement;\n parentDocument = target.ownerDocument;\n updateElementData(target, tEdge, pos, fixedParent, elementRect);\n setPosition(eEdge, pos, elementRect);\n if (axis.X) {\n leftFlip(target, eEdge, tEdge, pos, elementRect, true);\n }\n if (axis.Y && tEdge.TL.top > -1) {\n topFlip(target, eEdge, tEdge, pos, elementRect, true);\n }\n setPopup(element, pos, elementRect);\n}\n/**\n *\n * @param {HTMLElement} element - specifies the element\n * @param {PositionLocation} pos - specifies the location\n * @param {ClientRect} elementRect - specifies the client rect\n * @returns {void}\n */\nfunction setPopup(element, pos, elementRect) {\n //eslint-disable-next-line\n var left = 0, top = 0;\n if (element.offsetParent != null\n && (getComputedStyle(element.offsetParent).position === 'absolute' ||\n getComputedStyle(element.offsetParent).position === 'relative')) {\n var data = calculatePosition(element.offsetParent, 'left', 'top', false, elementRect);\n left = data.left;\n top = data.top;\n }\n element.style.top = (pos.position.top + pos.offsetY - (top)) + 'px';\n element.style.left = (pos.position.left + pos.offsetX - (left)) + 'px';\n}\n/**\n *\n * @param {HTMLElement} target - specifies the element\n * @param {EdgeOffset} edge - specifies the offset\n * @param {PositionLocation} pos - specifies theloaction\n * @param {boolean} fixedParent - specifies the boolean\n * @param {ClientRect} elementRect - specifies the client rect\n * @returns {void}\n */\nfunction updateElementData(target, edge, pos, fixedParent, elementRect) {\n pos.position = calculatePosition(target, pos.posX, pos.posY, fixedParent, elementRect);\n edge.TL = calculatePosition(target, 'left', 'top', fixedParent, elementRect);\n edge.TR = calculatePosition(target, 'right', 'top', fixedParent, elementRect);\n edge.BR = calculatePosition(target, 'left', 'bottom', fixedParent, elementRect);\n edge.BL = calculatePosition(target, 'right', 'bottom', fixedParent, elementRect);\n}\n/**\n *\n * @param {EdgeOffset} eStatus - specifies the status\n * @param {PositionLocation} pos - specifies the location\n * @param {ClientRect} elementRect - specifies the client\n * @returns {void}\n */\nfunction setPosition(eStatus, pos, elementRect) {\n eStatus.TL = { top: pos.position.top + pos.offsetY, left: pos.position.left + pos.offsetX };\n eStatus.TR = { top: eStatus.TL.top, left: eStatus.TL.left + elementRect.width };\n eStatus.BL = { top: eStatus.TL.top + elementRect.height,\n left: eStatus.TL.left };\n eStatus.BR = { top: eStatus.TL.top + elementRect.height,\n left: eStatus.TL.left + elementRect.width };\n}\n/**\n *\n * @param {number} left - specifies the number\n * @param {number} right - specifies the number\n * @returns {LeftCorners} - returns the value\n */\nfunction leftCollideCheck(left, right) {\n //eslint-disable-next-line\n var leftSide = false, rightSide = false;\n if (((left - getBodyScrollLeft()) < ContainerLeft())) {\n leftSide = true;\n }\n if (right > ContainerRight()) {\n rightSide = true;\n }\n return { leftSide: leftSide, rightSide: rightSide };\n}\n/**\n *\n * @param {HTMLElement} target - specifies the element\n * @param {EdgeOffset} edge - specifes the element\n * @param {EdgeOffset} tEdge - specifies the edge offset\n * @param {PositionLocation} pos - specifes the location\n * @param {ClientRect} elementRect - specifies the client\n * @param {boolean} deepCheck - specifies the boolean value\n * @returns {void}\n */\nfunction leftFlip(target, edge, tEdge, pos, elementRect, deepCheck) {\n var collideSide = leftCollideCheck(edge.TL.left, edge.TR.left);\n if ((tEdge.TL.left - getBodyScrollLeft()) <= ContainerLeft()) {\n collideSide.leftSide = false;\n }\n if (tEdge.TR.left > ContainerRight()) {\n collideSide.rightSide = false;\n }\n if ((collideSide.leftSide && !collideSide.rightSide) || (!collideSide.leftSide && collideSide.rightSide)) {\n if (pos.posX === 'right') {\n pos.posX = 'left';\n }\n else {\n pos.posX = 'right';\n }\n pos.offsetX = pos.offsetX + elementRect.width;\n pos.offsetX = -1 * pos.offsetX;\n pos.position = calculatePosition(target, pos.posX, pos.posY, false);\n setPosition(edge, pos, elementRect);\n if (deepCheck) {\n leftFlip(target, edge, tEdge, pos, elementRect, false);\n }\n }\n}\n/**\n *\n * @param {HTMLElement} target - specifies the element\n * @param {EdgeOffset} edge - specifies the offset\n * @param {EdgeOffset} tEdge - specifies the offset\n * @param {PositionLocation} pos - specifies the location\n * @param {ClientRect} elementRect - specifies the client rect\n * @param {boolean} deepCheck - specifies the boolean\n * @returns {void}\n */\nfunction topFlip(target, edge, tEdge, pos, elementRect, deepCheck) {\n var collideSide = topCollideCheck(edge.TL.top, edge.BL.top);\n if ((tEdge.TL.top - getBodyScrollTop()) <= ContainerTop()) {\n collideSide.topSide = false;\n }\n if (tEdge.BL.top >= ContainerBottom() && target.getBoundingClientRect().bottom < window.innerHeight) {\n collideSide.bottomSide = false;\n }\n if ((collideSide.topSide && !collideSide.bottomSide) || (!collideSide.topSide && collideSide.bottomSide)) {\n if (pos.posY === 'top') {\n pos.posY = 'bottom';\n }\n else {\n pos.posY = 'top';\n }\n pos.offsetY = pos.offsetY + elementRect.height;\n pos.offsetY = -1 * pos.offsetY;\n pos.position = calculatePosition(target, pos.posX, pos.posY, false, elementRect);\n setPosition(edge, pos, elementRect);\n if (deepCheck) {\n topFlip(target, edge, tEdge, pos, elementRect, false);\n }\n }\n}\n/**\n *\n * @param {number} top - specifies the number\n * @param {number} bottom - specifies the number\n * @returns {TopCorners} - retyrns the value\n */\nfunction topCollideCheck(top, bottom) {\n //eslint-disable-next-line\n var topSide = false, bottomSide = false;\n if ((top - getBodyScrollTop()) < ContainerTop()) {\n topSide = true;\n }\n if (bottom > ContainerBottom()) {\n bottomSide = true;\n }\n return { topSide: topSide, bottomSide: bottomSide };\n}\n/**\n * @returns {void}\n */\nfunction getTargetContainerWidth() {\n return targetContainer.getBoundingClientRect().width;\n}\n/**\n * @returns {void}\n */\nfunction getTargetContainerHeight() {\n return targetContainer.getBoundingClientRect().height;\n}\n/**\n * @returns {void}\n */\nfunction getTargetContainerLeft() {\n return targetContainer.getBoundingClientRect().left;\n}\n/**\n * @returns {void}\n */\nfunction getTargetContainerTop() {\n return targetContainer.getBoundingClientRect().top;\n}\n//eslint-disable-next-line\nfunction ContainerTop() {\n if (targetContainer) {\n return getTargetContainerTop();\n }\n return 0;\n}\n//eslint-disable-next-line\nfunction ContainerLeft() {\n if (targetContainer) {\n return getTargetContainerLeft();\n }\n return 0;\n}\n//eslint-disable-next-line\nfunction ContainerRight() {\n if (targetContainer) {\n return (getBodyScrollLeft() + getTargetContainerLeft() + getTargetContainerWidth());\n }\n return (getBodyScrollLeft() + getViewPortWidth());\n}\n//eslint-disable-next-line\nfunction ContainerBottom() {\n if (targetContainer) {\n return (getBodyScrollTop() + getTargetContainerTop() + getTargetContainerHeight());\n }\n return (getBodyScrollTop() + getViewPortHeight());\n}\n/**\n * @returns {void}\n */\nfunction getBodyScrollTop() {\n // if(targetContainer)\n // return targetContainer.scrollTop;\n return parentDocument.documentElement.scrollTop || parentDocument.body.scrollTop;\n}\n/**\n * @returns {void}\n */\nfunction getBodyScrollLeft() {\n // if(targetContainer)\n // return targetContainer.scrollLeft;\n return parentDocument.documentElement.scrollLeft || parentDocument.body.scrollLeft;\n}\n/**\n * @returns {void}\n */\nfunction getViewPortHeight() {\n return window.innerHeight;\n}\n/**\n * @returns {void}\n */\nfunction getViewPortWidth() {\n var windowWidth = window.innerWidth;\n var documentReact = document.documentElement.getBoundingClientRect();\n var offsetWidth = (isNullOrUndefined(document.documentElement)) ? 0 : documentReact.width;\n return windowWidth - (windowWidth - offsetWidth);\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { setStyleAttribute, addClass, removeClass, ChildProperty, Complex } from '@syncfusion/ej2-base';\nimport { isNullOrUndefined, formatUnit } from '@syncfusion/ej2-base';\nimport { Browser } from '@syncfusion/ej2-base';\nimport { calculatePosition, calculateRelativeBasedPosition } from '../common/position';\nimport { Animation, Property, Event, Component } from '@syncfusion/ej2-base';\nimport { NotifyPropertyChanges } from '@syncfusion/ej2-base';\nimport { EventHandler } from '@syncfusion/ej2-base';\nimport { flip, fit, isCollide } from '../common/collision';\n/**\n * Specifies the offset position values.\n */\nvar PositionData = /** @class */ (function (_super) {\n __extends(PositionData, _super);\n function PositionData() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('left')\n ], PositionData.prototype, \"X\", void 0);\n __decorate([\n Property('top')\n ], PositionData.prototype, \"Y\", void 0);\n return PositionData;\n}(ChildProperty));\nexport { PositionData };\n// don't use space in classNames\nvar CLASSNAMES = {\n ROOT: 'e-popup',\n RTL: 'e-rtl',\n OPEN: 'e-popup-open',\n CLOSE: 'e-popup-close'\n};\n/**\n * Represents the Popup Component\n * ```html\n *
\n *
Popup Content
\n * ```\n * ```typescript\n * \n * ```\n */\nvar Popup = /** @class */ (function (_super) {\n __extends(Popup, _super);\n function Popup(element, options) {\n return _super.call(this, options, element) || this;\n }\n /**\n * Called internally if any of the property value changed.\n *\n * @param {PopupModel} newProp - specifies the new property\n * @param {PopupModel} oldProp - specifies the old property\n * @private\n * @returns {void}\n */\n Popup.prototype.onPropertyChanged = function (newProp, oldProp) {\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'width':\n setStyleAttribute(this.element, { 'width': formatUnit(newProp.width) });\n break;\n case 'height':\n setStyleAttribute(this.element, { 'height': formatUnit(newProp.height) });\n break;\n case 'zIndex':\n setStyleAttribute(this.element, { 'zIndex': newProp.zIndex });\n break;\n case 'enableRtl':\n this.setEnableRtl();\n break;\n case 'position':\n case 'relateTo':\n this.refreshPosition();\n break;\n case 'offsetX':\n // eslint-disable-next-line\n var x = newProp.offsetX - oldProp.offsetX;\n this.element.style.left = (parseInt(this.element.style.left, 10) + (x)).toString() + 'px';\n break;\n case 'offsetY':\n // eslint-disable-next-line\n var y = newProp.offsetY - oldProp.offsetY;\n this.element.style.top = (parseInt(this.element.style.top, 10) + (y)).toString() + 'px';\n break;\n case 'content':\n this.setContent();\n break;\n case 'actionOnScroll':\n if (newProp.actionOnScroll !== 'none') {\n this.wireScrollEvents();\n }\n else {\n this.unwireScrollEvents();\n }\n break;\n }\n }\n };\n /**\n * gets the Component module name.\n *\n * @returns {void}\n * @private\n */\n Popup.prototype.getModuleName = function () {\n return 'popup';\n };\n /**\n * To resolve if any collision occurs.\n *\n * @returns {void}\n */\n Popup.prototype.resolveCollision = function () {\n this.checkCollision();\n };\n /**\n * gets the persisted state properties of the Component.\n *\n * @returns {void}\n */\n Popup.prototype.getPersistData = function () {\n return this.addOnPersist([]);\n };\n /**\n * To destroy the control.\n *\n * @returns {void}\n */\n Popup.prototype.destroy = function () {\n if (this.element.classList.contains('e-popup-open')) {\n this.unwireEvents();\n }\n this.element.classList.remove(CLASSNAMES.ROOT, CLASSNAMES.RTL, CLASSNAMES.OPEN, CLASSNAMES.CLOSE);\n _super.prototype.destroy.call(this);\n };\n /**\n * To Initialize the control rendering\n *\n * @returns {void}\n * @private\n */\n Popup.prototype.render = function () {\n this.element.classList.add(CLASSNAMES.ROOT);\n var styles = {};\n if (this.zIndex !== 1000) {\n styles.zIndex = this.zIndex;\n }\n if (this.width !== 'auto') {\n styles.width = formatUnit(this.width);\n }\n if (this.height !== 'auto') {\n styles.height = formatUnit(this.height);\n }\n setStyleAttribute(this.element, styles);\n this.fixedParent = false;\n this.setEnableRtl();\n this.setContent();\n };\n Popup.prototype.wireEvents = function () {\n if (Browser.isDevice) {\n EventHandler.add(window, 'orientationchange', this.orientationOnChange, this);\n }\n if (this.actionOnScroll !== 'none') {\n this.wireScrollEvents();\n }\n };\n Popup.prototype.wireScrollEvents = function () {\n if (this.getRelateToElement()) {\n for (var _i = 0, _a = this.getScrollableParent(this.getRelateToElement()); _i < _a.length; _i++) {\n var parent_1 = _a[_i];\n EventHandler.add(parent_1, 'scroll', this.scrollRefresh, this);\n }\n }\n };\n Popup.prototype.unwireEvents = function () {\n if (Browser.isDevice) {\n EventHandler.remove(window, 'orientationchange', this.orientationOnChange);\n }\n if (this.actionOnScroll !== 'none') {\n this.unwireScrollEvents();\n }\n };\n Popup.prototype.unwireScrollEvents = function () {\n if (this.getRelateToElement()) {\n for (var _i = 0, _a = this.getScrollableParent(this.getRelateToElement()); _i < _a.length; _i++) {\n var parent_2 = _a[_i];\n EventHandler.remove(parent_2, 'scroll', this.scrollRefresh);\n }\n }\n };\n Popup.prototype.getRelateToElement = function () {\n var relateToElement = this.relateTo === '' || isNullOrUndefined(this.relateTo) ?\n document.body : this.relateTo;\n this.setProperties({ relateTo: relateToElement }, true);\n return ((typeof this.relateTo) === 'string') ?\n document.querySelector(this.relateTo) : this.relateTo;\n };\n Popup.prototype.scrollRefresh = function (e) {\n if (this.actionOnScroll === 'reposition') {\n if (!isNullOrUndefined(this.element) && !(this.element.offsetParent === e.target ||\n (this.element.offsetParent && this.element.offsetParent.tagName === 'BODY' &&\n e.target.parentElement == null))) {\n this.refreshPosition();\n }\n }\n else if (this.actionOnScroll === 'hide') {\n this.hide();\n }\n if (this.actionOnScroll !== 'none') {\n if (this.getRelateToElement()) {\n var targetVisible = this.isElementOnViewport(this.getRelateToElement(), e.target);\n if (!targetVisible && !this.targetInvisibleStatus) {\n this.trigger('targetExitViewport');\n this.targetInvisibleStatus = true;\n }\n else if (targetVisible) {\n this.targetInvisibleStatus = false;\n }\n }\n }\n };\n /**\n * This method is to get the element visibility on viewport when scroll\n * the page. This method will returns true even though 1 px of element\n * part is in visible.\n *\n * @param {HTMLElement} relateToElement - specifies the element\n * @param {HTMLElement} scrollElement - specifies the scroll element\n * @returns {boolean} - retruns the boolean\n */\n // eslint-disable-next-line\n Popup.prototype.isElementOnViewport = function (relateToElement, scrollElement) {\n var scrollParents = this.getScrollableParent(relateToElement);\n for (var parent_3 = 0; parent_3 < scrollParents.length; parent_3++) {\n if (this.isElementVisible(relateToElement, scrollParents[parent_3])) {\n continue;\n }\n else {\n return false;\n }\n }\n return true;\n };\n Popup.prototype.isElementVisible = function (relateToElement, scrollElement) {\n var rect = this.checkGetBoundingClientRect(relateToElement);\n if (!rect.height || !rect.width) {\n return false;\n }\n if (!isNullOrUndefined(this.checkGetBoundingClientRect(scrollElement))) {\n var parent_4 = scrollElement.getBoundingClientRect();\n return !(rect.bottom < parent_4.top) &&\n (!(rect.bottom > parent_4.bottom) &&\n (!(rect.right > parent_4.right) &&\n !(rect.left < parent_4.left)));\n }\n else {\n var win = window;\n var windowView = {\n top: win.scrollY,\n left: win.scrollX,\n right: win.scrollX + win.outerWidth,\n bottom: win.scrollY + win.outerHeight\n };\n var off = calculatePosition(relateToElement);\n var ele = {\n top: off.top,\n left: off.left,\n right: off.left + rect.width,\n bottom: off.top + rect.height\n };\n var elementView = {\n top: windowView.bottom - ele.top,\n left: windowView.right - ele.left,\n bottom: ele.bottom - windowView.top,\n right: ele.right - windowView.left\n };\n return elementView.top > 0\n && elementView.left > 0\n && elementView.right > 0\n && elementView.bottom > 0;\n }\n };\n /**\n * Initialize the event handler\n *\n * @returns {void}\n * @private\n */\n Popup.prototype.preRender = function () {\n //There is no event handler\n };\n Popup.prototype.setEnableRtl = function () {\n this.reposition();\n // eslint-disable-next-line\n this.enableRtl ? this.element.classList.add(CLASSNAMES.RTL) : this.element.classList.remove(CLASSNAMES.RTL);\n };\n Popup.prototype.setContent = function () {\n if (!isNullOrUndefined(this.content)) {\n this.element.innerHTML = '';\n if (typeof (this.content) === 'string') {\n this.element.textContent = this.content;\n }\n else {\n var relateToElem = this.getRelateToElement();\n // eslint-disable-next-line\n var props = this.content.props;\n if (!relateToElem.classList.contains('e-dropdown-btn') || isNullOrUndefined(props)) {\n this.element.appendChild(this.content);\n }\n }\n }\n };\n Popup.prototype.orientationOnChange = function () {\n var _this = this;\n setTimeout(function () {\n _this.refreshPosition();\n }, 200);\n };\n // eslint-disable-next-line\n /**\n * Based on the `relative` element and `offset` values, `Popup` element position will refreshed.\n *\n * @returns {void}\n */\n Popup.prototype.refreshPosition = function (target, collision) {\n if (!isNullOrUndefined(target)) {\n this.checkFixedParent(target);\n }\n this.reposition();\n if (!collision) {\n this.checkCollision();\n }\n };\n Popup.prototype.reposition = function () {\n var pos;\n var position;\n var relateToElement = this.getRelateToElement();\n if (typeof this.position.X === 'number' && typeof this.position.Y === 'number') {\n pos = { left: this.position.X, top: this.position.Y };\n }\n else if ((typeof this.position.X === 'string' && typeof this.position.Y === 'number') ||\n (typeof this.position.X === 'number' && typeof this.position.Y === 'string')) {\n var parentDisplay = void 0;\n var display = this.element.style.display;\n this.element.style.display = 'block';\n if (this.element.classList.contains('e-dlg-modal')) {\n parentDisplay = this.element.parentElement.style.display;\n this.element.parentElement.style.display = 'block';\n }\n position = this.getAnchorPosition(relateToElement, this.element, this.position, this.offsetX, this.offsetY);\n if (typeof this.position.X === 'string') {\n pos = { left: position.left, top: this.position.Y };\n }\n else {\n pos = { left: this.position.X, top: position.top };\n }\n this.element.style.display = display;\n if (this.element.classList.contains('e-dlg-modal')) {\n this.element.parentElement.style.display = parentDisplay;\n }\n }\n else if (relateToElement) {\n var display = this.element.style.display;\n this.element.style.display = 'block';\n pos = this.getAnchorPosition(relateToElement, this.element, this.position, this.offsetX, this.offsetY);\n this.element.style.display = display;\n }\n else {\n pos = { left: 0, top: 0 };\n }\n if (!isNullOrUndefined(pos)) {\n this.element.style.left = pos.left + 'px';\n this.element.style.top = pos.top + 'px';\n }\n };\n Popup.prototype.checkGetBoundingClientRect = function (ele) {\n var eleRect;\n try {\n eleRect = ele.getBoundingClientRect();\n return eleRect;\n }\n catch (error) {\n return null;\n }\n };\n Popup.prototype.getAnchorPosition = function (anchorEle, ele, position, offsetX, offsetY) {\n var eleRect = this.checkGetBoundingClientRect(ele);\n var anchorRect = this.checkGetBoundingClientRect(anchorEle);\n if (isNullOrUndefined(eleRect) || isNullOrUndefined(anchorRect)) {\n return null;\n }\n var anchor = anchorEle;\n var anchorPos = { left: 0, top: 0 };\n if (ele.offsetParent && ele.offsetParent.tagName === 'BODY' && anchorEle.tagName === 'BODY') {\n anchorPos = calculatePosition(anchorEle);\n }\n else {\n if ((ele.classList.contains('e-dlg-modal') && anchor.tagName !== 'BODY')) {\n ele = ele.parentElement;\n }\n anchorPos = calculateRelativeBasedPosition(anchor, ele);\n }\n switch (position.X) {\n default:\n case 'left':\n break;\n case 'center':\n if ((ele.classList.contains('e-dlg-modal') && anchor.tagName === 'BODY' && this.targetType === 'container')) {\n anchorPos.left += (window.innerWidth / 2 - eleRect.width / 2);\n }\n else if (this.targetType === 'container') {\n anchorPos.left += (anchorRect.width / 2 - eleRect.width / 2);\n }\n else {\n anchorPos.left += (anchorRect.width / 2);\n }\n break;\n case 'right':\n if ((ele.classList.contains('e-dlg-modal') && anchor.tagName === 'BODY' && this.targetType === 'container')) {\n anchorPos.left += (window.innerWidth - eleRect.width);\n }\n else if (this.targetType === 'container') {\n anchorPos.left += (anchorRect.width - eleRect.width);\n }\n else {\n anchorPos.left += (anchorRect.width);\n }\n break;\n }\n switch (position.Y) {\n default:\n case 'top':\n break;\n case 'center':\n if ((ele.classList.contains('e-dlg-modal') && anchor.tagName === 'BODY' && this.targetType === 'container')) {\n anchorPos.top += (window.innerHeight / 2 - eleRect.height / 2);\n }\n else if (this.targetType === 'container') {\n anchorPos.top += (anchorRect.height / 2 - eleRect.height / 2);\n }\n else {\n anchorPos.top += (anchorRect.height / 2);\n }\n break;\n case 'bottom':\n if ((ele.classList.contains('e-dlg-modal') && anchor.tagName === 'BODY' && this.targetType === 'container')) {\n anchorPos.top += (window.innerHeight - eleRect.height);\n }\n else if (this.targetType === 'container') {\n anchorPos.top += (anchorRect.height - eleRect.height);\n }\n else {\n anchorPos.top += (anchorRect.height);\n }\n break;\n }\n anchorPos.left += offsetX;\n anchorPos.top += offsetY;\n return anchorPos;\n };\n Popup.prototype.callFlip = function (param) {\n var relateToElement = this.getRelateToElement();\n flip(this.element, relateToElement, this.offsetX, this.offsetY, this.position.X, this.position.Y, this.viewPortElement, param, this.fixedParent);\n };\n Popup.prototype.callFit = function (param) {\n if (isCollide(this.element, this.viewPortElement).length !== 0) {\n if (isNullOrUndefined(this.viewPortElement)) {\n var data = fit(this.element, this.viewPortElement, param);\n if (param.X) {\n this.element.style.left = data.left + 'px';\n }\n if (param.Y) {\n this.element.style.top = data.top + 'px';\n }\n }\n else {\n var elementRect = this.checkGetBoundingClientRect(this.element);\n var viewPortRect = this.checkGetBoundingClientRect(this.viewPortElement);\n if (isNullOrUndefined(elementRect) || isNullOrUndefined(viewPortRect)) {\n return null;\n }\n if (param && param.Y === true) {\n if (viewPortRect.top > elementRect.top) {\n this.element.style.top = '0px';\n }\n else if (viewPortRect.bottom < elementRect.bottom) {\n this.element.style.top = parseInt(this.element.style.top, 10) - (elementRect.bottom - viewPortRect.bottom) + 'px';\n }\n }\n if (param && param.X === true) {\n if (viewPortRect.right < elementRect.right) {\n this.element.style.left = parseInt(this.element.style.left, 10) - (elementRect.right - viewPortRect.right) + 'px';\n }\n else if (viewPortRect.left > elementRect.left) {\n this.element.style.left = parseInt(this.element.style.left, 10) + (viewPortRect.left - elementRect.left) + 'px';\n }\n }\n }\n }\n };\n Popup.prototype.checkCollision = function () {\n var horz = this.collision.X;\n var vert = this.collision.Y;\n if (horz === 'none' && vert === 'none') {\n return;\n }\n if (horz === 'flip' && vert === 'flip') {\n this.callFlip({ X: true, Y: true });\n }\n else if (horz === 'fit' && vert === 'fit') {\n this.callFit({ X: true, Y: true });\n }\n else {\n if (horz === 'flip') {\n this.callFlip({ X: true, Y: false });\n }\n else if (vert === 'flip') {\n this.callFlip({ Y: true, X: false });\n }\n if (horz === 'fit') {\n this.callFit({ X: true, Y: false });\n }\n else if (vert === 'fit') {\n this.callFit({ X: false, Y: true });\n }\n }\n };\n /**\n * Shows the popup element from screen.\n *\n * @returns {void}\n * @param {AnimationModel} animationOptions - specifies the model\n * @param { HTMLElement } relativeElement - To calculate the zIndex value dynamically.\n */\n Popup.prototype.show = function (animationOptions, relativeElement) {\n var _this = this;\n var relateToElement = this.getRelateToElement();\n if (relateToElement.classList.contains('e-filemanager')) {\n this.fmDialogContainer = this.element.getElementsByClassName('e-file-select-wrap')[0];\n }\n this.wireEvents();\n if (!isNullOrUndefined(this.fmDialogContainer) && Browser.isIos) {\n this.fmDialogContainer.style.display = 'block';\n }\n if (this.zIndex === 1000 || !isNullOrUndefined(relativeElement)) {\n var zIndexElement = (isNullOrUndefined(relativeElement)) ? this.element : relativeElement;\n this.zIndex = getZindexPartial(zIndexElement);\n setStyleAttribute(this.element, { 'zIndex': this.zIndex });\n }\n animationOptions = (!isNullOrUndefined(animationOptions) && typeof animationOptions === 'object') ?\n animationOptions : this.showAnimation;\n if (this.collision.X !== 'none' || this.collision.Y !== 'none') {\n removeClass([this.element], CLASSNAMES.CLOSE);\n addClass([this.element], CLASSNAMES.OPEN);\n this.checkCollision();\n removeClass([this.element], CLASSNAMES.OPEN);\n addClass([this.element], CLASSNAMES.CLOSE);\n }\n if (!isNullOrUndefined(animationOptions)) {\n animationOptions.begin = function () {\n if (!_this.isDestroyed) {\n removeClass([_this.element], CLASSNAMES.CLOSE);\n addClass([_this.element], CLASSNAMES.OPEN);\n }\n };\n animationOptions.end = function () {\n if (!_this.isDestroyed) {\n _this.trigger('open');\n }\n };\n new Animation(animationOptions).animate(this.element);\n }\n else {\n removeClass([this.element], CLASSNAMES.CLOSE);\n addClass([this.element], CLASSNAMES.OPEN);\n this.trigger('open');\n }\n };\n /**\n * Hides the popup element from screen.\n *\n * @param {AnimationModel} animationOptions - To give the animation options.\n * @returns {void}\n */\n Popup.prototype.hide = function (animationOptions) {\n var _this = this;\n animationOptions = (!isNullOrUndefined(animationOptions) && typeof animationOptions === 'object') ?\n animationOptions : this.hideAnimation;\n if (!isNullOrUndefined(animationOptions)) {\n animationOptions.end = function () {\n if (!_this.isDestroyed) {\n removeClass([_this.element], CLASSNAMES.OPEN);\n addClass([_this.element], CLASSNAMES.CLOSE);\n _this.trigger('close');\n }\n };\n new Animation(animationOptions).animate(this.element);\n }\n else {\n removeClass([this.element], CLASSNAMES.OPEN);\n addClass([this.element], CLASSNAMES.CLOSE);\n this.trigger('close');\n }\n this.unwireEvents();\n };\n /**\n * Gets scrollable parent elements for the given element.\n *\n * @returns {void}\n * @param { HTMLElement } element - Specify the element to get the scrollable parents of it.\n */\n Popup.prototype.getScrollableParent = function (element) {\n this.checkFixedParent(element);\n return getScrollableParent(element, this.fixedParent);\n };\n Popup.prototype.checkFixedParent = function (element) {\n var parent = element.parentElement;\n while (parent && parent.tagName !== 'HTML') {\n var parentStyle = getComputedStyle(parent);\n if (parentStyle.position === 'fixed' && !isNullOrUndefined(this.element) && this.element.offsetParent &&\n this.element.offsetParent.tagName === 'BODY' && getComputedStyle(this.element.offsetParent).overflow !== 'hidden') {\n this.element.style.top = window.scrollY > parseInt(this.element.style.top, 10) ?\n formatUnit(window.scrollY - parseInt(this.element.style.top, 10))\n : formatUnit(parseInt(this.element.style.top, 10) - window.scrollY);\n this.element.style.position = 'fixed';\n this.fixedParent = true;\n }\n parent = parent.parentElement;\n if (!isNullOrUndefined(this.element) && isNullOrUndefined(this.element.offsetParent) && parentStyle.position === 'fixed'\n && this.element.style.position === 'fixed') {\n this.fixedParent = true;\n }\n }\n };\n __decorate([\n Property('auto')\n ], Popup.prototype, \"height\", void 0);\n __decorate([\n Property('auto')\n ], Popup.prototype, \"width\", void 0);\n __decorate([\n Property(null)\n ], Popup.prototype, \"content\", void 0);\n __decorate([\n Property('container')\n ], Popup.prototype, \"targetType\", void 0);\n __decorate([\n Property(null)\n ], Popup.prototype, \"viewPortElement\", void 0);\n __decorate([\n Property({ X: 'none', Y: 'none' })\n ], Popup.prototype, \"collision\", void 0);\n __decorate([\n Property('')\n ], Popup.prototype, \"relateTo\", void 0);\n __decorate([\n Complex({}, PositionData)\n ], Popup.prototype, \"position\", void 0);\n __decorate([\n Property(0)\n ], Popup.prototype, \"offsetX\", void 0);\n __decorate([\n Property(0)\n ], Popup.prototype, \"offsetY\", void 0);\n __decorate([\n Property(1000)\n ], Popup.prototype, \"zIndex\", void 0);\n __decorate([\n Property(false)\n ], Popup.prototype, \"enableRtl\", void 0);\n __decorate([\n Property('reposition')\n ], Popup.prototype, \"actionOnScroll\", void 0);\n __decorate([\n Property(null)\n ], Popup.prototype, \"showAnimation\", void 0);\n __decorate([\n Property(null)\n ], Popup.prototype, \"hideAnimation\", void 0);\n __decorate([\n Event()\n ], Popup.prototype, \"open\", void 0);\n __decorate([\n Event()\n ], Popup.prototype, \"close\", void 0);\n __decorate([\n Event()\n ], Popup.prototype, \"targetExitViewport\", void 0);\n Popup = __decorate([\n NotifyPropertyChanges\n ], Popup);\n return Popup;\n}(Component));\nexport { Popup };\n/**\n * Gets scrollable parent elements for the given element.\n *\n * @param { HTMLElement } element - Specify the element to get the scrollable parents of it.\n * @param {boolean} fixedParent - specifies the parent element\n * @private\n * @returns {void}\n */\nexport function getScrollableParent(element, fixedParent) {\n var eleStyle = getComputedStyle(element);\n var scrollParents = [];\n var overflowRegex = /(auto|scroll)/;\n var parent = element.parentElement;\n while (parent && parent.tagName !== 'HTML') {\n var parentStyle = getComputedStyle(parent);\n if (!(eleStyle.position === 'absolute' && parentStyle.position === 'static')\n && overflowRegex.test(parentStyle.overflow + parentStyle.overflowY + parentStyle.overflowX)) {\n scrollParents.push(parent);\n }\n parent = parent.parentElement;\n }\n if (!fixedParent) {\n scrollParents.push(document);\n }\n return scrollParents;\n}\n/**\n * Gets the maximum z-index of the given element.\n *\n * @returns {void}\n * @param { HTMLElement } element - Specify the element to get the maximum z-index of it.\n * @private\n */\nexport function getZindexPartial(element) {\n // upto body traversal\n var parent = element.parentElement;\n var parentZindex = [];\n while (parent) {\n if (parent.tagName !== 'BODY') {\n var index = document.defaultView.getComputedStyle(parent, null).getPropertyValue('z-index');\n var position = document.defaultView.getComputedStyle(parent, null).getPropertyValue('position');\n if (index !== 'auto' && position !== 'static') {\n parentZindex.push(index);\n }\n parent = parent.parentElement;\n }\n else {\n break;\n }\n }\n var childrenZindex = [];\n for (var i = 0; i < document.body.children.length; i++) {\n if (!element.isEqualNode(document.body.children[i])) {\n var index = document.defaultView.getComputedStyle(document.body.children[i], null).getPropertyValue('z-index');\n var position = document.defaultView.getComputedStyle(document.body.children[i], null).getPropertyValue('position');\n if (index !== 'auto' && position !== 'static') {\n childrenZindex.push(index);\n }\n }\n }\n childrenZindex.push('999');\n var siblingsZindex = [];\n if (!isNullOrUndefined(element.parentElement) && element.parentElement.tagName !== 'BODY') {\n var childNodes = [].slice.call(element.parentElement.children);\n for (var i = 0; i < childNodes.length; i++) {\n if (!element.isEqualNode(childNodes[i])) {\n var index = document.defaultView.getComputedStyle(childNodes[i], null).getPropertyValue('z-index');\n var position = document.defaultView.getComputedStyle(childNodes[i], null).getPropertyValue('position');\n if (index !== 'auto' && position !== 'static') {\n siblingsZindex.push(index);\n }\n }\n }\n }\n var finalValue = parentZindex.concat(childrenZindex, siblingsZindex);\n // eslint-disable-next-line\n var currentZindexValue = Math.max.apply(Math, finalValue) + 1;\n return currentZindexValue > 2147483647 ? 2147483647 : currentZindexValue;\n}\n/**\n * Gets the maximum z-index of the page.\n *\n * @returns {void}\n * @param { HTMLElement } tagName - Specify the tagName to get the maximum z-index of it.\n * @private\n */\nexport function getMaxZindex(tagName) {\n if (tagName === void 0) { tagName = ['*']; }\n var maxZindex = [];\n for (var i = 0; i < tagName.length; i++) {\n var elements = document.getElementsByTagName(tagName[i]);\n for (var i_1 = 0; i_1 < elements.length; i_1++) {\n var index = document.defaultView.getComputedStyle(elements[i_1], null).getPropertyValue('z-index');\n var position = document.defaultView.getComputedStyle(elements[i_1], null).getPropertyValue('position');\n if (index !== 'auto' && position !== 'static') {\n maxZindex.push(index);\n }\n }\n }\n // eslint-disable-next-line\n var currentZindexValue = Math.max.apply(Math, maxZindex) + 1;\n return currentZindexValue > 2147483647 ? 2147483647 : currentZindexValue;\n}\n","/**\n * Resize library\n */\nimport { isNullOrUndefined as isNOU, createElement, EventHandler, detach, Browser } from '@syncfusion/ej2-base';\n/* eslint-disable */\nvar elementClass = ['north-west', 'north', 'north-east', 'west', 'east', 'south-west', 'south', 'south-east'];\nvar RESIZE_HANDLER = 'e-resize-handle';\nvar FOCUSED_HANDLER = 'e-focused-handle';\nvar DIALOG_RESIZABLE = 'e-dlg-resizable';\nvar RESTRICT_LEFT = ['e-restrict-left'];\nvar RESIZE_WITHIN_VIEWPORT = 'e-resize-viewport';\nvar dialogBorderResize = ['north', 'west', 'east', 'south'];\nvar targetElement;\nvar selectedHandler;\nvar originalWidth = 0;\nvar originalHeight = 0;\nvar originalX = 0;\nvar originalY = 0;\nvar originalMouseX = 0;\nvar originalMouseY = 0;\nvar minHeight;\nvar maxHeight;\nvar minWidth;\nvar maxWidth;\nvar containerElement;\nvar resizeStart = null;\nvar resize = null;\nvar resizeEnd = null;\n/* eslint-enable */\nvar resizeWestWidth;\nvar setLeft = true;\nvar previousWidth = 0;\nvar setWidth = true;\n// eslint-disable-next-line\nvar proxy;\n/**\n *\n * @param {ResizeArgs} args - specifies the resize args\n * @returns {void}\n */\nexport function createResize(args) {\n resizeStart = args.resizeBegin;\n resize = args.resizing;\n resizeEnd = args.resizeComplete;\n targetElement = getDOMElement(args.element);\n containerElement = getDOMElement(args.boundary);\n var directions = args.direction.split(' ');\n for (var i = 0; i < directions.length; i++) {\n if (dialogBorderResize.indexOf(directions[i]) >= 0 && directions[i]) {\n setBorderResizeElm(directions[i]);\n }\n else if (directions[i].trim() !== '') {\n var resizeHandler = createElement('div', { className: 'e-icons ' + RESIZE_HANDLER + ' ' + 'e-' + directions[i] });\n targetElement.appendChild(resizeHandler);\n }\n }\n minHeight = args.minHeight;\n minWidth = args.minWidth;\n maxWidth = args.maxWidth;\n maxHeight = args.maxHeight;\n if (args.proxy && args.proxy.element && args.proxy.element.classList.contains('e-dialog')) {\n wireEvents(args.proxy);\n }\n else {\n wireEvents();\n }\n}\n/**\n *\n * @param {string} direction - specifies the string\n * @returns {void}\n */\nfunction setBorderResizeElm(direction) {\n calculateValues();\n var borderBottom = createElement('span', {\n attrs: {\n 'unselectable': 'on', 'contenteditable': 'false'\n }\n });\n borderBottom.setAttribute('class', 'e-dialog-border-resize e-' + direction);\n if (direction === 'south') {\n borderBottom.style.height = '2px';\n borderBottom.style.width = '100%';\n borderBottom.style.bottom = '0px';\n borderBottom.style.left = '0px';\n }\n if (direction === 'north') {\n borderBottom.style.height = '2px';\n borderBottom.style.width = '100%';\n borderBottom.style.top = '0px';\n borderBottom.style.left = '0px';\n }\n if (direction === 'east') {\n borderBottom.style.height = '100%';\n borderBottom.style.width = '2px';\n borderBottom.style.right = '0px';\n borderBottom.style.top = '0px';\n }\n if (direction === 'west') {\n borderBottom.style.height = '100%';\n borderBottom.style.width = '2px';\n borderBottom.style.left = '0px';\n borderBottom.style.top = '0px';\n }\n targetElement.appendChild(borderBottom);\n}\n/**\n *\n * @param {string} element - specifies the element\n * @returns {HTMLElement} - returns the element\n */\nfunction getDOMElement(element) {\n var domElement;\n if (!isNOU(element)) {\n if (typeof (element) === 'string') {\n domElement = document.querySelector(element);\n }\n else {\n domElement = element;\n }\n }\n return domElement;\n}\n// eslint-disable-next-line\nfunction wireEvents(args) {\n if (isNOU(args)) {\n args = this;\n }\n var resizers = targetElement.querySelectorAll('.' + RESIZE_HANDLER);\n for (var i = 0; i < resizers.length; i++) {\n selectedHandler = resizers[i];\n EventHandler.add(selectedHandler, 'mousedown', onMouseDown, args);\n var eventName = (Browser.info.name === 'msie') ? 'pointerdown' : 'touchstart';\n EventHandler.add(selectedHandler, eventName, onTouchStart, args);\n }\n var borderResizers = targetElement.querySelectorAll('.e-dialog-border-resize');\n if (!isNOU(borderResizers)) {\n for (var i = 0; i < borderResizers.length; i++) {\n selectedHandler = borderResizers[i];\n EventHandler.add(selectedHandler, 'mousedown', onMouseDown, args);\n var eventName = (Browser.info.name === 'msie') ? 'pointerdown' : 'touchstart';\n EventHandler.add(selectedHandler, eventName, onTouchStart, args);\n }\n }\n}\n/* istanbul ignore next */\n/**\n *\n * @param {string} e - specifies the string\n * @returns {string} - returns the string\n */\nfunction getEventType(e) {\n return (e.indexOf('mouse') > -1) ? 'mouse' : 'touch';\n}\n/* istanbul ignore next */\n/**\n *\n * @param {MouseEvent} e - specifies the mouse event\n * @returns {void}\n */\nfunction onMouseDown(e) {\n e.preventDefault();\n targetElement = e.target.parentElement;\n calculateValues();\n originalMouseX = e.pageX;\n originalMouseY = e.pageY;\n e.target.classList.add(FOCUSED_HANDLER);\n if (!isNOU(resizeStart)) {\n proxy = this;\n if (resizeStart(e, proxy) === true) {\n return;\n }\n }\n if (this.targetEle && targetElement && targetElement.querySelector('.' + DIALOG_RESIZABLE)) {\n containerElement = this.target === ('body' || 'document.body' || document.body) ? null : this.targetEle;\n maxWidth = this.targetEle.clientWidth;\n maxHeight = this.targetEle.clientHeight;\n }\n var target = (isNOU(containerElement)) ? document : containerElement;\n EventHandler.add(target, 'mousemove', onMouseMove, this);\n EventHandler.add(document, 'mouseup', onMouseUp, this);\n for (var i = 0; i < RESTRICT_LEFT.length; i++) {\n if (targetElement.classList.contains(RESTRICT_LEFT[i])) {\n setLeft = false;\n }\n else {\n setLeft = true;\n }\n }\n}\n/* istanbul ignore next */\n/**\n *\n * @param {MouseEvent} e - specifies the event\n * @returns {void}\n */\nfunction onMouseUp(e) {\n var touchMoveEvent = (Browser.info.name === 'msie') ? 'pointermove' : 'touchmove';\n var touchEndEvent = (Browser.info.name === 'msie') ? 'pointerup' : 'touchend';\n var target = (isNOU(containerElement)) ? document : containerElement;\n var eventName = (Browser.info.name === 'msie') ? 'pointerdown' : 'touchstart';\n EventHandler.remove(target, 'mousemove', onMouseMove);\n EventHandler.remove(target, touchMoveEvent, onMouseMove);\n EventHandler.remove(target, eventName, onMouseMove);\n if (!isNOU(document.body.querySelector('.' + FOCUSED_HANDLER))) {\n document.body.querySelector('.' + FOCUSED_HANDLER).classList.remove(FOCUSED_HANDLER);\n }\n if (!isNOU(resizeEnd)) {\n proxy = this;\n resizeEnd(e, proxy);\n }\n EventHandler.remove(document, 'mouseup', onMouseUp);\n EventHandler.remove(document, touchEndEvent, onMouseUp);\n}\n/* istanbul ignore next */\n/**\n * @returns {void}\n */\nfunction calculateValues() {\n originalWidth = parseFloat(getComputedStyle(targetElement, null).getPropertyValue('width').replace('px', ''));\n originalHeight = parseFloat(getComputedStyle(targetElement, null).getPropertyValue('height').replace('px', ''));\n originalX = targetElement.getBoundingClientRect().left;\n originalY = targetElement.getBoundingClientRect().top;\n}\n/* istanbul ignore next */\n/**\n *\n * @param {MouseEvent} e - specifies the event\n * @returns {void}\n */\nfunction onTouchStart(e) {\n targetElement = e.target.parentElement;\n calculateValues();\n var dialogResizeElement = targetElement.classList.contains('e-dialog');\n if ((e.target.classList.contains(RESIZE_HANDLER) || e.target.classList.contains('e-dialog-border-resize')) && dialogResizeElement) {\n e.target.classList.add(FOCUSED_HANDLER);\n }\n var coordinates = e.touches ? e.changedTouches[0] : e;\n originalMouseX = coordinates.pageX;\n originalMouseY = coordinates.pageY;\n if (!isNOU(resizeStart)) {\n proxy = this;\n if (resizeStart(e, proxy) === true) {\n return;\n }\n }\n var touchMoveEvent = (Browser.info.name === 'msie') ? 'pointermove' : 'touchmove';\n var touchEndEvent = (Browser.info.name === 'msie') ? 'pointerup' : 'touchend';\n var target = (isNOU(containerElement)) ? document : containerElement;\n EventHandler.add(target, touchMoveEvent, onMouseMove, this);\n EventHandler.add(document, touchEndEvent, onMouseUp, this);\n}\n/* istanbul ignore next */\n/**\n *\n * @param {MouseEvent} e - specifies the event\n * @returns {void}\n */\nfunction onMouseMove(e) {\n if (e.target.classList.contains(RESIZE_HANDLER) && e.target.classList.contains(FOCUSED_HANDLER)) {\n selectedHandler = e.target;\n }\n else if (!isNOU(document.body.querySelector('.' + FOCUSED_HANDLER))) {\n selectedHandler = document.body.querySelector('.' + FOCUSED_HANDLER);\n }\n if (!isNOU(selectedHandler)) {\n var resizeTowards = '';\n for (var i = 0; i < elementClass.length; i++) {\n if (selectedHandler.classList.contains('e-' + elementClass[i])) {\n resizeTowards = elementClass[i];\n }\n }\n if (!isNOU(resize)) {\n proxy = this;\n resize(e, proxy);\n }\n switch (resizeTowards) {\n case 'south':\n resizeSouth(e);\n break;\n case 'north':\n resizeNorth(e);\n break;\n case 'west':\n resizeWest(e);\n break;\n case 'east':\n resizeEast(e);\n break;\n case 'south-east':\n resizeSouth(e);\n resizeEast(e);\n break;\n case 'south-west':\n resizeSouth(e);\n resizeWest(e);\n break;\n case 'north-east':\n resizeNorth(e);\n resizeEast(e);\n break;\n case 'north-west':\n resizeNorth(e);\n resizeWest(e);\n break;\n default: break;\n }\n }\n}\n/* istanbul ignore next */\n/**\n *\n * @param {HTMLElement} element - specifies the eleemnt\n * @returns {ClientRect} - returns the client\n */\nfunction getClientRectValues(element) {\n return element.getBoundingClientRect();\n}\n/* istanbul ignore next */\n// eslint-disable-next-line\nfunction resizeSouth(e) {\n var documentHeight = document.documentElement.clientHeight;\n var calculateValue = false;\n var coordinates = e.touches ? e.changedTouches[0] : e;\n var currentpageY = coordinates.pageY;\n var targetRectValues = getClientRectValues(targetElement);\n var containerRectValues;\n if (!isNOU(containerElement)) {\n containerRectValues = getClientRectValues(containerElement);\n }\n if (!isNOU(containerElement)) {\n calculateValue = true;\n }\n else if (isNOU(containerElement) && ((documentHeight - currentpageY) >= 0 || (targetRectValues.top < 0))) {\n calculateValue = true;\n }\n var calculatedHeight = originalHeight + (currentpageY - originalMouseY);\n calculatedHeight = (calculatedHeight > minHeight) ? calculatedHeight : minHeight;\n var containerTop = 0;\n if (!isNOU(containerElement)) {\n containerTop = containerRectValues.top;\n }\n var borderValue = isNOU(containerElement) ? 0 : containerElement.offsetHeight - containerElement.clientHeight;\n var topWithoutborder = (targetRectValues.top - containerTop) - (borderValue / 2);\n topWithoutborder = (topWithoutborder < 0) ? 0 : topWithoutborder;\n if (targetRectValues.top > 0 && (topWithoutborder + calculatedHeight) > maxHeight) {\n calculateValue = false;\n if (targetElement.classList.contains(RESIZE_WITHIN_VIEWPORT)) {\n return;\n }\n targetElement.style.height = (maxHeight - parseInt(topWithoutborder.toString(), 10)) + 'px';\n return;\n }\n var targetTop = 0;\n if (calculateValue) {\n if (targetRectValues.top < 0 && (documentHeight + (targetRectValues.height + targetRectValues.top) > 0)) {\n targetTop = targetRectValues.top;\n if ((calculatedHeight + targetTop) <= 30) {\n calculatedHeight = (targetRectValues.height - (targetRectValues.height + targetRectValues.top)) + 30;\n }\n }\n if (((calculatedHeight + targetRectValues.top) >= maxHeight)) {\n targetElement.style.height = targetRectValues.height +\n (documentHeight - (targetRectValues.height + targetRectValues.top)) + 'px';\n }\n var calculatedTop = (isNOU(containerElement)) ? targetTop : topWithoutborder;\n if (calculatedHeight >= minHeight && ((calculatedHeight + calculatedTop) <= maxHeight)) {\n targetElement.style.height = calculatedHeight + 'px';\n }\n }\n}\n/* istanbul ignore next */\n// eslint-disable-next-line\nfunction resizeNorth(e) {\n var calculateValue = false;\n var boundaryRectValues;\n var pageY = (getEventType(e.type) === 'mouse') ? e.pageY : e.touches[0].pageY;\n var targetRectValues = getClientRectValues(targetElement);\n if (!isNOU(containerElement)) {\n boundaryRectValues = getClientRectValues(containerElement);\n }\n if (!isNOU(containerElement) && (targetRectValues.top - boundaryRectValues.top) > 0) {\n calculateValue = true;\n }\n else if (isNOU(containerElement) && pageY > 0) {\n calculateValue = true;\n }\n var currentHeight = originalHeight - (pageY - originalMouseY);\n if (calculateValue) {\n if (currentHeight >= minHeight && currentHeight <= maxHeight) {\n var containerTop = 0;\n if (!isNOU(containerElement)) {\n containerTop = boundaryRectValues.top;\n }\n var top_1 = (originalY - containerTop) + (pageY - originalMouseY);\n top_1 = top_1 > 0 ? top_1 : 1;\n targetElement.style.height = currentHeight + 'px';\n targetElement.style.top = top_1 + 'px';\n }\n }\n}\n/* istanbul ignore next */\n// eslint-disable-next-line\nfunction resizeWest(e) {\n var documentWidth = document.documentElement.clientWidth;\n var calculateValue = false;\n var rectValues;\n if (!isNOU(containerElement)) {\n rectValues = getClientRectValues(containerElement);\n }\n var pageX = (getEventType(e.type) === 'mouse') ? e.pageX : e.touches[0].pageX;\n var targetRectValues = getClientRectValues(targetElement);\n var borderValue = isNOU(containerElement) ? 0 : containerElement.offsetWidth - containerElement.clientWidth;\n /* eslint-disable */\n var left = isNOU(containerElement) ? 0 : rectValues.left;\n var containerWidth = isNOU(containerElement) ? 0 : rectValues.width;\n /* eslint-enable */\n if (isNOU(resizeWestWidth)) {\n if (!isNOU(containerElement)) {\n resizeWestWidth = (((targetRectValues.left - left) - borderValue / 2)) + targetRectValues.width;\n resizeWestWidth = resizeWestWidth + (containerWidth - borderValue - resizeWestWidth);\n }\n else {\n resizeWestWidth = documentWidth;\n }\n }\n if (!isNOU(containerElement) &&\n (Math.floor((targetRectValues.left - rectValues.left) + targetRectValues.width +\n (rectValues.right - targetRectValues.right)) - borderValue) <= maxWidth) {\n calculateValue = true;\n }\n else if (isNOU(containerElement) && pageX >= 0) {\n calculateValue = true;\n }\n var calculatedWidth = originalWidth - (pageX - originalMouseX);\n if (setLeft) {\n calculatedWidth = (calculatedWidth > resizeWestWidth) ? resizeWestWidth : calculatedWidth;\n }\n if (calculateValue) {\n if (calculatedWidth >= minWidth && calculatedWidth <= maxWidth) {\n var containerLeft = 0;\n if (!isNOU(containerElement)) {\n containerLeft = rectValues.left;\n }\n var left_1 = (originalX - containerLeft) + (pageX - originalMouseX);\n left_1 = (left_1 > 0) ? left_1 : 1;\n if (calculatedWidth !== previousWidth && setWidth) {\n targetElement.style.width = calculatedWidth + 'px';\n }\n if (setLeft) {\n targetElement.style.left = left_1 + 'px';\n if (left_1 === 1) {\n setWidth = false;\n }\n else {\n setWidth = true;\n }\n }\n }\n }\n previousWidth = calculatedWidth;\n}\n/* istanbul ignore next */\n// eslint-disable-next-line\nfunction resizeEast(e) {\n var documentWidth = document.documentElement.clientWidth;\n var calculateValue = false;\n var containerRectValues;\n if (!isNOU(containerElement)) {\n containerRectValues = getClientRectValues(containerElement);\n }\n var coordinates = e.touches ? e.changedTouches[0] : e;\n var pageX = coordinates.pageX;\n var targetRectValues = getClientRectValues(targetElement);\n if (!isNOU(containerElement) && (((targetRectValues.left - containerRectValues.left) + targetRectValues.width) <= maxWidth\n || (targetRectValues.right - containerRectValues.left) >= targetRectValues.width)) {\n calculateValue = true;\n }\n else if (isNOU(containerElement) && (documentWidth - pageX) > 0) {\n calculateValue = true;\n }\n var calculatedWidth = originalWidth + (pageX - originalMouseX);\n var containerLeft = 0;\n if (!isNOU(containerElement)) {\n containerLeft = containerRectValues.left;\n }\n if (((targetRectValues.left - containerLeft) + calculatedWidth) > maxWidth) {\n calculateValue = false;\n if (targetElement.classList.contains(RESIZE_WITHIN_VIEWPORT)) {\n return;\n }\n targetElement.style.width = maxWidth - (targetRectValues.left - containerLeft) + 'px';\n }\n if (calculateValue) {\n if (calculatedWidth >= minWidth && calculatedWidth <= maxWidth) {\n targetElement.style.width = calculatedWidth + 'px';\n }\n }\n}\n/* istanbul ignore next */\n/**\n *\n * @param {number} minimumHeight - specifies the number\n * @returns {void}\n */\nexport function setMinHeight(minimumHeight) {\n minHeight = minimumHeight;\n}\n/**\n *\n * @param {number} value - specifies the number value\n * @returns {void}\n */\nexport function setMaxWidth(value) {\n maxWidth = value;\n}\n/**\n *\n * @param {number} value - specifies the number value\n * @returns {void}\n */\nexport function setMaxHeight(value) {\n maxHeight = value;\n}\n/**\n * @returns {void}\n */\nexport function removeResize() {\n var handlers = targetElement.querySelectorAll('.' + RESIZE_HANDLER);\n for (var i = 0; i < handlers.length; i++) {\n detach(handlers[i]);\n }\n var borderResizers = targetElement.querySelectorAll('.e-dialog-border-resize');\n if (!isNOU(borderResizers)) {\n for (var i = 0; i < borderResizers.length; i++) {\n detach(borderResizers[i]);\n }\n }\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Component, Property, Event, Collection, L10n, Complex, compile, createElement } from '@syncfusion/ej2-base';\nimport { addClass, removeClass, detach, attributes, prepend, setStyleAttribute } from '@syncfusion/ej2-base';\nimport { NotifyPropertyChanges, ChildProperty, isBlazor } from '@syncfusion/ej2-base';\nimport { isNullOrUndefined, formatUnit, append, EventHandler, Draggable, extend } from '@syncfusion/ej2-base';\nimport { SanitizeHtmlHelper, Browser } from '@syncfusion/ej2-base';\nimport { Button } from '@syncfusion/ej2-buttons';\nimport { Popup, PositionData, getZindexPartial } from '../popup/popup';\nimport { createResize, removeResize, setMinHeight, setMaxWidth, setMaxHeight } from '../common/resize';\nvar ButtonProps = /** @class */ (function (_super) {\n __extends(ButtonProps, _super);\n function ButtonProps() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(true)\n ], ButtonProps.prototype, \"isFlat\", void 0);\n __decorate([\n Property()\n ], ButtonProps.prototype, \"buttonModel\", void 0);\n __decorate([\n Property('Button')\n ], ButtonProps.prototype, \"type\", void 0);\n __decorate([\n Event()\n ], ButtonProps.prototype, \"click\", void 0);\n return ButtonProps;\n}(ChildProperty));\nexport { ButtonProps };\n/**\n * Configures the animation properties for both open and close the dialog.\n */\nvar AnimationSettings = /** @class */ (function (_super) {\n __extends(AnimationSettings, _super);\n function AnimationSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('Fade')\n ], AnimationSettings.prototype, \"effect\", void 0);\n __decorate([\n Property(400)\n ], AnimationSettings.prototype, \"duration\", void 0);\n __decorate([\n Property(0)\n ], AnimationSettings.prototype, \"delay\", void 0);\n return AnimationSettings;\n}(ChildProperty));\nexport { AnimationSettings };\nvar ROOT = 'e-dialog';\nvar RTL = 'e-rtl';\nvar DLG_HEADER_CONTENT = 'e-dlg-header-content';\nvar DLG_HEADER = 'e-dlg-header';\nvar DLG_FOOTER_CONTENT = 'e-footer-content';\nvar MODAL_DLG = 'e-dlg-modal';\nvar DLG_CONTENT = 'e-dlg-content';\nvar DLG_CLOSE_ICON = 'e-icon-dlg-close';\nvar DLG_OVERLAY = 'e-dlg-overlay';\nvar DLG_TARGET = 'e-dlg-target';\nvar DLG_CONTAINER = 'e-dlg-container';\nvar SCROLL_DISABLED = 'e-scroll-disabled';\nvar DLG_PRIMARY_BUTTON = 'e-primary';\nvar ICON = 'e-icons';\nvar POPUP_ROOT = 'e-popup';\nvar DEVICE = 'e-device';\nvar FULLSCREEN = 'e-dlg-fullscreen';\nvar DLG_CLOSE_ICON_BTN = 'e-dlg-closeicon-btn';\nvar DLG_HIDE = 'e-popup-close';\nvar DLG_SHOW = 'e-popup-open';\nvar DLG_UTIL_DEFAULT_TITLE = 'Information';\nvar DLG_UTIL_ROOT = 'e-scroll-disabled';\nvar DLG_UTIL_ALERT = 'e-alert-dialog';\nvar DLG_UTIL_CONFIRM = 'e-confirm-dialog';\nvar DLG_RESIZABLE = 'e-dlg-resizable';\nvar DLG_RESTRICT_LEFT_VALUE = 'e-restrict-left';\nvar DLG_RESTRICT_WIDTH_VALUE = 'e-resize-viewport';\nvar DLG_REF_ELEMENT = 'e-dlg-ref-element';\nvar DLG_USER_ACTION_CLOSED = 'user action';\nvar DLG_CLOSE_ICON_CLOSED = 'close icon';\nvar DLG_ESCAPE_CLOSED = 'escape';\nvar DLG_OVERLAYCLICK_CLOSED = 'overlayClick';\nvar DLG_DRAG = 'e-draggable';\n/**\n * Represents the dialog component that displays the information and get input from the user.\n * Two types of dialog components are `Modal and Modeless (non-modal)` depending on its interaction with parent application.\n * ```html\n *
\n * ```\n * ```typescript\n * \n * ```\n */\nvar Dialog = /** @class */ (function (_super) {\n __extends(Dialog, _super);\n /*\n * * Constructor for creating the widget\n *\n * @param\n * @param\n * @hidden\n */\n function Dialog(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.needsID = true;\n return _this;\n }\n /**\n *Initialize the control rendering\n *\n * @returns {void}\n * @private\n */\n Dialog.prototype.render = function () {\n this.initialize();\n this.initRender();\n this.wireEvents();\n if (this.width === '100%') {\n this.element.style.width = '';\n }\n if (this.minHeight !== '') {\n this.element.style.minHeight = formatUnit(this.minHeight);\n }\n if (this.enableResize) {\n this.setResize();\n if (this.animationSettings.effect === 'None') {\n this.getMinHeight();\n }\n }\n this.renderComplete();\n };\n Dialog.prototype.initializeValue = function () {\n this.dlgClosedBy = DLG_USER_ACTION_CLOSED;\n };\n /**\n *Initialize the event handler\n *\n * @returns {void}\n * @private\n */\n Dialog.prototype.preRender = function () {\n var _this = this;\n this.initializeValue();\n this.headerContent = null;\n this.allowMaxHeight = true;\n this.preventVisibility = true;\n this.clonedEle = this.element.cloneNode(true);\n this.closeIconClickEventHandler = function (event) {\n _this.dlgClosedBy = DLG_CLOSE_ICON_CLOSED;\n _this.hide(event);\n };\n this.dlgOverlayClickEventHandler = function (event) {\n _this.dlgClosedBy = DLG_OVERLAYCLICK_CLOSED;\n event.preventFocus = false;\n _this.trigger('overlayClick', event, function (overlayClickEventArgs) {\n if (!overlayClickEventArgs.preventFocus) {\n _this.focusContent();\n }\n _this.dlgClosedBy = DLG_USER_ACTION_CLOSED;\n });\n };\n var localeText = { close: 'Close' };\n this.l10n = new L10n('dialog', localeText, this.locale);\n this.checkPositionData();\n if (isNullOrUndefined(this.target)) {\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.target = document.body;\n this.isProtectedOnChange = prevOnChange;\n }\n };\n Dialog.prototype.isNumberValue = function (value) {\n var isNumber = /^[-+]?\\d*\\.?\\d+$/.test(value);\n return isNumber;\n };\n Dialog.prototype.checkPositionData = function () {\n if (!isNullOrUndefined(this.position)) {\n if (!isNullOrUndefined(this.position.X) && (typeof (this.position.X) !== 'number')) {\n var isNumber = this.isNumberValue(this.position.X);\n if (isNumber) {\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.position.X = parseFloat(this.position.X);\n this.isProtectedOnChange = prevOnChange;\n }\n }\n if (!isNullOrUndefined(this.position.Y) && (typeof (this.position.Y) !== 'number')) {\n var isNumber = this.isNumberValue(this.position.Y);\n if (isNumber) {\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.position.Y = parseFloat(this.position.Y);\n this.isProtectedOnChange = prevOnChange;\n }\n }\n }\n };\n Dialog.prototype.getEle = function (list, selector) {\n var element = undefined;\n for (var i = 0; i < list.length; i++) {\n if (list[i].classList.contains(selector)) {\n element = list[i];\n break;\n }\n }\n return element;\n };\n /* istanbul ignore next */\n Dialog.prototype.getMinHeight = function () {\n var computedHeaderHeight = '0px';\n var computedFooterHeight = '0px';\n if (!isNullOrUndefined(this.element.querySelector('.' + DLG_HEADER_CONTENT))) {\n computedHeaderHeight = getComputedStyle(this.headerContent).height;\n }\n var footerEle = this.getEle(this.element.children, DLG_FOOTER_CONTENT);\n if (!isNullOrUndefined(footerEle)) {\n computedFooterHeight = getComputedStyle(footerEle).height;\n }\n var headerHeight = parseInt(computedHeaderHeight.slice(0, computedHeaderHeight.indexOf('p')), 10);\n var footerHeight = parseInt(computedFooterHeight.slice(0, computedFooterHeight.indexOf('p')), 10);\n setMinHeight(headerHeight + 30 + (isNaN(footerHeight) ? 0 : footerHeight));\n return (headerHeight + 30 + footerHeight);\n };\n Dialog.prototype.onResizeStart = function (args, dialogObj) {\n dialogObj.trigger('resizeStart', args);\n return args.cancel;\n };\n Dialog.prototype.onResizing = function (args, dialogObj) {\n dialogObj.trigger('resizing', args);\n };\n Dialog.prototype.onResizeComplete = function (args, dialogObj) {\n dialogObj.trigger('resizeStop', args);\n };\n Dialog.prototype.setResize = function () {\n if (this.enableResize) {\n if (this.isBlazorServerRender() && !isNullOrUndefined(this.element.querySelector('.e-icons.e-resize-handle'))) {\n return;\n }\n this.element.classList.add(DLG_RESIZABLE);\n var computedHeight = getComputedStyle(this.element).minHeight;\n var computedWidth = getComputedStyle(this.element).minWidth;\n var direction = '';\n for (var i = 0; i < this.resizeHandles.length; i++) {\n if (this.resizeHandles[i] === 'All') {\n direction = 'south north east west north-east north-west south-east south-west';\n break;\n }\n else {\n var directionValue = '';\n switch (this.resizeHandles[i].toString()) {\n case 'SouthEast':\n directionValue = 'south-east';\n break;\n case 'SouthWest':\n directionValue = 'south-west';\n break;\n case 'NorthEast':\n directionValue = 'north-east';\n break;\n case 'NorthWest':\n directionValue = 'north-west';\n break;\n default:\n directionValue = this.resizeHandles[i].toString();\n break;\n }\n direction += directionValue.toLocaleLowerCase() + ' ';\n }\n }\n if (this.enableRtl && direction.trim() === 'south-east') {\n direction = 'south-west';\n }\n else if (this.enableRtl && direction.trim() === 'south-west') {\n direction = 'south-east';\n }\n if (this.isModal && this.enableRtl) {\n this.element.classList.add(DLG_RESTRICT_LEFT_VALUE);\n }\n else if (this.isModal && this.target === document.body) {\n this.element.classList.add(DLG_RESTRICT_WIDTH_VALUE);\n }\n createResize({\n element: this.element,\n direction: direction,\n minHeight: parseInt(computedHeight.slice(0, computedWidth.indexOf('p')), 10),\n maxHeight: this.targetEle.clientHeight,\n minWidth: parseInt(computedWidth.slice(0, computedWidth.indexOf('p')), 10),\n maxWidth: this.targetEle.clientWidth,\n boundary: this.target === document.body ? null : this.targetEle,\n resizeBegin: this.onResizeStart.bind(this),\n resizeComplete: this.onResizeComplete.bind(this),\n resizing: this.onResizing.bind(this),\n proxy: this\n });\n this.wireWindowResizeEvent();\n }\n else {\n removeResize();\n this.unWireWindowResizeEvent();\n if (this.isModal) {\n this.element.classList.remove(DLG_RESTRICT_LEFT_VALUE);\n }\n else {\n this.element.classList.remove(DLG_RESTRICT_WIDTH_VALUE);\n }\n this.element.classList.remove(DLG_RESIZABLE);\n }\n };\n Dialog.prototype.getFocusElement = function (target) {\n var value = 'input,select,textarea,button:enabled,a,[contenteditable=\"true\"],[tabindex]';\n var items = target.querySelectorAll(value);\n return { element: items[items.length - 1] };\n };\n /* istanbul ignore next */\n Dialog.prototype.keyDown = function (event) {\n var _this = this;\n if (event.keyCode === 9) {\n if (this.isModal) {\n var buttonObj = void 0;\n if (!isNullOrUndefined(this.btnObj)) {\n buttonObj = this.btnObj[this.btnObj.length - 1];\n }\n if ((isNullOrUndefined(this.btnObj)) && (!isNullOrUndefined(this.ftrTemplateContent))) {\n buttonObj = this.getFocusElement(this.ftrTemplateContent);\n }\n if (isNullOrUndefined(this.btnObj) && isNullOrUndefined(this.ftrTemplateContent) && !isNullOrUndefined(this.contentEle)) {\n buttonObj = this.getFocusElement(this.contentEle);\n }\n if (!isNullOrUndefined(buttonObj) && document.activeElement === buttonObj.element && !event.shiftKey) {\n event.preventDefault();\n this.focusableElements(this.element).focus();\n }\n if (document.activeElement === this.focusableElements(this.element) && event.shiftKey) {\n event.preventDefault();\n if (!isNullOrUndefined(buttonObj)) {\n buttonObj.element.focus();\n }\n }\n }\n }\n var element = document.activeElement;\n var isTagName = (['input', 'textarea'].indexOf(element.tagName.toLowerCase()) > -1);\n var isContentEdit = false;\n if (!isTagName) {\n isContentEdit = element.hasAttribute('contenteditable') && element.getAttribute('contenteditable') === 'true';\n }\n if (event.keyCode === 27 && this.closeOnEscape) {\n this.dlgClosedBy = DLG_ESCAPE_CLOSED;\n var query = document.querySelector('.e-popup-open:not(.e-dialog)');\n // 'document.querySelector' is used to find the elements rendered based on body\n if (!(!isNullOrUndefined(query) && !query.classList.contains(\"e-toolbar-pop\"))) {\n this.hide(event);\n }\n }\n if ((event.keyCode === 13 && !event.ctrlKey && element.tagName.toLowerCase() !== 'textarea' &&\n isTagName && !isNullOrUndefined(this.primaryButtonEle)) ||\n (event.keyCode === 13 && event.ctrlKey && (element.tagName.toLowerCase() === 'textarea' ||\n isContentEdit)) && !isNullOrUndefined(this.primaryButtonEle)) {\n var buttonIndex_1;\n var firstPrimary = this.buttons.some(function (data, index) {\n buttonIndex_1 = index;\n // eslint-disable-next-line\n var buttonModel = data.buttonModel;\n return !isNullOrUndefined(buttonModel) && buttonModel.isPrimary === true;\n });\n if (firstPrimary && typeof (this.buttons[buttonIndex_1].click) === 'function') {\n setTimeout(function () {\n _this.buttons[buttonIndex_1].click.call(_this, event);\n });\n }\n }\n };\n /**\n * Initialize the control rendering\n *\n * @returns {void}\n * @private\n */\n Dialog.prototype.initialize = function () {\n if (!isNullOrUndefined(this.target)) {\n this.targetEle = ((typeof this.target) === 'string') ?\n document.querySelector(this.target) : this.target;\n }\n if (!this.isBlazorServerRender()) {\n addClass([this.element], ROOT);\n }\n if (Browser.isDevice) {\n addClass([this.element], DEVICE);\n }\n if (!this.isBlazorServerRender()) {\n this.setCSSClass();\n }\n this.setMaxHeight();\n };\n /**\n * Initialize the rendering\n *\n * @returns {void}\n * @private\n */\n Dialog.prototype.initRender = function () {\n var _this = this;\n this.initialRender = true;\n if (!this.isBlazorServerRender()) {\n attributes(this.element, { role: 'dialog' });\n }\n if (this.zIndex === 1000) {\n this.setzIndex(this.element, false);\n this.calculatezIndex = true;\n }\n else {\n this.calculatezIndex = false;\n }\n if (this.isBlazorServerRender() && isNullOrUndefined(this.headerContent)) {\n this.headerContent = this.element.getElementsByClassName('e-dlg-header-content')[0];\n }\n if (this.isBlazorServerRender() && isNullOrUndefined(this.contentEle)) {\n this.contentEle = this.element.querySelector('#' + this.element.id + '_dialog-content');\n }\n if (!this.isBlazorServerRender()) {\n this.setTargetContent();\n if (this.header !== '' && !isNullOrUndefined(this.header)) {\n this.setHeader();\n }\n this.renderCloseIcon();\n this.setContent();\n if (this.footerTemplate !== '' && !isNullOrUndefined(this.footerTemplate)) {\n this.setFooterTemplate();\n }\n else if (!isNullOrUndefined(this.buttons[0].buttonModel)) {\n this.setButton();\n }\n }\n if (this.isBlazorServerRender()) {\n if (!isNullOrUndefined(this.buttons[0].buttonModel) && this.footerTemplate === '') {\n this.setButton();\n }\n }\n if (this.allowDragging && (!isNullOrUndefined(this.headerContent))) {\n this.setAllowDragging();\n }\n if (!this.isBlazorServerRender()) {\n attributes(this.element, { 'aria-modal': (this.isModal ? 'true' : 'false') });\n if (this.isModal) {\n this.setIsModal();\n }\n }\n if (this.isBlazorServerRender() && isNullOrUndefined(this.dlgContainer)) {\n this.dlgContainer = this.element.parentElement;\n for (var i = 0, childNodes = this.dlgContainer.children; i < childNodes.length; i++) {\n if (childNodes[i].classList.contains('e-dlg-overlay')) {\n this.dlgOverlay = childNodes[i];\n }\n }\n }\n if (this.element.classList.contains(DLG_UTIL_ALERT) !== true && this.element.classList.contains(DLG_UTIL_CONFIRM) !== true\n && !isNullOrUndefined(this.element.parentElement)) {\n var parentEle = this.isModal ? this.dlgContainer.parentElement : this.element.parentElement;\n this.refElement = this.createElement('div', { className: DLG_REF_ELEMENT });\n parentEle.insertBefore(this.refElement, (this.isModal ? this.dlgContainer : this.element));\n }\n if (!isNullOrUndefined(this.targetEle)) {\n // eslint-disable-next-line\n this.isModal ? this.targetEle.appendChild(this.dlgContainer) : this.targetEle.appendChild(this.element);\n }\n this.popupObj = new Popup(this.element, {\n height: this.height,\n width: this.width,\n zIndex: this.zIndex,\n relateTo: this.target,\n actionOnScroll: 'none',\n enableRtl: this.enableRtl,\n // eslint-disable-next-line\n open: function (event) {\n var eventArgs = {\n container: _this.isModal ? _this.dlgContainer : _this.element,\n element: _this.element,\n target: _this.target,\n preventFocus: false\n };\n if (_this.enableResize) {\n _this.resetResizeIcon();\n }\n _this.trigger('open', eventArgs, function (openEventArgs) {\n if (!openEventArgs.preventFocus) {\n _this.focusContent();\n }\n });\n },\n // eslint-disable-next-line\n close: function (event) {\n if (_this.isModal) {\n addClass([_this.dlgOverlay], 'e-fade');\n }\n _this.unBindEvent(_this.element);\n if (_this.isModal) {\n _this.dlgContainer.style.display = 'none';\n }\n _this.trigger('close', _this.closeArgs);\n var activeEle = document.activeElement;\n if (!isNullOrUndefined(activeEle) && !isNullOrUndefined((activeEle).blur)) {\n activeEle.blur();\n }\n if (!isNullOrUndefined(_this.storeActiveElement) && !isNullOrUndefined(_this.storeActiveElement.focus)) {\n _this.storeActiveElement.focus();\n }\n }\n });\n this.positionChange();\n this.setEnableRTL();\n if (!this.isBlazorServerRender()) {\n addClass([this.element], DLG_HIDE);\n if (this.isModal) {\n this.setOverlayZindex();\n }\n }\n if (this.visible) {\n this.show();\n }\n else {\n if (this.isModal) {\n this.dlgOverlay.style.display = 'none';\n }\n }\n this.initialRender = false;\n };\n Dialog.prototype.resetResizeIcon = function () {\n var dialogConHeight = this.getMinHeight();\n if (this.targetEle.offsetHeight < dialogConHeight) {\n var className = this.enableRtl ? 'e-south-west' : 'e-south-east';\n var resizeIcon = this.element.querySelector('.' + className);\n if (!isNullOrUndefined(resizeIcon)) {\n resizeIcon.style.bottom = '-' + dialogConHeight.toString() + 'px';\n }\n }\n };\n Dialog.prototype.setOverlayZindex = function (zIndexValue) {\n var zIndex;\n if (isNullOrUndefined(zIndexValue)) {\n zIndex = parseInt(this.element.style.zIndex, 10) ? parseInt(this.element.style.zIndex, 10) : this.zIndex;\n }\n else {\n zIndex = zIndexValue;\n }\n this.dlgOverlay.style.zIndex = (zIndex - 1).toString();\n this.dlgContainer.style.zIndex = zIndex.toString();\n };\n Dialog.prototype.positionChange = function () {\n if (this.isModal) {\n if (!isNaN(parseFloat(this.position.X)) && !isNaN(parseFloat(this.position.Y))) {\n this.setPopupPosition();\n }\n else if ((!isNaN(parseFloat(this.position.X)) && isNaN(parseFloat(this.position.Y)))\n || (isNaN(parseFloat(this.position.X)) && !isNaN(parseFloat(this.position.Y)))) {\n this.setPopupPosition();\n }\n else {\n this.element.style.top = '0px';\n this.element.style.left = '0px';\n this.dlgContainer.classList.add('e-dlg-' + this.position.X + '-' + this.position.Y);\n }\n }\n else {\n this.setPopupPosition();\n }\n };\n Dialog.prototype.setPopupPosition = function () {\n this.popupObj.setProperties({\n position: {\n X: this.position.X, Y: this.position.Y\n }\n });\n };\n Dialog.prototype.setAllowDragging = function () {\n var _this = this;\n var handleContent = '.' + DLG_HEADER_CONTENT;\n if (!this.element.classList.contains(DLG_DRAG)) {\n this.dragObj = new Draggable(this.element, {\n clone: false,\n isDragScroll: true,\n abort: '.e-dlg-closeicon-btn',\n handle: handleContent,\n dragStart: function (event) {\n _this.trigger('dragStart', event, function (dragEventArgs) {\n if (isBlazor()) {\n dragEventArgs.bindEvents(event.dragElement);\n }\n });\n },\n dragStop: function (event) {\n if (_this.isModal) {\n if (!isNullOrUndefined(_this.position)) {\n _this.dlgContainer.classList.remove('e-dlg-' + _this.position.X + '-' + _this.position.Y);\n }\n // Reset the dialog position after drag completion.\n _this.element.style.position = 'relative';\n }\n _this.trigger('dragStop', event);\n _this.element.classList.remove(DLG_RESTRICT_LEFT_VALUE);\n },\n drag: function (event) {\n _this.trigger('drag', event);\n }\n });\n if (!isNullOrUndefined(this.targetEle)) {\n this.dragObj.dragArea = this.targetEle;\n }\n }\n };\n Dialog.prototype.setButton = function () {\n if (!this.isBlazorServerRender()) {\n this.buttonContent = [];\n this.btnObj = [];\n // eslint-disable-next-line\n var primaryBtnFlag = true;\n for (var i = 0; i < this.buttons.length; i++) {\n var buttonType = !isNullOrUndefined(this.buttons[i].type) ? this.buttons[i].type.toLowerCase() : 'button';\n var btn = this.createElement('button', { className: this.cssClass, attrs: { type: buttonType } });\n this.buttonContent.push(btn.outerHTML);\n }\n this.setFooterTemplate();\n }\n var footerBtn;\n for (var i = 0, childNodes = this.element.children; i < childNodes.length; i++) {\n if (childNodes[i].classList.contains(DLG_FOOTER_CONTENT)) {\n footerBtn = childNodes[i].querySelectorAll('button');\n }\n }\n for (var i = 0; i < this.buttons.length; i++) {\n if (!this.isBlazorServerRender()) {\n this.btnObj[i] = new Button(this.buttons[i].buttonModel);\n }\n if (this.isBlazorServerRender()) {\n this.ftrTemplateContent = this.element.querySelector('.' + DLG_FOOTER_CONTENT);\n }\n if (!isNullOrUndefined(this.ftrTemplateContent) && footerBtn.length > 0) {\n if (typeof (this.buttons[i].click) === 'function') {\n EventHandler.add(footerBtn[i], 'click', this.buttons[i].click, this);\n }\n if (typeof (this.buttons[i].click) === 'object') {\n EventHandler.add(footerBtn[i], 'click', this.buttonClickHandler.bind(this, i), this);\n }\n }\n if (!this.isBlazorServerRender() && !isNullOrUndefined(this.ftrTemplateContent)) {\n this.btnObj[i].appendTo(this.ftrTemplateContent.children[i]);\n if (this.buttons[i].isFlat) {\n this.btnObj[i].element.classList.add('e-flat');\n }\n this.primaryButtonEle = this.element.getElementsByClassName('e-primary')[0];\n }\n }\n };\n Dialog.prototype.buttonClickHandler = function (index) {\n this.trigger('buttons[' + index + '].click', {});\n };\n Dialog.prototype.setContent = function () {\n this.contentEle = this.createElement('div', { className: DLG_CONTENT, id: this.element.id + '_dialog-content' });\n if (this.innerContentElement) {\n this.contentEle.appendChild(this.innerContentElement);\n }\n else if (!isNullOrUndefined(this.content) && this.content !== '' || !this.initialRender) {\n // eslint-disable-next-line\n var blazorContain = Object.keys(window);\n if (typeof (this.content) === 'string' && !isBlazor()) {\n this.setTemplate(this.content, this.contentEle, 'content');\n }\n else if (this.content instanceof HTMLElement) {\n this.contentEle.appendChild(this.content);\n }\n else {\n this.setTemplate(this.content, this.contentEle, 'content');\n }\n }\n if (!isNullOrUndefined(this.headerContent)) {\n this.element.insertBefore(this.contentEle, this.element.children[1]);\n }\n else {\n this.element.insertBefore(this.contentEle, this.element.children[0]);\n }\n if (this.height === 'auto') {\n if (!this.isBlazorServerRender() && Browser.isIE && this.element.style.width === '' && !isNullOrUndefined(this.width)) {\n this.element.style.width = formatUnit(this.width);\n }\n this.setMaxHeight();\n }\n };\n Dialog.prototype.setTemplate = function (template, toElement, prop) {\n var templateFn;\n var templateProps;\n // eslint-disable-next-line\n var blazorContain = Object.keys(window);\n if (toElement.classList.contains(DLG_HEADER)) {\n templateProps = this.element.id + 'header';\n }\n else if (toElement.classList.contains(DLG_FOOTER_CONTENT)) {\n templateProps = this.element.id + 'footerTemplate';\n }\n else {\n templateProps = this.element.id + 'content';\n }\n var templateValue;\n if (!isNullOrUndefined(template.outerHTML)) {\n toElement.appendChild(template);\n }\n else if ((typeof template === 'string') || (typeof template !== 'string') || (isBlazor() && !this.isStringTemplate)) {\n if ((typeof template === 'string')) {\n template = this.sanitizeHelper(template);\n }\n if (this.isVue || typeof template !== 'string') {\n templateFn = compile(template);\n templateValue = template;\n }\n else {\n toElement.innerHTML = template;\n }\n }\n var fromElements = [];\n if (!isNullOrUndefined(templateFn)) {\n var isString = (isBlazor() &&\n !this.isStringTemplate && (templateValue).indexOf('
Blazor') === 0) ?\n this.isStringTemplate : true;\n for (var _i = 0, _a = templateFn({}, this, prop, templateProps, isString); _i < _a.length; _i++) {\n var item = _a[_i];\n fromElements.push(item);\n }\n append([].slice.call(fromElements), toElement);\n }\n };\n /*\n * @returns {void}\n * @hidden\n * @value\n */\n Dialog.prototype.sanitizeHelper = function (value) {\n if (this.enableHtmlSanitizer) {\n var dialogItem = SanitizeHtmlHelper.beforeSanitize();\n var beforeEvent = {\n cancel: false,\n helper: null\n };\n extend(dialogItem, dialogItem, beforeEvent);\n this.trigger('beforeSanitizeHtml', dialogItem);\n if (dialogItem.cancel && !isNullOrUndefined(dialogItem.helper)) {\n value = dialogItem.helper(value);\n }\n else if (!dialogItem.cancel) {\n value = SanitizeHtmlHelper.serializeValue(dialogItem, value);\n }\n }\n return value;\n };\n Dialog.prototype.setMaxHeight = function () {\n if (!this.allowMaxHeight) {\n return;\n }\n var display = this.element.style.display;\n this.element.style.display = 'none';\n this.element.style.maxHeight = (!isNullOrUndefined(this.target)) && (this.targetEle.offsetHeight < window.innerHeight) ?\n (this.targetEle.offsetHeight - 20) + 'px' : (window.innerHeight - 20) + 'px';\n this.element.style.display = display;\n if (Browser.isIE && this.height === 'auto' && !isNullOrUndefined(this.contentEle)\n && this.element.offsetHeight < this.contentEle.offsetHeight) {\n this.element.style.height = 'inherit';\n }\n };\n Dialog.prototype.setEnableRTL = function () {\n if (!this.isBlazorServerRender()) {\n // eslint-disable-next-line\n this.enableRtl ? addClass([this.element], RTL) : removeClass([this.element], RTL);\n }\n if (!isNullOrUndefined(this.element.querySelector('.e-resize-handle'))) {\n removeResize();\n this.setResize();\n }\n };\n Dialog.prototype.setTargetContent = function () {\n var _this = this;\n if (isNullOrUndefined(this.content) || this.content === '') {\n var isContent = this.element.innerHTML.replace(/\\s|<(\\/?|\\/?)(!--!--)>/g, '') !== '';\n if (this.element.children.length > 0 || isContent) {\n this.innerContentElement = document.createDocumentFragment();\n [].slice.call(this.element.childNodes).forEach(function (el) {\n if (el.nodeType !== 8) {\n _this.innerContentElement.appendChild(el);\n }\n });\n }\n }\n };\n Dialog.prototype.setHeader = function () {\n if (this.headerEle) {\n this.headerEle.innerHTML = '';\n }\n else {\n this.headerEle = this.createElement('div', { id: this.element.id + '_title', className: DLG_HEADER });\n }\n this.createHeaderContent();\n this.headerContent.appendChild(this.headerEle);\n this.setTemplate(this.header, this.headerEle, 'header');\n attributes(this.element, { 'aria-labelledby': this.element.id });\n this.element.insertBefore(this.headerContent, this.element.children[0]);\n if (this.allowDragging && (!isNullOrUndefined(this.headerContent))) {\n this.setAllowDragging();\n }\n };\n Dialog.prototype.setFooterTemplate = function () {\n if (this.ftrTemplateContent) {\n this.ftrTemplateContent.innerHTML = '';\n }\n else {\n this.ftrTemplateContent = this.createElement('div', {\n className: DLG_FOOTER_CONTENT\n });\n }\n if (this.footerTemplate !== '' && !isNullOrUndefined(this.footerTemplate)) {\n this.setTemplate(this.footerTemplate, this.ftrTemplateContent, 'footerTemplate');\n }\n else {\n this.ftrTemplateContent.innerHTML = this.buttonContent.join('');\n }\n this.element.appendChild(this.ftrTemplateContent);\n };\n Dialog.prototype.createHeaderContent = function () {\n if (isNullOrUndefined(this.headerContent)) {\n this.headerContent = this.createElement('div', { id: this.element.id + '_dialog-header', className: DLG_HEADER_CONTENT });\n }\n };\n Dialog.prototype.renderCloseIcon = function () {\n if (this.showCloseIcon) {\n this.closeIcon = this.createElement('button', { className: DLG_CLOSE_ICON_BTN, attrs: { type: 'button' } });\n this.closeIconBtnObj = new Button({ cssClass: 'e-flat', iconCss: DLG_CLOSE_ICON + ' ' + ICON });\n this.closeIconTitle();\n if (!isNullOrUndefined(this.headerContent)) {\n prepend([this.closeIcon], this.headerContent);\n }\n else {\n this.createHeaderContent();\n prepend([this.closeIcon], this.headerContent);\n this.element.insertBefore(this.headerContent, this.element.children[0]);\n }\n this.closeIconBtnObj.appendTo(this.closeIcon);\n }\n };\n Dialog.prototype.closeIconTitle = function () {\n this.l10n.setLocale(this.locale);\n var closeIconTitle = this.l10n.getConstant('close');\n this.closeIcon.setAttribute('title', closeIconTitle);\n this.closeIcon.setAttribute('aria-label', closeIconTitle);\n };\n Dialog.prototype.setCSSClass = function (oldCSSClass) {\n if (oldCSSClass) {\n removeClass([this.element], oldCSSClass.split(' '));\n if (this.isModal && !isNullOrUndefined(this.dlgContainer)) {\n removeClass([this.dlgContainer], oldCSSClass.split(' '));\n }\n }\n if (this.cssClass) {\n addClass([this.element], this.cssClass.split(' '));\n if (this.isModal && !isNullOrUndefined(this.dlgContainer)) {\n addClass([this.dlgContainer], this.cssClass.split(' '));\n }\n }\n };\n Dialog.prototype.setIsModal = function () {\n this.dlgContainer = this.createElement('div', { className: DLG_CONTAINER });\n this.setCSSClass();\n this.element.classList.remove(DLG_SHOW);\n this.element.parentNode.insertBefore(this.dlgContainer, this.element);\n this.dlgContainer.appendChild(this.element);\n addClass([this.element], MODAL_DLG);\n this.dlgOverlay = this.createElement('div', { className: DLG_OVERLAY });\n this.dlgOverlay.style.zIndex = (this.zIndex - 1).toString();\n this.dlgContainer.appendChild(this.dlgOverlay);\n };\n Dialog.prototype.getValidFocusNode = function (items) {\n var node;\n for (var u = 0; u < items.length; u++) {\n node = items[u];\n if ((node.clientHeight > 0 || (node.tagName.toLowerCase() === 'a' && node.hasAttribute('href'))) && node.tabIndex > -1 &&\n !node.disabled && !this.disableElement(node, '[disabled],[aria-disabled=\"true\"],[type=\"hidden\"]')) {\n return node;\n }\n else {\n node = null;\n }\n }\n return node;\n };\n Dialog.prototype.focusableElements = function (content) {\n if (!isNullOrUndefined(content)) {\n var value = 'input,select,textarea,button,a,[contenteditable=\"true\"],[tabindex]';\n var items = content.querySelectorAll(value);\n return this.getValidFocusNode(items);\n }\n return null;\n };\n Dialog.prototype.getAutoFocusNode = function (container) {\n var node = container.querySelector('.' + DLG_CLOSE_ICON_BTN);\n var value = '[autofocus]';\n var items = container.querySelectorAll(value);\n var validNode = this.getValidFocusNode(items);\n if (isBlazor()) {\n this.primaryButtonEle = this.element.getElementsByClassName('e-primary')[0];\n }\n if (!isNullOrUndefined(validNode)) {\n node = validNode;\n }\n else {\n validNode = this.focusableElements(this.contentEle);\n if (!isNullOrUndefined(validNode)) {\n return node = validNode;\n }\n else if (!isNullOrUndefined(this.primaryButtonEle)) {\n return this.element.querySelector('.' + DLG_PRIMARY_BUTTON);\n }\n }\n return node;\n };\n Dialog.prototype.disableElement = function (element, t) {\n var elementMatch = element ? element.matches || element.webkitMatchesSelector || element.msGetRegionContent : null;\n if (elementMatch) {\n for (; element; element = element.parentNode) {\n if (element instanceof Element && elementMatch.call(element, t)) {\n /* istanbul ignore next */\n return element;\n }\n }\n }\n return null;\n };\n Dialog.prototype.focusContent = function () {\n var element = this.getAutoFocusNode(this.element);\n var node = !isNullOrUndefined(element) ? element : this.element;\n var userAgent = Browser.userAgent;\n if (userAgent.indexOf('MSIE ') > 0 || userAgent.indexOf('Trident/') > 0) {\n this.element.focus();\n }\n node.focus();\n this.unBindEvent(this.element);\n this.bindEvent(this.element);\n };\n Dialog.prototype.bindEvent = function (element) {\n EventHandler.add(element, 'keydown', this.keyDown, this);\n };\n Dialog.prototype.unBindEvent = function (element) {\n EventHandler.remove(element, 'keydown', this.keyDown);\n };\n Dialog.prototype.updateSanitizeContent = function () {\n if (!this.isBlazorServerRender()) {\n this.contentEle.innerHTML = this.sanitizeHelper(this.content);\n }\n };\n Dialog.prototype.isBlazorServerRender = function () {\n return isBlazor() && this.isServerRendered;\n };\n /**\n * Module required function\n *\n * @returns {void}\n * @private\n */\n Dialog.prototype.getModuleName = function () {\n return 'dialog';\n };\n /**\n * Called internally if any of the property value changed\n *\n * @param {DialogModel} newProp - specifies the new property\n * @param {DialogModel} oldProp - specifies the old property\n * @private\n * @returns {void}\n */\n Dialog.prototype.onPropertyChanged = function (newProp, oldProp) {\n if (!this.element.classList.contains(ROOT)) {\n return;\n }\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'content':\n if (!isNullOrUndefined(this.content) && this.content !== '') {\n if (this.isBlazorServerRender()) {\n this.contentEle = this.element.querySelector('.e-dlg-content');\n }\n if (!isNullOrUndefined(this.contentEle) && this.contentEle.getAttribute('role') !== 'dialog') {\n if (!this.isBlazorServerRender()) {\n this.contentEle.innerHTML = '';\n }\n if (typeof (this.content) === 'function') {\n this.clearTemplate(['content']);\n detach(this.contentEle);\n this.contentEle = null;\n this.setContent();\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n typeof (this.content) === 'string' ? (this.isBlazorServerRender() && (this.contentEle.innerText === '')) ?\n this.contentEle.insertAdjacentHTML('beforeend', this.sanitizeHelper(this.content)) :\n this.updateSanitizeContent() : this.contentEle.appendChild(this.content);\n }\n this.setMaxHeight();\n }\n else {\n if (!this.isBlazorServerRender() ||\n isNullOrUndefined(this.element.querySelector('.e-dlg-content'))) {\n this.setContent();\n }\n }\n }\n else if (!isNullOrUndefined(this.contentEle)) {\n detach(this.contentEle);\n this.contentEle = null;\n }\n break;\n case 'header':\n if (this.header === '' || isNullOrUndefined(this.header)) {\n if (this.headerEle) {\n detach(this.headerEle);\n this.headerEle = null;\n }\n }\n else {\n if (!this.isBlazorServerRender() ||\n isNullOrUndefined(this.element.querySelector('.e-dlg-header-content'))) {\n this.setHeader();\n }\n }\n break;\n case 'footerTemplate':\n if (this.footerTemplate === '' || isNullOrUndefined(this.footerTemplate)) {\n if (!this.ftrTemplateContent) {\n return;\n }\n detach(this.ftrTemplateContent);\n this.ftrTemplateContent = null;\n this.buttons = [{}];\n }\n else {\n if (!this.isBlazorServerRender() ||\n isNullOrUndefined(this.element.querySelector('.e-footer-content'))) {\n this.setFooterTemplate();\n }\n this.buttons = [{}];\n }\n break;\n case 'showCloseIcon':\n if (this.element.getElementsByClassName(DLG_CLOSE_ICON).length > 0) {\n if (!this.showCloseIcon && (this.header === '' || isNullOrUndefined(this.header))) {\n detach(this.headerContent);\n this.headerContent = null;\n }\n else if (!this.showCloseIcon) {\n detach(this.closeIcon);\n }\n else {\n if (this.isBlazorServerRender()) {\n this.wireEvents();\n }\n }\n }\n else {\n if (!this.isBlazorServerRender()) {\n this.renderCloseIcon();\n }\n this.wireEvents();\n }\n break;\n case 'locale':\n if (this.showCloseIcon) {\n this.closeIconTitle();\n }\n break;\n case 'visible':\n // eslint-disable-next-line\n this.visible ? this.show() : this.hide();\n break;\n case 'isModal':\n this.updateIsModal();\n break;\n case 'height':\n setStyleAttribute(this.element, { 'height': formatUnit(newProp.height) });\n break;\n case 'width':\n setStyleAttribute(this.element, { 'width': formatUnit(newProp.width) });\n break;\n case 'zIndex':\n this.popupObj.zIndex = this.zIndex;\n if (this.isModal) {\n this.setOverlayZindex(this.zIndex);\n }\n if (this.element.style.zIndex !== this.zIndex.toString()) {\n this.calculatezIndex = false;\n }\n break;\n case 'cssClass':\n this.setCSSClass(oldProp.cssClass);\n break;\n case 'buttons': {\n var buttonCount = this.buttons.length;\n if (!isNullOrUndefined(this.ftrTemplateContent) && !this.isBlazorServerRender()) {\n detach(this.ftrTemplateContent);\n this.ftrTemplateContent = null;\n }\n for (var i = 0; i < buttonCount; i++) {\n if (!isNullOrUndefined(this.buttons[i].buttonModel)) {\n this.footerTemplate = '';\n this.setButton();\n }\n }\n break;\n }\n case 'allowDragging':\n if (this.allowDragging && (!isNullOrUndefined(this.headerContent))) {\n this.setAllowDragging();\n }\n else {\n this.dragObj.destroy();\n }\n break;\n case 'target':\n this.setTarget(newProp.target);\n break;\n case 'position':\n this.checkPositionData();\n if (this.isModal) {\n var positionX = isNullOrUndefined(oldProp.position.X) ? this.position.X : oldProp.position.X;\n var positionY = isNullOrUndefined(oldProp.position.Y) ? this.position.Y : oldProp.position.Y;\n if (this.dlgContainer.classList.contains('e-dlg-' + positionX + '-' + positionY)) {\n this.dlgContainer.classList.remove('e-dlg-' + positionX + '-' + positionY);\n }\n }\n this.positionChange();\n break;\n case 'enableRtl':\n this.setEnableRTL();\n break;\n case 'enableResize':\n this.setResize();\n break;\n case 'minHeight':\n if (this.minHeight !== '') {\n this.element.style.minHeight = formatUnit(this.minHeight);\n }\n break;\n }\n }\n };\n Dialog.prototype.setTarget = function (target) {\n this.popupObj.relateTo = target;\n this.target = target;\n this.targetEle = ((typeof this.target) === 'string') ?\n document.querySelector(this.target) : this.target;\n if (this.dragObj) {\n this.dragObj.dragArea = this.targetEle;\n }\n this.setMaxHeight();\n if (this.isModal) {\n this.updateIsModal();\n }\n if (this.enableResize) {\n this.setResize();\n }\n };\n Dialog.prototype.updateIsModal = function () {\n this.element.setAttribute('aria-modal', this.isModal ? 'true' : 'false');\n if (this.isModal) {\n if (isNullOrUndefined(this.dlgOverlay)) {\n this.setIsModal();\n this.element.style.top = '0px';\n this.element.style.left = '0px';\n if (!isNullOrUndefined(this.targetEle)) {\n this.targetEle.appendChild(this.dlgContainer);\n }\n }\n }\n else {\n removeClass([this.element], MODAL_DLG);\n removeClass([document.body], [DLG_TARGET, SCROLL_DISABLED]);\n detach(this.dlgOverlay);\n while (this.dlgContainer.firstChild) {\n this.dlgContainer.parentElement.insertBefore(this.dlgContainer.firstChild, this.dlgContainer);\n }\n this.dlgContainer.parentElement.removeChild(this.dlgContainer);\n }\n if (this.visible) {\n this.show();\n }\n this.positionChange();\n if (this.isModal && this.dlgOverlay) {\n EventHandler.add(this.dlgOverlay, 'click', this.dlgOverlayClickEventHandler, this);\n }\n };\n Dialog.prototype.setzIndex = function (zIndexElement, setPopupZindex) {\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n var currentzIndex = getZindexPartial(zIndexElement);\n this.zIndex = currentzIndex > this.zIndex ? currentzIndex : this.zIndex;\n this.isProtectedOnChange = prevOnChange;\n if (setPopupZindex) {\n this.popupObj.zIndex = this.zIndex;\n }\n };\n Dialog.prototype.windowResizeHandler = function () {\n setMaxWidth(this.targetEle.clientWidth);\n setMaxHeight(this.targetEle.clientHeight);\n this.setMaxHeight();\n };\n /**\n * Get the properties to be maintained in the persisted state.\n *\n * @returns {void}\n * @private\n */\n Dialog.prototype.getPersistData = function () {\n return this.addOnPersist([]);\n };\n /**\n * To destroy the widget\n *\n * @returns {void}\n */\n Dialog.prototype.destroy = function () {\n if (this.isDestroyed) {\n return;\n }\n var classArray = [RTL, MODAL_DLG, DLG_RESIZABLE, DLG_RESTRICT_LEFT_VALUE, FULLSCREEN, DEVICE];\n var attrs = ['role', 'aria-modal', 'aria-labelledby', 'aria-describedby', 'aria-grabbed', 'tabindex', 'style'];\n removeClass([this.targetEle], [DLG_TARGET, SCROLL_DISABLED]);\n if (!isNullOrUndefined(this.element) && this.element.classList.contains(FULLSCREEN)) {\n removeClass([document.body], [DLG_TARGET, SCROLL_DISABLED]);\n }\n if (this.isModal) {\n removeClass([(!isNullOrUndefined(this.targetEle) ? this.targetEle : document.body)], SCROLL_DISABLED);\n }\n this.unWireEvents();\n if (!isNullOrUndefined(this.btnObj)) {\n for (var i = 0; i < this.btnObj.length; i++) {\n this.btnObj[i].destroy();\n }\n }\n if (!isNullOrUndefined(this.closeIconBtnObj)) {\n this.closeIconBtnObj.destroy();\n }\n if (!isNullOrUndefined(this.dragObj)) {\n this.dragObj.destroy();\n }\n if (!isNullOrUndefined(this.popupObj.element) && this.popupObj.element.classList.contains(POPUP_ROOT)) {\n this.popupObj.destroy();\n }\n removeClass([this.element], classArray);\n if (!isNullOrUndefined(this.cssClass) && this.cssClass !== '') {\n removeClass([this.element], this.cssClass.split(' '));\n }\n if (!isNullOrUndefined(this.refElement) && !isNullOrUndefined(this.refElement.parentElement)) {\n this.refElement.parentElement.insertBefore((this.isModal ? this.dlgContainer : this.element), this.refElement);\n detach(this.refElement);\n this.refElement = undefined;\n }\n if (this.isModal && !this.isBlazorServerRender()) {\n detach(this.dlgOverlay);\n this.dlgContainer.parentNode.insertBefore(this.element, this.dlgContainer);\n detach(this.dlgContainer);\n }\n if (!this.isBlazorServerRender()) {\n this.element.innerHTML = this.clonedEle.innerHTML;\n }\n if (this.isBlazorServerRender()) {\n if (!isNullOrUndefined(this.element.children)) {\n for (var i = 0; i <= this.element.children.length; i++) {\n i = i - i;\n detach(this.element.children[i]);\n }\n }\n }\n for (var i = 0; i < attrs.length; i++) {\n this.element.removeAttribute(attrs[i]);\n }\n if (!this.isBlazorServerRender()) {\n _super.prototype.destroy.call(this);\n }\n else {\n this.isDestroyed = true;\n }\n // eslint-disable-next-line\n if (this.isReact) {\n this.clearTemplate();\n }\n };\n Dialog.prototype.wireWindowResizeEvent = function () {\n window.addEventListener('resize', this.windowResizeHandler.bind(this));\n };\n Dialog.prototype.unWireWindowResizeEvent = function () {\n window.removeEventListener('resize', this.windowResizeHandler.bind(this));\n };\n /**\n * Binding event to the element while widget creation\n *\n * @returns {void}\n * @hidden\n */\n Dialog.prototype.wireEvents = function () {\n if (this.isBlazorServerRender() && this.showCloseIcon) {\n this.closeIcon = this.element.getElementsByClassName('e-dlg-closeicon-btn')[0];\n }\n if (this.showCloseIcon) {\n EventHandler.add(this.closeIcon, 'click', this.closeIconClickEventHandler, this);\n }\n if (this.isModal && this.dlgOverlay) {\n EventHandler.add(this.dlgOverlay, 'click', this.dlgOverlayClickEventHandler, this);\n }\n };\n /**\n * Unbinding event to the element while widget destroy\n *\n * @returns {void}\n * @hidden\n */\n Dialog.prototype.unWireEvents = function () {\n if (this.showCloseIcon) {\n EventHandler.remove(this.closeIcon, 'click', this.closeIconClickEventHandler);\n }\n if (this.isModal) {\n EventHandler.remove(this.dlgOverlay, 'click', this.dlgOverlayClickEventHandler);\n }\n if (this.buttons.length > 0 && !isNullOrUndefined(this.buttons[0].buttonModel) && this.footerTemplate === '') {\n for (var i = 0; i < this.buttons.length; i++) {\n if (typeof (this.buttons[i].click) === 'function') {\n EventHandler.remove(this.ftrTemplateContent.children[i], 'click', this.buttons[i].click);\n }\n }\n }\n };\n /**\n * Refreshes the dialog's position when the user changes its header and footer height/width dynamically.\n *\n * @returns {void}\n */\n Dialog.prototype.refreshPosition = function () {\n this.popupObj.refreshPosition();\n };\n /**\n * Returns the current width and height of the Dialog\n *\n * @returns {DialogDimension}- returns the dialog element Dimension.\n * @public\n */\n Dialog.prototype.getDimension = function () {\n var dialogWidth = this.element.offsetWidth;\n var dialogHeight = this.element.offsetHeight;\n return { width: dialogWidth, height: dialogHeight };\n };\n /**\n * Opens the dialog if it is in hidden state.\n * To open the dialog with full screen width, set the parameter to true.\n *\n * @param { boolean } isFullScreen - Enable the fullScreen Dialog.\n * @returns {void}\n */\n Dialog.prototype.show = function (isFullScreen) {\n var _this = this;\n if (!this.element.classList.contains(ROOT)) {\n return;\n }\n if (!this.element.classList.contains(DLG_SHOW) || (!isNullOrUndefined(isFullScreen))) {\n if (!isNullOrUndefined(isFullScreen)) {\n this.fullScreen(isFullScreen);\n }\n var eventArgs_1 = isBlazor() ? {\n cancel: false,\n element: this.element,\n container: this.isModal ? this.dlgContainer : this.element,\n maxHeight: this.element.style.maxHeight\n } : {\n cancel: false,\n element: this.element,\n container: this.isModal ? this.dlgContainer : this.element,\n target: this.target,\n maxHeight: this.element.style.maxHeight\n };\n this.trigger('beforeOpen', eventArgs_1, function (beforeOpenArgs) {\n if (!beforeOpenArgs.cancel) {\n if (_this.element.style.maxHeight !== eventArgs_1.maxHeight) {\n _this.allowMaxHeight = false;\n _this.element.style.maxHeight = eventArgs_1.maxHeight;\n }\n _this.storeActiveElement = document.activeElement;\n _this.element.tabIndex = -1;\n if (_this.isModal && (!isNullOrUndefined(_this.dlgOverlay))) {\n _this.dlgOverlay.style.display = 'block';\n _this.dlgContainer.style.display = 'flex';\n removeClass([_this.dlgOverlay], 'e-fade');\n if (!isNullOrUndefined(_this.targetEle)) {\n if (_this.targetEle === document.body) {\n _this.dlgContainer.style.position = 'fixed';\n }\n else {\n _this.dlgContainer.style.position = 'absolute';\n }\n _this.dlgOverlay.style.position = 'absolute';\n _this.element.style.position = 'relative';\n addClass([_this.targetEle], [DLG_TARGET, SCROLL_DISABLED]);\n }\n else {\n addClass([document.body], [DLG_TARGET, SCROLL_DISABLED]);\n }\n }\n var openAnimation = {\n name: _this.animationSettings.effect + 'In',\n duration: _this.animationSettings.duration,\n delay: _this.animationSettings.delay\n };\n var zIndexElement = (_this.isModal) ? _this.element.parentElement : _this.element;\n if (_this.calculatezIndex) {\n _this.setzIndex(zIndexElement, true);\n setStyleAttribute(_this.element, { 'zIndex': _this.zIndex });\n if (_this.isModal) {\n _this.setOverlayZindex(_this.zIndex);\n }\n }\n // eslint-disable-next-line\n _this.animationSettings.effect === 'None' ? _this.popupObj.show() : _this.popupObj.show(openAnimation);\n _this.dialogOpen = true;\n var prevOnChange = _this.isProtectedOnChange;\n _this.isProtectedOnChange = true;\n _this.visible = true;\n _this.preventVisibility = true;\n _this.isProtectedOnChange = prevOnChange;\n }\n });\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact) {\n this.renderReactTemplates();\n }\n };\n /**\n * Closes the dialog if it is in visible state.\n *\n * @param { Event } event - specifies the event\n * @returns {void}\n */\n Dialog.prototype.hide = function (event) {\n var _this = this;\n if (!this.element.classList.contains(ROOT)) {\n return;\n }\n if (this.preventVisibility) {\n var eventArgs = isBlazor() ? {\n cancel: false,\n isInteracted: event ? true : false,\n element: this.element,\n container: this.isModal ? this.dlgContainer : this.element,\n event: event\n } : {\n cancel: false,\n isInteracted: event ? true : false,\n element: this.element,\n target: this.target,\n container: this.isModal ? this.dlgContainer : this.element,\n event: event,\n closedBy: this.dlgClosedBy\n };\n this.closeArgs = eventArgs;\n this.trigger('beforeClose', eventArgs, function (beforeCloseArgs) {\n if (!beforeCloseArgs.cancel) {\n if (_this.isModal) {\n if (!isNullOrUndefined(_this.targetEle)) {\n removeClass([_this.targetEle], [DLG_TARGET, SCROLL_DISABLED]);\n }\n }\n if (document.body.classList.contains(DLG_TARGET) &&\n document.body.classList.contains(SCROLL_DISABLED)) {\n removeClass([document.body], [DLG_TARGET, SCROLL_DISABLED]);\n }\n var closeAnimation = {\n name: _this.animationSettings.effect + 'Out',\n duration: _this.animationSettings.duration,\n delay: _this.animationSettings.delay\n };\n // eslint-disable-next-line\n _this.animationSettings.effect === 'None' ? _this.popupObj.hide() : _this.popupObj.hide(closeAnimation);\n _this.dialogOpen = false;\n var prevOnChange = _this.isProtectedOnChange;\n _this.isProtectedOnChange = true;\n _this.visible = false;\n _this.preventVisibility = false;\n _this.isProtectedOnChange = prevOnChange;\n }\n _this.dlgClosedBy = DLG_USER_ACTION_CLOSED;\n });\n }\n };\n // eslint-disable-next-line\n /**\n * Specifies to view the Full screen Dialog.\n *\n * @returns {void}\n * @private\n */\n Dialog.prototype.fullScreen = function (args) {\n /* eslint-disable */\n var top = this.element.offsetTop;\n var left = this.element.offsetLeft;\n /* eslint-enable */\n if (args) {\n this.element.style.top = document.scrollingElement.scrollTop + 'px';\n addClass([this.element], FULLSCREEN);\n var display = this.element.style.display;\n this.element.style.display = 'none';\n this.element.style.maxHeight = (!isNullOrUndefined(this.target)) ?\n (this.targetEle.offsetHeight) + 'px' : (window.innerHeight) + 'px';\n this.element.style.display = display;\n addClass([document.body], [DLG_TARGET, SCROLL_DISABLED]);\n if (this.allowDragging && !isNullOrUndefined(this.dragObj)) {\n this.dragObj.destroy();\n }\n }\n else {\n removeClass([this.element], FULLSCREEN);\n removeClass([document.body], [DLG_TARGET, SCROLL_DISABLED]);\n if (this.allowDragging && (!isNullOrUndefined(this.headerContent))) {\n this.setAllowDragging();\n }\n }\n return args;\n };\n /**\n * Returns the dialog button instances.\n * Based on that, you can dynamically change the button states.\n *\n * @param { number } index - Index of the button.\n * @returns {Button} - returns the button element\n */\n Dialog.prototype.getButtons = function (index) {\n if (!isNullOrUndefined(index)) {\n return this.btnObj[index];\n }\n return this.btnObj;\n };\n __decorate([\n Property('')\n ], Dialog.prototype, \"content\", void 0);\n __decorate([\n Property(true)\n ], Dialog.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Property(false)\n ], Dialog.prototype, \"showCloseIcon\", void 0);\n __decorate([\n Property(false)\n ], Dialog.prototype, \"isModal\", void 0);\n __decorate([\n Property('')\n ], Dialog.prototype, \"header\", void 0);\n __decorate([\n Property(true)\n ], Dialog.prototype, \"visible\", void 0);\n __decorate([\n Property(false)\n ], Dialog.prototype, \"enableResize\", void 0);\n __decorate([\n Property(['South-East'])\n ], Dialog.prototype, \"resizeHandles\", void 0);\n __decorate([\n Property('auto')\n ], Dialog.prototype, \"height\", void 0);\n __decorate([\n Property('')\n ], Dialog.prototype, \"minHeight\", void 0);\n __decorate([\n Property('100%')\n ], Dialog.prototype, \"width\", void 0);\n __decorate([\n Property('')\n ], Dialog.prototype, \"cssClass\", void 0);\n __decorate([\n Property(1000)\n ], Dialog.prototype, \"zIndex\", void 0);\n __decorate([\n Property(null)\n ], Dialog.prototype, \"target\", void 0);\n __decorate([\n Property('')\n ], Dialog.prototype, \"footerTemplate\", void 0);\n __decorate([\n Property(false)\n ], Dialog.prototype, \"allowDragging\", void 0);\n __decorate([\n Collection([{}], ButtonProps)\n ], Dialog.prototype, \"buttons\", void 0);\n __decorate([\n Property(true)\n ], Dialog.prototype, \"closeOnEscape\", void 0);\n __decorate([\n Complex({}, AnimationSettings)\n ], Dialog.prototype, \"animationSettings\", void 0);\n __decorate([\n Complex({ X: 'center', Y: 'center' }, PositionData)\n ], Dialog.prototype, \"position\", void 0);\n __decorate([\n Event()\n ], Dialog.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], Dialog.prototype, \"open\", void 0);\n __decorate([\n Event()\n ], Dialog.prototype, \"beforeSanitizeHtml\", void 0);\n __decorate([\n Event()\n ], Dialog.prototype, \"beforeOpen\", void 0);\n __decorate([\n Event()\n ], Dialog.prototype, \"close\", void 0);\n __decorate([\n Event()\n ], Dialog.prototype, \"beforeClose\", void 0);\n __decorate([\n Event()\n ], Dialog.prototype, \"dragStart\", void 0);\n __decorate([\n Event()\n ], Dialog.prototype, \"dragStop\", void 0);\n __decorate([\n Event()\n ], Dialog.prototype, \"drag\", void 0);\n __decorate([\n Event()\n ], Dialog.prototype, \"overlayClick\", void 0);\n __decorate([\n Event()\n ], Dialog.prototype, \"resizeStart\", void 0);\n __decorate([\n Event()\n ], Dialog.prototype, \"resizing\", void 0);\n __decorate([\n Event()\n ], Dialog.prototype, \"resizeStop\", void 0);\n __decorate([\n Event()\n ], Dialog.prototype, \"destroyed\", void 0);\n Dialog = __decorate([\n NotifyPropertyChanges\n ], Dialog);\n return Dialog;\n}(Component));\nexport { Dialog };\n/**\n * Base for creating Alert and Confirmation Dialog through util method.\n */\n// eslint-disable-next-line\nexport var DialogUtility;\n(function (DialogUtility) {\n /**\n * An alert dialog box is used to display warning like messages to the users.\n * ```\n * Eg : DialogUtility.alert('Alert message');\n *\n * ```\n */\n /* istanbul ignore next */\n /**\n *\n * @param {AlertDialogArgs} args - specifies the string\n * @returns {Dialog} - returns the dialog element.\n */\n function alert(args) {\n // eslint-disable-next-line\n var dialogComponent;\n var dialogElement = createElement('div', { 'className': DLG_UTIL_ALERT });\n document.body.appendChild(dialogElement);\n var alertDialogObj;\n var okButtonModel = [{\n buttonModel: { isPrimary: true, content: 'OK' },\n click: function () {\n this.hide();\n }\n }];\n if (typeof (args) === 'string') {\n alertDialogObj = createDialog({ content: args,\n position: { X: 'center', Y: 'top' },\n isModal: true, header: DLG_UTIL_DEFAULT_TITLE,\n buttons: okButtonModel }, dialogElement);\n }\n else {\n alertDialogObj = createDialog(alertOptions(args), dialogElement);\n }\n alertDialogObj.close = function () {\n if (args && args.close) {\n args.close.apply(alertDialogObj);\n }\n alertDialogObj.destroy();\n if (alertDialogObj.element.classList.contains('e-dlg-modal')) {\n alertDialogObj.element.parentElement.remove();\n alertDialogObj.target.classList.remove(DLG_UTIL_ROOT);\n }\n else {\n alertDialogObj.element.remove();\n }\n };\n return alertDialogObj;\n }\n DialogUtility.alert = alert;\n /**\n * A confirm dialog displays a specified message along with ‘OK’ and ‘Cancel’ button.\n * ```\n * Eg : DialogUtility.confirm('Confirm dialog message');\n *\n * ```\n */\n /* istanbul ignore next */\n /**\n *\n * @param {ConfirmDialogArgs} args - specifies the args\n * @returns {Dialog} - returns te element\n */\n function confirm(args) {\n // eslint-disable-next-line\n var dialogComponent;\n var dialogElement = createElement('div', { 'className': DLG_UTIL_CONFIRM });\n document.body.appendChild(dialogElement);\n var confirmDialogObj;\n var okCancelButtonModel = [{\n buttonModel: { isPrimary: true, content: 'OK' },\n click: function () {\n this.hide();\n }\n }, {\n buttonModel: { content: 'Cancel' },\n click: function () {\n this.hide();\n }\n }];\n if (typeof (args) === 'string') {\n confirmDialogObj = createDialog({ position: { X: 'center', Y: 'top' }, content: args, isModal: true,\n header: DLG_UTIL_DEFAULT_TITLE, buttons: okCancelButtonModel\n }, dialogElement);\n }\n else {\n confirmDialogObj = createDialog(confirmOptions(args), dialogElement);\n }\n confirmDialogObj.close = function () {\n if (args && args.close) {\n args.close.apply(confirmDialogObj);\n }\n confirmDialogObj.destroy();\n if (confirmDialogObj.element.classList.contains('e-dlg-modal')) {\n confirmDialogObj.element.parentElement.remove();\n confirmDialogObj.target.classList.remove(DLG_UTIL_ROOT);\n }\n else {\n confirmDialogObj.element.remove();\n }\n };\n return confirmDialogObj;\n }\n DialogUtility.confirm = confirm;\n // eslint-disable-next-line\n function createDialog(options, element) {\n var dialogObject = new Dialog(options);\n dialogObject.appendTo(element);\n return dialogObject;\n }\n // eslint-disable-next-line\n function alertOptions(option) {\n var options = {};\n options.buttons = [];\n options = formOptions(options, option);\n options = setAlertButtonModel(options, option);\n return options;\n }\n // eslint-disable-next-line\n function confirmOptions(option) {\n var options = {};\n options.buttons = [];\n options = formOptions(options, option);\n options = setConfirmButtonModel(options, option);\n return options;\n }\n // eslint-disable-next-line\n function formOptions(options, option) {\n options.header = !isNullOrUndefined(option.title) ? option.title : DLG_UTIL_DEFAULT_TITLE;\n options.content = !isNullOrUndefined(option.content) ? option.content : '';\n options.isModal = !isNullOrUndefined(option.isModal) ? option.isModal : true;\n options.showCloseIcon = !isNullOrUndefined(option.showCloseIcon) ? option.showCloseIcon : false;\n options.allowDragging = !isNullOrUndefined(option.isDraggable) ? option.isDraggable : false;\n options.closeOnEscape = !isNullOrUndefined(option.closeOnEscape) ? option.closeOnEscape : false;\n options.position = !isNullOrUndefined(option.position) ? option.position : { X: 'center', Y: 'top' };\n options.animationSettings = !isNullOrUndefined(option.animationSettings) ? option.animationSettings :\n { effect: 'Fade', duration: 400, delay: 0 };\n options.cssClass = !isNullOrUndefined(option.cssClass) ? option.cssClass : '';\n options.zIndex = !isNullOrUndefined(option.zIndex) ? option.zIndex : 1000;\n // eslint-disable-next-line\n options.open = !isNullOrUndefined(option.open) ? option.open : null;\n options.width = !isNullOrUndefined(option.width) ? option.width : 'auto';\n options.height = !isNullOrUndefined(option.height) ? option.height : 'auto';\n return options;\n }\n // eslint-disable-next-line\n function setAlertButtonModel(options, option) {\n var alertButtonModel = [{\n buttonModel: { isPrimary: true, content: 'OK' },\n click: function () {\n this.hide();\n }\n }];\n if (!isNullOrUndefined(option.okButton)) {\n options.buttons[0] = formButtonModel(options.buttons[0], option.okButton, alertButtonModel[0]);\n }\n else {\n options.buttons = alertButtonModel;\n }\n return options;\n }\n // eslint-disable-next-line\n function setConfirmButtonModel(options, option) {\n var okButtonModel = {\n buttonModel: { isPrimary: true, content: 'OK' },\n click: function () {\n this.hide();\n }\n };\n var cancelButtonModel = {\n buttonModel: { content: 'Cancel' },\n click: function () {\n this.hide();\n }\n };\n if (!isNullOrUndefined(option.okButton)) {\n options.buttons[0] = formButtonModel(options.buttons[0], option.okButton, okButtonModel);\n }\n else {\n options.buttons[0] = okButtonModel;\n }\n if (!isNullOrUndefined(option.cancelButton)) {\n options.buttons[1] = formButtonModel(options.buttons[1], option.cancelButton, cancelButtonModel);\n }\n else {\n options.buttons[1] = cancelButtonModel;\n }\n return options;\n }\n // eslint-disable-next-line\n function formButtonModel(buttonModel, option, buttonPropModel) {\n var buttonProps = buttonPropModel;\n if (!isNullOrUndefined(option.text)) {\n buttonProps.buttonModel.content = option.text;\n }\n if (!isNullOrUndefined(option.icon)) {\n buttonProps.buttonModel.iconCss = option.icon;\n }\n if (!isNullOrUndefined(option.cssClass)) {\n buttonProps.buttonModel.cssClass = option.cssClass;\n }\n if (!isNullOrUndefined(option.click)) {\n buttonProps.click = option.click;\n }\n return buttonProps;\n }\n})(DialogUtility || (DialogUtility = {}));\n","import { createElement, isNullOrUndefined, Browser, isBlazor } from '@syncfusion/ej2-base';\nimport { Dialog } from '@syncfusion/ej2-popups';\n/**\n * TextLayer module is used to handle the text content on the control.\n *\n * @hidden\n */\nvar TextLayer = /** @class */ (function () {\n /**\n * @param {PdfViewer} pdfViewer - The PdfViewer.\n * @param {PdfViewerBase} pdfViewerBase - The PdfViewerBase.\n * @private\n */\n function TextLayer(pdfViewer, pdfViewerBase) {\n var _this = this;\n // eslint-disable-next-line\n this.textBoundsArray = [];\n /**\n * @private\n */\n // eslint-disable-next-line\n this.characterBound = [];\n /**\n * @returns {void}\n */\n this.closeNotification = function () {\n _this.notifyDialog.hide();\n };\n this.pdfViewer = pdfViewer;\n this.pdfViewerBase = pdfViewerBase;\n }\n /**\n * @param {number} pageNumber - The pageNumber.\n * @param {number} pageWidth - The pageWidth.\n * @param {number} pageHeight - The pageHeight.\n * @param {HTMLElement} pageDiv - The pageDiv.\n * @returns {HTMLElement} - The HTMLElement.\n * @private\n */\n TextLayer.prototype.addTextLayer = function (pageNumber, pageWidth, pageHeight, pageDiv) {\n var textDiv = document.getElementById(this.pdfViewer.element.id + '_textLayer_' + pageNumber);\n var textLayer;\n if (!textDiv) {\n textLayer = createElement('div', { id: this.pdfViewer.element.id + '_textLayer_' + pageNumber, className: 'e-pv-text-layer' });\n textLayer.style.width = pageWidth + 'px';\n textLayer.style.height = pageHeight + 'px';\n if (pageDiv) {\n pageDiv.appendChild(textLayer);\n }\n }\n this.pdfViewerBase.applyElementStyles(textLayer, pageNumber);\n return textLayer;\n };\n /**\n * @param {number} pageNumber - The pageNumber.\n * @param {any} textContents - The textContents.\n * @param {any} textBounds - The textBounds.\n * @param {any} rotation - The rotation.\n * @returns {void}\n * @private\n */\n // eslint-disable-next-line\n TextLayer.prototype.renderTextContents = function (pageNumber, textContents, textBounds, rotation, rtldoc) {\n var textLayer = document.getElementById(this.pdfViewer.element.id + '_textLayer_' + pageNumber);\n var canvasElement = createElement(\"canvas\");\n var linebounds = [];\n var lineContent = [];\n var yValue;\n var heightValue;\n if (textBounds.length > 1) {\n if (textBounds[0].Width === 0 && textBounds.length > 2) {\n yValue = textBounds[1].Y;\n heightValue = textBounds[1].Height;\n }\n else {\n yValue = textBounds[0].Y;\n heightValue = textBounds[0].Height;\n }\n }\n var idNumber = 0;\n if (canvasElement && textLayer && textLayer.childNodes.length === 0) {\n for (var i = 0; i < textContents.length; i++) {\n // eslint-disable-next-line\n if ((!(textContents[i].includes(\"\\r\\n\")) && !(textContents[i].includes(\"\\u0002\"))) && i != textBounds.length - 1 && rotation === 0 && !rtldoc) {\n linebounds.push(textBounds[parseInt(i.toString(), 10)]);\n lineContent.push(textContents[parseInt(i.toString(), 10)]);\n if (yValue > textBounds[parseInt(i.toString(), 10)].Y && textBounds[parseInt(i.toString(), 10)].Width !== 0) {\n yValue = textBounds[parseInt(i.toString(), 10)].Y;\n }\n if (heightValue < textBounds[parseInt(i.toString(), 10)].Height && textBounds[parseInt(i.toString(), 10)].Width !== 0) {\n heightValue = textBounds[parseInt(i.toString(), 10)].Height;\n }\n }\n else {\n linebounds.push(textBounds[parseInt(i.toString(), 10)]);\n lineContent.push(textContents[parseInt(i.toString(), 10)]);\n if (yValue > textBounds[parseInt(i.toString(), 10)].Y && textBounds[parseInt(i.toString(), 10)].Width !== 0) {\n yValue = textBounds[parseInt(i.toString(), 10)].Y;\n }\n if (heightValue < textBounds[parseInt(i.toString(), 10)].Height && textBounds[parseInt(i.toString(), 10)].Width !== 0) {\n heightValue = textBounds[parseInt(i.toString(), 10)].Height;\n }\n for (var j = 0; j < linebounds.length; j++) {\n var bounds = linebounds[parseInt(j.toString(), 10)];\n // eslint-disable-next-line max-len\n var textDiv = createElement('div', { id: this.pdfViewer.element.id + '_text_' + pageNumber + '_' + idNumber, className: 'e-pv-text', attrs: { 'tabindex': '-1' } });\n var textContent = lineContent[parseInt(j.toString(), 10)];\n if (textContent === \" \" && j != linebounds.length - 1 && j != 0) {\n bounds.Height = linebounds[j - 1].Height;\n bounds.Y = linebounds[j - 1].Y;\n }\n textDiv.textContent = textContent.replace(/ /g, ' ');\n // eslint-disable-next-line\n var newLine = lineContent[j].replace(/ +/g, ' ');\n if (newLine !== ' ') {\n textDiv.style.whiteSpace = 'pre';\n }\n if (bounds.Width === 0 && j != linebounds.length - 1 && j != 0) {\n if (linebounds[j + 1].X - (linebounds[j - 1].X + linebounds[j - 1].Width) < 30 && (!lineContent[j - 1].includes(\"\\r\\n\") && !(textContents[parseInt(j.toString(), 10)].includes(\"\\u0002\")))) {\n bounds.Width = linebounds[j + 1].X - (linebounds[j - 1].X + linebounds[j - 1].Width);\n bounds.X = linebounds[j - 1].X + linebounds[j - 1].Width;\n if (bounds.Width < 0) {\n bounds.Width = 0;\n }\n else {\n textDiv.style.whiteSpace = 'pre';\n }\n }\n }\n if ((j != 0 || linebounds.length - 1 === 0 || (bounds.Y - yValue) > 20 && bounds.Width != 0) && idNumber != 0 && ((textBounds[idNumber - 1].Y - textBounds[parseInt(idNumber.toString(), 10)].Y) > 11 || ((textBounds[parseInt(idNumber.toString(), 10)].Y - textBounds[idNumber - 1].Y) > 11)) && lineContent[parseInt(j.toString(), 10)] != \" \") {\n yValue = linebounds[parseInt(j.toString(), 10)].Y;\n heightValue = linebounds[parseInt(j.toString(), 10)].Height;\n }\n if (bounds) {\n bounds.Y = yValue;\n bounds.Height = heightValue;\n this.setStyleToTextDiv(textDiv, bounds.X, bounds.Y, bounds.Bottom, bounds.Width, bounds.Height);\n }\n this.setTextElementProperties(textDiv);\n var context = canvasElement.getContext('2d');\n context.font = textDiv.style.fontSize + ' ' + textDiv.style.fontFamily;\n var contextWidth = context.measureText(lineContent[parseInt(j.toString(), 10)].replace(/(\\r\\n|\\n|\\r)/gm, '')).width;\n if (bounds) {\n var scale = bounds.Width * this.pdfViewerBase.getZoomFactor() / contextWidth;\n this.applyTextRotation(scale, textDiv, rotation, bounds.Rotation);\n }\n textLayer.appendChild(textDiv);\n this.resizeExcessDiv(textLayer, textDiv);\n // eslint-disable-next-line max-len\n if (this.pdfViewer.textSelectionModule && this.pdfViewer.enableTextSelection && !this.pdfViewerBase.isTextSelectionDisabled && textDiv.className !== 'e-pdfviewer-formFields'\n && textDiv.className !== 'e-pdfviewer-signatureformfields' && textDiv.className !== 'e-pdfviewer-signatureformfields-signature') {\n textDiv.classList.add('e-pv-cursor');\n }\n idNumber++;\n }\n linebounds = [];\n lineContent = [];\n if (i < textBounds.length - 1) {\n if (textBounds[i + 1].Width === 0 && !isNullOrUndefined(textBounds[i + 2])) {\n yValue = textBounds[i + 2].Y;\n heightValue = textBounds[i + 2].Height;\n }\n else {\n yValue = textBounds[i + 1].Y;\n heightValue = textBounds[i + 1].Height;\n }\n }\n }\n }\n }\n };\n /**\n * @param pageNumber\n * @param textContents\n * @param textBounds\n * @param rotation\n * @param isTextSearch\n * @param pageNumber\n * @param textContents\n * @param textBounds\n * @param rotation\n * @param isTextSearch\n * @private\n */\n // eslint-disable-next-line\n TextLayer.prototype.resizeTextContents = function (pageNumber, textContents, textBounds, rotation, isTextSearch) {\n var textLayer = this.pdfViewerBase.getElement('_textLayer_' + pageNumber);\n var canvasElement = createElement(\"canvas\");\n if (canvasElement) {\n for (var i = 0; i < textLayer.childNodes.length; i++) {\n // eslint-disable-next-line\n var bounds = void 0;\n var textDiv = this.pdfViewerBase.getElement('_text_' + pageNumber + '_' + i);\n if (isNullOrUndefined(textDiv)) {\n break;\n }\n if (textBounds) {\n bounds = textBounds[parseInt(i.toString(), 10)];\n if (bounds) {\n this.setStyleToTextDiv(textDiv, bounds.X, bounds.Y, bounds.Bottom, bounds.Width, bounds.Height);\n }\n }\n this.setTextElementProperties(textDiv);\n var context = canvasElement.getContext('2d');\n context.font = textDiv.style.fontSize + ' ' + textDiv.style.fontFamily;\n var contextWidth = void 0;\n if (textContents) {\n var textContent = textContents[parseInt(i.toString(), 10)];\n if (textContent) {\n contextWidth = context.measureText(textContent.replace(/(\\r\\n|\\n|\\r)/gm, '')).width;\n }\n }\n else {\n contextWidth = context.measureText(textDiv.textContent.replace(/(\\r\\n|\\n|\\r)/gm, '')).width;\n }\n if (bounds) {\n var scale = bounds.Width * this.pdfViewerBase.getZoomFactor() / contextWidth;\n this.applyTextRotation(scale, textDiv, rotation, bounds.Rotation);\n }\n this.resizeExcessDiv(textLayer, textDiv);\n }\n }\n else {\n textLayer.parentElement.removeChild(textLayer);\n }\n if (this.pdfViewer.textSearch) {\n if (!isTextSearch) {\n this.pdfViewer.textSearch.resizeSearchElements(pageNumber);\n }\n }\n };\n TextLayer.prototype.applyTextRotation = function (scale, textDiv, rotation, textRotation) {\n var scaleString = 'scaleX(' + scale + ')';\n if (rotation === 0) {\n if (textRotation >= 0 && textRotation <= 90) {\n textDiv.style.transform = scaleString;\n }\n else {\n textDiv.style.transform = 'rotate(' + textRotation + 'deg) ' + scaleString;\n }\n }\n else if (rotation === 1) {\n if (textRotation === 0) {\n textDiv.style.transform = 'rotate(90deg) ' + scaleString;\n }\n else if (textRotation === -90) {\n textDiv.style.transform = scaleString;\n }\n else {\n textDiv.style.transform = 'rotate(' + textRotation + 'deg) ' + scaleString;\n }\n }\n else if (rotation === 2) {\n if (textRotation === 0) {\n textDiv.style.transform = 'rotate(180deg) ' + scaleString;\n }\n else if (textRotation === 180) {\n textDiv.style.transform = scaleString;\n }\n else {\n textDiv.style.transform = 'rotate(' + textRotation + 'deg) ' + scaleString;\n }\n }\n else if (rotation === 3) {\n if (textRotation === 0) {\n textDiv.style.transform = 'rotate(-90deg) ' + scaleString;\n }\n else if (textRotation === 90) {\n textDiv.style.transform = scaleString;\n }\n else {\n textDiv.style.transform = 'rotate(' + textRotation + 'deg) ' + scaleString;\n }\n }\n };\n TextLayer.prototype.setTextElementProperties = function (textDiv) {\n textDiv.style.fontFamily = 'serif';\n textDiv.style.transformOrigin = '0%';\n };\n /**\n * @param {number} pageNumber - The pageNumber.\n * @returns {void}\n * @private\n */\n TextLayer.prototype.resizeTextContentsOnZoom = function (pageNumber) {\n // eslint-disable-next-line max-len\n var renderObject = window.sessionStorage.getItem(this.pdfViewerBase.getDocumentId() + '_' + pageNumber + '_' + this.getPreviousZoomFactor());\n // eslint-disable-next-line\n var textBounds = [];\n var textContents = [];\n // eslint-disable-next-line\n var rotation;\n if (renderObject) {\n // eslint-disable-next-line\n var data = JSON.parse(renderObject);\n // eslint-disable-next-line\n textBounds = data['textBounds'];\n // eslint-disable-next-line\n textContents = data['textContent'];\n // eslint-disable-next-line\n rotation = data['rotation'];\n }\n if (textBounds.length !== 0) {\n this.textBoundsArray.push({ pageNumber: pageNumber, textBounds: textBounds });\n this.resizeTextContents(pageNumber, textContents, textBounds, rotation);\n }\n else {\n // eslint-disable-next-line\n var textElements = this.textBoundsArray.filter(function (obj) {\n return obj.pageNumber === pageNumber;\n });\n if (textElements) {\n if (textElements.length !== 0) {\n // eslint-disable-next-line\n textBounds = textElements[0]['textBounds'];\n this.resizeTextContents(pageNumber, null, textBounds, rotation);\n }\n }\n }\n };\n TextLayer.prototype.resizeExcessDiv = function (textLayer, textDiv) {\n var textLayerPosition = textLayer.getBoundingClientRect();\n var textDivPosition = textDiv.getBoundingClientRect();\n // eslint-disable-next-line max-len\n if ((textDivPosition.width + textDivPosition.left) >= (textLayerPosition.width + textLayerPosition.left) || (textDivPosition.width > textLayerPosition.width)) {\n // 'auto' width is set to reset the size of the div to its contents.\n textDiv.style.width = 'auto';\n // Client width gets reset by 'auto' width property which has the width of the content.\n textDiv.style.width = textDiv.clientWidth + 'px';\n }\n };\n /**\n * @private\n * @param {boolean} isPinchZoomed - The isPinchZoomed.\n * @returns {void}\n */\n TextLayer.prototype.clearTextLayers = function (isPinchZoomed) {\n var lowerPageValue = this.pdfViewerBase.currentPageNumber - 3;\n lowerPageValue = (lowerPageValue > 0) ? lowerPageValue : 0;\n var higherPageValue = this.pdfViewerBase.currentPageNumber + 1;\n higherPageValue = (higherPageValue < this.pdfViewerBase.pageCount) ? higherPageValue : (this.pdfViewerBase.pageCount - 1);\n var textLayers = document.querySelectorAll('div[id*=\"' + this.pdfViewer.element.id + '_textLayer_\"]');\n for (var i = 0; i < textLayers.length; i++) {\n textLayers[parseInt(i.toString(), 10)].style.display = 'block';\n if (this.pdfViewerBase.getMagnified() && (this.getTextSelectionStatus() || this.getTextSearchStatus())) {\n // eslint-disable-next-line radix\n var pageNumber = parseInt(textLayers[parseInt(i.toString(), 10)].id.split('_textLayer_')[1]);\n if (!(((lowerPageValue + 1) <= pageNumber) && (pageNumber <= (higherPageValue - 1)))) {\n this.removeElement(textLayers[parseInt(i.toString(), 10)], isPinchZoomed);\n }\n }\n else if (this.pdfViewerBase.getPinchZoomed()) {\n this.removeElement(textLayers[parseInt(i.toString(), 10)], isPinchZoomed);\n }\n else {\n this.removeElement(textLayers[parseInt(i.toString(), 10)], isPinchZoomed);\n }\n }\n };\n TextLayer.prototype.removeElement = function (element, isPinchZoomed) {\n if (isPinchZoomed) {\n this.removeForeignObjects(element);\n }\n else {\n if (Browser.isIE) {\n if (element.parentElement) {\n element.parentElement.removeChild(element);\n }\n else if (element.parentNode) {\n element.parentNode.removeChild(element);\n }\n }\n else {\n element.remove();\n }\n }\n };\n TextLayer.prototype.removeForeignObjects = function (element) {\n // eslint-disable-next-line\n var childElement = element.getElementsByClassName('foreign-object');\n if (childElement) {\n for (var i = 0; i < childElement.length; i++) {\n if (Browser.isDevice) {\n //Remove the outer div element of checkbox and other formfields in pichzoom\n if (childElement[parseInt(i.toString(), 10)].parentElement.className === 'e-pv-text-layer' && childElement[0].parentElement.className !== 'e-pv-checkbox-outer-div') {\n element.removeChild(childElement[0]);\n }\n else if (childElement[parseInt(i.toString(), 10)].parentElement.className === 'e-pv-checkbox-outer-div') {\n var outerDivParent = document.getElementById(childElement[0].parentElement.id);\n if (outerDivParent) {\n outerDivParent.parentElement.remove();\n }\n }\n }\n else {\n if (childElement[parseInt(i.toString(), 10)].parentElement.className === 'e-pv-text-layer') {\n element.removeChild(childElement[0]);\n }\n }\n }\n }\n };\n /**\n * @param pageNumber\n * @param divId\n * @param fromOffset\n * @param toOffset\n * @param textString\n * @param className\n * @private\n */\n // eslint-disable-next-line max-len\n TextLayer.prototype.convertToSpan = function (pageNumber, divId, fromOffset, toOffset, textString, className) {\n var textDiv = this.pdfViewerBase.getElement('_text_' + pageNumber + '_' + divId);\n var textContent = textString.substring(fromOffset, toOffset);\n var node = document.createTextNode(textContent);\n if (className) {\n var spanElement = createElement('span');\n spanElement.className = className + ' e-pv-text';\n spanElement.appendChild(node);\n textDiv.appendChild(spanElement);\n }\n else {\n textDiv.appendChild(node);\n }\n };\n /**\n * @param startPage\n * @param endPage\n * @param anchorOffsetDiv\n * @param focusOffsetDiv\n * @param anchorOffset\n * @param focusOffset\n * @private\n */\n // eslint-disable-next-line max-len\n TextLayer.prototype.applySpanForSelection = function (startPage, endPage, anchorOffsetDiv, focusOffsetDiv, anchorOffset, focusOffset) {\n if (this.pdfViewer.textSelectionModule) {\n for (var i = startPage; i <= endPage; i++) {\n var startId = void 0;\n var endId = void 0;\n // eslint-disable-next-line\n var textDivs = this.pdfViewerBase.getElement('_textLayer_' + i).childNodes;\n if (i === startPage) {\n startId = anchorOffsetDiv;\n endId = textDivs.length - 1;\n }\n else if (i === endPage) {\n startId = 0;\n endId = focusOffsetDiv;\n }\n else {\n startId = 0;\n endId = textDivs.length - 1;\n }\n if (startPage === endPage) {\n startId = anchorOffsetDiv;\n endId = focusOffsetDiv;\n }\n for (var j = startId; j <= endId; j++) {\n var textDiv = this.pdfViewerBase.getElement('_text_' + i + '_' + j);\n var initId = void 0;\n var lastId = void 0;\n var length_1 = void 0;\n if (textDiv && textDiv.textContent) {\n length_1 = textDiv.textContent.length;\n var textContent = textDiv.textContent;\n textDiv.textContent = '';\n if (j === startId) {\n if (i === startPage) {\n initId = anchorOffset;\n }\n else {\n initId = 0;\n }\n lastId = length_1;\n this.convertToSpan(i, j, 0, initId, textContent, null);\n }\n else if (j === endId && i === endPage) {\n initId = 0;\n lastId = focusOffset;\n }\n else {\n initId = 0;\n lastId = length_1;\n }\n if (startId === endId && startPage === endPage) {\n initId = anchorOffset;\n lastId = focusOffset;\n }\n this.convertToSpan(i, j, initId, lastId, textContent, 'e-pv-maintaincontent');\n if (j === endId && i === endPage) {\n this.convertToSpan(i, j, lastId, textContent.length, textContent, null);\n }\n }\n }\n }\n }\n };\n /**\n * @private\n * @returns {void}\n */\n TextLayer.prototype.clearDivSelection = function () {\n var textLayers = document.querySelectorAll('div[id*=\"' + this.pdfViewer.element.id + '_textLayer_\"]');\n for (var i = 0; i < textLayers.length; i++) {\n var childNodes = textLayers[parseInt(i.toString(), 10)].childNodes;\n for (var j = 0; j < childNodes.length; j++) {\n var textDiv = childNodes[parseInt(j.toString(), 10)];\n // eslint-disable-next-line max-len\n if (textDiv.className !== 'e-pdfviewer-formFields' && textDiv.className !== 'e-pdfviewer-signatureformfields' && textDiv.className !== 'e-pdfviewer-signatureformfields-signature') {\n var textContent = textDiv.textContent;\n // eslint-disable-next-line max-len\n if (textDiv.childNodes.length > 1 || textDiv.childNodes.length === 1 && (textDiv.childNodes[0].tagName === 'SPAN')) {\n textDiv.textContent = '';\n textDiv.textContent = textContent;\n }\n }\n }\n }\n };\n // eslint-disable-next-line\n TextLayer.prototype.setStyleToTextDiv = function (textDiv, left, top, bottom, width, height) {\n textDiv.style.left = left * this.pdfViewerBase.getZoomFactor() + 'px';\n textDiv.style.top = top * this.pdfViewerBase.getZoomFactor() + 'px';\n var textHeight = height * this.pdfViewerBase.getZoomFactor();\n textDiv.style.height = textHeight + 'px';\n textDiv.style.fontSize = height * this.pdfViewerBase.getZoomFactor() + 'px';\n };\n TextLayer.prototype.getTextSelectionStatus = function () {\n if (this.pdfViewer.textSelectionModule) {\n return this.pdfViewer.textSelectionModule.isTextSelection;\n }\n else {\n return false;\n }\n };\n /**\n * @param {boolean} isAdd - The isAdd.\n * @returns {void}\n * @private\n */\n TextLayer.prototype.modifyTextCursor = function (isAdd) {\n var textLayerList = document.querySelectorAll('div[id*=\"' + this.pdfViewer.element.id + '_textLayer_\"]');\n for (var i = 0; i < textLayerList.length; i++) {\n var childNodes = textLayerList[parseInt(i.toString(), 10)].childNodes;\n for (var j = 0; j < childNodes.length; j++) {\n var textElement = childNodes[parseInt(j.toString(), 10)];\n // eslint-disable-next-line max-len\n if (isAdd && textElement.className !== 'e-pdfviewer-formFields' && textElement.className !== 'e-pdfviewer-signatureformfields' && textElement.className !== 'e-pdfviewer-signatureformfields-signature') {\n textElement.classList.add('e-pv-cursor');\n }\n else {\n textElement.classList.remove('e-pv-cursor');\n }\n }\n }\n };\n /**\n * @param {Selection} selection - The Selection.\n * @returns {boolean} - Returns true or false.\n * @private\n */\n TextLayer.prototype.isBackWardSelection = function (selection) {\n var position = selection.anchorNode.compareDocumentPosition(selection.focusNode);\n var backward = false;\n if (!position && selection.anchorOffset > selection.focusOffset || position === Node.DOCUMENT_POSITION_PRECEDING) {\n backward = true;\n }\n return backward;\n };\n /**\n * @param {Node} element - The element.\n * @returns {number} - Returns number.\n * @private\n */\n TextLayer.prototype.getPageIndex = function (element) {\n var pageId;\n // eslint-disable-next-line\n var parentElement = element.parentElement;\n if (!parentElement) {\n parentElement = element.parentNode;\n }\n if (parentElement.className === 'e-pv-text-layer') {\n // eslint-disable-next-line radix\n pageId = parseInt(element.id.split('_text_')[1]);\n }\n else {\n // eslint-disable-next-line radix\n pageId = parseInt(parentElement.id.split('_text_')[1]);\n }\n return pageId;\n };\n /**\n * @param {Node} element - The element.\n * @param {number} pageIndex - The pageIndex.\n * @returns {number} - Returns number.\n * @private\n */\n TextLayer.prototype.getTextIndex = function (element, pageIndex) {\n var textIndex;\n // eslint-disable-next-line\n var parentElement = element.parentElement;\n if (!parentElement) {\n parentElement = element.parentNode;\n }\n if (parentElement.className === 'e-pv-text-layer') {\n // eslint-disable-next-line radix\n textIndex = parseInt(element.id.split('_text_' + pageIndex + '_')[1]);\n }\n else {\n // eslint-disable-next-line radix\n textIndex = parseInt(parentElement.id.split('_text_' + pageIndex + '_')[1]);\n }\n return textIndex;\n };\n TextLayer.prototype.getPreviousZoomFactor = function () {\n if (this.pdfViewer.magnificationModule) {\n return this.pdfViewer.magnificationModule.previousZoomFactor;\n }\n else {\n return 1;\n }\n };\n /**\n * @private\n * @returns {boolean} - Returns true or false.\n */\n TextLayer.prototype.getTextSearchStatus = function () {\n if (this.pdfViewer.textSearchModule) {\n return this.pdfViewer.textSearchModule.isTextSearch;\n }\n else {\n return false;\n }\n };\n /**\n * @param {string} text - The text.\n * @returns {void}\n * @private\n */\n TextLayer.prototype.createNotificationPopup = function (text) {\n var _this = this;\n if (!this.isMessageBoxOpen) {\n if (!isBlazor()) {\n // eslint-disable-next-line max-len\n var popupElement_1 = createElement('div', { id: this.pdfViewer.element.id + '_notify', className: 'e-pv-notification-popup' });\n this.pdfViewerBase.viewerContainer.appendChild(popupElement_1);\n this.notifyDialog = new Dialog({\n showCloseIcon: true, closeOnEscape: false, isModal: true, header: this.pdfViewer.localeObj.getConstant('PdfViewer'),\n buttons: [{\n buttonModel: { content: this.pdfViewer.localeObj.getConstant('OK'), isPrimary: true },\n click: this.closeNotification.bind(this)\n }],\n // eslint-disable-next-line max-len\n content: '
' + text + '
', target: this.pdfViewer.element,\n beforeClose: function () {\n _this.notifyDialog.destroy();\n if (_this.pdfViewer.element) {\n try {\n _this.pdfViewer.element.removeChild(popupElement_1);\n }\n catch (error) {\n popupElement_1.parentElement.removeChild(popupElement_1);\n }\n }\n if (_this.pdfViewer.textSearchModule) {\n _this.pdfViewer.textSearch.isMessagePopupOpened = false;\n }\n _this.isMessageBoxOpen = false;\n }\n });\n if (this.pdfViewer.enableRtl) {\n this.notifyDialog.enableRtl = true;\n }\n this.notifyDialog.appendTo(popupElement_1);\n this.isMessageBoxOpen = true;\n }\n else {\n // eslint-disable-next-line\n var notificationElement = document.getElementById(this.pdfViewer.element.id + '_notification_popup_content');\n if (notificationElement) {\n notificationElement.textContent = text;\n notificationElement.innerHTML = text;\n }\n if (this.pdfViewer.textSearchModule) {\n this.pdfViewer.textSearch.isMessagePopupOpened = false;\n }\n this.pdfViewer._dotnetInstance.invokeMethodAsync('OpenNotificationPopup', text);\n }\n }\n };\n return TextLayer;\n}());\nexport { TextLayer };\n","/**\n * These utility methods help to process the data and to convert it to desired dimensions\n */\n/** @private */\nexport function processPathData(data) {\n var collection = [];\n var j;\n var arrayCollection = parsePathData(data);\n if (arrayCollection.length > 0) {\n for (var i = 0; i < arrayCollection.length; i++) {\n var ob = arrayCollection[i];\n var char = '';\n char = ob[0];\n switch (char.toLowerCase()) {\n case 'm':\n for (j = 1; j < ob.length; j++) {\n collection.push({ command: char, x: ob[j], y: ob[j + 1] });\n j = j + 1;\n if (char === 'm') {\n char = 'l';\n }\n else if (char === 'M') {\n char = 'L';\n }\n }\n break;\n case 'l':\n case 't':\n for (j = 1; j < ob.length; j++) {\n collection.push({ command: char, x: ob[j], y: ob[j + 1] });\n j = j + 1;\n }\n break;\n case 'h':\n for (j = 1; j < ob.length; j++) {\n collection.push({ command: char, x: ob[j] });\n }\n break;\n case 'v':\n for (j = 1; j < ob.length; j++) {\n collection.push({ command: char, y: ob[j] });\n }\n break;\n case 'z':\n collection.push({ command: char });\n break;\n case 'c':\n for (j = 1; j < ob.length; j++) {\n collection.push({\n command: char, x1: ob[j], y1: ob[j + 1], x2: ob[j + 2], y2: ob[j + 3], x: ob[j + 4], y: ob[j + 5]\n });\n j = j + 5;\n }\n break;\n case 's':\n for (j = 1; j < ob.length; j++) {\n collection.push({ command: char, x2: ob[j], y2: ob[j + 1], x: ob[j + 2], y: ob[j + 3] });\n j = j + 3;\n }\n break;\n case 'q':\n for (j = 1; j < ob.length; j++) {\n collection.push({ command: char, x1: ob[j], y1: ob[j + 1], x: ob[j + 2], y: ob[j + 3] });\n j = j + 3;\n }\n break;\n case 'a':\n for (j = 1; j < ob.length; j++) {\n collection.push({\n command: char, r1: ob[j], r2: ob[j + 1], angle: ob[j + 2], largeArc: ob[j + 3],\n sweep: ob[j + 4], x: ob[j + 5], y: ob[j + 6]\n });\n j = j + 6;\n }\n break;\n }\n }\n }\n return collection;\n}\n/** @private */\nexport function parsePathData(data) {\n var tokenizer = /([a-z]+)|([+-]?(?:\\d+\\.?\\d*|\\.\\d+))/gi;\n var current = [];\n var commands = [];\n var match = {};\n tokenizer.lastIndex = 0;\n var isExponential = false;\n match = tokenizer.exec(data);\n while (match) {\n if (match[1] === 'e') {\n var s1 = '';\n isExponential = true;\n }\n else if (match[1]) {\n if (match[1].toLowerCase() === 'zm') {\n if (current.length) {\n commands.push(current);\n }\n commands.push(['Z']);\n current = [match[1].substring(1, 2)];\n }\n else {\n if (current.length) {\n commands.push(current);\n }\n current = [match[1]];\n }\n isExponential = false;\n }\n else {\n if (!current.length) {\n current = [];\n }\n if (!isExponential) {\n current.push(Number(match[2]));\n }\n isExponential = false;\n }\n match = tokenizer.exec(data);\n }\n if (current.length) {\n commands.push(current);\n }\n return commands;\n}\n/**\n * Used to find the path for rounded rect\n */\nexport function getRectanglePath(cornerRadius, height, width) {\n if (cornerRadius > height / 2) {\n cornerRadius = height / 2;\n }\n if (cornerRadius > width / 2) {\n cornerRadius = width / 2;\n }\n var x = 0;\n var y = 0;\n var path = '';\n var points = [{ x: x + cornerRadius, y: y }, { x: x + width - cornerRadius, y: y },\n { x: x + width, y: y + cornerRadius }, { x: x + width, y: y + height - cornerRadius },\n { x: x + width - cornerRadius, y: y + height }, { x: x + cornerRadius, y: y + height },\n { x: x, y: y + height - cornerRadius }, { x: x, y: y + cornerRadius }\n ];\n var corners = [{ x: x + width, y: y }, { x: x + width, y: y + height }, { x: x, y: y + height }, { x: x, y: y }];\n var corner = 0;\n var point2;\n var next;\n path = 'M' + points[0].x + ' ' + points[0].y;\n var i;\n for (i = 0; i < points.length; i = i + 2) {\n point2 = points[i + 1];\n path += 'L' + point2.x + ' ' + point2.y;\n next = points[i + 2] || points[0];\n path += 'Q' + corners[corner].x + ' ' + corners[corner].y + ' ' + next.x + ' ' + next.y;\n corner++;\n }\n return path;\n}\n/** @private */\nexport function pathSegmentCollection(collection) {\n var x0;\n var y0;\n var x1;\n var y1;\n var x2;\n var y2;\n var x;\n var y;\n var length;\n var i;\n var initx;\n var inity;\n var segments = [];\n for (x = 0, y = 0, i = 0, length = collection.length; i < length; ++i) {\n var obj = collection[i];\n var seg = obj;\n var char = '';\n char = seg.command;\n if ('y1' in seg) {\n y1 = seg.y1;\n }\n if ('y2' in seg) {\n y2 = seg.y2;\n }\n if ('x1' in seg) {\n x1 = seg.x1;\n }\n if ('x2' in seg) {\n x2 = seg.x2;\n }\n if ('x' in seg) {\n x = seg.x;\n }\n if ('y' in seg) {\n y = seg.y;\n }\n var prev = segments[segments.length - 1];\n switch (char) {\n case 'M':\n segments.push({ command: 'M', x: x, y: y });\n break;\n case 'L':\n segments.push({ command: 'L', x0: x0, y0: y0, x: x, y: y });\n break;\n case 'H':\n segments.push({ command: 'L', x0: x0, y0: y0, x: x, y: y0 });\n break;\n case 'V':\n segments.push({ command: 'L', x0: x0, y0: y0, x: x0, y: y });\n break;\n case 'C':\n segments.push({ command: 'C', x0: x0, y0: y0, x1: x1, y1: y1, x2: x2, y2: y2, x: x, y: y });\n break;\n case 'S':\n if (prev) {\n var ctrl = void 0;\n if (prev.command === 'C' || prev.command === 'S') {\n ctrl = { x: prev.x2, y: prev.y2 };\n }\n else {\n ctrl = { x: x0, y: y0 };\n }\n var cpt2 = { x: 2 * x0 - ctrl.x, y: 2 * y0 - ctrl.y };\n segments.push({ command: 'C', x0: x0, y0: y0, x1: cpt2.x, y1: cpt2.y, x2: x2, y2: y2, x: x, y: y });\n }\n break;\n case 'Q':\n //ctx.quadraticCurveTo(x1, y1, x, y);\n segments.push({ command: 'Q', x0: x0, y0: y0, x1: x1, y1: y1, x: x, y: y });\n break;\n case 'T':\n if (prev) {\n var ctrl = void 0;\n if (prev.command === 'Q') {\n ctrl = { x: prev.x1, y: prev.y1 };\n }\n else {\n ctrl = { x: x0, y: y0 };\n }\n var cpt2 = { x: 2 * x0 - ctrl.x, y: 2 * y0 - ctrl.y };\n segments.push({ command: 'Q', x0: x0, y0: y0, x1: cpt2.x, y1: cpt2.y, x: x, y: y });\n }\n break;\n case 'A':\n var newSeg = seg;\n newSeg.command = 'A';\n segments.push(newSeg);\n break;\n case 'Z':\n case 'z':\n segments.push({ command: 'Z' });\n x = x0;\n y = y0;\n break;\n }\n if (char === 'M' || char === 'm') {\n initx = x;\n inity = y;\n }\n x0 = x;\n y0 = y;\n }\n return segments;\n}\n/** @private */\nexport function transformPath(arr, sX, sY, s, bX, bY, iX, iY) {\n var x0;\n var y0;\n var x1;\n var y1;\n var x2;\n var y2;\n var x;\n var y;\n var length;\n var i;\n var newSeg;\n for (x = 0, y = 0, i = 0, length = arr.length; i < length; ++i) {\n var obj = arr[i];\n var seg = obj;\n var char = seg.command;\n if ('x' in seg) {\n x = seg.x;\n }\n if ('y' in seg) {\n y = seg.y;\n }\n if ('y1' in seg) {\n y1 = seg.y1;\n }\n if ('y2' in seg) {\n y2 = seg.y2;\n }\n if ('x1' in seg) {\n x1 = seg.x1;\n }\n if ('x2' in seg) {\n x2 = seg.x2;\n }\n if (s) {\n if (x !== undefined) {\n x = scalePathData(x, sX, bX, iX);\n }\n if (y !== undefined) {\n y = scalePathData(y, sY, bY, iY);\n }\n if (x1 !== undefined) {\n x1 = scalePathData(x1, sX, bX, iX);\n }\n if (y1 !== undefined) {\n y1 = scalePathData(y1, sY, bY, iY);\n }\n if (x2 !== undefined) {\n x2 = scalePathData(x2, sX, bX, iX);\n }\n if (y2 !== undefined) {\n y2 = scalePathData(y2, sY, bY, iY);\n }\n }\n else {\n if (x !== undefined) {\n x = Number((x + sX).toFixed(2));\n }\n if (y !== undefined) {\n y = Number((y + sY).toFixed(2));\n }\n if (x1 !== undefined) {\n x1 = Number((x1 + sX).toFixed(2));\n }\n if (y1 !== undefined) {\n y1 = Number((y1 + sY).toFixed(2));\n }\n if (x2 !== undefined) {\n x2 = Number((x2 + sX).toFixed(2));\n }\n if (y2 !== undefined) {\n y2 = Number((y2 + sY).toFixed(2));\n }\n }\n var scaledPath = { x: x, y: y, x1: x1, y1: y1, x2: x2, y2: y2, r1: seg.r1, r2: seg.r2 };\n newSeg = updatedSegment(seg, char, scaledPath, s, sX, sY);\n if (newSeg) {\n arr[i] = newSeg;\n }\n // Record the start of a subpath\n if (char === 'M' || char === 'm') {\n x0 = x;\n y0 = y;\n }\n }\n var pathData = getPathString(arr);\n return pathData;\n}\n/** @private */\nexport function updatedSegment(segment, char, obj, isScale, sX, sY) {\n switch (char) {\n case 'M':\n segment.x = obj.x;\n segment.y = obj.y;\n break;\n case 'L':\n segment.x = obj.x;\n segment.y = obj.y;\n break;\n case 'H':\n segment.x = obj.x;\n break;\n case 'V':\n segment.y = obj.y;\n break;\n case 'C':\n segment.x = obj.x;\n segment.y = obj.y;\n segment.x1 = obj.x1;\n segment.y1 = obj.y1;\n segment.x2 = obj.x2;\n segment.y2 = obj.y2;\n break;\n case 'S':\n segment.x = obj.x;\n segment.y = obj.y;\n segment.x2 = obj.x2;\n segment.y2 = obj.y2;\n break;\n case 'Q':\n segment.x = obj.x;\n segment.y = obj.y;\n segment.x1 = obj.x1;\n segment.y1 = obj.y1;\n break;\n case 'T':\n segment.x = obj.x;\n segment.y = obj.y;\n break;\n case 'A':\n var r1 = obj.r1;\n var r2 = obj.r2;\n if (isScale) {\n obj.r1 = r1 = (r1 * sX);\n obj.r2 = r2 = (r2 * sY);\n }\n segment.x = obj.x;\n segment.y = obj.y;\n segment.r1 = obj.r1;\n segment.r2 = obj.r2;\n break;\n case 'z':\n case 'Z':\n segment = { command: 'Z' };\n break;\n }\n return segment;\n}\n/** @private */\nexport function scalePathData(val, scaleFactor, oldOffset, newOffset) {\n if (val !== oldOffset) {\n if (newOffset !== oldOffset) {\n val = (((val * scaleFactor) - (Number(oldOffset) * scaleFactor - Number(oldOffset)))\n + (newOffset - Number(oldOffset)));\n }\n else {\n val = ((Number(val) * scaleFactor) - (Number(oldOffset) * scaleFactor - Number(oldOffset)));\n }\n }\n else {\n if (newOffset !== oldOffset) {\n val = newOffset;\n }\n }\n return Number(val.toFixed(2));\n}\n/** @private */\nexport function splitArrayCollection(arrayCollection) {\n var x0;\n var y0;\n var x1;\n var y1;\n var x2;\n var y2;\n var x;\n var y;\n var length;\n var i;\n for (x = 0, y = 0, i = 0, length = arrayCollection.length; i < length; ++i) {\n var path = arrayCollection[i];\n var seg = path;\n var char = seg.command;\n if (/[MLHVCSQTA]/.test(char)) {\n if ('x' in seg) {\n seg.x = x = seg.x;\n }\n if ('y' in seg) {\n seg.y = y = seg.y;\n }\n }\n else {\n if ('x1' in seg) {\n seg.x1 = x1 = x + seg.x1;\n }\n if ('x2' in seg) {\n seg.x2 = x2 = x + seg.x2;\n }\n if ('y1' in seg) {\n seg.y1 = y1 = y + seg.y1;\n }\n if ('y2' in seg) {\n seg.y2 = y2 = y + seg.y2;\n }\n if ('x' in seg) {\n seg.x = x += seg.x;\n }\n if ('y' in seg) {\n seg.y = y += seg.y;\n }\n var newSeg = void 0;\n switch (char) {\n case 'm':\n case 'M':\n newSeg = { command: 'M', x: x, y: y };\n break;\n case 'l':\n case 'L':\n newSeg = { command: 'L', x: x, y: y };\n break;\n case 'h':\n case 'H':\n newSeg = { command: 'H', x: x };\n break;\n case 'v':\n case 'V':\n newSeg = { command: 'V', y: y };\n break;\n case 'c':\n case 'C':\n newSeg = { command: 'C', x: x, y: y, x1: x1, y1: y1, x2: x2, y2: y2 };\n break;\n case 's':\n case 'S':\n newSeg = { command: 'S', x: x, y: y, x2: x2, y2: y2 };\n break;\n case 'q':\n case 'Q':\n newSeg = { command: 'Q', x: x, y: y, x1: x1, y1: y1 };\n break;\n case 't':\n case 'T':\n newSeg = { command: 'T', x: x, y: y };\n break;\n case 'a':\n case 'A':\n newSeg = { command: 'A', x: x, y: y };\n newSeg.r1 = seg.r1;\n newSeg.r2 = seg.r2;\n newSeg.angle = seg.angle;\n newSeg.largeArc = seg.largeArc;\n newSeg.sweep = seg.sweep;\n break;\n case 'z':\n case 'Z':\n newSeg = { command: 'Z' };\n x = x0;\n y = y0;\n newSeg = arrayCollection[i];\n break;\n }\n if (newSeg) {\n arrayCollection[i] = newSeg;\n }\n }\n if (char === 'M' || char === 'm') {\n x0 = x;\n y0 = y;\n }\n }\n return arrayCollection;\n}\n/** @private */\nexport function getPathString(arrayCollection) {\n var getNewString = '';\n var i;\n for (i = 0; i < arrayCollection.length; i++) {\n if (i === 0) {\n getNewString += getString(arrayCollection[i]);\n }\n else {\n getNewString += ' ' + getString(arrayCollection[i]);\n }\n }\n return getNewString;\n}\n/** @private */\nexport function getString(obj) {\n var string = '';\n switch (obj.command) {\n case 'Z':\n case 'z':\n string = obj.command;\n break;\n case 'M':\n case 'm':\n case 'L':\n case 'l':\n string = obj.command + ' ' + obj.x + ' ' + obj.y;\n break;\n case 'C':\n case 'c':\n string = obj.command + ' ' + obj.x1 + ' ' + obj.y1 + ' ' + obj.x2 + ' ' + obj.y2 + ' ' + obj.x + ' ' + obj.y;\n break;\n case 'Q':\n case 'q':\n string = obj.command + ' ' + obj.x1 + ' ' + obj.y1 + ' ' + obj.x + ' ' + obj.y;\n break;\n case 'A':\n case 'a':\n var cmd = obj.command;\n var ang = obj.angle;\n var l = (obj.largeArc ? '1' : '0');\n var s = (obj.sweep ? '1' : '0');\n string = cmd + ' ' + obj.r1 + ' ' + obj.r2 + ' ' + ang + ' ' + l + ' ' + s + ' ' + obj.x + ' ' + obj.y;\n break;\n case 'H':\n case 'h':\n string = obj.command + ' ' + obj.x;\n break;\n case 'V':\n case 'v':\n string = obj.command + ' ' + obj.y;\n break;\n case 'S':\n case 's':\n string = obj.command + ' ' + obj.x2 + ' ' + obj.y2 + ' ' + obj.x + ' ' + obj.y;\n break;\n case 'T':\n case 't':\n string = obj.command + ' ' + obj.x + ' ' + obj.y;\n }\n return string;\n}\n","/* eslint-disable valid-jsdoc, jsdoc/require-jsdoc, jsdoc/require-returns, jsdoc/require-param */\nimport { createElement, attributes, addClass, removeClass, detach, classList } from '@syncfusion/ej2-base';\nimport { closest, formatUnit, isNullOrUndefined, remove } from '@syncfusion/ej2-base';\nvar CLASSNAMES = {\n RTL: 'e-rtl',\n DISABLE: 'e-disabled',\n INPUT: 'e-input',\n TEXTAREA: 'e-multi-line-input',\n INPUTGROUP: 'e-input-group',\n FLOATINPUT: 'e-float-input',\n FLOATLINE: 'e-float-line',\n FLOATTEXT: 'e-float-text',\n FLOATTEXTCONTENT: 'e-float-text-content',\n CLEARICON: 'e-clear-icon',\n CLEARICONHIDE: 'e-clear-icon-hide',\n LABELTOP: 'e-label-top',\n LABELBOTTOM: 'e-label-bottom',\n NOFLOATLABEL: 'e-no-float-label',\n INPUTCUSTOMTAG: 'e-input-custom-tag',\n FLOATCUSTOMTAG: 'e-float-custom-tag'\n};\n/**\n * Base for Input creation through util methods.\n */\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport var Input;\n(function (Input) {\n var privateInputObj = {\n container: null,\n buttons: [],\n clearButton: null\n };\n var floatType;\n var isBindClearAction = true;\n /**\n * Create a wrapper to input element with multiple span elements and set the basic properties to input based components.\n * ```\n * E.g : Input.createInput({ element: element, floatLabelType : \"Auto\", properties: { placeholder: 'Search' } });\n * ```\n *\n */\n function createInput(args, internalCreateElement) {\n var makeElement = !isNullOrUndefined(internalCreateElement) ? internalCreateElement : createElement;\n var inputObject = { container: null, buttons: [], clearButton: null };\n floatType = args.floatLabelType;\n isBindClearAction = args.bindClearAction;\n if (isNullOrUndefined(args.floatLabelType) || args.floatLabelType === 'Never') {\n inputObject.container = createInputContainer(args, CLASSNAMES.INPUTGROUP, CLASSNAMES.INPUTCUSTOMTAG, 'span', makeElement);\n args.element.parentNode.insertBefore(inputObject.container, args.element);\n addClass([args.element], CLASSNAMES.INPUT);\n inputObject.container.appendChild(args.element);\n }\n else {\n createFloatingInput(args, inputObject, makeElement);\n }\n bindInitialEvent(args);\n if (!isNullOrUndefined(args.properties) && !isNullOrUndefined(args.properties.showClearButton) &&\n args.properties.showClearButton && args.element.tagName !== 'TEXTAREA') {\n setClearButton(args.properties.showClearButton, args.element, inputObject, true, makeElement);\n inputObject.clearButton.setAttribute('role', 'button');\n if (inputObject.container.classList.contains(CLASSNAMES.FLOATINPUT)) {\n addClass([inputObject.container], CLASSNAMES.INPUTGROUP);\n }\n }\n if (!isNullOrUndefined(args.buttons) && args.element.tagName !== 'TEXTAREA') {\n for (var i = 0; i < args.buttons.length; i++) {\n inputObject.buttons.push(appendSpan(args.buttons[i], inputObject.container, makeElement));\n }\n }\n if (!isNullOrUndefined(args.element) && args.element.tagName === 'TEXTAREA') {\n addClass([inputObject.container], CLASSNAMES.TEXTAREA);\n }\n validateInputType(inputObject.container, args.element);\n inputObject = setPropertyValue(args, inputObject);\n createSpanElement(inputObject.container, makeElement);\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n privateInputObj = inputObject;\n return inputObject;\n }\n Input.createInput = createInput;\n function bindInitialEvent(args) {\n checkInputValue(args.floatLabelType, args.element);\n args.element.addEventListener('focus', function () {\n var parent = getParentNode(this);\n if (parent.classList.contains('e-input-group') || parent.classList.contains('e-outline')\n || parent.classList.contains('e-filled')) {\n parent.classList.add('e-input-focus');\n }\n setTimeout(function () {\n Input.calculateWidth(args.element, parent);\n }, 80);\n });\n args.element.addEventListener('blur', function () {\n var parent = getParentNode(this);\n if (parent.classList.contains('e-input-group') || parent.classList.contains('e-outline')\n || parent.classList.contains('e-filled')) {\n parent.classList.remove('e-input-focus');\n }\n setTimeout(function () {\n Input.calculateWidth(args.element, parent);\n }, 80);\n });\n args.element.addEventListener('input', function () {\n checkInputValue(floatType, args.element);\n });\n }\n Input.bindInitialEvent = bindInitialEvent;\n function checkInputValue(floatLabelType, inputElement) {\n var inputValue = inputElement.value;\n if (inputValue !== '' && !isNullOrUndefined(inputValue) && inputElement.parentElement) {\n inputElement.parentElement.classList.add('e-valid-input');\n }\n else if (floatLabelType !== 'Always' && inputElement.parentElement) {\n inputElement.parentElement.classList.remove('e-valid-input');\n }\n }\n function _focusFn() {\n var label = getParentNode(this).getElementsByClassName('e-float-text')[0];\n if (!isNullOrUndefined(label)) {\n addClass([label], CLASSNAMES.LABELTOP);\n if (label.classList.contains(CLASSNAMES.LABELBOTTOM)) {\n removeClass([label], CLASSNAMES.LABELBOTTOM);\n }\n }\n }\n function _blurFn() {\n var parent = getParentNode(this);\n if ((parent.getElementsByTagName('textarea')[0]) ? parent.getElementsByTagName('textarea')[0].value === '' :\n parent.getElementsByTagName('input')[0].value === '') {\n var label = parent.getElementsByClassName('e-float-text')[0];\n if (!isNullOrUndefined(label)) {\n if (label.classList.contains(CLASSNAMES.LABELTOP)) {\n removeClass([label], CLASSNAMES.LABELTOP);\n }\n addClass([label], CLASSNAMES.LABELBOTTOM);\n }\n }\n }\n function wireFloatingEvents(element) {\n element.addEventListener('focus', _focusFn);\n element.addEventListener('blur', _blurFn);\n }\n Input.wireFloatingEvents = wireFloatingEvents;\n function unwireFloatingEvents(element) {\n element.removeEventListener('focus', _focusFn);\n element.removeEventListener('blur', _blurFn);\n }\n function createFloatingInput(args, inputObject, internalCreateElement) {\n var makeElement = !isNullOrUndefined(internalCreateElement) ? internalCreateElement : createElement;\n if (args.floatLabelType === 'Auto') {\n wireFloatingEvents(args.element);\n }\n if (isNullOrUndefined(inputObject.container)) {\n inputObject.container = createInputContainer(args, CLASSNAMES.FLOATINPUT, CLASSNAMES.FLOATCUSTOMTAG, 'div', makeElement);\n if (args.element.parentNode) {\n args.element.parentNode.insertBefore(inputObject.container, args.element);\n }\n }\n else {\n if (!isNullOrUndefined(args.customTag)) {\n inputObject.container.classList.add(CLASSNAMES.FLOATCUSTOMTAG);\n }\n inputObject.container.classList.add(CLASSNAMES.FLOATINPUT);\n }\n var floatLinelement = makeElement('span', { className: CLASSNAMES.FLOATLINE });\n var floatLabelElement = makeElement('label', { className: CLASSNAMES.FLOATTEXT });\n if (!isNullOrUndefined(args.element.id) && args.element.id !== '') {\n floatLabelElement.id = 'label_' + args.element.id.replace(/ /g, '_');\n attributes(args.element, { 'aria-labelledby': floatLabelElement.id });\n }\n if (!isNullOrUndefined(args.element.placeholder) && args.element.placeholder !== '') {\n floatLabelElement.innerText = encodePlaceHolder(args.element.placeholder);\n args.element.removeAttribute('placeholder');\n }\n if (!isNullOrUndefined(args.properties) && !isNullOrUndefined(args.properties.placeholder) &&\n args.properties.placeholder !== '') {\n floatLabelElement.innerText = encodePlaceHolder(args.properties.placeholder);\n }\n if (!floatLabelElement.innerText) {\n inputObject.container.classList.add(CLASSNAMES.NOFLOATLABEL);\n }\n if (inputObject.container.classList.contains('e-float-icon-left')) {\n var inputWrap = inputObject.container.querySelector('.e-input-in-wrap');\n inputWrap.appendChild(args.element);\n inputWrap.appendChild(floatLinelement);\n inputWrap.appendChild(floatLabelElement);\n }\n else {\n inputObject.container.appendChild(args.element);\n inputObject.container.appendChild(floatLinelement);\n inputObject.container.appendChild(floatLabelElement);\n }\n updateLabelState(args.element.value, floatLabelElement);\n if (args.floatLabelType === 'Always') {\n if (floatLabelElement.classList.contains(CLASSNAMES.LABELBOTTOM)) {\n removeClass([floatLabelElement], CLASSNAMES.LABELBOTTOM);\n }\n addClass([floatLabelElement], CLASSNAMES.LABELTOP);\n }\n if (args.floatLabelType === 'Auto') {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n args.element.addEventListener('input', function (event) {\n updateLabelState(args.element.value, floatLabelElement, args.element);\n });\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n args.element.addEventListener('blur', function (event) {\n updateLabelState(args.element.value, floatLabelElement);\n });\n }\n if (!isNullOrUndefined(args.element.getAttribute('id'))) {\n floatLabelElement.setAttribute('for', args.element.getAttribute('id'));\n }\n }\n function checkFloatLabelType(type, container) {\n if (type === 'Always' && container.classList.contains('e-outline')) {\n container.classList.add('e-valid-input');\n }\n }\n function setPropertyValue(args, inputObject) {\n if (!isNullOrUndefined(args.properties)) {\n for (var _i = 0, _a = Object.keys(args.properties); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'cssClass':\n setCssClass(args.properties.cssClass, [inputObject.container]);\n checkFloatLabelType(args.floatLabelType, inputObject.container);\n break;\n case 'enabled':\n setEnabled(args.properties.enabled, args.element, args.floatLabelType, inputObject.container);\n break;\n case 'enableRtl':\n setEnableRtl(args.properties.enableRtl, [inputObject.container]);\n break;\n case 'placeholder':\n setPlaceholder(args.properties.placeholder, args.element);\n break;\n case 'readonly':\n setReadonly(args.properties.readonly, args.element);\n break;\n }\n }\n }\n return inputObject;\n }\n function updateIconState(value, button, readonly) {\n if (value && !readonly) {\n removeClass([button], CLASSNAMES.CLEARICONHIDE);\n }\n else {\n addClass([button], CLASSNAMES.CLEARICONHIDE);\n }\n }\n function updateLabelState(value, label, element) {\n if (element === void 0) { element = null; }\n if (value) {\n addClass([label], CLASSNAMES.LABELTOP);\n if (label.classList.contains(CLASSNAMES.LABELBOTTOM)) {\n removeClass([label], CLASSNAMES.LABELBOTTOM);\n }\n }\n else {\n var isNotFocused = element != null ? element !== document.activeElement : true;\n if (isNotFocused) {\n if (label.classList.contains(CLASSNAMES.LABELTOP)) {\n removeClass([label], CLASSNAMES.LABELTOP);\n }\n addClass([label], CLASSNAMES.LABELBOTTOM);\n }\n }\n }\n function getParentNode(element) {\n var parentNode = isNullOrUndefined(element.parentNode) ? element\n : element.parentNode;\n if (parentNode && parentNode.classList.contains('e-input-in-wrap')) {\n parentNode = parentNode.parentNode;\n }\n return parentNode;\n }\n /**\n * To create clear button.\n */\n function createClearButton(element, inputObject, initial, internalCreateElement) {\n var makeElement = !isNullOrUndefined(internalCreateElement) ? internalCreateElement : createElement;\n var button = makeElement('span', { className: CLASSNAMES.CLEARICON });\n var container = inputObject.container;\n if (!isNullOrUndefined(initial)) {\n container.appendChild(button);\n }\n else {\n var baseElement = inputObject.container.classList.contains(CLASSNAMES.FLOATINPUT) ?\n inputObject.container.querySelector('.' + CLASSNAMES.FLOATTEXT) : element;\n baseElement.insertAdjacentElement('afterend', button);\n }\n if (!isNullOrUndefined(container) &&\n container.classList.contains(CLASSNAMES.FLOATINPUT)) {\n addClass([container], CLASSNAMES.INPUTGROUP);\n }\n addClass([button], CLASSNAMES.CLEARICONHIDE);\n wireClearBtnEvents(element, button, container);\n button.setAttribute('aria-label', 'close');\n return button;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n function wireClearBtnEvents(element, button, container) {\n if (isBindClearAction == undefined || isBindClearAction) {\n button.addEventListener('click', function (event) {\n if (!(element.classList.contains(CLASSNAMES.DISABLE) || element.readOnly)) {\n event.preventDefault();\n if (element !== document.activeElement) {\n element.focus();\n }\n element.value = '';\n addClass([button], CLASSNAMES.CLEARICONHIDE);\n }\n });\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n element.addEventListener('input', function (event) {\n updateIconState(element.value, button);\n });\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n element.addEventListener('focus', function (event) {\n updateIconState(element.value, button, element.readOnly);\n });\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n element.addEventListener('blur', function (event) {\n setTimeout(function () {\n addClass([button], CLASSNAMES.CLEARICONHIDE);\n }, 200);\n });\n }\n Input.wireClearBtnEvents = wireClearBtnEvents;\n function destroy() {\n privateInputObj = null;\n }\n Input.destroy = destroy;\n function validateLabel(element, floatLabelType) {\n var parent = getParentNode(element);\n if (parent.classList.contains(CLASSNAMES.FLOATINPUT) && floatLabelType === 'Auto') {\n var label = getParentNode(element).getElementsByClassName('e-float-text')[0];\n updateLabelState(element.value, label, element);\n }\n }\n /**\n * To create input box contianer.\n */\n function createInputContainer(args, className, tagClass, tag, internalCreateElement) {\n var makeElement = !isNullOrUndefined(internalCreateElement) ? internalCreateElement : createElement;\n var container;\n if (!isNullOrUndefined(args.customTag)) {\n container = makeElement(args.customTag, { className: className });\n container.classList.add(tagClass);\n }\n else {\n container = makeElement(tag, { className: className });\n }\n container.classList.add('e-control-wrapper');\n return container;\n }\n function encodePlaceHolder(placeholder) {\n var result = '';\n if (!isNullOrUndefined(placeholder) && placeholder !== '') {\n var spanEle = document.createElement('span');\n spanEle.innerHTML = '';\n var hiddenInput = (spanEle.children[0]);\n result = hiddenInput.placeholder;\n }\n return result;\n }\n /**\n * Sets the value to the input element.\n * ```\n * E.g : Input.setValue('content', element, \"Auto\", true );\n * ```\n *\n * @param {string} value - Specify the value of the input element.\n * @param {HTMLInputElement | HTMLTextAreaElement} element - The element on which the specified value is updated.\n * @param {string} floatLabelType - Specify the float label type of the input element.\n * @param {boolean} clearButton - Boolean value to specify whether the clear icon is enabled / disabled on the input.\n */\n function setValue(value, element, floatLabelType, clearButton) {\n element.value = value;\n calculateWidth(element, element.parentElement);\n if ((!isNullOrUndefined(floatLabelType)) && floatLabelType === 'Auto') {\n validateLabel(element, floatLabelType);\n }\n if (!isNullOrUndefined(clearButton) && clearButton) {\n var parentElement = getParentNode(element);\n if (!isNullOrUndefined(parentElement)) {\n var button = parentElement.getElementsByClassName(CLASSNAMES.CLEARICON)[0];\n if (!isNullOrUndefined(button)) {\n if (element.value && !isNullOrUndefined(parentElement) && parentElement.classList.contains('e-input-focus')) {\n removeClass([button], CLASSNAMES.CLEARICONHIDE);\n }\n else {\n addClass([button], CLASSNAMES.CLEARICONHIDE);\n }\n }\n }\n }\n checkInputValue(floatLabelType, element);\n }\n Input.setValue = setValue;\n /**\n * Sets the single or multiple cssClass to wrapper of input element.\n * ```\n * E.g : Input.setCssClass('e-custom-class', [element]);\n * ```\n *\n * @param {string} cssClass - Css class names which are needed to add.\n * @param {Element[] | NodeList} elements - The elements which are needed to add / remove classes.\n * @param {string} oldClass\n * - Css class names which are needed to remove. If old classes are need to remove, can give this optional parameter.\n */\n function setCssClass(cssClass, elements, oldClass) {\n if (!isNullOrUndefined(oldClass) && oldClass !== '') {\n removeClass(elements, oldClass.split(' '));\n }\n if (!isNullOrUndefined(cssClass) && cssClass !== '') {\n addClass(elements, cssClass.split(' '));\n }\n }\n Input.setCssClass = setCssClass;\n /**\n * Set the width to the placeholder when it overflows on the button such as spinbutton, clearbutton, icon etc\n * ```\n * E.g : Input.calculateWidth(element, container);\n * ```\n *\n * @param {any} element - Input element which is need to add.\n * @param {HTMLElement} container - The parent element which is need to get the label span to calculate width\n */\n function calculateWidth(element, container, moduleName) {\n var elementWidth = moduleName === 'multiselect' ? element : element.clientWidth - parseInt(getComputedStyle(element, null).getPropertyValue('padding-left'));\n if (!isNullOrUndefined(container.getElementsByClassName('e-float-text-content')[0])) {\n if (container.getElementsByClassName('e-float-text-content')[0].classList.contains('e-float-text-overflow')) {\n container.getElementsByClassName('e-float-text-content')[0].classList.remove('e-float-text-overflow');\n }\n if (elementWidth < container.getElementsByClassName('e-float-text-content')[0].clientWidth || elementWidth === container.getElementsByClassName('e-float-text-content')[0].clientWidth) {\n container.getElementsByClassName('e-float-text-content')[0].classList.add('e-float-text-overflow');\n }\n }\n }\n Input.calculateWidth = calculateWidth;\n /**\n * Set the width to the wrapper of input element.\n * ```\n * E.g : Input.setWidth('200px', container);\n * ```\n *\n * @param {number | string} width - Width value which is need to add.\n * @param {HTMLElement} container - The element on which the width is need to add.\n */\n function setWidth(width, container) {\n if (typeof width === 'number') {\n container.style.width = formatUnit(width);\n }\n else if (typeof width === 'string') {\n container.style.width = (width.match(/px|%|em/)) ? (width) : (formatUnit(width));\n }\n calculateWidth(container.firstChild, container);\n }\n Input.setWidth = setWidth;\n /**\n * Set the placeholder attribute to the input element.\n * ```\n * E.g : Input.setPlaceholder('Search here', element);\n * ```\n *\n * @param {string} placeholder - Placeholder value which is need to add.\n * @param {HTMLInputElement | HTMLTextAreaElement} element - The element on which the placeholder is need to add.\n */\n function setPlaceholder(placeholder, element) {\n placeholder = encodePlaceHolder(placeholder);\n var parentElement = getParentNode(element);\n if (parentElement.classList.contains(CLASSNAMES.FLOATINPUT)) {\n if (!isNullOrUndefined(placeholder) && placeholder !== '') {\n parentElement.getElementsByClassName('e-float-text-content')[0] ? parentElement.getElementsByClassName(CLASSNAMES.FLOATTEXT)[0].children[0].textContent = placeholder : parentElement.getElementsByClassName(CLASSNAMES.FLOATTEXT)[0].textContent = placeholder;\n parentElement.classList.remove(CLASSNAMES.NOFLOATLABEL);\n element.removeAttribute('placeholder');\n }\n else {\n parentElement.classList.add(CLASSNAMES.NOFLOATLABEL);\n parentElement.getElementsByClassName('e-float-text-content')[0] ? parentElement.getElementsByClassName(CLASSNAMES.FLOATTEXT)[0].children[0].textContent = '' : parentElement.getElementsByClassName(CLASSNAMES.FLOATTEXT)[0].textContent = '';\n }\n }\n else {\n if (!isNullOrUndefined(placeholder) && placeholder !== '') {\n attributes(element, { 'placeholder': placeholder });\n }\n else {\n element.removeAttribute('placeholder');\n }\n }\n }\n Input.setPlaceholder = setPlaceholder;\n /**\n * Set the read only attribute to the input element\n * ```\n * E.g : Input.setReadonly(true, element);\n * ```\n *\n * @param {boolean} isReadonly\n * - Boolean value to specify whether to set read only. Setting \"True\" value enables read only.\n * @param {HTMLInputElement | HTMLTextAreaElement} element\n * - The element which is need to enable read only.\n */\n function setReadonly(isReadonly, element, floatLabelType) {\n if (isReadonly) {\n attributes(element, { readonly: '' });\n }\n else {\n element.removeAttribute('readonly');\n }\n if (!isNullOrUndefined(floatLabelType)) {\n validateLabel(element, floatLabelType);\n }\n }\n Input.setReadonly = setReadonly;\n /**\n * Displays the element direction from right to left when its enabled.\n * ```\n * E.g : Input.setEnableRtl(true, [inputObj.container]);\n * ```\n *\n * @param {boolean} isRtl\n * - Boolean value to specify whether to set RTL. Setting \"True\" value enables the RTL mode.\n * @param {Element[] | NodeList} elements\n * - The elements that are needed to enable/disable RTL.\n */\n function setEnableRtl(isRtl, elements) {\n if (isRtl) {\n addClass(elements, CLASSNAMES.RTL);\n }\n else {\n removeClass(elements, CLASSNAMES.RTL);\n }\n }\n Input.setEnableRtl = setEnableRtl;\n /**\n * Enables or disables the given input element.\n * ```\n * E.g : Input.setEnabled(false, element);\n * ```\n *\n * @param {boolean} isEnable\n * - Boolean value to specify whether to enable or disable.\n * @param {HTMLInputElement | HTMLTextAreaElement} element\n * - Element to be enabled or disabled.\n */\n function setEnabled(isEnable, element, floatLabelType, inputContainer) {\n var disabledAttrs = { 'disabled': 'disabled', 'aria-disabled': 'true' };\n var considerWrapper = isNullOrUndefined(inputContainer) ? false : true;\n if (isEnable) {\n element.classList.remove(CLASSNAMES.DISABLE);\n removeAttributes(disabledAttrs, element);\n if (considerWrapper) {\n removeClass([inputContainer], CLASSNAMES.DISABLE);\n }\n }\n else {\n element.classList.add(CLASSNAMES.DISABLE);\n addAttributes(disabledAttrs, element);\n if (considerWrapper) {\n addClass([inputContainer], CLASSNAMES.DISABLE);\n }\n }\n if (!isNullOrUndefined(floatLabelType)) {\n validateLabel(element, floatLabelType);\n }\n }\n Input.setEnabled = setEnabled;\n function setClearButton(isClear, element, inputObject, initial, internalCreateElement) {\n var makeElement = !isNullOrUndefined(internalCreateElement) ? internalCreateElement : createElement;\n if (isClear) {\n inputObject.clearButton = createClearButton(element, inputObject, initial, makeElement);\n }\n else {\n remove(inputObject.clearButton);\n inputObject.clearButton = null;\n }\n }\n Input.setClearButton = setClearButton;\n /**\n * Removing the multiple attributes from the given element such as \"disabled\",\"id\" , etc.\n * ```\n * E.g : Input.removeAttributes({ 'disabled': 'disabled', 'aria-disabled': 'true' }, element);\n * ```\n *\n * @param {string} attrs\n * - Array of attributes which are need to removed from the element.\n * @param {HTMLInputElement | HTMLElement} element\n * - Element on which the attributes are needed to be removed.\n */\n function removeAttributes(attrs, element) {\n for (var _i = 0, _a = Object.keys(attrs); _i < _a.length; _i++) {\n var key = _a[_i];\n var parentElement = getParentNode(element);\n if (key === 'disabled') {\n element.classList.remove(CLASSNAMES.DISABLE);\n }\n if (key === 'disabled' && parentElement.classList.contains(CLASSNAMES.INPUTGROUP)) {\n parentElement.classList.remove(CLASSNAMES.DISABLE);\n }\n if (key === 'placeholder' && parentElement.classList.contains(CLASSNAMES.FLOATINPUT)) {\n parentElement.getElementsByClassName(CLASSNAMES.FLOATTEXT)[0].textContent = '';\n }\n else {\n element.removeAttribute(key);\n }\n }\n }\n Input.removeAttributes = removeAttributes;\n /**\n * Adding the multiple attributes to the given element such as \"disabled\",\"id\" , etc.\n * ```\n * E.g : Input.addAttributes({ 'id': 'inputpopup' }, element);\n * ```\n *\n * @param {string} attrs\n * - Array of attributes which is added to element.\n * @param {HTMLInputElement | HTMLElement} element\n * - Element on which the attributes are needed to be added.\n */\n function addAttributes(attrs, element) {\n for (var _i = 0, _a = Object.keys(attrs); _i < _a.length; _i++) {\n var key = _a[_i];\n var parentElement = getParentNode(element);\n if (key === 'disabled') {\n element.classList.add(CLASSNAMES.DISABLE);\n }\n if (key === 'disabled' && parentElement.classList.contains(CLASSNAMES.INPUTGROUP)) {\n parentElement.classList.add(CLASSNAMES.DISABLE);\n }\n if (key === 'placeholder' && parentElement.classList.contains(CLASSNAMES.FLOATINPUT)) {\n parentElement.getElementsByClassName(CLASSNAMES.FLOATTEXT)[0].textContent = attrs[key];\n }\n else {\n element.setAttribute(key, attrs[key]);\n }\n }\n }\n Input.addAttributes = addAttributes;\n function removeFloating(input) {\n var container = input.container;\n if (!isNullOrUndefined(container) && container.classList.contains(CLASSNAMES.FLOATINPUT)) {\n var inputEle = container.querySelector('textarea') ? container.querySelector('textarea') :\n container.querySelector('input');\n var placeholder = container.querySelector('.' + CLASSNAMES.FLOATTEXT).textContent;\n var clearButton = container.querySelector('.e-clear-icon') !== null;\n detach(container.querySelector('.' + CLASSNAMES.FLOATLINE));\n detach(container.querySelector('.' + CLASSNAMES.FLOATTEXT));\n classList(container, [CLASSNAMES.INPUTGROUP], [CLASSNAMES.FLOATINPUT]);\n unwireFloatingEvents(inputEle);\n attributes(inputEle, { 'placeholder': placeholder });\n inputEle.classList.add(CLASSNAMES.INPUT);\n if (!clearButton && inputEle.tagName === 'INPUT') {\n inputEle.removeAttribute('required');\n }\n }\n }\n Input.removeFloating = removeFloating;\n function addFloating(input, type, placeholder, internalCreateElement) {\n var makeElement = !isNullOrUndefined(internalCreateElement) ? internalCreateElement : createElement;\n var container = closest(input, '.' + CLASSNAMES.INPUTGROUP);\n floatType = type;\n if (type !== 'Never') {\n var customTag = container.tagName;\n customTag = customTag !== 'DIV' && customTag !== 'SPAN' ? customTag : null;\n var args = { element: input, floatLabelType: type,\n customTag: customTag, properties: { placeholder: placeholder } };\n var iconEle = container.querySelector('.e-clear-icon');\n var inputObj = { container: container };\n input.classList.remove(CLASSNAMES.INPUT);\n createFloatingInput(args, inputObj, makeElement);\n createSpanElement(inputObj.container, makeElement);\n calculateWidth(args.element, inputObj.container);\n var isPrependIcon = container.classList.contains('e-float-icon-left');\n if (isNullOrUndefined(iconEle)) {\n if (isPrependIcon) {\n var inputWrap = container.querySelector('.e-input-in-wrap');\n iconEle = inputWrap.querySelector('.e-input-group-icon');\n }\n else {\n iconEle = container.querySelector('.e-input-group-icon');\n }\n }\n if (isNullOrUndefined(iconEle)) {\n if (isPrependIcon) {\n iconEle = container.querySelector('.e-input-group-icon');\n }\n if (isNullOrUndefined(iconEle)) {\n container.classList.remove(CLASSNAMES.INPUTGROUP);\n }\n }\n else {\n var floatLine = container.querySelector('.' + CLASSNAMES.FLOATLINE);\n var floatText = container.querySelector('.' + CLASSNAMES.FLOATTEXT);\n var wrapper = isPrependIcon ? container.querySelector('.e-input-in-wrap') : container;\n wrapper.insertBefore(input, iconEle);\n wrapper.insertBefore(floatLine, iconEle);\n wrapper.insertBefore(floatText, iconEle);\n }\n }\n checkFloatLabelType(type, input.parentElement);\n }\n Input.addFloating = addFloating;\n /**\n * Create the span inside the label and add the label text into the span textcontent\n * ```\n * E.g : Input.createSpanElement(inputObject, makeElement);\n * ```\n *\n * @param {InputObject} inputObject\n * - Element which is need to get the label\n * @param {createElementParams} makeElement\n * - Element which is need to create the span\n */\n function createSpanElement(inputObject, makeElement) {\n if (inputObject.classList.contains('e-outline') && inputObject.getElementsByClassName('e-float-text')[0]) {\n var labelSpanElement = makeElement('span', { className: CLASSNAMES.FLOATTEXTCONTENT });\n labelSpanElement.innerHTML = inputObject.getElementsByClassName('e-float-text')[0].innerHTML;\n inputObject.getElementsByClassName('e-float-text')[0].innerHTML = '';\n inputObject.getElementsByClassName('e-float-text')[0].appendChild(labelSpanElement);\n }\n }\n Input.createSpanElement = createSpanElement;\n /**\n * Enable or Disable the ripple effect on the icons inside the Input. Ripple effect is only applicable for material theme.\n * ```\n * E.g : Input.setRipple(true, [inputObjects]);\n * ```\n *\n * @param {boolean} isRipple\n * - Boolean value to specify whether to enable the ripple effect.\n * @param {InputObject[]} inputObj\n * - Specify the collection of input objects.\n */\n function setRipple(isRipple, inputObj) {\n for (var i = 0; i < inputObj.length; i++) {\n _internalRipple(isRipple, inputObj[i].container);\n }\n }\n Input.setRipple = setRipple;\n function _internalRipple(isRipple, container, button) {\n var argsButton = [];\n argsButton.push(button);\n var buttons = isNullOrUndefined(button) ?\n container.querySelectorAll('.e-input-group-icon') : argsButton;\n if (isRipple && buttons.length > 0) {\n for (var index = 0; index < buttons.length; index++) {\n buttons[index].addEventListener('mousedown', _onMouseDownRipple, false);\n buttons[index].addEventListener('mouseup', _onMouseUpRipple, false);\n }\n }\n else if (buttons.length > 0) {\n for (var index = 0; index < buttons.length; index++) {\n buttons[index].removeEventListener('mousedown', _onMouseDownRipple, this);\n buttons[index].removeEventListener('mouseup', _onMouseUpRipple, this);\n }\n }\n }\n function _onMouseRipple(container, button) {\n if (!container.classList.contains('e-disabled') && !container.querySelector('input').readOnly) {\n button.classList.add('e-input-btn-ripple');\n }\n }\n function _onMouseDownRipple() {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var ele = this;\n var parentEle = this.parentElement;\n while (!parentEle.classList.contains('e-input-group')) {\n parentEle = parentEle.parentElement;\n }\n _onMouseRipple(parentEle, ele);\n }\n function _onMouseUpRipple() {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var ele = this;\n setTimeout(function () {\n ele.classList.remove('e-input-btn-ripple');\n }, 500);\n }\n function createIconEle(iconClass, makeElement) {\n var button = makeElement('span', { className: iconClass });\n button.classList.add('e-input-group-icon');\n return button;\n }\n /**\n * Creates a new span element with the given icons added and append it in container element.\n * ```\n * E.g : Input.addIcon('append', 'e-icon-spin', inputObj.container, inputElement);\n * ```\n *\n * @param {string} position - Specify the icon placement on the input.Possible values are append and prepend.\n * @param {string | string[]} icons - Icon classes which are need to add to the span element which is going to created.\n * Span element acts as icon or button element for input.\n * @param {HTMLElement} container - The container on which created span element is going to append.\n * @param {HTMLElement} input - The inputElement on which created span element is going to prepend.\n */\n /* eslint-disable @typescript-eslint/indent */\n function addIcon(position, icons, container, input, internalCreate) {\n /* eslint-enable @typescript-eslint/indent */\n var result = typeof (icons) === 'string' ? icons.split(',')\n : icons;\n if (position.toLowerCase() === 'append') {\n for (var _i = 0, result_1 = result; _i < result_1.length; _i++) {\n var icon = result_1[_i];\n appendSpan(icon, container, internalCreate);\n }\n }\n else {\n for (var _a = 0, result_2 = result; _a < result_2.length; _a++) {\n var icon = result_2[_a];\n prependSpan(icon, container, input, internalCreate);\n }\n }\n if (container.getElementsByClassName('e-input-group-icon')[0] && container.getElementsByClassName('e-float-text-overflow')[0]) {\n container.getElementsByClassName('e-float-text-overflow')[0].classList.add('e-icon');\n }\n }\n Input.addIcon = addIcon;\n /**\n * Creates a new span element with the given icons added and prepend it in input element.\n * ```\n * E.g : Input.prependSpan('e-icon-spin', inputObj.container, inputElement);\n * ```\n *\n * @param {string} iconClass - Icon classes which are need to add to the span element which is going to created.\n * Span element acts as icon or button element for input.\n * @param {HTMLElement} container - The container on which created span element is going to append.\n * @param {HTMLElement} inputElement - The inputElement on which created span element is going to prepend.\n */\n /* eslint-disable @typescript-eslint/indent */\n function prependSpan(iconClass, container, inputElement, internalCreateElement) {\n /* eslint-enable @typescript-eslint/indent */\n var makeElement = !isNullOrUndefined(internalCreateElement) ? internalCreateElement : createElement;\n var button = createIconEle(iconClass, makeElement);\n container.classList.add('e-float-icon-left');\n var innerWrapper = container.querySelector('.e-input-in-wrap');\n if (isNullOrUndefined(innerWrapper)) {\n innerWrapper = makeElement('span', { className: 'e-input-in-wrap' });\n inputElement.parentNode.insertBefore(innerWrapper, inputElement);\n var result = container.querySelectorAll(inputElement.tagName + ' ~ *');\n innerWrapper.appendChild(inputElement);\n for (var i = 0; i < result.length; i++) {\n innerWrapper.appendChild(result[i]);\n }\n }\n innerWrapper.parentNode.insertBefore(button, innerWrapper);\n if (!container.classList.contains(CLASSNAMES.INPUTGROUP)) {\n container.classList.add(CLASSNAMES.INPUTGROUP);\n }\n _internalRipple(true, container, button);\n return button;\n }\n Input.prependSpan = prependSpan;\n /**\n * Creates a new span element with the given icons added and append it in container element.\n * ```\n * E.g : Input.appendSpan('e-icon-spin', inputObj.container);\n * ```\n *\n * @param {string} iconClass - Icon classes which are need to add to the span element which is going to created.\n * Span element acts as icon or button element for input.\n * @param {HTMLElement} container - The container on which created span element is going to append.\n */\n function appendSpan(iconClass, container, internalCreateElement) {\n var makeElement = !isNullOrUndefined(internalCreateElement) ? internalCreateElement : createElement;\n var button = createIconEle(iconClass, makeElement);\n if (!container.classList.contains(CLASSNAMES.INPUTGROUP)) {\n container.classList.add(CLASSNAMES.INPUTGROUP);\n }\n var wrap = (container.classList.contains('e-float-icon-left')) ? container.querySelector('.e-input-in-wrap') :\n container;\n wrap.appendChild(button);\n _internalRipple(true, container, button);\n return button;\n }\n Input.appendSpan = appendSpan;\n function validateInputType(containerElement, input) {\n if (input.type === 'hidden') {\n containerElement.classList.add('e-hidden');\n }\n else if (containerElement.classList.contains('e-hidden')) {\n containerElement.classList.remove('e-hidden');\n }\n }\n Input.validateInputType = validateInputType;\n})(Input || (Input = {}));\n/* eslint-enable valid-jsdoc, jsdoc/require-jsdoc, jsdoc/require-returns, jsdoc/require-param */\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Component, Property, Event, EventHandler, L10n, setValue, getValue, isNullOrUndefined, Browser } from '@syncfusion/ej2-base';\nimport { NotifyPropertyChanges, detach, Internationalization, getUniqueID, closest } from '@syncfusion/ej2-base';\nimport { addClass, removeClass } from '@syncfusion/ej2-base';\nimport { Input } from '../input/input';\nvar HIDE_CLEAR = 'e-clear-icon-hide';\nvar TEXTBOX_FOCUS = 'e-input-focus';\nvar containerAttr = ['title', 'style', 'class'];\n/**\n * Represents the TextBox component that allows the user to enter the values based on it's type.\n * ```html\n * \n * ```\n * ```typescript\n * \n * ```\n */\nvar TextBox = /** @class */ (function (_super) {\n __extends(TextBox, _super);\n /**\n *\n * @param {TextBoxModel} options - Specifies the TextBox model.\n * @param {string | HTMLInputElement | HTMLTextAreaElement} element - Specifies the element to render as component.\n * @private\n */\n function TextBox(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.previousValue = null;\n _this.isAngular = false;\n _this.isHiddenInput = false;\n _this.isForm = false;\n _this.inputPreviousValue = null;\n _this.isVue = false;\n _this.textboxOptions = options;\n return _this;\n }\n /**\n * Calls internally if any of the property value is changed.\n *\n * @param {TextBoxModel} newProp - Returns the dynamic property value of the component.\n * @param {TextBoxModel} oldProp - Returns the previous property value of the component.\n * @returns {void}\n * @private\n */\n TextBox.prototype.onPropertyChanged = function (newProp, oldProp) {\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'floatLabelType':\n Input.removeFloating(this.textboxWrapper);\n Input.addFloating(this.respectiveElement, this.floatLabelType, this.placeholder);\n break;\n case 'enabled':\n Input.setEnabled(this.enabled, this.respectiveElement, this.floatLabelType, this.textboxWrapper.container);\n this.bindClearEvent();\n break;\n case 'width':\n Input.setWidth(newProp.width, this.textboxWrapper.container);\n break;\n case 'value':\n {\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n if (!this.isBlank(this.value)) {\n this.value = this.value.toString();\n }\n this.isProtectedOnChange = prevOnChange;\n Input.setValue(this.value, this.respectiveElement, this.floatLabelType, this.showClearButton);\n if (this.isHiddenInput) {\n this.element.value = this.respectiveElement.value;\n }\n this.inputPreviousValue = this.respectiveElement.value;\n /* istanbul ignore next */\n if ((this.isAngular || this.isVue) && this.preventChange === true) {\n this.previousValue = this.isAngular ? this.value : this.previousValue;\n this.preventChange = false;\n }\n else if (isNullOrUndefined(this.isAngular) || !this.isAngular\n || (this.isAngular && !this.preventChange) || (this.isAngular && isNullOrUndefined(this.preventChange))) {\n this.raiseChangeEvent();\n }\n }\n break;\n case 'htmlAttributes':\n {\n this.updateHTMLAttrToElement();\n this.updateHTMLAttrToWrapper();\n this.checkAttributes(true);\n Input.validateInputType(this.textboxWrapper.container, this.element);\n }\n break;\n case 'readonly':\n Input.setReadonly(this.readonly, this.respectiveElement);\n break;\n case 'type':\n if (this.respectiveElement.tagName !== 'TEXTAREA') {\n this.respectiveElement.setAttribute('type', this.type);\n Input.validateInputType(this.textboxWrapper.container, this.element);\n this.raiseChangeEvent();\n }\n break;\n case 'showClearButton':\n if (this.respectiveElement.tagName !== 'TEXTAREA') {\n Input.setClearButton(this.showClearButton, this.respectiveElement, this.textboxWrapper);\n this.bindClearEvent();\n }\n break;\n case 'enableRtl':\n Input.setEnableRtl(this.enableRtl, [this.textboxWrapper.container]);\n break;\n case 'placeholder':\n Input.setPlaceholder(this.placeholder, this.respectiveElement);\n Input.calculateWidth(this.respectiveElement, this.textboxWrapper.container);\n break;\n case 'autocomplete':\n if (this.autocomplete !== 'on' && this.autocomplete !== '') {\n this.respectiveElement.autocomplete = this.autocomplete;\n }\n else {\n this.removeAttributes(['autocomplete']);\n }\n break;\n case 'cssClass':\n this.updateCssClass(newProp.cssClass, oldProp.cssClass);\n break;\n case 'locale':\n this.globalize = new Internationalization(this.locale);\n this.l10n.setLocale(this.locale);\n this.setProperties({ placeholder: this.l10n.getConstant('placeholder') }, true);\n Input.setPlaceholder(this.placeholder, this.respectiveElement);\n break;\n }\n }\n };\n /**\n * Gets the component name\n *\n * @returns {string} Returns the component name.\n * @private\n */\n TextBox.prototype.getModuleName = function () {\n return 'textbox';\n };\n TextBox.prototype.isBlank = function (str) {\n return (!str || /^\\s*$/.test(str));\n };\n TextBox.prototype.preRender = function () {\n this.cloneElement = this.element.cloneNode(true);\n this.formElement = closest(this.element, 'form');\n if (!isNullOrUndefined(this.formElement)) {\n this.isForm = true;\n }\n /* istanbul ignore next */\n if (this.element.tagName === 'EJS-TEXTBOX') {\n var ejInstance = getValue('ej2_instances', this.element);\n var inputElement = this.multiline ?\n this.createElement('textarea') :\n this.createElement('input');\n var index = 0;\n for (index; index < this.element.attributes.length; index++) {\n var attributeName = this.element.attributes[index].nodeName;\n if (attributeName !== 'id' && attributeName !== 'class') {\n inputElement.setAttribute(attributeName, this.element.attributes[index].nodeValue);\n inputElement.innerHTML = this.element.innerHTML;\n if (attributeName === 'name') {\n this.element.removeAttribute('name');\n }\n }\n else if (attributeName === 'class') {\n inputElement.setAttribute(attributeName, this.element.className.split(' ').filter(function (item) { return item.indexOf('ng-') !== 0; }).join(' '));\n }\n }\n this.element.appendChild(inputElement);\n this.element = inputElement;\n setValue('ej2_instances', ejInstance, this.element);\n }\n this.updateHTMLAttrToElement();\n this.checkAttributes(false);\n if ((isNullOrUndefined(this.textboxOptions) || (this.textboxOptions['value'] === undefined)) && this.element.value !== '') {\n this.setProperties({ value: this.element.value }, true);\n }\n if (this.element.tagName !== 'TEXTAREA') {\n this.element.setAttribute('type', this.type);\n }\n this.element.setAttribute('role', 'textbox');\n this.globalize = new Internationalization(this.locale);\n var localeText = { placeholder: this.placeholder };\n this.l10n = new L10n('textbox', localeText, this.locale);\n if (this.l10n.getConstant('placeholder') !== '') {\n this.setProperties({ placeholder: this.placeholder || this.l10n.getConstant('placeholder') }, true);\n }\n if (!this.element.hasAttribute('id')) {\n this.element.setAttribute('id', getUniqueID('textbox'));\n }\n if (!this.element.hasAttribute('name')) {\n this.element.setAttribute('name', this.element.getAttribute('id'));\n }\n if (this.element.tagName === 'INPUT' && this.multiline) {\n this.isHiddenInput = true;\n this.textarea = this.createElement('textarea');\n this.element.parentNode.insertBefore(this.textarea, this.element);\n this.element.setAttribute('type', 'hidden');\n this.textarea.setAttribute('name', this.element.getAttribute('name'));\n this.element.removeAttribute('name');\n this.textarea.setAttribute('role', this.element.getAttribute('role'));\n this.element.removeAttribute('role');\n this.textarea.setAttribute('id', getUniqueID('textarea'));\n var apiAttributes = ['placeholder', 'disabled', 'value', 'readonly', 'type', 'autocomplete'];\n for (var index = 0; index < this.element.attributes.length; index++) {\n var attributeName = this.element.attributes[index].nodeName;\n if (this.element.hasAttribute(attributeName) && containerAttr.indexOf(attributeName) < 0 &&\n !(attributeName === 'id' || attributeName === 'type' || attributeName === 'e-mappinguid')) {\n // e-mappinguid attribute is handled for Grid component.\n this.textarea.setAttribute(attributeName, this.element.attributes[index].nodeValue);\n if (apiAttributes.indexOf(attributeName) < 0) {\n this.element.removeAttribute(attributeName);\n index--;\n }\n }\n }\n }\n };\n TextBox.prototype.checkAttributes = function (isDynamic) {\n var attrs = isDynamic ? isNullOrUndefined(this.htmlAttributes) ? [] : Object.keys(this.htmlAttributes) :\n ['placeholder', 'disabled', 'value', 'readonly', 'type', 'autocomplete'];\n for (var _i = 0, attrs_1 = attrs; _i < attrs_1.length; _i++) {\n var key = attrs_1[_i];\n if (!isNullOrUndefined(this.element.getAttribute(key))) {\n switch (key) {\n case 'disabled':\n if ((isNullOrUndefined(this.textboxOptions) || (this.textboxOptions['enabled'] === undefined)) || isDynamic) {\n var enabled = this.element.getAttribute(key) === 'disabled' || this.element.getAttribute(key) === '' ||\n this.element.getAttribute(key) === 'true' ? false : true;\n this.setProperties({ enabled: enabled }, !isDynamic);\n }\n break;\n case 'readonly':\n if ((isNullOrUndefined(this.textboxOptions) || (this.textboxOptions['readonly'] === undefined)) || isDynamic) {\n var readonly = this.element.getAttribute(key) === 'readonly' || this.element.getAttribute(key) === ''\n || this.element.getAttribute(key) === 'true' ? true : false;\n this.setProperties({ readonly: readonly }, !isDynamic);\n }\n break;\n case 'placeholder':\n if ((isNullOrUndefined(this.textboxOptions) || (this.textboxOptions['placeholder'] === undefined)) || isDynamic) {\n this.setProperties({ placeholder: this.element.placeholder }, !isDynamic);\n }\n break;\n case 'autocomplete':\n if ((isNullOrUndefined(this.textboxOptions) || (this.textboxOptions['autocomplete'] === undefined)) || isDynamic) {\n var autoCompleteTxt = this.element.autocomplete === 'off' ? 'off' : 'on';\n this.setProperties({ autocomplete: autoCompleteTxt }, !isDynamic);\n }\n break;\n case 'value':\n if (((isNullOrUndefined(this.textboxOptions) || (this.textboxOptions['value'] === undefined)) || isDynamic) && this.element.value !== '') {\n this.setProperties({ value: this.element.value }, !isDynamic);\n }\n break;\n case 'type':\n if ((isNullOrUndefined(this.textboxOptions) || (this.textboxOptions['type'] === undefined)) || isDynamic) {\n this.setProperties({ type: this.element.type }, !isDynamic);\n }\n break;\n }\n }\n }\n };\n /**\n * To Initialize the control rendering\n *\n * @returns {void}\n * @private\n */\n TextBox.prototype.render = function () {\n var updatedCssClassValue = this.cssClass;\n if (!isNullOrUndefined(this.cssClass) && this.cssClass !== '') {\n updatedCssClassValue = this.getInputValidClassList(this.cssClass);\n }\n this.respectiveElement = (this.isHiddenInput) ? this.textarea : this.element;\n this.textboxWrapper = Input.createInput({\n element: this.respectiveElement,\n floatLabelType: this.floatLabelType,\n properties: {\n enabled: this.enabled,\n enableRtl: this.enableRtl,\n cssClass: updatedCssClassValue,\n readonly: this.readonly,\n placeholder: this.placeholder,\n showClearButton: this.showClearButton\n }\n });\n this.updateHTMLAttrToWrapper();\n if (this.isHiddenInput) {\n this.respectiveElement.parentNode.insertBefore(this.element, this.respectiveElement);\n }\n this.wireEvents();\n if (!isNullOrUndefined(this.value)) {\n Input.setValue(this.value, this.respectiveElement, this.floatLabelType, this.showClearButton);\n if (this.isHiddenInput) {\n this.element.value = this.respectiveElement.value;\n }\n }\n if (!isNullOrUndefined(this.value)) {\n this.initialValue = this.value;\n this.setInitialValue();\n }\n if (this.autocomplete !== 'on' && this.autocomplete !== '') {\n this.respectiveElement.autocomplete = this.autocomplete;\n }\n else if (!isNullOrUndefined(this.textboxOptions) && (this.textboxOptions['autocomplete'] !== undefined)) {\n this.removeAttributes(['autocomplete']);\n }\n this.previousValue = this.value;\n this.inputPreviousValue = this.value;\n this.respectiveElement.defaultValue = this.respectiveElement.value;\n Input.setWidth(this.width, this.textboxWrapper.container);\n if (!isNullOrUndefined(closest(this.element, \"fieldset\")) && closest(this.element, \"fieldset\").disabled) {\n this.enabled = false;\n }\n this.renderComplete();\n };\n TextBox.prototype.updateHTMLAttrToWrapper = function () {\n if (!isNullOrUndefined(this.htmlAttributes)) {\n for (var _i = 0, _a = Object.keys(this.htmlAttributes); _i < _a.length; _i++) {\n var key = _a[_i];\n if (containerAttr.indexOf(key) > -1) {\n if (key === 'class') {\n var updatedClassValues = this.getInputValidClassList(this.htmlAttributes[\"\" + key]);\n if (updatedClassValues !== '') {\n addClass([this.textboxWrapper.container], updatedClassValues.split(' '));\n }\n }\n else if (key === 'style') {\n var setStyle = this.textboxWrapper.container.getAttribute(key);\n setStyle = !isNullOrUndefined(setStyle) ? (setStyle + this.htmlAttributes[\"\" + key]) :\n this.htmlAttributes[\"\" + key];\n this.textboxWrapper.container.setAttribute(key, setStyle);\n }\n else {\n this.textboxWrapper.container.setAttribute(key, this.htmlAttributes[\"\" + key]);\n }\n }\n }\n }\n };\n TextBox.prototype.updateHTMLAttrToElement = function () {\n if (!isNullOrUndefined(this.htmlAttributes)) {\n for (var _i = 0, _a = Object.keys(this.htmlAttributes); _i < _a.length; _i++) {\n var key = _a[_i];\n if (containerAttr.indexOf(key) < 0) {\n this.element.setAttribute(key, this.htmlAttributes[\"\" + key]);\n }\n }\n }\n };\n TextBox.prototype.updateCssClass = function (newClass, oldClass) {\n Input.setCssClass(this.getInputValidClassList(newClass), [this.textboxWrapper.container], this.getInputValidClassList(oldClass));\n };\n TextBox.prototype.getInputValidClassList = function (inputClassName) {\n var result = inputClassName;\n if (!isNullOrUndefined(inputClassName) && inputClassName !== '') {\n result = (inputClassName.replace(/\\s+/g, ' ')).trim();\n }\n return result;\n };\n TextBox.prototype.setInitialValue = function () {\n if (!this.isAngular) {\n this.respectiveElement.setAttribute('value', this.initialValue);\n }\n };\n TextBox.prototype.wireEvents = function () {\n EventHandler.add(this.respectiveElement, 'focus', this.focusHandler, this);\n EventHandler.add(this.respectiveElement, 'blur', this.focusOutHandler, this);\n EventHandler.add(this.respectiveElement, 'input', this.inputHandler, this);\n EventHandler.add(this.respectiveElement, 'change', this.changeHandler, this);\n if (this.isForm) {\n EventHandler.add(this.formElement, 'reset', this.resetForm, this);\n }\n this.bindClearEvent();\n if (!isNullOrUndefined(this.textboxWrapper.container.querySelector('.e-float-text')) && this.floatLabelType === 'Auto'\n && this.textboxWrapper.container.classList.contains('e-autofill') &&\n this.textboxWrapper.container.classList.contains('e-outline')) {\n EventHandler.add((this.textboxWrapper.container.querySelector('.e-float-text')), 'animationstart', this.animationHandler, this);\n }\n };\n TextBox.prototype.animationHandler = function () {\n this.textboxWrapper.container.classList.add('e-valid-input');\n var label = this.textboxWrapper.container.querySelector('.e-float-text');\n if (!isNullOrUndefined(label)) {\n label.classList.add('e-label-top');\n if (label.classList.contains('e-label-bottom')) {\n label.classList.remove('e-label-bottom');\n }\n }\n };\n TextBox.prototype.resetValue = function (value) {\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.value = value;\n this.isProtectedOnChange = prevOnChange;\n };\n TextBox.prototype.resetForm = function () {\n if (this.isAngular) {\n this.resetValue('');\n }\n else {\n this.resetValue(this.initialValue);\n }\n if (!isNullOrUndefined(this.textboxWrapper)) {\n var label = this.textboxWrapper.container.querySelector('.e-float-text');\n if (!isNullOrUndefined(label) && this.floatLabelType !== 'Always') {\n if ((isNullOrUndefined(this.initialValue) || this.initialValue === '')) {\n label.classList.add('e-label-bottom');\n label.classList.remove('e-label-top');\n }\n else if (this.initialValue !== '') {\n label.classList.add('e-label-top');\n label.classList.remove('e-label-bottom');\n }\n }\n }\n };\n TextBox.prototype.focusHandler = function (args) {\n var eventArgs = {\n container: this.textboxWrapper.container,\n event: args,\n value: this.value\n };\n this.trigger('focus', eventArgs);\n };\n TextBox.prototype.focusOutHandler = function (args) {\n if (!(this.previousValue === null && this.value === null && this.respectiveElement.value === '') &&\n (this.previousValue !== this.value)) {\n this.raiseChangeEvent(args, true);\n }\n var eventArgs = {\n container: this.textboxWrapper.container,\n event: args,\n value: this.value\n };\n this.trigger('blur', eventArgs);\n };\n TextBox.prototype.inputHandler = function (args) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-this-alias\n var textboxObj = this;\n var eventArgs = {\n event: args,\n value: this.respectiveElement.value,\n previousValue: this.inputPreviousValue,\n container: this.textboxWrapper.container\n };\n this.inputPreviousValue = this.respectiveElement.value;\n /* istanbul ignore next */\n if (this.isAngular) {\n textboxObj.localChange({ value: this.respectiveElement.value });\n this.preventChange = true;\n }\n if (this.isVue) {\n this.preventChange = true;\n }\n this.trigger('input', eventArgs);\n args.stopPropagation();\n };\n TextBox.prototype.changeHandler = function (args) {\n this.setProperties({ value: this.respectiveElement.value }, true);\n this.raiseChangeEvent(args, true);\n args.stopPropagation();\n };\n TextBox.prototype.raiseChangeEvent = function (event, interaction) {\n var eventArgs = {\n event: event,\n value: this.value,\n previousValue: this.previousValue,\n container: this.textboxWrapper.container,\n isInteraction: interaction ? interaction : false,\n isInteracted: interaction ? interaction : false\n };\n this.preventChange = false;\n this.trigger('change', eventArgs);\n this.previousValue = this.value;\n //EJ2CORE-738:For this task we update the textarea value to the input when input tag with multiline is present\n if (this.element.tagName === 'INPUT' && this.multiline && Browser.info.name === 'mozilla') {\n this.element.value = this.respectiveElement.value;\n }\n };\n TextBox.prototype.bindClearEvent = function () {\n if (this.showClearButton && this.respectiveElement.tagName !== 'TEXTAREA') {\n if (this.enabled) {\n EventHandler.add(this.textboxWrapper.clearButton, 'mousedown touchstart', this.resetInputHandler, this);\n }\n else {\n EventHandler.remove(this.textboxWrapper.clearButton, 'mousedown touchstart', this.resetInputHandler);\n }\n }\n };\n TextBox.prototype.resetInputHandler = function (event) {\n event.preventDefault();\n if (!(this.textboxWrapper.clearButton.classList.contains(HIDE_CLEAR)) || this.textboxWrapper.container.classList.contains('e-static-clear')) {\n Input.setValue('', this.respectiveElement, this.floatLabelType, this.showClearButton);\n if (this.isHiddenInput) {\n this.element.value = this.respectiveElement.value;\n }\n this.setProperties({ value: this.respectiveElement.value }, true);\n var eventArgs = {\n event: event,\n value: this.respectiveElement.value,\n previousValue: this.inputPreviousValue,\n container: this.textboxWrapper.container\n };\n this.trigger('input', eventArgs);\n this.inputPreviousValue = this.respectiveElement.value;\n this.raiseChangeEvent(event, true);\n if (closest(this.element, 'form')) {\n var element = this.element;\n var keyupEvent = document.createEvent('KeyboardEvent');\n keyupEvent.initEvent('keyup', false, true);\n element.dispatchEvent(keyupEvent);\n }\n }\n };\n TextBox.prototype.unWireEvents = function () {\n EventHandler.remove(this.respectiveElement, 'focus', this.focusHandler);\n EventHandler.remove(this.respectiveElement, 'blur', this.focusOutHandler);\n EventHandler.remove(this.respectiveElement, 'input', this.inputHandler);\n EventHandler.remove(this.respectiveElement, 'change', this.changeHandler);\n if (this.isForm) {\n EventHandler.remove(this.formElement, 'reset', this.resetForm);\n }\n if (!isNullOrUndefined(this.textboxWrapper.container.querySelector('.e-float-text')) && this.floatLabelType === 'Auto'\n && this.textboxWrapper.container.classList.contains('e-outline') &&\n this.textboxWrapper.container.classList.contains('e-autofill')) {\n EventHandler.remove((this.textboxWrapper.container.querySelector('.e-float-text')), 'animationstart', this.animationHandler);\n }\n };\n /**\n * Removes the component from the DOM and detaches all its related event handlers.\n * Also, it maintains the initial TextBox element from the DOM.\n *\n * @method destroy\n * @returns {void}\n */\n TextBox.prototype.destroy = function () {\n this.unWireEvents();\n if (this.element.tagName === 'INPUT' && this.multiline) {\n detach(this.textboxWrapper.container.getElementsByTagName('textarea')[0]);\n this.respectiveElement = this.element;\n this.element.removeAttribute('type');\n }\n this.respectiveElement.value = this.respectiveElement.defaultValue;\n this.respectiveElement.classList.remove('e-input');\n this.removeAttributes(['aria-disabled', 'aria-readonly', 'aria-labelledby']);\n if (!isNullOrUndefined(this.textboxWrapper)) {\n this.textboxWrapper.container.insertAdjacentElement('afterend', this.respectiveElement);\n detach(this.textboxWrapper.container);\n }\n this.textboxWrapper = null;\n Input.destroy();\n _super.prototype.destroy.call(this);\n };\n /**\n * Adding the icons to the TextBox component.\n *\n * @param { string } position - Specify the icon placement on the TextBox. Possible values are append and prepend.\n * @param { string | string[] } icons - Icon classes which are need to add to the span element which is going to created.\n * Span element acts as icon or button element for TextBox.\n * @returns {void}\n */\n TextBox.prototype.addIcon = function (position, icons) {\n Input.addIcon(position, icons, this.textboxWrapper.container, this.respectiveElement, this.createElement);\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-returns */\n /**\n * Gets the properties to be maintained in the persisted state.\n *\n */\n TextBox.prototype.getPersistData = function () {\n var keyEntity = ['value'];\n return this.addOnPersist(keyEntity);\n };\n /* eslint-enable valid-jsdoc, jsdoc/require-returns */\n /**\n * Adding the multiple attributes as key-value pair to the TextBox element.\n *\n * @param {string} attributes - Specifies the attributes to be add to TextBox element.\n * @returns {void}\n */\n TextBox.prototype.addAttributes = function (attributes) {\n for (var _i = 0, _a = Object.keys(attributes); _i < _a.length; _i++) {\n var key = _a[_i];\n if (key === 'disabled') {\n this.setProperties({ enabled: false }, true);\n Input.setEnabled(this.enabled, this.respectiveElement, this.floatLabelType, this.textboxWrapper.container);\n }\n else if (key === 'readonly') {\n this.setProperties({ readonly: true }, true);\n Input.setReadonly(this.readonly, this.respectiveElement);\n }\n else if (key === 'class') {\n this.respectiveElement.classList.add(attributes[\"\" + key]);\n }\n else if (key === 'placeholder') {\n this.setProperties({ placeholder: attributes[\"\" + key] }, true);\n Input.setPlaceholder(this.placeholder, this.respectiveElement);\n }\n else if (key === 'rows' && this.respectiveElement.tagName === 'TEXTAREA') {\n this.respectiveElement.setAttribute(key, attributes[\"\" + key]);\n }\n else {\n this.respectiveElement.setAttribute(key, attributes[\"\" + key]);\n }\n }\n };\n /**\n * Removing the multiple attributes as key-value pair to the TextBox element.\n *\n * @param { string[] } attributes - Specifies the attributes name to be removed from TextBox element.\n * @returns {void}\n */\n TextBox.prototype.removeAttributes = function (attributes) {\n for (var _i = 0, attributes_1 = attributes; _i < attributes_1.length; _i++) {\n var key = attributes_1[_i];\n if (key === 'disabled') {\n this.setProperties({ enabled: true }, true);\n Input.setEnabled(this.enabled, this.respectiveElement, this.floatLabelType, this.textboxWrapper.container);\n }\n else if (key === 'readonly') {\n this.setProperties({ readonly: false }, true);\n Input.setReadonly(this.readonly, this.respectiveElement);\n }\n else if (key === 'placeholder') {\n this.setProperties({ placeholder: null }, true);\n Input.setPlaceholder(this.placeholder, this.respectiveElement);\n }\n else {\n this.respectiveElement.removeAttribute(key);\n }\n }\n };\n /**\n * Sets the focus to widget for interaction.\n *\n * @returns {void}\n */\n TextBox.prototype.focusIn = function () {\n if (document.activeElement !== this.respectiveElement && this.enabled) {\n this.respectiveElement.focus();\n if (this.textboxWrapper.container.classList.contains('e-input-group')\n || this.textboxWrapper.container.classList.contains('e-outline')\n || this.textboxWrapper.container.classList.contains('e-filled')) {\n addClass([this.textboxWrapper.container], [TEXTBOX_FOCUS]);\n }\n }\n };\n /**\n * Remove the focus from widget, if the widget is in focus state.\n *\n * @returns {void}\n */\n TextBox.prototype.focusOut = function () {\n if (document.activeElement === this.respectiveElement && this.enabled) {\n this.respectiveElement.blur();\n if (this.textboxWrapper.container.classList.contains('e-input-group')\n || this.textboxWrapper.container.classList.contains('e-outline')\n || this.textboxWrapper.container.classList.contains('e-filled')) {\n removeClass([this.textboxWrapper.container], [TEXTBOX_FOCUS]);\n }\n }\n };\n __decorate([\n Property('text')\n ], TextBox.prototype, \"type\", void 0);\n __decorate([\n Property(false)\n ], TextBox.prototype, \"readonly\", void 0);\n __decorate([\n Property(null)\n ], TextBox.prototype, \"value\", void 0);\n __decorate([\n Property('Never')\n ], TextBox.prototype, \"floatLabelType\", void 0);\n __decorate([\n Property('')\n ], TextBox.prototype, \"cssClass\", void 0);\n __decorate([\n Property(null)\n ], TextBox.prototype, \"placeholder\", void 0);\n __decorate([\n Property('on')\n ], TextBox.prototype, \"autocomplete\", void 0);\n __decorate([\n Property({})\n ], TextBox.prototype, \"htmlAttributes\", void 0);\n __decorate([\n Property(false)\n ], TextBox.prototype, \"multiline\", void 0);\n __decorate([\n Property(true)\n ], TextBox.prototype, \"enabled\", void 0);\n __decorate([\n Property(false)\n ], TextBox.prototype, \"showClearButton\", void 0);\n __decorate([\n Property(false)\n ], TextBox.prototype, \"enablePersistence\", void 0);\n __decorate([\n Property(null)\n ], TextBox.prototype, \"width\", void 0);\n __decorate([\n Event()\n ], TextBox.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], TextBox.prototype, \"destroyed\", void 0);\n __decorate([\n Event()\n ], TextBox.prototype, \"change\", void 0);\n __decorate([\n Event()\n ], TextBox.prototype, \"blur\", void 0);\n __decorate([\n Event()\n ], TextBox.prototype, \"focus\", void 0);\n __decorate([\n Event()\n ], TextBox.prototype, \"input\", void 0);\n TextBox = __decorate([\n NotifyPropertyChanges\n ], TextBox);\n return TextBox;\n}(Component));\nexport { TextBox };\n","/**\n * Matrix module is used to transform points based on offsets, angle\n */\n/** @private */\nexport var MatrixTypes;\n(function (MatrixTypes) {\n MatrixTypes[MatrixTypes[\"Identity\"] = 0] = \"Identity\";\n MatrixTypes[MatrixTypes[\"Translation\"] = 1] = \"Translation\";\n MatrixTypes[MatrixTypes[\"Scaling\"] = 2] = \"Scaling\";\n MatrixTypes[MatrixTypes[\"Unknown\"] = 4] = \"Unknown\";\n})(MatrixTypes || (MatrixTypes = {}));\n/** @private */\nvar Matrix = /** @class */ (function () {\n function Matrix(m11, m12, m21, m22, offsetX, offsetY, type) {\n this.m11 = m11;\n this.m12 = m12;\n this.m21 = m21;\n this.m22 = m22;\n this.offsetX = offsetX;\n this.offsetY = offsetY;\n // if (type === undefined) {\n // this.type = MatrixTypes.Unknown;\n // } else {\n // this.type = type;\n // }\n this.type = type;\n }\n return Matrix;\n}());\nexport { Matrix };\n/** @private */\nexport function identityMatrix() {\n return new Matrix(1, 0, 0, 1, 0, 0, MatrixTypes.Identity);\n}\n/** @private */\nexport function transformPointByMatrix(matrix, point) {\n var pt = multiplyPoint(matrix, point.x, point.y);\n return { x: Math.round(pt.x * 100) / 100, y: Math.round(pt.y * 100) / 100 };\n}\n/** @private */\nexport function transformPointsByMatrix(matrix, points) {\n var transformedPoints = [];\n for (var _i = 0, points_1 = points; _i < points_1.length; _i++) {\n var point = points_1[_i];\n transformedPoints.push(transformPointByMatrix(matrix, point));\n }\n return transformedPoints;\n}\n/** @private */\nexport function rotateMatrix(matrix, angle, centerX, centerY) {\n angle %= 360.0;\n multiplyMatrix(matrix, createRotationRadians(angle * 0.017453292519943295, centerX ? centerX : 0, centerY ? centerY : 0));\n}\n/** @private */\nexport function scaleMatrix(matrix, scaleX, scaleY, centerX, centerY) {\n if (centerX === void 0) { centerX = 0; }\n if (centerY === void 0) { centerY = 0; }\n multiplyMatrix(matrix, createScaling(scaleX, scaleY, centerX, centerY));\n}\n/** @private */\nexport function translateMatrix(matrix, offsetX, offsetY) {\n if (matrix.type & MatrixTypes.Identity) {\n matrix.type = MatrixTypes.Translation;\n setMatrix(matrix, 1.0, 0.0, 0.0, 1.0, offsetX, offsetY);\n return;\n }\n if (matrix.type & MatrixTypes.Unknown) {\n matrix.offsetX += offsetX;\n matrix.offsetY += offsetY;\n return;\n }\n matrix.offsetX += offsetX;\n matrix.offsetY += offsetY;\n matrix.type |= MatrixTypes.Translation;\n}\n/** @private */\nfunction createScaling(scaleX, scaleY, centerX, centerY) {\n var result = identityMatrix();\n result.type = !(centerX || centerY) ? MatrixTypes.Scaling : MatrixTypes.Scaling | MatrixTypes.Translation;\n setMatrix(result, scaleX, 0.0, 0.0, scaleY, centerX - scaleX * centerX, centerY - scaleY * centerY);\n return result;\n}\n/** @private */\nfunction createRotationRadians(angle, centerX, centerY) {\n var result = identityMatrix();\n var num = Math.sin(angle);\n var num2 = Math.cos(angle);\n var offsetX = centerX * (1.0 - num2) + centerY * num;\n var offsetY = centerY * (1.0 - num2) - centerX * num;\n result.type = MatrixTypes.Unknown;\n setMatrix(result, num2, num, -num, num2, offsetX, offsetY);\n return result;\n}\n/** @private */\nfunction multiplyPoint(matrix, x, y) {\n switch (matrix.type) {\n case MatrixTypes.Identity: break;\n case MatrixTypes.Translation:\n x += matrix.offsetX;\n y += matrix.offsetY;\n break;\n case MatrixTypes.Scaling:\n x *= matrix.m11;\n y *= matrix.m22;\n break;\n case MatrixTypes.Translation | MatrixTypes.Scaling:\n x *= matrix.m11;\n x += matrix.offsetX;\n y *= matrix.m22;\n y += matrix.offsetY;\n break;\n default:\n var num = y * matrix.m21 + matrix.offsetX;\n var num2 = x * matrix.m12 + matrix.offsetY;\n x *= matrix.m11;\n x += num;\n y *= matrix.m22;\n y += num2;\n break;\n }\n return { x: x, y: y };\n}\n/** @private */\nexport function multiplyMatrix(matrix1, matrix2) {\n var type = matrix1.type;\n var type2 = matrix2.type;\n if (type2 === MatrixTypes.Identity) {\n return;\n }\n if (type === MatrixTypes.Identity) {\n assignMatrix(matrix1, matrix2);\n matrix1.type = matrix2.type;\n return;\n }\n if (type2 === MatrixTypes.Translation) {\n matrix1.offsetX += matrix2.offsetX;\n matrix1.offsetY += matrix2.offsetY;\n if (type !== MatrixTypes.Unknown) {\n matrix1.type |= MatrixTypes.Translation;\n }\n return;\n }\n if (type !== MatrixTypes.Translation) {\n var num = type << 4 | type2;\n switch (num) {\n case 34:\n matrix1.m11 *= matrix2.m11;\n matrix1.m22 *= matrix2.m22;\n return;\n case 35:\n matrix1.m11 *= matrix2.m11;\n matrix1.m22 *= matrix2.m22;\n matrix1.offsetX = matrix2.offsetX;\n matrix1.offsetY = matrix2.offsetY;\n matrix1.type = (MatrixTypes.Translation | MatrixTypes.Scaling);\n return;\n case 36: break;\n default:\n {\n switch (num) {\n case 50:\n matrix1.m11 *= matrix2.m11;\n matrix1.m22 *= matrix2.m22;\n matrix1.offsetX *= matrix2.m11;\n matrix1.offsetY *= matrix2.m22;\n return;\n case 51:\n matrix1.m11 *= matrix2.m11;\n matrix1.m22 *= matrix2.m22;\n matrix1.offsetX = matrix2.m11 * matrix1.offsetX + matrix2.offsetX;\n matrix1.offsetY = matrix2.m22 * matrix1.offsetY + matrix2.offsetY;\n return;\n case 52: break;\n default:\n switch (num) {\n case 66:\n case 67:\n case 68: break;\n default: return;\n }\n break;\n }\n break;\n }\n }\n var result = identityMatrix();\n var m11New = matrix1.m11 * matrix2.m11 + matrix1.m12 * matrix2.m21;\n var m12New = matrix1.m11 * matrix2.m12 + matrix1.m12 * matrix2.m22;\n var m21New = matrix1.m21 * matrix2.m11 + matrix1.m22 * matrix2.m21;\n var m22New = matrix1.m21 * matrix2.m12 + matrix1.m22 * matrix2.m22;\n var offsetX_1 = matrix1.offsetX * matrix2.m11 + matrix1.offsetY * matrix2.m21 + matrix2.offsetX;\n var offsetY_1 = matrix1.offsetX * matrix2.m12 + matrix1.offsetY * matrix2.m22 + matrix2.offsetY;\n setMatrix(result, m11New, m12New, m21New, m22New, offsetX_1, offsetY_1);\n if (result.m21 || result.m12) {\n result.type = MatrixTypes.Unknown;\n }\n else {\n if (result.m11 && result.m11 !== 1.0 || result.m22 && result.m22 !== 1.0) {\n result.type = MatrixTypes.Scaling;\n }\n if (result.offsetX || result.offsetY) {\n result.type |= MatrixTypes.Translation;\n }\n if ((result.type & (MatrixTypes.Translation | MatrixTypes.Scaling)) === MatrixTypes.Identity) {\n result.type = MatrixTypes.Identity;\n }\n result.type = MatrixTypes.Scaling | MatrixTypes.Translation;\n }\n assignMatrix(matrix1, result);\n matrix1.type = result.type;\n return;\n }\n var offsetX = matrix1.offsetX;\n var offsetY = matrix1.offsetY;\n matrix1.offsetX = offsetX * matrix2.m11 + offsetY * matrix2.m21 + matrix2.offsetX;\n matrix1.offsetY = offsetX * matrix2.m12 + offsetY * matrix2.m22 + matrix2.offsetY;\n if (type2 === MatrixTypes.Unknown) {\n matrix1.type = MatrixTypes.Unknown;\n return;\n }\n matrix1.type = (MatrixTypes.Translation | MatrixTypes.Scaling);\n}\n/** @private */\nfunction setMatrix(mat, m11, m12, m21, m22, x, y) {\n mat.m11 = m11;\n mat.m12 = m12;\n mat.m21 = m21;\n mat.m22 = m22;\n mat.offsetX = x;\n mat.offsetY = y;\n}\n/** @private */\nfunction assignMatrix(matrix1, matrix2) {\n matrix1.m11 = matrix2.m11;\n matrix1.m12 = matrix2.m12;\n matrix1.m21 = matrix2.m21;\n matrix1.m22 = matrix2.m22;\n matrix1.offsetX = matrix2.offsetX;\n matrix1.offsetY = matrix2.offsetY;\n matrix1.type = matrix2.type;\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, ChildProperty } from '@syncfusion/ej2-base';\n/**\n * Defines and processes coordinates\n */\nvar Point = /** @class */ (function (_super) {\n __extends(Point, _super);\n function Point() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /** @private */\n Point.equals = function (point1, point2) {\n if (point1 === point2) {\n return true;\n }\n if (!point1 || !point2) {\n return false;\n }\n return !point1 || !point2 || point1.x === point2.x && point1.y === point2.y;\n };\n /**\n * check whether the points are given\n */\n Point.isEmptyPoint = function (point) {\n if (point.x && point.y) {\n return false;\n }\n return true;\n };\n /** @private */\n Point.transform = function (point, angle, length) {\n var pt = { x: 0, y: 0 };\n pt.x = Math.round((point.x + length * Math.cos(angle * Math.PI / 180)) * 100) / 100;\n pt.y = Math.round((point.y + length * Math.sin(angle * Math.PI / 180)) * 100) / 100;\n return pt;\n };\n /** @private */\n Point.findLength = function (s, e) {\n var length = Math.sqrt(Math.pow((s.x - e.x), 2) + Math.pow((s.y - e.y), 2));\n return length;\n };\n /** @private */\n Point.findAngle = function (point1, point2) {\n var angle = Math.atan2(point2.y - point1.y, point2.x - point1.x);\n angle = (180 * angle / Math.PI);\n angle %= 360;\n if (angle < 0) {\n angle += 360;\n }\n return angle;\n };\n /** @private */\n Point.distancePoints = function (pt1, pt2) {\n return Math.sqrt(Math.pow(pt2.x - pt1.x, 2) + Math.pow(pt2.y - pt1.y, 2));\n };\n /** @private */\n Point.getLengthFromListOfPoints = function (points) {\n var length = 0;\n for (var j = 0; j < points.length - 1; j++) {\n length += this.distancePoints(points[j], points[j + 1]);\n }\n return length;\n };\n /** @private */\n Point.adjustPoint = function (source, target, isStart, length) {\n var pt = isStart ? { x: source.x, y: source.y } : { x: target.x, y: target.y };\n var angle;\n if (source.x === target.x) {\n if (source.y < target.y && isStart || source.y > target.y && !isStart) {\n pt.y += length;\n }\n else {\n pt.y -= length;\n }\n }\n else if (source.y === target.y) {\n if (source.x < target.x && isStart || source.x > target.x && !isStart) {\n pt.x += length;\n }\n else {\n pt.x -= length;\n }\n }\n else {\n if (isStart) {\n angle = this.findAngle(source, target);\n pt = this.transform(source, angle, length);\n }\n else {\n angle = this.findAngle(target, source);\n pt = this.transform(target, angle, length);\n }\n }\n return pt;\n };\n /** @private */\n Point.direction = function (pt1, pt2) {\n if (Math.abs(pt2.x - pt1.x) > Math.abs(pt2.y - pt1.y)) {\n return pt1.x < pt2.x ? 'Right' : 'Left';\n }\n else {\n return pt1.y < pt2.y ? 'Bottom' : 'Top';\n }\n };\n /**\n * @private\n * Returns the name of class Point\n */\n Point.prototype.getClassName = function () {\n return 'Point';\n };\n __decorate([\n Property(0)\n ], Point.prototype, \"x\", void 0);\n __decorate([\n Property(0)\n ], Point.prototype, \"y\", void 0);\n return Point;\n}(ChildProperty));\nexport { Point };\n","import { Point, rotateMatrix, identityMatrix, transformPointByMatrix } from '@syncfusion/ej2-drawings';\nimport { getValue } from '@syncfusion/ej2-base';\n/**\n * @param {PdfAnnotationBaseModel} obj - Specified the shape annotation object.\n * @hidden\n * @returns {void}\n */\nexport function isLineShapes(obj) {\n if (obj.shapeAnnotationType === 'Line' || obj.shapeAnnotationType === 'LineWidthArrowHead'\n || obj.shapeAnnotationType === 'Distance' || obj.shapeAnnotationType === 'Polygon') {\n return true;\n }\n return false;\n}\n/**\n * @param {PdfAnnotationBaseModel | PdfFormFieldBaseModel} obj - Specified the annotation or form fields object.\n * @param {DrawingElement} element - Specified the annotation drawing element.\n * @returns {void}\n * @hidden\n */\nexport function setElementStype(obj, element) {\n if (obj && element) {\n if (obj.formFieldAnnotationType) {\n if (obj.id.indexOf('diagram_helper') !== -1) {\n element.style.fill = 'transparent';\n element.style.strokeWidth = 1;\n element.style.strokeDashArray = obj.borderDashArray;\n }\n else {\n element.style.fill = 'transparent';\n element.style.strokeWidth = 0;\n }\n }\n else {\n var fillColor = (obj.fillColor === '#ffffff00' ? 'transparent' : obj.fillColor);\n element.style.fill = fillColor ? fillColor : 'white';\n // eslint-disable-next-line max-len\n element.style.strokeColor = obj.strokeColor ? obj.strokeColor : obj.borderColor;\n // eslint-disable-next-line max-len\n element.style.color = obj.strokeColor ? obj.strokeColor : obj.borderColor;\n element.style.strokeWidth = obj.thickness;\n if (obj.shapeAnnotationType === 'Image' || obj.shapeAnnotationType === 'SignatureText' || obj.shapeAnnotationType === 'SignatureImage') {\n element.style.strokeWidth = 0;\n }\n element.style.strokeDashArray = obj.borderDashArray;\n element.style.opacity = obj.opacity;\n }\n }\n}\n/**\n * @param {PointModel[]} points - Specified the annotation points value.\n * @hidden\n * @returns {number} - Returns the points length.\n */\nexport function findPointsLength(points) {\n var length = 0;\n for (var i = 0; i < points.length - 1; i++) {\n length += Point.findLength(points[parseInt(i.toString(), 10)], points[i + 1]);\n }\n return length;\n}\n/**\n * @param {PointModel[]} points - Specified the annotation points value.\n * @hidden\n * @returns {number} - Returns the points length.\n */\nexport function findPerimeterLength(points) {\n var length = Point.getLengthFromListOfPoints(points);\n return length;\n}\n/**\n * @private\n * @param {DrawingElement} element - Specified the drawing element.\n * @param {Transforms} transform - Specified the transform value.\n * @returns {BaseAttributes} - Returns the base attributes value.\n */\nexport function getBaseShapeAttributes(element, transform) {\n var baseShapeAttributes = {\n width: element.actualSize.width, height: element.actualSize.height,\n x: element.offsetX - element.actualSize.width * element.pivot.x + 0.5,\n y: element.offsetY - element.actualSize.height * element.pivot.y + 0.5,\n angle: element.rotateAngle + element.parentTransform, fill: element.style.fill, stroke: element.style.strokeColor,\n pivotX: element.pivot.x, pivotY: element.pivot.y, strokeWidth: 1,\n opacity: element.style.opacity, dashArray: element.style.strokeDashArray || '',\n visible: element.visible, id: element.id\n };\n if (transform) {\n baseShapeAttributes.x += transform.tx;\n baseShapeAttributes.y += transform.ty;\n }\n return baseShapeAttributes;\n}\n/**\n * Get function\n *\n * @private\n * @param {Function | string} value - Type of the function.\n * @returns {Function} - Returns the function.\n */\nexport function getFunction(value) {\n if (value !== undefined) {\n if (typeof value === 'string') {\n value = getValue(value, window);\n }\n }\n return value;\n}\n/**\n * @private\n * @param {any} obj - Specified the annotation object.\n * @param {Function | string} additionalProp - Specified the annotation additional properties.\n * @param {string} key - Specified the annotation key value.\n * @returns {Object} - Returns the cloned object.\n */\n// eslint-disable-next-line\nexport function cloneObject(obj, additionalProp, key) {\n // eslint-disable-next-line\n var newObject = {};\n var keys = 'properties';\n var prop = 'propName';\n if (obj) {\n key = obj[\"\" + prop];\n var sourceObject = obj[\"\" + keys] || obj;\n var properties = [];\n properties = properties.concat(Object.keys(sourceObject));\n var customProperties = [];\n properties.push('version');\n if (key) {\n var propAdditional = getFunction(additionalProp);\n if (propAdditional) {\n customProperties = propAdditional(key);\n }\n else {\n customProperties = [];\n }\n properties = properties.concat(customProperties);\n }\n var internalProp = getInternalProperties(key);\n properties = properties.concat(internalProp);\n for (var _i = 0, properties_1 = properties; _i < properties_1.length; _i++) {\n var property = properties_1[_i];\n if (property !== 'historyManager') {\n if (property !== 'wrapper') {\n // eslint-disable-next-line\n var isEventEmmitter = obj[property] && obj.hasOwnProperty('observers') ? true : false;\n if (!isEventEmmitter) {\n if (obj[\"\" + property] instanceof Array) {\n newObject[\"\" + property] = cloneArray((internalProp.indexOf(property) === -1 && obj[\"\" + key]) ? obj[\"\" + key][\"\" + property] : obj[\"\" + property], additionalProp, property);\n }\n else if (obj[\"\" + property] instanceof Array === false && obj[\"\" + property] instanceof HTMLElement) {\n newObject[\"\" + property] = obj[\"\" + property].cloneNode(true).innerHtml;\n }\n else if (obj[\"\" + property] instanceof Array === false && obj[\"\" + property] instanceof Object) {\n newObject[\"\" + property] = cloneObject((internalProp.indexOf(property) === -1 && obj[\"\" + key]) ? obj[\"\" + key][\"\" + property] : obj[\"\" + property]);\n }\n else {\n newObject[\"\" + property] = obj[\"\" + property];\n }\n }\n }\n else {\n if (obj[\"\" + property]) {\n newObject[\"\" + property] = {\n actualSize: {\n width: obj[\"\" + property].actualSize.width, height: obj[\"\" + property].actualSize.height\n }, offsetX: obj[\"\" + property].offsetX, offsetY: obj[\"\" + property].offsetY\n };\n }\n }\n }\n }\n }\n return newObject;\n}\n/**\n * @private\n * @param {Object[]} sourceArray - Specified the annotation source collections.\n * @param {Function | string} additionalProp - Specified the annotation additional properties.\n * @param {string} key - Specified the annotation key value.\n * @returns {Object[]} - Returns the cloned object array.\n */\nexport function cloneArray(sourceArray, additionalProp, key) {\n var clonedArray;\n if (sourceArray) {\n clonedArray = [];\n for (var i = 0; i < sourceArray.length; i++) {\n if (sourceArray[parseInt(i.toString(), 10)] instanceof Array) {\n clonedArray.push(sourceArray[parseInt(i.toString(), 10)]);\n }\n else if (sourceArray[parseInt(i.toString(), 10)] instanceof Object) {\n clonedArray.push(cloneObject(sourceArray[parseInt(i.toString(), 10)], additionalProp, key));\n }\n else {\n clonedArray.push(sourceArray[parseInt(i.toString(), 10)]);\n }\n }\n }\n return clonedArray;\n}\n/**\n * @private\n * @param {string} propName - Specified the annotation property name.\n * @returns {string[]} - Returns the internal properties.\n */\nexport function getInternalProperties(propName) {\n switch (propName) {\n case 'nodes':\n case 'children':\n return ['inEdges', 'outEdges', 'parentId', 'processId', 'nodeId', 'umlIndex', 'isPhase', 'isLane'];\n case 'connectors':\n return ['parentId'];\n case 'annotation':\n return ['nodeId'];\n case 'annotations':\n return ['nodeId'];\n case 'shape':\n return ['hasHeader'];\n }\n return [];\n}\n/**\n * @param {PdfAnnotationBaseModel} obj - Specified the annotation object.\n * @param {string} position - Specified the annotation position.\n * @hidden\n * @returns {Leader} - Returns the leader value.\n */\nexport function isLeader(obj, position) {\n var rotatedPoint;\n if (obj.shapeAnnotationType === 'Distance') {\n var leaderCount = 0;\n var newPoint1 = void 0;\n for (var i = 0; i < obj.wrapper.children.length; i++) {\n var angle = Point.findAngle(obj.sourcePoint, obj.targetPoint);\n // eslint-disable-next-line\n var segment = obj.wrapper.children[i];\n if (segment.id.indexOf('leader') > -1) {\n var center = obj.wrapper.children[0].bounds.center;\n if (leaderCount === 0) {\n newPoint1 = { x: obj.sourcePoint.x, y: obj.sourcePoint.y - obj.leaderHeight };\n center = obj.sourcePoint;\n }\n else {\n newPoint1 = { x: obj.targetPoint.x, y: obj.targetPoint.y - obj.leaderHeight };\n center = obj.targetPoint;\n }\n var matrix = identityMatrix();\n rotateMatrix(matrix, angle, center.x, center.y);\n rotatedPoint = transformPointByMatrix(matrix, { x: newPoint1.x, y: newPoint1.y });\n if (position === 'Leader' + leaderCount) {\n return { leader: 'leader' + leaderCount, point: rotatedPoint };\n }\n leaderCount++;\n }\n }\n }\n return { leader: '', point: rotatedPoint };\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Component, NotifyPropertyChanges, Property } from '@syncfusion/ej2-base';\nimport { Event, EventHandler, isNullOrUndefined, SanitizeHtmlHelper } from '@syncfusion/ej2-base';\nimport { addClass, detach, getUniqueID, isRippleEnabled, removeClass, rippleEffect, closest } from '@syncfusion/ej2-base';\nimport { wrapperInitialize, rippleMouseHandler, setHiddenInput } from './../common/common';\nvar CHECK = 'e-check';\nvar DISABLED = 'e-checkbox-disabled';\nvar FRAME = 'e-frame';\nvar INDETERMINATE = 'e-stop';\nvar LABEL = 'e-label';\nvar RIPPLE = 'e-ripple-container';\nvar RIPPLECHECK = 'e-ripple-check';\nvar RIPPLEINDETERMINATE = 'e-ripple-stop';\nvar RTL = 'e-rtl';\nvar WRAPPER = 'e-checkbox-wrapper';\nvar containerAttr = ['title', 'class', 'style', 'disabled', 'readonly', 'name', 'value'];\n/**\n * The CheckBox is a graphical user interface element that allows you to select one or more options from the choices.\n * It contains checked, unchecked, and indeterminate states.\n * ```html\n * \n * \n * ```\n */\nvar CheckBox = /** @class */ (function (_super) {\n __extends(CheckBox, _super);\n /**\n * Constructor for creating the widget\n *\n * @private\n * @param {CheckBoxModel} options - Specifies checkbox model\n * @param {string | HTMLInputElement} element - Specifies target element\n */\n function CheckBox(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.isFocused = false;\n _this.isMouseClick = false;\n _this.clickTriggered = false;\n _this.validCheck = true;\n return _this;\n }\n CheckBox.prototype.changeState = function (state, isInitialize) {\n var ariaState;\n var rippleSpan;\n var frameSpan = this.getWrapper().getElementsByClassName(FRAME)[0];\n if (isRippleEnabled) {\n rippleSpan = this.getWrapper().getElementsByClassName(RIPPLE)[0];\n }\n if (state === 'check') {\n frameSpan.classList.remove(INDETERMINATE);\n frameSpan.classList.add(CHECK);\n if (rippleSpan) {\n rippleSpan.classList.remove(RIPPLEINDETERMINATE);\n rippleSpan.classList.add(RIPPLECHECK);\n }\n ariaState = 'true';\n this.element.checked = true;\n if (this.element.required && this.validCheck && !isInitialize) {\n this.element.checked = false;\n this.validCheck = false;\n }\n else if (this.element.required) {\n this.validCheck = true;\n }\n }\n else if (state === 'uncheck') {\n removeClass([frameSpan], [CHECK, INDETERMINATE]);\n if (rippleSpan) {\n removeClass([rippleSpan], [RIPPLECHECK, RIPPLEINDETERMINATE]);\n }\n ariaState = 'false';\n this.element.checked = false;\n if (this.element.required && this.validCheck && !isInitialize) {\n this.element.checked = true;\n this.validCheck = false;\n }\n else if (this.element.required) {\n this.validCheck = true;\n }\n }\n else {\n frameSpan.classList.remove(CHECK);\n frameSpan.classList.add(INDETERMINATE);\n if (rippleSpan) {\n rippleSpan.classList.remove(RIPPLECHECK);\n rippleSpan.classList.add(RIPPLEINDETERMINATE);\n }\n ariaState = 'mixed';\n this.element.indeterminate = true;\n }\n };\n CheckBox.prototype.clickHandler = function (event) {\n if (event.target.tagName === 'INPUT' && this.clickTriggered) {\n if (this.isVue) {\n this.changeState(this.checked ? 'check' : 'uncheck');\n }\n this.clickTriggered = false;\n return;\n }\n if (event.target.tagName === 'SPAN' || event.target.tagName === 'LABEL') {\n this.clickTriggered = true;\n }\n if (this.isMouseClick) {\n this.focusOutHandler();\n this.isMouseClick = false;\n }\n if (this.indeterminate) {\n this.changeState(this.checked ? 'check' : 'uncheck');\n this.indeterminate = false;\n this.element.indeterminate = false;\n }\n else if (this.checked) {\n this.changeState('uncheck');\n this.checked = false;\n }\n else {\n this.changeState('check');\n this.checked = true;\n }\n var changeEventArgs = { checked: this.updateVueArrayModel(false), event: event };\n this.trigger('change', changeEventArgs);\n event.stopPropagation();\n };\n /**\n * Destroys the widget.\n *\n * @returns {void}\n */\n CheckBox.prototype.destroy = function () {\n var _this = this;\n var wrapper = this.getWrapper();\n _super.prototype.destroy.call(this);\n if (this.wrapper) {\n wrapper = this.wrapper;\n if (!this.disabled) {\n this.unWireEvents();\n }\n if (this.tagName === 'INPUT') {\n if (this.getWrapper() && wrapper.parentNode) {\n wrapper.parentNode.insertBefore(this.element, wrapper);\n }\n detach(wrapper);\n this.element.checked = false;\n if (this.indeterminate) {\n this.element.indeterminate = false;\n }\n ['name', 'value', 'disabled'].forEach(function (key) {\n _this.element.removeAttribute(key);\n });\n }\n else {\n ['class'].forEach(function (key) {\n wrapper.removeAttribute(key);\n });\n wrapper.innerHTML = '';\n }\n }\n };\n CheckBox.prototype.focusHandler = function () {\n this.isFocused = true;\n };\n CheckBox.prototype.focusOutHandler = function () {\n var wrapper = this.getWrapper();\n if (wrapper) {\n wrapper.classList.remove('e-focus');\n }\n this.isFocused = false;\n };\n /**\n * Gets the module name.\n *\n * @private\n * @returns {string} - Module Name\n */\n CheckBox.prototype.getModuleName = function () {\n return 'checkbox';\n };\n /**\n * Gets the properties to be maintained in the persistence state.\n *\n * @private\n * @returns {string} - Persist Data\n */\n CheckBox.prototype.getPersistData = function () {\n return this.addOnPersist(['checked', 'indeterminate']);\n };\n CheckBox.prototype.getWrapper = function () {\n if (this.element && this.element.parentElement) {\n return this.element.parentElement.parentElement;\n }\n else {\n return null;\n }\n };\n CheckBox.prototype.initialize = function () {\n if (isNullOrUndefined(this.initialCheckedValue)) {\n this.initialCheckedValue = this.checked;\n }\n if (this.name) {\n this.element.setAttribute('name', this.name);\n }\n if (this.value) {\n this.element.setAttribute('value', this.value);\n if (this.isVue && typeof this.value === 'boolean' && this.value === true) {\n this.setProperties({ 'checked': true }, true);\n }\n }\n if (this.checked) {\n this.changeState('check', true);\n }\n if (this.indeterminate) {\n this.changeState();\n }\n if (this.disabled) {\n this.setDisabled();\n }\n };\n CheckBox.prototype.initWrapper = function () {\n var wrapper = this.element.parentElement;\n if (!wrapper.classList.contains(WRAPPER)) {\n wrapper = this.createElement('div', {\n className: WRAPPER\n });\n this.element.parentNode.insertBefore(wrapper, this.element);\n }\n var label = this.createElement('label', { attrs: { for: this.element.id } });\n var frameSpan = this.createElement('span', { className: 'e-icons ' + FRAME });\n wrapper.classList.add('e-wrapper');\n if (this.enableRtl) {\n wrapper.classList.add(RTL);\n }\n if (this.cssClass) {\n addClass([wrapper], this.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n wrapper.appendChild(label);\n label.appendChild(this.element);\n setHiddenInput(this, label);\n label.appendChild(frameSpan);\n if (isRippleEnabled) {\n var rippleSpan = this.createElement('span', { className: RIPPLE });\n if (this.labelPosition === 'Before') {\n label.appendChild(rippleSpan);\n }\n else {\n label.insertBefore(rippleSpan, frameSpan);\n }\n rippleEffect(rippleSpan, { duration: 400, isCenterRipple: true });\n }\n if (this.label) {\n this.setText(this.label);\n }\n };\n CheckBox.prototype.keyUpHandler = function () {\n if (this.isFocused) {\n this.getWrapper().classList.add('e-focus');\n }\n };\n CheckBox.prototype.labelMouseDownHandler = function (e) {\n this.isMouseClick = true;\n var rippleSpan = this.getWrapper().getElementsByClassName(RIPPLE)[0];\n rippleMouseHandler(e, rippleSpan);\n };\n CheckBox.prototype.labelMouseUpHandler = function (e) {\n this.isMouseClick = true;\n var rippleSpan = this.getWrapper().getElementsByClassName(RIPPLE)[0];\n if (rippleSpan) {\n var rippleElem = rippleSpan.querySelectorAll('.e-ripple-element');\n for (var i = 0; i < rippleElem.length - 1; i++) {\n rippleSpan.removeChild(rippleSpan.childNodes[i]);\n }\n rippleMouseHandler(e, rippleSpan);\n }\n };\n /**\n * Called internally if any of the property value changes.\n *\n * @private\n * @param {CheckBoxModel} newProp - Specifies new Properties\n * @param {CheckBoxModel} oldProp - Specifies old Properties\n *\n * @returns {void}\n */\n CheckBox.prototype.onPropertyChanged = function (newProp, oldProp) {\n var wrapper = this.getWrapper();\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'checked':\n this.indeterminate = false;\n this.element.indeterminate = false;\n this.changeState(newProp.checked ? 'check' : 'uncheck');\n break;\n case 'indeterminate':\n if (newProp.indeterminate) {\n this.changeState();\n }\n else {\n this.element.indeterminate = false;\n this.changeState(this.checked ? 'check' : 'uncheck');\n }\n break;\n case 'disabled':\n if (newProp.disabled) {\n this.setDisabled();\n this.wrapper = this.getWrapper();\n this.unWireEvents();\n }\n else {\n this.element.disabled = false;\n wrapper.classList.remove(DISABLED);\n wrapper.setAttribute('aria-disabled', 'false');\n this.wireEvents();\n }\n break;\n case 'cssClass':\n if (oldProp.cssClass) {\n removeClass([wrapper], oldProp.cssClass.split(' '));\n }\n if (newProp.cssClass) {\n addClass([wrapper], newProp.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n break;\n case 'enableRtl':\n if (newProp.enableRtl) {\n wrapper.classList.add(RTL);\n }\n else {\n wrapper.classList.remove(RTL);\n }\n break;\n case 'label':\n this.setText(newProp.label);\n break;\n case 'labelPosition': {\n var label = wrapper.getElementsByClassName(LABEL)[0];\n var labelWrap = wrapper.getElementsByTagName('label')[0];\n detach(label);\n if (newProp.labelPosition === 'After') {\n labelWrap.appendChild(label);\n }\n else {\n labelWrap.insertBefore(label, wrapper.getElementsByClassName(FRAME)[0]);\n }\n break;\n }\n case 'name':\n this.element.setAttribute('name', newProp.name);\n break;\n case 'value':\n if (this.isVue && typeof newProp.value === 'object') {\n break;\n }\n this.element.setAttribute('value', newProp.value);\n break;\n case 'htmlAttributes':\n this.updateHtmlAttributeToWrapper();\n break;\n }\n }\n };\n /**\n * Initialize Angular, React and Unique ID support.\n *\n * @private\n * @returns {void}\n */\n CheckBox.prototype.preRender = function () {\n var element = this.element;\n this.tagName = this.element.tagName;\n element = wrapperInitialize(this.createElement, 'EJS-CHECKBOX', 'checkbox', element, WRAPPER, 'checkbox');\n this.element = element;\n if (this.element.getAttribute('type') !== 'checkbox') {\n this.element.setAttribute('type', 'checkbox');\n }\n if (!this.element.id) {\n this.element.id = getUniqueID('e-' + this.getModuleName());\n }\n };\n /**\n * Initialize the control rendering.\n *\n * @private\n * @returns {void}\n */\n CheckBox.prototype.render = function () {\n this.initWrapper();\n this.initialize();\n if (!this.disabled) {\n this.wireEvents();\n }\n this.updateHtmlAttributeToWrapper();\n this.updateVueArrayModel(true);\n this.renderComplete();\n this.wrapper = this.getWrapper();\n };\n CheckBox.prototype.setDisabled = function () {\n var wrapper = this.getWrapper();\n this.element.disabled = true;\n wrapper.classList.add(DISABLED);\n wrapper.setAttribute('aria-disabled', 'true');\n };\n CheckBox.prototype.setText = function (text) {\n var wrapper = this.getWrapper();\n if (!wrapper) {\n return;\n }\n var label = wrapper.getElementsByClassName(LABEL)[0];\n if (label) {\n label.textContent = text;\n }\n else {\n text = (this.enableHtmlSanitizer) ? SanitizeHtmlHelper.sanitize(text) : text;\n label = this.createElement('span', { className: LABEL, innerHTML: text });\n var labelWrap = wrapper.getElementsByTagName('label')[0];\n if (this.labelPosition === 'Before') {\n labelWrap.insertBefore(label, wrapper.getElementsByClassName(FRAME)[0]);\n }\n else {\n labelWrap.appendChild(label);\n }\n }\n };\n CheckBox.prototype.changeHandler = function (e) {\n e.stopPropagation();\n };\n CheckBox.prototype.formResetHandler = function () {\n this.checked = this.initialCheckedValue;\n this.element.checked = this.initialCheckedValue;\n };\n CheckBox.prototype.unWireEvents = function () {\n var wrapper = this.wrapper;\n EventHandler.remove(wrapper, 'click', this.clickHandler);\n EventHandler.remove(this.element, 'keyup', this.keyUpHandler);\n EventHandler.remove(this.element, 'focus', this.focusHandler);\n EventHandler.remove(this.element, 'focusout', this.focusOutHandler);\n var label = wrapper.getElementsByTagName('label')[0];\n EventHandler.remove(label, 'mousedown', this.labelMouseDownHandler);\n EventHandler.remove(label, 'mouseup', this.labelMouseUpHandler);\n var formElem = closest(this.element, 'form');\n if (formElem) {\n EventHandler.remove(formElem, 'reset', this.formResetHandler);\n }\n if (this.tagName === 'EJS-CHECKBOX') {\n EventHandler.remove(this.element, 'change', this.changeHandler);\n }\n };\n CheckBox.prototype.wireEvents = function () {\n var wrapper = this.getWrapper();\n EventHandler.add(wrapper, 'click', this.clickHandler, this);\n EventHandler.add(this.element, 'keyup', this.keyUpHandler, this);\n EventHandler.add(this.element, 'focus', this.focusHandler, this);\n EventHandler.add(this.element, 'focusout', this.focusOutHandler, this);\n var label = wrapper.getElementsByTagName('label')[0];\n EventHandler.add(label, 'mousedown', this.labelMouseDownHandler, this);\n EventHandler.add(label, 'mouseup', this.labelMouseUpHandler, this);\n var formElem = closest(this.element, 'form');\n if (formElem) {\n EventHandler.add(formElem, 'reset', this.formResetHandler, this);\n }\n if (this.tagName === 'EJS-CHECKBOX') {\n EventHandler.add(this.element, 'change', this.changeHandler, this);\n }\n };\n CheckBox.prototype.updateVueArrayModel = function (init) {\n if (this.isVue && typeof this.value === 'object') {\n var value = this.element.value;\n if (value && this.value) {\n if (init) {\n for (var i = 0; i < this.value.length; i++) {\n if (value === this.value[i]) {\n this.changeState('check');\n this.setProperties({ 'checked': true }, true);\n }\n }\n }\n else {\n var index = this.value.indexOf(value);\n if (this.checked) {\n if (index < 0) {\n this.value.push(value);\n }\n }\n else {\n if (index > -1) {\n this.value.splice(index, 1);\n }\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return this.value;\n }\n }\n }\n return this.validCheck ? this.element.checked : !this.element.checked;\n };\n CheckBox.prototype.updateHtmlAttributeToWrapper = function () {\n if (!isNullOrUndefined(this.htmlAttributes)) {\n for (var _i = 0, _a = Object.keys(this.htmlAttributes); _i < _a.length; _i++) {\n var key = _a[_i];\n if (containerAttr.indexOf(key) > -1) {\n var wrapper = this.getWrapper();\n if (key === 'class') {\n addClass([wrapper], this.htmlAttributes[\"\" + key].split(' '));\n }\n else if (key === 'title') {\n wrapper.setAttribute(key, this.htmlAttributes[\"\" + key]);\n }\n else if (key === 'style') {\n var frameSpan = this.getWrapper().getElementsByClassName(FRAME)[0];\n frameSpan.setAttribute(key, this.htmlAttributes[\"\" + key]);\n }\n else if (key === 'disabled') {\n if (this.htmlAttributes[\"\" + key] === 'true') {\n this.setDisabled();\n }\n this.element.setAttribute(key, this.htmlAttributes[\"\" + key]);\n }\n else {\n this.element.setAttribute(key, this.htmlAttributes[\"\" + key]);\n }\n }\n }\n }\n };\n /**\n * Click the CheckBox element\n * its native method\n *\n * @public\n * @returns {void}\n */\n CheckBox.prototype.click = function () {\n this.element.click();\n };\n /**\n * Sets the focus to CheckBox\n * its native method\n *\n * @public\n * @returns {void}\n */\n CheckBox.prototype.focusIn = function () {\n this.element.focus();\n };\n __decorate([\n Event()\n ], CheckBox.prototype, \"change\", void 0);\n __decorate([\n Event()\n ], CheckBox.prototype, \"created\", void 0);\n __decorate([\n Property(false)\n ], CheckBox.prototype, \"checked\", void 0);\n __decorate([\n Property('')\n ], CheckBox.prototype, \"cssClass\", void 0);\n __decorate([\n Property(false)\n ], CheckBox.prototype, \"disabled\", void 0);\n __decorate([\n Property(false)\n ], CheckBox.prototype, \"indeterminate\", void 0);\n __decorate([\n Property('')\n ], CheckBox.prototype, \"label\", void 0);\n __decorate([\n Property('After')\n ], CheckBox.prototype, \"labelPosition\", void 0);\n __decorate([\n Property('')\n ], CheckBox.prototype, \"name\", void 0);\n __decorate([\n Property('')\n ], CheckBox.prototype, \"value\", void 0);\n __decorate([\n Property(false)\n ], CheckBox.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Property({})\n ], CheckBox.prototype, \"htmlAttributes\", void 0);\n CheckBox = __decorate([\n NotifyPropertyChanges\n ], CheckBox);\n return CheckBox;\n}(Component));\nexport { CheckBox };\n","/**\n * Enum for comment status of the annotation\n */\nexport var CommentStatus;\n(function (CommentStatus) {\n CommentStatus[CommentStatus[\"None\"] = 1] = \"None\";\n CommentStatus[CommentStatus[\"Accepted\"] = 2] = \"Accepted\";\n CommentStatus[CommentStatus[\"Canceled\"] = 3] = \"Canceled\";\n CommentStatus[CommentStatus[\"Completed\"] = 4] = \"Completed\";\n CommentStatus[CommentStatus[\"Rejected\"] = 5] = \"Rejected\";\n})(CommentStatus || (CommentStatus = {}));\n/**\n * Enum for font styles\n */\nexport var FontStyle;\n(function (FontStyle) {\n FontStyle[FontStyle[\"None\"] = 0] = \"None\";\n FontStyle[FontStyle[\"Bold\"] = 1] = \"Bold\";\n FontStyle[FontStyle[\"Italic\"] = 2] = \"Italic\";\n FontStyle[FontStyle[\"Underline\"] = 4] = \"Underline\";\n FontStyle[FontStyle[\"Strikethrough\"] = 8] = \"Strikethrough\";\n})(FontStyle || (FontStyle = {}));\n/**\n * Enum for context menu items\n */\nexport var ContextMenuItem;\n(function (ContextMenuItem) {\n ContextMenuItem[ContextMenuItem[\"Copy\"] = 0] = \"Copy\";\n ContextMenuItem[ContextMenuItem[\"Highlight\"] = 1] = \"Highlight\";\n ContextMenuItem[ContextMenuItem[\"Cut\"] = 2] = \"Cut\";\n ContextMenuItem[ContextMenuItem[\"Underline\"] = 4] = \"Underline\";\n ContextMenuItem[ContextMenuItem[\"Paste\"] = 8] = \"Paste\";\n ContextMenuItem[ContextMenuItem[\"Delete\"] = 16] = \"Delete\";\n ContextMenuItem[ContextMenuItem[\"ScaleRatio\"] = 32] = \"ScaleRatio\";\n ContextMenuItem[ContextMenuItem[\"Strikethrough\"] = 64] = \"Strikethrough\";\n ContextMenuItem[ContextMenuItem[\"Properties\"] = 128] = \"Properties\";\n ContextMenuItem[ContextMenuItem[\"Comment\"] = 256] = \"Comment\";\n})(ContextMenuItem || (ContextMenuItem = {}));\n/**\n * Enum for signature type\n */\nexport var SignatureType;\n(function (SignatureType) {\n SignatureType[\"Draw\"] = \"Draw\";\n SignatureType[\"Type\"] = \"Type\";\n SignatureType[\"Image\"] = \"Image\";\n})(SignatureType || (SignatureType = {}));\n/**\n * Enum for annotation resizer location\n */\nexport var AnnotationResizerLocation;\n(function (AnnotationResizerLocation) {\n AnnotationResizerLocation[AnnotationResizerLocation[\"Corners\"] = 1] = \"Corners\";\n AnnotationResizerLocation[AnnotationResizerLocation[\"Edges\"] = 2] = \"Edges\";\n})(AnnotationResizerLocation || (AnnotationResizerLocation = {}));\n/**\n * Enum for displaying the signature dialog\n */\nexport var DisplayMode;\n(function (DisplayMode) {\n /** Draw - Display only the draw option in the signature dialog. */\n DisplayMode[DisplayMode[\"Draw\"] = 1] = \"Draw\";\n /** Text - Display only the type option in the signature dialog. */\n DisplayMode[DisplayMode[\"Text\"] = 2] = \"Text\";\n /** Upload - Display only the upload option in the signature dialog. */\n DisplayMode[DisplayMode[\"Upload\"] = 4] = \"Upload\";\n})(DisplayMode || (DisplayMode = {}));\n/**\n * Enum for cursor type\n */\nexport var CursorType;\n(function (CursorType) {\n CursorType[\"auto\"] = \"auto\";\n CursorType[\"crossHair\"] = \"crosshair\";\n // eslint-disable-next-line\n CursorType[\"e_resize\"] = \"e-resize\";\n // eslint-disable-next-line\n CursorType[\"ew_resize\"] = \"ew-resize\";\n CursorType[\"grab\"] = \"grab\";\n CursorType[\"grabbing\"] = \"grabbing\";\n CursorType[\"move\"] = \"move\";\n // eslint-disable-next-line\n CursorType[\"n_resize\"] = \"n-resize\";\n // eslint-disable-next-line\n CursorType[\"ne_resize\"] = \"ne-resize\";\n // eslint-disable-next-line\n CursorType[\"ns_resize\"] = \"ns-resize\";\n // eslint-disable-next-line\n CursorType[\"nw_resize\"] = \"nw-resize\";\n CursorType[\"pointer\"] = \"pointer\";\n // eslint-disable-next-line\n CursorType[\"s_resize\"] = \"s-resize\";\n // eslint-disable-next-line\n CursorType[\"se_resize\"] = \"se-resize\";\n // eslint-disable-next-line\n CursorType[\"sw_resize\"] = \"sw-resize\";\n CursorType[\"text\"] = \"text\";\n // eslint-disable-next-line\n CursorType[\"w_resize\"] = \"w-resize\";\n})(CursorType || (CursorType = {}));\n/**\n * Enum type for Dynamic Stamp Items\n */\nexport var DynamicStampItem;\n(function (DynamicStampItem) {\n DynamicStampItem[\"Revised\"] = \"Revised\";\n DynamicStampItem[\"Reviewed\"] = \"Reviewed\";\n DynamicStampItem[\"Received\"] = \"Received\";\n DynamicStampItem[\"Approved\"] = \"Approved\";\n DynamicStampItem[\"Confidential\"] = \"Confidential\";\n DynamicStampItem[\"NotApproved\"] = \"NotApproved\";\n})(DynamicStampItem || (DynamicStampItem = {}));\n/**\n * Enum type for Sign Stamp Items\n */\nexport var SignStampItem;\n(function (SignStampItem) {\n SignStampItem[\"Witness\"] = \"Witness\";\n SignStampItem[\"InitialHere\"] = \"InitialHere\";\n SignStampItem[\"SignHere\"] = \"SignHere\";\n SignStampItem[\"Accepted\"] = \"Accepted\";\n SignStampItem[\"Rejected\"] = \"Rejected\";\n})(SignStampItem || (SignStampItem = {}));\n/**\n * Enum type for Standard Business Stamp Items\n */\nexport var StandardBusinessStampItem;\n(function (StandardBusinessStampItem) {\n StandardBusinessStampItem[\"Approved\"] = \"Approved\";\n StandardBusinessStampItem[\"NotApproved\"] = \"NotApproved\";\n StandardBusinessStampItem[\"Draft\"] = \"Draft\";\n StandardBusinessStampItem[\"Final\"] = \"Final\";\n StandardBusinessStampItem[\"Completed\"] = \"Completed\";\n StandardBusinessStampItem[\"Confidential\"] = \"Confidential\";\n StandardBusinessStampItem[\"ForPublicRelease\"] = \"ForPublicRelease\";\n StandardBusinessStampItem[\"NotForPublicRelease\"] = \"NotForPublicRelease\";\n StandardBusinessStampItem[\"ForComment\"] = \"ForComment\";\n StandardBusinessStampItem[\"Void\"] = \"Void\";\n StandardBusinessStampItem[\"PreliminaryResults\"] = \"PreliminaryResults\";\n StandardBusinessStampItem[\"InformationOnly\"] = \"InformationOnly\";\n})(StandardBusinessStampItem || (StandardBusinessStampItem = {}));\n/**\n * Enum type for allowed interactions for locked annotations\n */\nexport var AllowedInteraction;\n(function (AllowedInteraction) {\n AllowedInteraction[\"Select\"] = \"Select\";\n AllowedInteraction[\"Move\"] = \"Move\";\n AllowedInteraction[\"Resize\"] = \"Resize\";\n AllowedInteraction[\"Delete\"] = \"Delete\";\n AllowedInteraction[\"None\"] = \"None\";\n AllowedInteraction[\"PropertyChange\"] = \"PropertyChange\";\n})(AllowedInteraction || (AllowedInteraction = {}));\n/**\n * Enum type for export annotation file types\n */\nexport var AnnotationDataFormat;\n(function (AnnotationDataFormat) {\n AnnotationDataFormat[\"Json\"] = \"Json\";\n AnnotationDataFormat[\"Xfdf\"] = \"Xfdf\";\n})(AnnotationDataFormat || (AnnotationDataFormat = {}));\n/**\n * Represents the format type of form data.\n */\nexport var FormFieldDataFormat;\n(function (FormFieldDataFormat) {\n FormFieldDataFormat[\"Xml\"] = \"Xml\";\n FormFieldDataFormat[\"Fdf\"] = \"Fdf\";\n FormFieldDataFormat[\"Xfdf\"] = \"Xfdf\";\n FormFieldDataFormat[\"Json\"] = \"Json\";\n})(FormFieldDataFormat || (FormFieldDataFormat = {}));\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Touch, Component, EventHandler, selectAll, getUniqueID } from '@syncfusion/ej2-base';\nimport { NotifyPropertyChanges, Property, Browser, detach } from '@syncfusion/ej2-base';\nimport { classList, isNullOrUndefined } from '@syncfusion/ej2-base';\nvar CLS_ROOT = 'e-hscroll';\nvar CLS_RTL = 'e-rtl';\nvar CLS_DISABLE = 'e-overlay';\nvar CLS_HSCROLLBAR = 'e-hscroll-bar';\nvar CLS_HSCROLLCON = 'e-hscroll-content';\nvar CLS_NAVARROW = 'e-nav-arrow';\nvar CLS_NAVRIGHTARROW = 'e-nav-right-arrow';\nvar CLS_NAVLEFTARROW = 'e-nav-left-arrow';\nvar CLS_HSCROLLNAV = 'e-scroll-nav';\nvar CLS_HSCROLLNAVRIGHT = 'e-scroll-right-nav';\nvar CLS_HSCROLLNAVLEFT = 'e-scroll-left-nav';\nvar CLS_DEVICE = 'e-scroll-device';\nvar CLS_OVERLAY = 'e-scroll-overlay';\nvar CLS_RIGHTOVERLAY = 'e-scroll-right-overlay';\nvar CLS_LEFTOVERLAY = 'e-scroll-left-overlay';\nvar OVERLAY_MAXWID = 40;\n/**\n * HScroll module is introduces horizontal scroller when content exceeds the current viewing area.\n * It can be useful for the components like Toolbar, Tab which needs horizontal scrolling alone.\n * Hidden content can be view by touch moving or icon click.\n * ```html\n *
\n * \n * ```\n */\nvar HScroll = /** @class */ (function (_super) {\n __extends(HScroll, _super);\n /**\n * Initializes a new instance of the HScroll class.\n *\n * @param {HScrollModel} options - Specifies HScroll model properties as options.\n * @param {string | HTMLElement} element - Specifies the element for which horizontal scrolling applies.\n */\n function HScroll(options, element) {\n return _super.call(this, options, element) || this;\n }\n /**\n * Initialize the event handler\n *\n * @private\n * @returns {void}\n */\n HScroll.prototype.preRender = function () {\n this.browser = Browser.info.name;\n this.browserCheck = this.browser === 'mozilla';\n this.isDevice = Browser.isDevice;\n this.customStep = true;\n var element = this.element;\n this.ieCheck = this.browser === 'edge' || this.browser === 'msie';\n this.initialize();\n if (element.id === '') {\n element.id = getUniqueID('hscroll');\n this.uniqueId = true;\n }\n element.style.display = 'block';\n if (this.enableRtl) {\n element.classList.add(CLS_RTL);\n }\n };\n /**\n * To Initialize the horizontal scroll rendering\n *\n * @private\n * @returns {void}\n */\n HScroll.prototype.render = function () {\n this.touchModule = new Touch(this.element, { scroll: this.touchHandler.bind(this), swipe: this.swipeHandler.bind(this) });\n EventHandler.add(this.scrollEle, 'scroll', this.scrollHandler, this);\n if (!this.isDevice) {\n this.createNavIcon(this.element);\n }\n else {\n this.element.classList.add(CLS_DEVICE);\n this.createOverlay(this.element);\n }\n this.setScrollState();\n };\n HScroll.prototype.setScrollState = function () {\n if (isNullOrUndefined(this.scrollStep) || this.scrollStep < 0) {\n this.scrollStep = this.scrollEle.offsetWidth;\n this.customStep = false;\n }\n else {\n this.customStep = true;\n }\n };\n HScroll.prototype.initialize = function () {\n var scrollEle = this.createElement('div', { className: CLS_HSCROLLCON });\n var scrollDiv = this.createElement('div', { className: CLS_HSCROLLBAR });\n scrollDiv.setAttribute('tabindex', '-1');\n var ele = this.element;\n var innerEle = [].slice.call(ele.children);\n for (var _i = 0, innerEle_1 = innerEle; _i < innerEle_1.length; _i++) {\n var ele_1 = innerEle_1[_i];\n scrollEle.appendChild(ele_1);\n }\n scrollDiv.appendChild(scrollEle);\n ele.appendChild(scrollDiv);\n scrollDiv.style.overflowX = 'hidden';\n this.scrollEle = scrollDiv;\n this.scrollItems = scrollEle;\n };\n HScroll.prototype.getPersistData = function () {\n var keyEntity = ['scrollStep'];\n return this.addOnPersist(keyEntity);\n };\n /**\n * Returns the current module name.\n *\n * @returns {string} - It returns the current module name.\n * @private\n */\n HScroll.prototype.getModuleName = function () {\n return 'hScroll';\n };\n /**\n * Removes the control from the DOM and also removes all its related events.\n *\n * @returns {void}\n */\n HScroll.prototype.destroy = function () {\n var ele = this.element;\n ele.style.display = '';\n ele.classList.remove(CLS_ROOT);\n ele.classList.remove(CLS_DEVICE);\n var nav = selectAll('.e-' + ele.id + '_nav.' + CLS_HSCROLLNAV, ele);\n var overlay = selectAll('.' + CLS_OVERLAY, ele);\n [].slice.call(overlay).forEach(function (ele) {\n detach(ele);\n });\n for (var _i = 0, _a = [].slice.call(this.scrollItems.children); _i < _a.length; _i++) {\n var elem = _a[_i];\n ele.appendChild(elem);\n }\n if (this.uniqueId) {\n this.element.removeAttribute('id');\n }\n detach(this.scrollEle);\n if (nav.length > 0) {\n detach(nav[0]);\n if (!isNullOrUndefined(nav[1])) {\n detach(nav[1]);\n }\n }\n EventHandler.remove(this.scrollEle, 'scroll', this.scrollHandler);\n this.touchModule.destroy();\n this.touchModule = null;\n _super.prototype.destroy.call(this);\n };\n /**\n * Specifies the value to disable/enable the HScroll component.\n * When set to `true` , the component will be disabled.\n *\n * @param {boolean} value - Based on this Boolean value, HScroll will be enabled (false) or disabled (true).\n * @returns {void}.\n */\n HScroll.prototype.disable = function (value) {\n var navEles = selectAll('.e-scroll-nav:not(.' + CLS_DISABLE + ')', this.element);\n if (value) {\n this.element.classList.add(CLS_DISABLE);\n }\n else {\n this.element.classList.remove(CLS_DISABLE);\n }\n [].slice.call(navEles).forEach(function (el) {\n el.setAttribute('tabindex', !value ? '0' : '-1');\n });\n };\n HScroll.prototype.createOverlay = function (element) {\n var id = element.id.concat('_nav');\n var rightOverlayEle = this.createElement('div', { className: CLS_OVERLAY + ' ' + CLS_RIGHTOVERLAY });\n var clsRight = 'e-' + element.id.concat('_nav ' + CLS_HSCROLLNAV + ' ' + CLS_HSCROLLNAVRIGHT);\n var rightEle = this.createElement('div', { id: id.concat('_right'), className: clsRight });\n var navItem = this.createElement('div', { className: CLS_NAVRIGHTARROW + ' ' + CLS_NAVARROW + ' e-icons' });\n rightEle.appendChild(navItem);\n var leftEle = this.createElement('div', { className: CLS_OVERLAY + ' ' + CLS_LEFTOVERLAY });\n if (this.ieCheck) {\n rightEle.classList.add('e-ie-align');\n }\n element.appendChild(rightOverlayEle);\n element.appendChild(rightEle);\n element.insertBefore(leftEle, element.firstChild);\n this.eventBinding([rightEle]);\n };\n HScroll.prototype.createNavIcon = function (element) {\n var id = element.id.concat('_nav');\n var clsRight = 'e-' + element.id.concat('_nav ' + CLS_HSCROLLNAV + ' ' + CLS_HSCROLLNAVRIGHT);\n var rightAttributes = { 'role': 'button', 'id': id.concat('_right'), 'aria-label': 'Scroll right' };\n var nav = this.createElement('div', { className: clsRight, attrs: rightAttributes });\n nav.setAttribute('aria-disabled', 'false');\n var navItem = this.createElement('div', { className: CLS_NAVRIGHTARROW + ' ' + CLS_NAVARROW + ' e-icons' });\n var clsLeft = 'e-' + element.id.concat('_nav ' + CLS_HSCROLLNAV + ' ' + CLS_HSCROLLNAVLEFT);\n var leftAttributes = { 'role': 'button', 'id': id.concat('_left'), 'aria-label': 'Scroll left' };\n var navEle = this.createElement('div', { className: clsLeft + ' ' + CLS_DISABLE, attrs: leftAttributes });\n navEle.setAttribute('aria-disabled', 'true');\n var navLeftItem = this.createElement('div', { className: CLS_NAVLEFTARROW + ' ' + CLS_NAVARROW + ' e-icons' });\n navEle.appendChild(navLeftItem);\n nav.appendChild(navItem);\n element.appendChild(nav);\n element.insertBefore(navEle, element.firstChild);\n if (this.ieCheck) {\n nav.classList.add('e-ie-align');\n navEle.classList.add('e-ie-align');\n }\n this.eventBinding([nav, navEle]);\n };\n HScroll.prototype.onKeyPress = function (e) {\n var _this = this;\n if (e.key === 'Enter') {\n var timeoutFun_1 = function () {\n _this.keyTimeout = true;\n _this.eleScrolling(10, e.target, true);\n };\n this.keyTimer = window.setTimeout(function () {\n timeoutFun_1();\n }, 100);\n }\n };\n HScroll.prototype.onKeyUp = function (e) {\n if (e.key !== 'Enter') {\n return;\n }\n if (this.keyTimeout) {\n this.keyTimeout = false;\n }\n else {\n e.target.click();\n }\n clearTimeout(this.keyTimer);\n };\n HScroll.prototype.eventBinding = function (ele) {\n var _this = this;\n [].slice.call(ele).forEach(function (el) {\n new Touch(el, { tapHold: _this.tabHoldHandler.bind(_this), tapHoldThreshold: 500 });\n el.addEventListener('keydown', _this.onKeyPress.bind(_this));\n el.addEventListener('keyup', _this.onKeyUp.bind(_this));\n el.addEventListener('mouseup', _this.repeatScroll.bind(_this));\n el.addEventListener('touchend', _this.repeatScroll.bind(_this));\n el.addEventListener('contextmenu', function (e) {\n e.preventDefault();\n });\n EventHandler.add(el, 'click', _this.clickEventHandler, _this);\n });\n };\n HScroll.prototype.repeatScroll = function () {\n clearInterval(this.timeout);\n };\n HScroll.prototype.tabHoldHandler = function (e) {\n var _this = this;\n var trgt = e.originalEvent.target;\n trgt = this.contains(trgt, CLS_HSCROLLNAV) ? trgt.firstElementChild : trgt;\n var scrollDis = 10;\n var timeoutFun = function () {\n _this.eleScrolling(scrollDis, trgt, true);\n };\n this.timeout = window.setInterval(function () {\n timeoutFun();\n }, 50);\n };\n HScroll.prototype.contains = function (ele, className) {\n return ele.classList.contains(className);\n };\n HScroll.prototype.eleScrolling = function (scrollDis, trgt, isContinuous) {\n var rootEle = this.element;\n var classList = trgt.classList;\n if (classList.contains(CLS_HSCROLLNAV)) {\n classList = trgt.querySelector('.' + CLS_NAVARROW).classList;\n }\n if (this.contains(rootEle, CLS_RTL) && this.browserCheck) {\n scrollDis = -scrollDis;\n }\n if ((!this.contains(rootEle, CLS_RTL) || this.browserCheck) || this.ieCheck) {\n if (classList.contains(CLS_NAVRIGHTARROW)) {\n this.frameScrollRequest(scrollDis, 'add', isContinuous);\n }\n else {\n this.frameScrollRequest(scrollDis, '', isContinuous);\n }\n }\n else {\n if (classList.contains(CLS_NAVLEFTARROW)) {\n this.frameScrollRequest(scrollDis, 'add', isContinuous);\n }\n else {\n this.frameScrollRequest(scrollDis, '', isContinuous);\n }\n }\n };\n HScroll.prototype.clickEventHandler = function (e) {\n this.eleScrolling(this.scrollStep, e.target, false);\n };\n HScroll.prototype.swipeHandler = function (e) {\n var swipeEle = this.scrollEle;\n var distance;\n if (e.velocity <= 1) {\n distance = e.distanceX / (e.velocity * 10);\n }\n else {\n distance = e.distanceX / e.velocity;\n }\n var start = 0.5;\n var animate = function () {\n var step = Math.sin(start);\n if (step <= 0) {\n window.cancelAnimationFrame(step);\n }\n else {\n if (e.swipeDirection === 'Left') {\n swipeEle.scrollLeft += distance * step;\n }\n else if (e.swipeDirection === 'Right') {\n swipeEle.scrollLeft -= distance * step;\n }\n start -= 0.5;\n window.requestAnimationFrame(animate);\n }\n };\n animate();\n };\n HScroll.prototype.scrollUpdating = function (scrollVal, action) {\n if (action === 'add') {\n this.scrollEle.scrollLeft += scrollVal;\n }\n else {\n this.scrollEle.scrollLeft -= scrollVal;\n }\n if (this.enableRtl && this.scrollEle.scrollLeft > 0) {\n this.scrollEle.scrollLeft = 0;\n }\n };\n HScroll.prototype.frameScrollRequest = function (scrollVal, action, isContinuous) {\n var _this = this;\n var step = 10;\n if (isContinuous) {\n this.scrollUpdating(scrollVal, action);\n return;\n }\n if (!this.customStep) {\n [].slice.call(selectAll('.' + CLS_OVERLAY, this.element)).forEach(function (el) {\n scrollVal -= el.offsetWidth;\n });\n }\n var animate = function () {\n var scrollValue;\n var scrollStep;\n if (_this.contains(_this.element, CLS_RTL) && _this.browserCheck) {\n scrollValue = -scrollVal;\n scrollStep = -step;\n }\n else {\n scrollValue = scrollVal;\n scrollStep = step;\n }\n if (scrollValue < step) {\n window.cancelAnimationFrame(scrollStep);\n }\n else {\n _this.scrollUpdating(scrollStep, action);\n scrollVal -= scrollStep;\n window.requestAnimationFrame(animate);\n }\n };\n animate();\n };\n HScroll.prototype.touchHandler = function (e) {\n var ele = this.scrollEle;\n var distance = e.distanceX;\n if ((this.ieCheck) && this.contains(this.element, CLS_RTL)) {\n distance = -distance;\n }\n if (e.scrollDirection === 'Left') {\n ele.scrollLeft = ele.scrollLeft + distance;\n }\n else if (e.scrollDirection === 'Right') {\n ele.scrollLeft = ele.scrollLeft - distance;\n }\n };\n HScroll.prototype.arrowDisabling = function (addDisable, removeDisable) {\n if (this.isDevice) {\n var arrowEle = isNullOrUndefined(addDisable) ? removeDisable : addDisable;\n var arrowIcon = arrowEle.querySelector('.' + CLS_NAVARROW);\n if (isNullOrUndefined(addDisable)) {\n classList(arrowIcon, [CLS_NAVRIGHTARROW], [CLS_NAVLEFTARROW]);\n }\n else {\n classList(arrowIcon, [CLS_NAVLEFTARROW], [CLS_NAVRIGHTARROW]);\n }\n }\n else if (addDisable && removeDisable) {\n addDisable.classList.add(CLS_DISABLE);\n addDisable.setAttribute('aria-disabled', 'true');\n addDisable.removeAttribute('tabindex');\n removeDisable.classList.remove(CLS_DISABLE);\n removeDisable.setAttribute('aria-disabled', 'false');\n removeDisable.setAttribute('tabindex', '0');\n }\n this.repeatScroll();\n };\n HScroll.prototype.scrollHandler = function (e) {\n var target = e.target;\n var width = target.offsetWidth;\n var rootEle = this.element;\n var navLeftEle = this.element.querySelector('.' + CLS_HSCROLLNAVLEFT);\n var navRightEle = this.element.querySelector('.' + CLS_HSCROLLNAVRIGHT);\n var leftOverlay = this.element.querySelector('.' + CLS_LEFTOVERLAY);\n var rightOverlay = this.element.querySelector('.' + CLS_RIGHTOVERLAY);\n var scrollLeft = target.scrollLeft;\n if (scrollLeft <= 0) {\n scrollLeft = -scrollLeft;\n }\n if (this.isDevice) {\n if (this.enableRtl && !(this.browserCheck || this.ieCheck)) {\n leftOverlay = this.element.querySelector('.' + CLS_RIGHTOVERLAY);\n rightOverlay = this.element.querySelector('.' + CLS_LEFTOVERLAY);\n }\n if (scrollLeft < OVERLAY_MAXWID) {\n leftOverlay.style.width = scrollLeft + 'px';\n }\n else {\n leftOverlay.style.width = '40px';\n }\n if ((target.scrollWidth - Math.ceil(width + scrollLeft)) < OVERLAY_MAXWID) {\n rightOverlay.style.width = (target.scrollWidth - Math.ceil(width + scrollLeft)) + 'px';\n }\n else {\n rightOverlay.style.width = '40px';\n }\n }\n if (scrollLeft === 0) {\n this.arrowDisabling(navLeftEle, navRightEle);\n }\n else if (Math.ceil(width + scrollLeft + .1) >= target.scrollWidth) {\n this.arrowDisabling(navRightEle, navLeftEle);\n }\n else {\n var disEle = this.element.querySelector('.' + CLS_HSCROLLNAV + '.' + CLS_DISABLE);\n if (disEle) {\n disEle.classList.remove(CLS_DISABLE);\n disEle.setAttribute('aria-disabled', 'false');\n disEle.setAttribute('tabindex', '0');\n }\n }\n };\n /**\n * Gets called when the model property changes.The data that describes the old and new values of property that changed.\n *\n * @param {HScrollModel} newProp - It contains the new value of data.\n * @param {HScrollModel} oldProp - It contains the old value of data.\n * @returns {void}\n * @private\n */\n HScroll.prototype.onPropertyChanged = function (newProp, oldProp) {\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'scrollStep':\n this.setScrollState();\n break;\n case 'enableRtl':\n newProp.enableRtl ? this.element.classList.add(CLS_RTL) : this.element.classList.remove(CLS_RTL);\n break;\n }\n }\n };\n __decorate([\n Property(null)\n ], HScroll.prototype, \"scrollStep\", void 0);\n HScroll = __decorate([\n NotifyPropertyChanges\n ], HScroll);\n return HScroll;\n}(Component));\nexport { HScroll };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Touch, Component, EventHandler, selectAll, getUniqueID, removeClass } from '@syncfusion/ej2-base';\nimport { NotifyPropertyChanges, Property, Browser, detach, createElement as buildTag } from '@syncfusion/ej2-base';\nimport { classList, isNullOrUndefined } from '@syncfusion/ej2-base';\nvar CLS_ROOT = 'e-vscroll';\nvar CLS_RTL = 'e-rtl';\nvar CLS_DISABLE = 'e-overlay';\nvar CLS_VSCROLLBAR = 'e-vscroll-bar';\nvar CLS_VSCROLLCON = 'e-vscroll-content';\nvar CLS_NAVARROW = 'e-nav-arrow';\nvar CLS_NAVUPARROW = 'e-nav-up-arrow';\nvar CLS_NAVDOWNARROW = 'e-nav-down-arrow';\nvar CLS_VSCROLLNAV = 'e-scroll-nav';\nvar CLS_VSCROLLNAVUP = 'e-scroll-up-nav';\nvar CLS_VSCROLLNAVDOWN = 'e-scroll-down-nav';\nvar CLS_DEVICE = 'e-scroll-device';\nvar CLS_OVERLAY = 'e-scroll-overlay';\nvar CLS_UPOVERLAY = 'e-scroll-up-overlay';\nvar CLS_DOWNOVERLAY = 'e-scroll-down-overlay';\nvar OVERLAY_MAXWID = 40;\n/**\n * VScroll module is introduces vertical scroller when content exceeds the current viewing area.\n * It can be useful for the components like Toolbar, Tab which needs vertical scrolling alone.\n * Hidden content can be view by touch moving or icon click.\n * ```html\n *
\n * \n * ```\n */\nvar VScroll = /** @class */ (function (_super) {\n __extends(VScroll, _super);\n /**\n * Initializes a new instance of the VScroll class.\n *\n * @param {VScrollModel} options - Specifies VScroll model properties as options.\n * @param {string | HTMLElement} element - Specifies the element for which vertical scrolling applies.\n */\n function VScroll(options, element) {\n return _super.call(this, options, element) || this;\n }\n /**\n * Initialize the event handler\n *\n * @private\n * @returns {void}\n */\n VScroll.prototype.preRender = function () {\n this.browser = Browser.info.name;\n this.browserCheck = this.browser === 'mozilla';\n this.isDevice = Browser.isDevice;\n this.customStep = true;\n var ele = this.element;\n this.ieCheck = this.browser === 'edge' || this.browser === 'msie';\n this.initialize();\n if (ele.id === '') {\n ele.id = getUniqueID('vscroll');\n this.uniqueId = true;\n }\n ele.style.display = 'block';\n if (this.enableRtl) {\n ele.classList.add(CLS_RTL);\n }\n };\n /**\n * To Initialize the vertical scroll rendering\n *\n * @private\n * @returns {void}\n */\n VScroll.prototype.render = function () {\n this.touchModule = new Touch(this.element, { scroll: this.touchHandler.bind(this), swipe: this.swipeHandler.bind(this) });\n EventHandler.add(this.scrollEle, 'scroll', this.scrollEventHandler, this);\n if (!this.isDevice) {\n this.createNavIcon(this.element);\n }\n else {\n this.element.classList.add(CLS_DEVICE);\n this.createOverlayElement(this.element);\n }\n this.setScrollState();\n EventHandler.add(this.element, 'wheel', this.wheelEventHandler, this);\n };\n VScroll.prototype.setScrollState = function () {\n if (isNullOrUndefined(this.scrollStep) || this.scrollStep < 0) {\n this.scrollStep = this.scrollEle.offsetHeight;\n this.customStep = false;\n }\n else {\n this.customStep = true;\n }\n };\n VScroll.prototype.initialize = function () {\n var scrollCnt = buildTag('div', { className: CLS_VSCROLLCON });\n var scrollBar = buildTag('div', { className: CLS_VSCROLLBAR });\n scrollBar.setAttribute('tabindex', '-1');\n var ele = this.element;\n var innerEle = [].slice.call(ele.children);\n for (var _i = 0, innerEle_1 = innerEle; _i < innerEle_1.length; _i++) {\n var ele_1 = innerEle_1[_i];\n scrollCnt.appendChild(ele_1);\n }\n scrollBar.appendChild(scrollCnt);\n ele.appendChild(scrollBar);\n scrollBar.style.overflow = 'hidden';\n this.scrollEle = scrollBar;\n this.scrollItems = scrollCnt;\n };\n VScroll.prototype.getPersistData = function () {\n var keyEntity = ['scrollStep'];\n return this.addOnPersist(keyEntity);\n };\n /**\n * Returns the current module name.\n *\n * @returns {string} - It returns the current module name.\n * @private\n */\n VScroll.prototype.getModuleName = function () {\n return 'vScroll';\n };\n /**\n * Removes the control from the DOM and also removes all its related events.\n *\n * @returns {void}\n */\n VScroll.prototype.destroy = function () {\n var el = this.element;\n el.style.display = '';\n removeClass([this.element], [CLS_ROOT, CLS_DEVICE]);\n var navs = selectAll('.e-' + el.id + '_nav.' + CLS_VSCROLLNAV, el);\n var overlays = selectAll('.' + CLS_OVERLAY, el);\n [].slice.call(overlays).forEach(function (ele) {\n detach(ele);\n });\n for (var _i = 0, _a = [].slice.call(this.scrollItems.children); _i < _a.length; _i++) {\n var elem = _a[_i];\n el.appendChild(elem);\n }\n if (this.uniqueId) {\n this.element.removeAttribute('id');\n }\n detach(this.scrollEle);\n if (navs.length > 0) {\n detach(navs[0]);\n if (!isNullOrUndefined(navs[1])) {\n detach(navs[1]);\n }\n }\n EventHandler.remove(this.scrollEle, 'scroll', this.scrollEventHandler);\n this.touchModule.destroy();\n this.touchModule = null;\n _super.prototype.destroy.call(this);\n };\n /**\n * Specifies the value to disable/enable the VScroll component.\n * When set to `true` , the component will be disabled.\n *\n * @param {boolean} value - Based on this Boolean value, VScroll will be enabled (false) or disabled (true).\n * @returns {void}.\n */\n VScroll.prototype.disable = function (value) {\n var navEle = selectAll('.e-scroll-nav:not(.' + CLS_DISABLE + ')', this.element);\n if (value) {\n this.element.classList.add(CLS_DISABLE);\n }\n else {\n this.element.classList.remove(CLS_DISABLE);\n }\n [].slice.call(navEle).forEach(function (el) {\n el.setAttribute('tabindex', !value ? '0' : '-1');\n });\n };\n VScroll.prototype.createOverlayElement = function (element) {\n var id = element.id.concat('_nav');\n var downOverlayEle = buildTag('div', { className: CLS_OVERLAY + ' ' + CLS_DOWNOVERLAY });\n var clsDown = 'e-' + element.id.concat('_nav ' + CLS_VSCROLLNAV + ' ' + CLS_VSCROLLNAVDOWN);\n var downEle = buildTag('div', { id: id.concat('down'), className: clsDown });\n var navItem = buildTag('div', { className: CLS_NAVDOWNARROW + ' ' + CLS_NAVARROW + ' e-icons' });\n downEle.appendChild(navItem);\n var upEle = buildTag('div', { className: CLS_OVERLAY + ' ' + CLS_UPOVERLAY });\n if (this.ieCheck) {\n downEle.classList.add('e-ie-align');\n }\n element.appendChild(downOverlayEle);\n element.appendChild(downEle);\n element.insertBefore(upEle, element.firstChild);\n this.eventBinding([downEle]);\n };\n VScroll.prototype.createNavIcon = function (element) {\n var id = element.id.concat('_nav');\n var clsDown = 'e-' + element.id.concat('_nav ' + CLS_VSCROLLNAV + ' ' + CLS_VSCROLLNAVDOWN);\n var nav = buildTag('div', { id: id.concat('_down'), className: clsDown });\n nav.setAttribute('aria-disabled', 'false');\n var navItem = buildTag('div', { className: CLS_NAVDOWNARROW + ' ' + CLS_NAVARROW + ' e-icons' });\n var clsUp = 'e-' + element.id.concat('_nav ' + CLS_VSCROLLNAV + ' ' + CLS_VSCROLLNAVUP);\n var navElement = buildTag('div', { id: id.concat('_up'), className: clsUp + ' ' + CLS_DISABLE });\n navElement.setAttribute('aria-disabled', 'true');\n var navUpItem = buildTag('div', { className: CLS_NAVUPARROW + ' ' + CLS_NAVARROW + ' e-icons' });\n navElement.appendChild(navUpItem);\n nav.appendChild(navItem);\n nav.setAttribute('tabindex', '0');\n element.appendChild(nav);\n element.insertBefore(navElement, element.firstChild);\n if (this.ieCheck) {\n nav.classList.add('e-ie-align');\n navElement.classList.add('e-ie-align');\n }\n this.eventBinding([nav, navElement]);\n };\n VScroll.prototype.onKeyPress = function (ev) {\n var _this = this;\n if (ev.key === 'Enter') {\n var timeoutFun_1 = function () {\n _this.keyTimeout = true;\n _this.eleScrolling(10, ev.target, true);\n };\n this.keyTimer = window.setTimeout(function () {\n timeoutFun_1();\n }, 100);\n }\n };\n VScroll.prototype.onKeyUp = function (ev) {\n if (ev.key !== 'Enter') {\n return;\n }\n if (this.keyTimeout) {\n this.keyTimeout = false;\n }\n else {\n ev.target.click();\n }\n clearTimeout(this.keyTimer);\n };\n VScroll.prototype.eventBinding = function (element) {\n var _this = this;\n [].slice.call(element).forEach(function (ele) {\n new Touch(ele, { tapHold: _this.tabHoldHandler.bind(_this), tapHoldThreshold: 500 });\n ele.addEventListener('keydown', _this.onKeyPress.bind(_this));\n ele.addEventListener('keyup', _this.onKeyUp.bind(_this));\n ele.addEventListener('mouseup', _this.repeatScroll.bind(_this));\n ele.addEventListener('touchend', _this.repeatScroll.bind(_this));\n ele.addEventListener('contextmenu', function (e) {\n e.preventDefault();\n });\n EventHandler.add(ele, 'click', _this.clickEventHandler, _this);\n });\n };\n VScroll.prototype.repeatScroll = function () {\n clearInterval(this.timeout);\n };\n VScroll.prototype.tabHoldHandler = function (ev) {\n var _this = this;\n var trgt = ev.originalEvent.target;\n trgt = this.contains(trgt, CLS_VSCROLLNAV) ? trgt.firstElementChild : trgt;\n var scrollDistance = 10;\n var timeoutFun = function () {\n _this.eleScrolling(scrollDistance, trgt, true);\n };\n this.timeout = window.setInterval(function () {\n timeoutFun();\n }, 50);\n };\n VScroll.prototype.contains = function (element, className) {\n return element.classList.contains(className);\n };\n VScroll.prototype.eleScrolling = function (scrollDis, trgt, isContinuous) {\n var classList = trgt.classList;\n if (classList.contains(CLS_VSCROLLNAV)) {\n classList = trgt.querySelector('.' + CLS_NAVARROW).classList;\n }\n if (classList.contains(CLS_NAVDOWNARROW)) {\n this.frameScrollRequest(scrollDis, 'add', isContinuous);\n }\n else if (classList.contains(CLS_NAVUPARROW)) {\n this.frameScrollRequest(scrollDis, '', isContinuous);\n }\n };\n VScroll.prototype.clickEventHandler = function (event) {\n this.eleScrolling(this.scrollStep, event.target, false);\n };\n VScroll.prototype.wheelEventHandler = function (e) {\n e.preventDefault();\n this.frameScrollRequest(this.scrollStep, (e.deltaY > 0 ? 'add' : ''), false);\n };\n VScroll.prototype.swipeHandler = function (e) {\n var swipeElement = this.scrollEle;\n var distance;\n if (e.velocity <= 1) {\n distance = e.distanceY / (e.velocity * 10);\n }\n else {\n distance = e.distanceY / e.velocity;\n }\n var start = 0.5;\n var animate = function () {\n var step = Math.sin(start);\n if (step <= 0) {\n window.cancelAnimationFrame(step);\n }\n else {\n if (e.swipeDirection === 'Up') {\n swipeElement.scrollTop += distance * step;\n }\n else if (e.swipeDirection === 'Down') {\n swipeElement.scrollTop -= distance * step;\n }\n start -= 0.02;\n window.requestAnimationFrame(animate);\n }\n };\n animate();\n };\n VScroll.prototype.scrollUpdating = function (scrollVal, action) {\n if (action === 'add') {\n this.scrollEle.scrollTop += scrollVal;\n }\n else {\n this.scrollEle.scrollTop -= scrollVal;\n }\n };\n VScroll.prototype.frameScrollRequest = function (scrollValue, action, isContinuous) {\n var _this = this;\n var step = 10;\n if (isContinuous) {\n this.scrollUpdating(scrollValue, action);\n return;\n }\n if (!this.customStep) {\n [].slice.call(selectAll('.' + CLS_OVERLAY, this.element)).forEach(function (el) {\n scrollValue -= el.offsetHeight;\n });\n }\n var animate = function () {\n if (scrollValue < step) {\n window.cancelAnimationFrame(step);\n }\n else {\n _this.scrollUpdating(step, action);\n scrollValue -= step;\n window.requestAnimationFrame(animate);\n }\n };\n animate();\n };\n VScroll.prototype.touchHandler = function (e) {\n var el = this.scrollEle;\n var distance = e.distanceY;\n if (e.scrollDirection === 'Up') {\n el.scrollTop = el.scrollTop + distance;\n }\n else if (e.scrollDirection === 'Down') {\n el.scrollTop = el.scrollTop - distance;\n }\n };\n VScroll.prototype.arrowDisabling = function (addDisableCls, removeDisableCls) {\n if (this.isDevice) {\n var arrowEle = isNullOrUndefined(addDisableCls) ? removeDisableCls : addDisableCls;\n var arrowIcon = arrowEle.querySelector('.' + CLS_NAVARROW);\n if (isNullOrUndefined(addDisableCls)) {\n classList(arrowIcon, [CLS_NAVDOWNARROW], [CLS_NAVUPARROW]);\n }\n else {\n classList(arrowIcon, [CLS_NAVUPARROW], [CLS_NAVDOWNARROW]);\n }\n }\n else {\n addDisableCls.classList.add(CLS_DISABLE);\n addDisableCls.setAttribute('aria-disabled', 'true');\n addDisableCls.removeAttribute('tabindex');\n removeDisableCls.classList.remove(CLS_DISABLE);\n removeDisableCls.setAttribute('aria-disabled', 'false');\n removeDisableCls.setAttribute('tabindex', '0');\n }\n this.repeatScroll();\n };\n VScroll.prototype.scrollEventHandler = function (e) {\n var target = e.target;\n var height = target.offsetHeight;\n var navUpEle = this.element.querySelector('.' + CLS_VSCROLLNAVUP);\n var navDownEle = this.element.querySelector('.' + CLS_VSCROLLNAVDOWN);\n var upOverlay = this.element.querySelector('.' + CLS_UPOVERLAY);\n var downOverlay = this.element.querySelector('.' + CLS_DOWNOVERLAY);\n var scrollTop = target.scrollTop;\n if (scrollTop <= 0) {\n scrollTop = -scrollTop;\n }\n if (this.isDevice) {\n if (scrollTop < OVERLAY_MAXWID) {\n upOverlay.style.height = scrollTop + 'px';\n }\n else {\n upOverlay.style.height = '40px';\n }\n if ((target.scrollHeight - Math.ceil(height + scrollTop)) < OVERLAY_MAXWID) {\n downOverlay.style.height = (target.scrollHeight - Math.ceil(height + scrollTop)) + 'px';\n }\n else {\n downOverlay.style.height = '40px';\n }\n }\n if (scrollTop === 0) {\n this.arrowDisabling(navUpEle, navDownEle);\n }\n else if (Math.ceil(height + scrollTop + .1) >= target.scrollHeight) {\n this.arrowDisabling(navDownEle, navUpEle);\n }\n else {\n var disEle = this.element.querySelector('.' + CLS_VSCROLLNAV + '.' + CLS_DISABLE);\n if (disEle) {\n disEle.classList.remove(CLS_DISABLE);\n disEle.setAttribute('aria-disabled', 'false');\n disEle.setAttribute('tabindex', '0');\n }\n }\n };\n /**\n * Gets called when the model property changes.The data that describes the old and new values of property that changed.\n *\n * @param {VScrollModel} newProp - It contains the new value of data.\n * @param {VScrollModel} oldProp - It contains the old value of data.\n * @returns {void}\n * @private\n */\n VScroll.prototype.onPropertyChanged = function (newProp, oldProp) {\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'scrollStep':\n this.setScrollState();\n break;\n case 'enableRtl':\n if (newProp.enableRtl) {\n this.element.classList.add(CLS_RTL);\n }\n else {\n this.element.classList.remove(CLS_RTL);\n }\n break;\n }\n }\n };\n __decorate([\n Property(null)\n ], VScroll.prototype, \"scrollStep\", void 0);\n VScroll = __decorate([\n NotifyPropertyChanges\n ], VScroll);\n return VScroll;\n}(Component));\nexport { VScroll };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, EventHandler, Property, Event } from '@syncfusion/ej2-base';\nimport { addClass, removeClass, isVisible, closest, attributes, detach, classList, KeyboardEvents } from '@syncfusion/ej2-base';\nimport { selectAll, setStyleAttribute as setStyle, select } from '@syncfusion/ej2-base';\nimport { isNullOrUndefined as isNOU, getUniqueID, formatUnit, Collection, compile as templateCompiler } from '@syncfusion/ej2-base';\nimport { NotifyPropertyChanges, ChildProperty, Browser, SanitizeHtmlHelper } from '@syncfusion/ej2-base';\nimport { Popup } from '@syncfusion/ej2-popups';\nimport { calculatePosition } from '@syncfusion/ej2-popups';\nimport { Button } from '@syncfusion/ej2-buttons';\nimport { HScroll } from '../common/h-scroll';\nimport { VScroll } from '../common/v-scroll';\nvar CLS_VERTICAL = 'e-vertical';\nvar CLS_ITEMS = 'e-toolbar-items';\nvar CLS_ITEM = 'e-toolbar-item';\nvar CLS_RTL = 'e-rtl';\nvar CLS_SEPARATOR = 'e-separator';\nvar CLS_POPUPICON = 'e-popup-up-icon';\nvar CLS_POPUPDOWN = 'e-popup-down-icon';\nvar CLS_POPUPOPEN = 'e-popup-open';\nvar CLS_TEMPLATE = 'e-template';\nvar CLS_DISABLE = 'e-overlay';\nvar CLS_POPUPTEXT = 'e-toolbar-text';\nvar CLS_TBARTEXT = 'e-popup-text';\nvar CLS_TBAROVERFLOW = 'e-overflow-show';\nvar CLS_POPOVERFLOW = 'e-overflow-hide';\nvar CLS_TBARBTN = 'e-tbar-btn';\nvar CLS_TBARNAV = 'e-hor-nav';\nvar CLS_TBARSCRLNAV = 'e-scroll-nav';\nvar CLS_TBARRIGHT = 'e-toolbar-right';\nvar CLS_TBARLEFT = 'e-toolbar-left';\nvar CLS_TBARCENTER = 'e-toolbar-center';\nvar CLS_TBARPOS = 'e-tbar-pos';\nvar CLS_HSCROLLCNT = 'e-hscroll-content';\nvar CLS_VSCROLLCNT = 'e-vscroll-content';\nvar CLS_HSCROLLBAR = 'e-hscroll-bar';\nvar CLS_POPUPNAV = 'e-hor-nav';\nvar CLS_POPUPCLASS = 'e-toolbar-pop';\nvar CLS_POPUP = 'e-toolbar-popup';\nvar CLS_TBARBTNTEXT = 'e-tbar-btn-text';\nvar CLS_TBARNAVACT = 'e-nav-active';\nvar CLS_TBARIGNORE = 'e-ignore';\nvar CLS_POPPRI = 'e-popup-alone';\nvar CLS_HIDDEN = 'e-hidden';\nvar CLS_MULTIROW = 'e-toolbar-multirow';\nvar CLS_MULTIROWPOS = 'e-multirow-pos';\nvar CLS_MULTIROW_SEPARATOR = 'e-multirow-separator';\nvar CLS_EXTENDABLE_SEPARATOR = 'e-extended-separator';\nvar CLS_EXTEANDABLE_TOOLBAR = 'e-extended-toolbar';\nvar CLS_EXTENDABLECLASS = 'e-toolbar-extended';\nvar CLS_EXTENDPOPUP = 'e-expended-nav';\nvar CLS_EXTENDEDPOPOPEN = 'e-tbar-extended';\n/**\n * An item object that is used to configure Toolbar commands.\n */\nvar Item = /** @class */ (function (_super) {\n __extends(Item, _super);\n function Item() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], Item.prototype, \"id\", void 0);\n __decorate([\n Property('')\n ], Item.prototype, \"text\", void 0);\n __decorate([\n Property('auto')\n ], Item.prototype, \"width\", void 0);\n __decorate([\n Property('')\n ], Item.prototype, \"cssClass\", void 0);\n __decorate([\n Property(false)\n ], Item.prototype, \"showAlwaysInPopup\", void 0);\n __decorate([\n Property(false)\n ], Item.prototype, \"disabled\", void 0);\n __decorate([\n Property('')\n ], Item.prototype, \"prefixIcon\", void 0);\n __decorate([\n Property('')\n ], Item.prototype, \"suffixIcon\", void 0);\n __decorate([\n Property(true)\n ], Item.prototype, \"visible\", void 0);\n __decorate([\n Property('None')\n ], Item.prototype, \"overflow\", void 0);\n __decorate([\n Property('')\n ], Item.prototype, \"template\", void 0);\n __decorate([\n Property('Button')\n ], Item.prototype, \"type\", void 0);\n __decorate([\n Property('Both')\n ], Item.prototype, \"showTextOn\", void 0);\n __decorate([\n Property(null)\n ], Item.prototype, \"htmlAttributes\", void 0);\n __decorate([\n Property('')\n ], Item.prototype, \"tooltipText\", void 0);\n __decorate([\n Property('Left')\n ], Item.prototype, \"align\", void 0);\n __decorate([\n Event()\n ], Item.prototype, \"click\", void 0);\n __decorate([\n Property(-1)\n ], Item.prototype, \"tabIndex\", void 0);\n return Item;\n}(ChildProperty));\nexport { Item };\n/**\n * The Toolbar control contains a group of commands that are aligned horizontally.\n * ```html\n *
\n * \n * ```\n */\nvar Toolbar = /** @class */ (function (_super) {\n __extends(Toolbar, _super);\n /**\n * Initializes a new instance of the Toolbar class.\n *\n * @param {ToolbarModel} options - Specifies Toolbar model properties as options.\n * @param { string | HTMLElement} element - Specifies the element that is rendered as a Toolbar.\n */\n function Toolbar(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.resizeContext = _this.resize.bind(_this);\n /**\n * Contains the keyboard configuration of the Toolbar.\n */\n _this.keyConfigs = {\n moveLeft: 'leftarrow',\n moveRight: 'rightarrow',\n moveUp: 'uparrow',\n moveDown: 'downarrow',\n popupOpen: 'enter',\n popupClose: 'escape',\n tab: 'tab',\n home: 'home',\n end: 'end'\n };\n return _this;\n }\n /**\n * Removes the control from the DOM and also removes all its related events.\n *\n * @returns {void}.\n */\n Toolbar.prototype.destroy = function () {\n var _this = this;\n if (this.isReact || this.isAngular) {\n this.clearTemplate();\n }\n var btnItems = this.element.querySelectorAll('.e-control.e-btn');\n [].slice.call(btnItems).forEach(function (el) {\n if (!isNOU(el) && !isNOU(el.ej2_instances) && !isNOU(el.ej2_instances[0]) && !(el.ej2_instances[0].isDestroyed)) {\n el.ej2_instances[0].destroy();\n }\n });\n this.unwireEvents();\n this.tempId.forEach(function (ele) {\n if (!isNOU(_this.element.querySelector(ele))) {\n document.body.appendChild(_this.element.querySelector(ele)).style.display = 'none';\n }\n });\n this.destroyItems();\n while (this.element.lastElementChild) {\n this.element.removeChild(this.element.lastElementChild);\n }\n if (this.trgtEle) {\n this.element.appendChild(this.ctrlTem);\n this.trgtEle = null;\n this.ctrlTem = null;\n }\n if (this.popObj) {\n this.popObj.destroy();\n detach(this.popObj.element);\n }\n if (this.activeEle) {\n this.activeEle = null;\n }\n this.popObj = null;\n this.tbarAlign = null;\n this.tbarItemsCol = [];\n this.remove(this.element, 'e-toolpop');\n if (this.cssClass) {\n removeClass([this.element], this.cssClass.split(' '));\n }\n this.element.removeAttribute('style');\n ['aria-disabled', 'aria-orientation', 'role'].forEach(function (attrb) {\n return _this.element.removeAttribute(attrb);\n });\n _super.prototype.destroy.call(this);\n };\n /**\n * Initialize the event handler\n *\n * @private\n * @returns {void}\n */\n Toolbar.prototype.preRender = function () {\n var eventArgs = { enableCollision: this.enableCollision, scrollStep: this.scrollStep };\n this.trigger('beforeCreate', eventArgs);\n this.enableCollision = eventArgs.enableCollision;\n this.scrollStep = eventArgs.scrollStep;\n this.scrollModule = null;\n this.popObj = null;\n this.tempId = [];\n this.tbarItemsCol = this.items;\n this.isVertical = this.element.classList.contains(CLS_VERTICAL) ? true : false;\n this.isExtendedOpen = false;\n this.popupPriCount = 0;\n if (this.enableRtl) {\n this.add(this.element, CLS_RTL);\n }\n };\n Toolbar.prototype.wireEvents = function () {\n EventHandler.add(this.element, 'click', this.clickHandler, this);\n window.addEventListener('resize', this.resizeContext);\n if (this.allowKeyboard) {\n this.wireKeyboardEvent();\n }\n };\n Toolbar.prototype.wireKeyboardEvent = function () {\n this.keyModule = new KeyboardEvents(this.element, {\n keyAction: this.keyActionHandler.bind(this),\n keyConfigs: this.keyConfigs\n });\n EventHandler.add(this.element, 'keydown', this.docKeyDown, this);\n this.updateTabIndex('0');\n };\n Toolbar.prototype.updateTabIndex = function (tabIndex) {\n var ele = this.element.querySelector('.' + CLS_ITEM + ':not(.' + CLS_DISABLE + ' ):not(.' + CLS_SEPARATOR + ' ):not(.' + CLS_HIDDEN + ' )');\n if (!isNOU(ele) && !isNOU(ele.firstElementChild)) {\n var dataTabIndex = ele.firstElementChild.getAttribute('data-tabindex');\n if (dataTabIndex && dataTabIndex === '-1' && ele.firstElementChild.tagName !== 'INPUT') {\n ele.firstElementChild.setAttribute('tabindex', tabIndex);\n }\n }\n };\n Toolbar.prototype.unwireKeyboardEvent = function () {\n if (this.keyModule) {\n EventHandler.remove(this.element, 'keydown', this.docKeyDown);\n this.keyModule.destroy();\n this.keyModule = null;\n }\n };\n Toolbar.prototype.docKeyDown = function (e) {\n if (e.target.tagName === 'INPUT') {\n return;\n }\n var popCheck = !isNOU(this.popObj) && isVisible(this.popObj.element) && this.overflowMode !== 'Extended';\n if (e.keyCode === 9 && e.target.classList.contains('e-hor-nav') === true && popCheck) {\n this.popObj.hide({ name: 'FadeOut', duration: 100 });\n }\n var keyCheck = (e.keyCode === 40 || e.keyCode === 38 || e.keyCode === 35 || e.keyCode === 36);\n if (keyCheck) {\n e.preventDefault();\n }\n };\n Toolbar.prototype.unwireEvents = function () {\n EventHandler.remove(this.element, 'click', this.clickHandler);\n this.destroyScroll();\n this.unwireKeyboardEvent();\n window.removeEventListener('resize', this.resizeContext);\n EventHandler.remove(document, 'scroll', this.docEvent);\n EventHandler.remove(document, 'click', this.docEvent);\n };\n Toolbar.prototype.clearProperty = function () {\n this.tbarEle = [];\n this.tbarAlgEle = { lefts: [], centers: [], rights: [] };\n };\n Toolbar.prototype.docEvent = function (e) {\n var popEle = closest(e.target, '.e-popup');\n if (this.popObj && isVisible(this.popObj.element) && !popEle && this.overflowMode === 'Popup') {\n this.popObj.hide({ name: 'FadeOut', duration: 100 });\n }\n };\n Toolbar.prototype.destroyScroll = function () {\n if (this.scrollModule) {\n if (this.tbarAlign) {\n this.add(this.scrollModule.element, CLS_TBARPOS);\n }\n this.scrollModule.destroy();\n this.scrollModule = null;\n }\n };\n Toolbar.prototype.destroyItems = function () {\n if (this.element) {\n [].slice.call(this.element.querySelectorAll('.' + CLS_ITEM)).forEach(function (el) { detach(el); });\n }\n if (this.tbarAlign) {\n var tbarItems = this.element.querySelector('.' + CLS_ITEMS);\n [].slice.call(tbarItems.children).forEach(function (el) {\n detach(el);\n });\n this.tbarAlign = false;\n this.remove(tbarItems, CLS_TBARPOS);\n }\n this.clearProperty();\n };\n Toolbar.prototype.destroyMode = function () {\n if (this.scrollModule) {\n this.remove(this.scrollModule.element, CLS_RTL);\n this.destroyScroll();\n }\n this.remove(this.element, CLS_EXTENDEDPOPOPEN);\n this.remove(this.element, CLS_EXTEANDABLE_TOOLBAR);\n var tempEle = this.element.querySelector('.e-toolbar-multirow');\n if (tempEle) {\n this.remove(tempEle, CLS_MULTIROW);\n }\n if (this.popObj) {\n this.popupRefresh(this.popObj.element, true);\n }\n };\n Toolbar.prototype.add = function (ele, val) {\n ele.classList.add(val);\n };\n Toolbar.prototype.remove = function (ele, val) {\n ele.classList.remove(val);\n };\n Toolbar.prototype.elementFocus = function (ele) {\n var fChild = ele.firstElementChild;\n if (fChild) {\n fChild.focus();\n this.activeEleSwitch(ele);\n }\n else {\n ele.focus();\n }\n };\n Toolbar.prototype.clstElement = function (tbrNavChk, trgt) {\n var clst;\n if (tbrNavChk && this.popObj && isVisible(this.popObj.element)) {\n clst = this.popObj.element.querySelector('.' + CLS_ITEM);\n }\n else if (this.element === trgt || tbrNavChk) {\n clst = this.element.querySelector('.' + CLS_ITEM + ':not(.' + CLS_DISABLE + ' ):not(.' + CLS_SEPARATOR + ' ):not(.' + CLS_HIDDEN + ' )');\n }\n else {\n clst = closest(trgt, '.' + CLS_ITEM);\n }\n return clst;\n };\n Toolbar.prototype.keyHandling = function (clst, e, trgt, navChk, scrollChk) {\n var popObj = this.popObj;\n var rootEle = this.element;\n var popAnimate = { name: 'FadeOut', duration: 100 };\n var value = e.action === 'moveUp' ? 'previous' : 'next';\n var ele;\n var nodes;\n switch (e.action) {\n case 'moveRight':\n if (this.isVertical) {\n return;\n }\n if (rootEle === trgt) {\n this.elementFocus(clst);\n }\n else if (!navChk) {\n this.eleFocus(clst, 'next');\n }\n break;\n case 'moveLeft':\n if (this.isVertical) {\n return;\n }\n if (!navChk) {\n this.eleFocus(clst, 'previous');\n }\n break;\n case 'home':\n case 'end':\n if (clst) {\n var popupCheck = closest(clst, '.e-popup');\n var extendedPopup = this.element.querySelector('.' + CLS_EXTENDABLECLASS);\n if (this.overflowMode === 'Extended' && extendedPopup && extendedPopup.classList.contains('e-popup-open')) {\n popupCheck = e.action === 'end' ? extendedPopup : null;\n }\n if (popupCheck) {\n if (isVisible(this.popObj.element)) {\n nodes = [].slice.call(popupCheck.children);\n if (e.action === 'home') {\n ele = nodes[0];\n }\n else {\n ele = nodes[nodes.length - 1];\n }\n }\n }\n else {\n nodes = this.element.querySelectorAll('.' + CLS_ITEMS + ' .' + CLS_ITEM + ':not(.' + CLS_SEPARATOR + ')');\n if (e.action === 'home') {\n ele = nodes[0];\n }\n else {\n ele = nodes[nodes.length - 1];\n }\n }\n if (ele) {\n this.elementFocus(ele);\n }\n }\n break;\n case 'moveUp':\n case 'moveDown':\n if (!this.isVertical) {\n if (popObj && closest(trgt, '.e-popup')) {\n var popEle = popObj.element;\n var popFrstEle = popEle.firstElementChild;\n if ((value === 'previous' && popFrstEle === clst)) {\n popEle.lastElementChild.firstChild.focus();\n }\n else if (value === 'next' && popEle.lastElementChild === clst) {\n popFrstEle.firstChild.focus();\n }\n else {\n this.eleFocus(clst, value);\n }\n }\n else if (e.action === 'moveDown' && popObj && isVisible(popObj.element)) {\n this.elementFocus(clst);\n }\n }\n else {\n if (e.action === 'moveUp') {\n this.eleFocus(clst, 'previous');\n }\n else {\n this.eleFocus(clst, 'next');\n }\n }\n break;\n case 'tab':\n if (!scrollChk && !navChk) {\n var ele_1 = clst.firstElementChild;\n if (rootEle === trgt) {\n if (this.activeEle) {\n this.activeEle.focus();\n }\n else {\n this.activeEleRemove(ele_1);\n ele_1.focus();\n }\n }\n }\n break;\n case 'popupClose':\n if (popObj && this.overflowMode !== 'Extended') {\n popObj.hide(popAnimate);\n }\n break;\n case 'popupOpen':\n if (!navChk) {\n return;\n }\n if (popObj && !isVisible(popObj.element)) {\n popObj.element.style.top = rootEle.offsetHeight + 'px';\n popObj.show({ name: 'FadeIn', duration: 100 });\n }\n else {\n popObj.hide(popAnimate);\n }\n break;\n }\n };\n Toolbar.prototype.keyActionHandler = function (e) {\n var trgt = e.target;\n if (trgt.tagName === 'INPUT' || trgt.tagName === 'TEXTAREA' || this.element.classList.contains(CLS_DISABLE)) {\n return;\n }\n e.preventDefault();\n var tbrNavChk = trgt.classList.contains(CLS_TBARNAV);\n var tbarScrollChk = trgt.classList.contains(CLS_TBARSCRLNAV);\n var clst = this.clstElement(tbrNavChk, trgt);\n if (clst || tbarScrollChk) {\n this.keyHandling(clst, e, trgt, tbrNavChk, tbarScrollChk);\n }\n };\n /**\n * Specifies the value to disable/enable the Toolbar component.\n * When set to `true`, the component will be disabled.\n *\n * @param {boolean} value - Based on this Boolean value, Toolbar will be enabled (false) or disabled (true).\n * @returns {void}.\n */\n Toolbar.prototype.disable = function (value) {\n var rootEle = this.element;\n if (value) {\n rootEle.classList.add(CLS_DISABLE);\n }\n else {\n rootEle.classList.remove(CLS_DISABLE);\n }\n if (this.activeEle) {\n this.activeEle.setAttribute('tabindex', this.activeEle.getAttribute('data-tabindex'));\n }\n if (this.scrollModule) {\n this.scrollModule.disable(value);\n }\n if (this.popObj) {\n if (isVisible(this.popObj.element) && this.overflowMode !== 'Extended') {\n this.popObj.hide();\n }\n rootEle.querySelector('#' + rootEle.id + '_nav').setAttribute('tabindex', !value ? '0' : '-1');\n }\n };\n Toolbar.prototype.eleContains = function (el) {\n return el.classList.contains(CLS_SEPARATOR) || el.classList.contains(CLS_DISABLE) || el.getAttribute('disabled') || el.classList.contains(CLS_HIDDEN) || !isVisible(el) || !el.classList.contains(CLS_ITEM);\n };\n Toolbar.prototype.eleFocus = function (closest, pos) {\n var sib = Object(closest)[pos + 'ElementSibling'];\n if (sib) {\n var skipEle = this.eleContains(sib);\n if (skipEle) {\n this.eleFocus(sib, pos);\n return;\n }\n this.elementFocus(sib);\n }\n else if (this.tbarAlign) {\n var elem = Object(closest.parentElement)[pos + 'ElementSibling'];\n if (!isNOU(elem) && elem.children.length === 0) {\n elem = Object(elem)[pos + 'ElementSibling'];\n }\n if (!isNOU(elem) && elem.children.length > 0) {\n if (pos === 'next') {\n var el = elem.querySelector('.' + CLS_ITEM);\n if (this.eleContains(el)) {\n this.eleFocus(el, pos);\n }\n else {\n el.firstElementChild.focus();\n this.activeEleSwitch(el);\n }\n }\n else {\n var el = elem.lastElementChild;\n if (this.eleContains(el)) {\n this.eleFocus(el, pos);\n }\n else {\n this.elementFocus(el);\n }\n }\n }\n }\n else if (!isNOU(closest)) {\n var tbrItems = this.element.querySelectorAll('.' + CLS_ITEMS + ' .' + CLS_ITEM + ':not(.' + CLS_SEPARATOR + ')' + ':not(.' + CLS_DISABLE + ')' + ':not(.' + CLS_HIDDEN + ')');\n if (pos === 'next' && tbrItems) {\n this.elementFocus(tbrItems[0]);\n }\n else if (pos === 'previous' && tbrItems) {\n this.elementFocus(tbrItems[tbrItems.length - 1]);\n }\n }\n };\n Toolbar.prototype.clickHandler = function (e) {\n var _this = this;\n var trgt = e.target;\n var ele = this.element;\n var isPopupElement = !isNOU(closest(trgt, '.' + CLS_POPUPCLASS));\n var clsList = trgt.classList;\n var popupNav = closest(trgt, ('.' + CLS_TBARNAV));\n if (!popupNav) {\n popupNav = trgt;\n }\n if (!ele.children[0].classList.contains('e-hscroll') && !ele.children[0].classList.contains('e-vscroll')\n && (clsList.contains(CLS_TBARNAV))) {\n clsList = trgt.querySelector('.e-icons').classList;\n }\n if (clsList.contains(CLS_POPUPICON) || clsList.contains(CLS_POPUPDOWN)) {\n this.popupClickHandler(ele, popupNav, CLS_RTL);\n }\n var itemObj;\n var clst = closest(e.target, '.' + CLS_ITEM);\n if ((isNOU(clst) || clst.classList.contains(CLS_DISABLE)) && !popupNav.classList.contains(CLS_TBARNAV)) {\n return;\n }\n if (clst) {\n var tempItem = this.items[this.tbarEle.indexOf(clst)];\n itemObj = tempItem;\n }\n var eventArgs = { originalEvent: e, item: itemObj };\n if (itemObj && !isNOU(itemObj.click)) {\n this.trigger('items[' + this.tbarEle.indexOf(clst) + '].click', eventArgs);\n }\n if (!eventArgs.cancel) {\n this.trigger('clicked', eventArgs, function (clickedArgs) {\n if (!isNOU(_this.popObj) && isPopupElement && !clickedArgs.cancel && _this.overflowMode === 'Popup' &&\n clickedArgs.item && clickedArgs.item.type !== 'Input') {\n _this.popObj.hide({ name: 'FadeOut', duration: 100 });\n }\n });\n }\n };\n Toolbar.prototype.popupClickHandler = function (ele, popupNav, CLS_RTL) {\n var popObj = this.popObj;\n if (isVisible(popObj.element)) {\n popupNav.classList.remove(CLS_TBARNAVACT);\n popObj.hide({ name: 'FadeOut', duration: 100 });\n }\n else {\n if (ele.classList.contains(CLS_RTL)) {\n popObj.enableRtl = true;\n popObj.position = { X: 'left', Y: 'top' };\n }\n if (popObj.offsetX === 0 && !ele.classList.contains(CLS_RTL)) {\n popObj.enableRtl = false;\n popObj.position = { X: 'right', Y: 'top' };\n }\n popObj.dataBind();\n popObj.refreshPosition();\n popObj.element.style.top = this.getElementOffsetY() + 'px';\n if (this.overflowMode === 'Extended') {\n popObj.element.style.minHeight = '0px';\n }\n popupNav.classList.add(CLS_TBARNAVACT);\n popObj.show({ name: 'FadeIn', duration: 100 });\n }\n };\n /**\n * To Initialize the control rendering\n *\n * @private\n * @returns {void}\n */\n Toolbar.prototype.render = function () {\n this.initialize();\n this.renderControl();\n this.wireEvents();\n this.renderComplete();\n };\n Toolbar.prototype.initialize = function () {\n var width = formatUnit(this.width);\n var height = formatUnit(this.height);\n if (Browser.info.name !== 'msie' || this.height !== 'auto' || this.overflowMode === 'MultiRow') {\n setStyle(this.element, { 'height': height });\n }\n setStyle(this.element, { 'width': width });\n var ariaAttr = {\n 'role': 'toolbar', 'aria-disabled': 'false',\n 'aria-orientation': !this.isVertical ? 'horizontal' : 'vertical'\n };\n attributes(this.element, ariaAttr);\n if (this.cssClass) {\n addClass([this.element], this.cssClass.split(' '));\n }\n };\n Toolbar.prototype.renderControl = function () {\n var ele = this.element;\n this.trgtEle = (ele.children.length > 0) ? ele.querySelector('div') : null;\n this.tbarAlgEle = { lefts: [], centers: [], rights: [] };\n this.renderItems();\n this.renderLayout();\n };\n Toolbar.prototype.renderLayout = function () {\n this.renderOverflowMode();\n if (this.tbarAlign) {\n this.itemPositioning();\n }\n if (this.popObj && this.popObj.element.childElementCount > 1 && this.checkPopupRefresh(this.element, this.popObj.element)) {\n this.popupRefresh(this.popObj.element, false);\n }\n this.separator();\n };\n Toolbar.prototype.itemsAlign = function (items, itemEleDom) {\n var innerItem;\n var innerPos;\n if (!this.tbarEle) {\n this.tbarEle = [];\n }\n for (var i = 0; i < items.length; i++) {\n innerItem = this.renderSubComponent(items[parseInt(i.toString(), 10)], i);\n if (this.tbarEle.indexOf(innerItem) === -1) {\n this.tbarEle.push(innerItem);\n }\n if (!this.tbarAlign) {\n this.tbarItemAlign(items[parseInt(i.toString(), 10)], itemEleDom, i);\n }\n innerPos = itemEleDom.querySelector('.e-toolbar-' + items[parseInt(i.toString(), 10)].align.toLowerCase());\n if (innerPos) {\n if (!(items[parseInt(i.toString(), 10)].showAlwaysInPopup && items[parseInt(i.toString(), 10)].overflow !== 'Show')) {\n this.tbarAlgEle[(items[parseInt(i.toString(), 10)].align + 's').toLowerCase()].push(innerItem);\n }\n innerPos.appendChild(innerItem);\n }\n else {\n itemEleDom.appendChild(innerItem);\n }\n }\n if (this.isReact) {\n var portals = 'portals';\n this.notify('render-react-toolbar-template', this[\"\" + portals]);\n this.renderReactTemplates();\n }\n };\n /**\n * @hidden\n * @returns {void}\n */\n Toolbar.prototype.changeOrientation = function () {\n var ele = this.element;\n if (this.isVertical) {\n ele.classList.remove(CLS_VERTICAL);\n this.isVertical = false;\n if (this.height === 'auto' || this.height === '100%') {\n ele.style.height = this.height;\n }\n ele.setAttribute('aria-orientation', 'horizontal');\n }\n else {\n ele.classList.add(CLS_VERTICAL);\n this.isVertical = true;\n ele.setAttribute('aria-orientation', 'vertical');\n setStyle(this.element, { 'height': formatUnit(this.height), 'width': formatUnit(this.width) });\n }\n this.destroyMode();\n this.refreshOverflow();\n };\n Toolbar.prototype.initScroll = function (element, innerItems) {\n if (!this.scrollModule && this.checkOverflow(element, innerItems[0])) {\n if (this.tbarAlign) {\n this.element.querySelector('.' + CLS_ITEMS + ' .' + CLS_TBARCENTER).removeAttribute('style');\n }\n if (this.isVertical) {\n this.scrollModule = new VScroll({ scrollStep: this.scrollStep, enableRtl: this.enableRtl }, innerItems[0]);\n }\n else {\n this.scrollModule = new HScroll({ scrollStep: this.scrollStep, enableRtl: this.enableRtl }, innerItems[0]);\n }\n if (this.cssClass) {\n addClass([innerItems[0]], this.cssClass.split(' '));\n }\n this.remove(this.scrollModule.element, CLS_TBARPOS);\n setStyle(this.element, { overflow: 'hidden' });\n }\n };\n Toolbar.prototype.itemWidthCal = function (items) {\n var _this = this;\n var width = 0;\n var style;\n [].slice.call(selectAll('.' + CLS_ITEM, items)).forEach(function (el) {\n if (isVisible(el)) {\n style = window.getComputedStyle(el);\n width += _this.isVertical ? el.offsetHeight : el.offsetWidth;\n width += parseFloat(_this.isVertical ? style.marginTop : style.marginRight);\n width += parseFloat(_this.isVertical ? style.marginBottom : style.marginLeft);\n }\n });\n return width;\n };\n Toolbar.prototype.getScrollCntEle = function (innerItem) {\n var trgClass = (this.isVertical) ? '.e-vscroll-content' : '.e-hscroll-content';\n return innerItem.querySelector(trgClass);\n };\n Toolbar.prototype.checkOverflow = function (element, innerItem) {\n if (isNOU(element) || isNOU(innerItem) || !isVisible(element)) {\n return false;\n }\n var eleWidth = this.isVertical ? element.offsetHeight : element.offsetWidth;\n var itemWidth = this.isVertical ? innerItem.offsetHeight : innerItem.offsetWidth;\n if (this.tbarAlign || this.scrollModule || (eleWidth === itemWidth)) {\n itemWidth = this.itemWidthCal(this.scrollModule ? this.getScrollCntEle(innerItem) : innerItem);\n }\n var popNav = element.querySelector('.' + CLS_TBARNAV);\n var scrollNav = element.querySelector('.' + CLS_TBARSCRLNAV);\n var navEleWidth = 0;\n if (popNav) {\n navEleWidth = this.isVertical ? popNav.offsetHeight : popNav.offsetWidth;\n }\n else if (scrollNav) {\n navEleWidth = this.isVertical ? (scrollNav.offsetHeight * (2)) : (scrollNav.offsetWidth * 2);\n }\n if (itemWidth > eleWidth - navEleWidth) {\n return true;\n }\n else {\n return false;\n }\n };\n /**\n * Refresh the whole Toolbar component without re-rendering.\n * - It is used to manually refresh the Toolbar overflow modes such as scrollable, popup, multi row, and extended.\n * - It will refresh the Toolbar component after loading items dynamically.\n *\n * @returns {void}.\n */\n Toolbar.prototype.refreshOverflow = function () {\n this.resize();\n };\n Toolbar.prototype.toolbarAlign = function (innerItems) {\n if (this.tbarAlign) {\n this.add(innerItems, CLS_TBARPOS);\n this.itemPositioning();\n }\n };\n Toolbar.prototype.renderOverflowMode = function () {\n var ele = this.element;\n var innerItems = ele.querySelector('.' + CLS_ITEMS);\n var priorityCheck = this.popupPriCount > 0;\n if (ele && ele.children.length > 0) {\n this.offsetWid = ele.offsetWidth;\n this.remove(this.element, 'e-toolpop');\n if (Browser.info.name === 'msie' && this.height === 'auto') {\n ele.style.height = '';\n }\n switch (this.overflowMode) {\n case 'Scrollable':\n if (isNOU(this.scrollModule)) {\n this.initScroll(ele, [].slice.call(ele.getElementsByClassName(CLS_ITEMS)));\n }\n break;\n case 'Popup':\n this.add(this.element, 'e-toolpop');\n if (this.tbarAlign) {\n this.removePositioning();\n }\n if (this.checkOverflow(ele, innerItems) || priorityCheck) {\n this.setOverflowAttributes(ele);\n }\n this.toolbarAlign(innerItems);\n break;\n case 'MultiRow':\n this.add(innerItems, CLS_MULTIROW);\n if (this.checkOverflow(ele, innerItems) && this.tbarAlign) {\n this.removePositioning();\n this.add(innerItems, CLS_MULTIROWPOS);\n }\n if (ele.style.overflow === 'hidden') {\n ele.style.overflow = '';\n }\n if (Browser.info.name === 'msie' || ele.style.height !== 'auto') {\n ele.style.height = 'auto';\n }\n break;\n case 'Extended':\n this.add(this.element, CLS_EXTEANDABLE_TOOLBAR);\n if (this.checkOverflow(ele, innerItems) || priorityCheck) {\n if (this.tbarAlign) {\n this.removePositioning();\n }\n this.setOverflowAttributes(ele);\n }\n this.toolbarAlign(innerItems);\n }\n }\n };\n Toolbar.prototype.setOverflowAttributes = function (ele) {\n this.createPopupEle(ele, [].slice.call(selectAll('.' + CLS_ITEMS + ' .' + CLS_ITEM, ele)));\n var ariaAttr = {\n 'tabindex': '0', 'role': 'button', 'aria-haspopup': 'true',\n 'aria-label': 'overflow'\n };\n attributes(this.element.querySelector('.' + CLS_TBARNAV), ariaAttr);\n };\n Toolbar.prototype.separator = function () {\n var element = this.element;\n var eleItem = [].slice.call(element.querySelectorAll('.' + CLS_SEPARATOR));\n var multiVar = element.querySelector('.' + CLS_MULTIROW_SEPARATOR);\n var extendVar = element.querySelector('.' + CLS_EXTENDABLE_SEPARATOR);\n var eleInlineItem = this.overflowMode === 'MultiRow' ? multiVar : extendVar;\n if (eleInlineItem !== null) {\n if (this.overflowMode === 'MultiRow') {\n eleInlineItem.classList.remove(CLS_MULTIROW_SEPARATOR);\n }\n else if (this.overflowMode === 'Extended') {\n eleInlineItem.classList.remove(CLS_EXTENDABLE_SEPARATOR);\n }\n }\n for (var i = 0; i <= eleItem.length - 1; i++) {\n if (eleItem[parseInt(i.toString(), 10)].offsetLeft < 30 && eleItem[parseInt(i.toString(), 10)].offsetLeft !== 0) {\n if (this.overflowMode === 'MultiRow') {\n eleItem[parseInt(i.toString(), 10)].classList.add(CLS_MULTIROW_SEPARATOR);\n }\n else if (this.overflowMode === 'Extended') {\n eleItem[parseInt(i.toString(), 10)].classList.add(CLS_EXTENDABLE_SEPARATOR);\n }\n }\n }\n };\n Toolbar.prototype.createPopupEle = function (ele, innerEle) {\n var innerNav = ele.querySelector('.' + CLS_TBARNAV);\n var vertical = this.isVertical;\n if (!innerNav) {\n this.createPopupIcon(ele);\n }\n innerNav = ele.querySelector('.' + CLS_TBARNAV);\n var innerNavDom = (vertical ? innerNav.offsetHeight : innerNav.offsetWidth);\n var eleWidth = ((vertical ? ele.offsetHeight : ele.offsetWidth) - (innerNavDom));\n this.element.classList.remove('e-rtl');\n setStyle(this.element, { direction: 'initial' });\n this.checkPriority(ele, innerEle, eleWidth, true);\n if (this.enableRtl) {\n this.element.classList.add('e-rtl');\n }\n this.element.style.removeProperty('direction');\n this.createPopup();\n };\n Toolbar.prototype.pushingPoppedEle = function (tbarObj, popupPri, ele, eleHeight, sepHeight) {\n var element = tbarObj.element;\n var poppedEle = [].slice.call(selectAll('.' + CLS_POPUP, element.querySelector('.' + CLS_ITEMS)));\n var nodes = selectAll('.' + CLS_TBAROVERFLOW, ele);\n var nodeIndex = 0;\n var nodePri = 0;\n poppedEle.forEach(function (el, index) {\n nodes = selectAll('.' + CLS_TBAROVERFLOW, ele);\n if (el.classList.contains(CLS_TBAROVERFLOW) && nodes.length > 0) {\n if (tbarObj.tbResize && nodes.length > index) {\n ele.insertBefore(el, nodes[parseInt(index.toString(), 10)]);\n ++nodePri;\n }\n else {\n ele.insertBefore(el, ele.children[nodes.length]);\n ++nodePri;\n }\n }\n else if (el.classList.contains(CLS_TBAROVERFLOW)) {\n ele.insertBefore(el, ele.firstChild);\n ++nodePri;\n }\n else if (tbarObj.tbResize && el.classList.contains(CLS_POPOVERFLOW) && ele.children.length > 0 && nodes.length === 0) {\n ele.insertBefore(el, ele.firstChild);\n ++nodePri;\n }\n else if (el.classList.contains(CLS_POPOVERFLOW)) {\n popupPri.push(el);\n }\n else if (tbarObj.tbResize) {\n ele.insertBefore(el, ele.childNodes[nodeIndex + nodePri]);\n ++nodeIndex;\n }\n else {\n ele.appendChild(el);\n }\n if (el.classList.contains(CLS_SEPARATOR)) {\n setStyle(el, { display: '', height: sepHeight + 'px' });\n }\n else {\n setStyle(el, { display: '', height: eleHeight + 'px' });\n }\n });\n popupPri.forEach(function (el) {\n ele.appendChild(el);\n });\n var tbarEle = selectAll('.' + CLS_ITEM, element.querySelector('.' + CLS_ITEMS));\n for (var i = tbarEle.length - 1; i >= 0; i--) {\n var tbarElement = tbarEle[parseInt(i.toString(), 10)];\n if (tbarElement.classList.contains(CLS_SEPARATOR) && this.overflowMode !== 'Extended') {\n setStyle(tbarElement, { display: 'none' });\n }\n else {\n break;\n }\n }\n };\n Toolbar.prototype.createPopup = function () {\n var element = this.element;\n var sepHeight;\n var sepItem;\n if (this.overflowMode === 'Extended') {\n sepItem = element.querySelector('.' + CLS_SEPARATOR + ':not(.' + CLS_POPUP + ')');\n sepHeight = (element.style.height === 'auto' || element.style.height === '') ? null : sepItem.offsetHeight;\n }\n var eleItem = element.querySelector('.' + CLS_ITEM + ':not(.' + CLS_SEPARATOR + '):not(.' + CLS_POPUP + ')');\n var eleHeight = (element.style.height === 'auto' || element.style.height === '') ? null : (eleItem && eleItem.offsetHeight);\n var ele;\n var popupPri = [];\n if (select('#' + element.id + '_popup.' + CLS_POPUPCLASS, element)) {\n ele = select('#' + element.id + '_popup.' + CLS_POPUPCLASS, element);\n }\n else {\n var extendEle = this.createElement('div', {\n id: element.id + '_popup', className: CLS_POPUPCLASS + ' ' + CLS_EXTENDABLECLASS\n });\n var popupEle = this.createElement('div', { id: element.id + '_popup', className: CLS_POPUPCLASS });\n ele = this.overflowMode === 'Extended' ? extendEle : popupEle;\n }\n this.pushingPoppedEle(this, popupPri, ele, eleHeight, sepHeight);\n this.popupInit(element, ele);\n };\n Toolbar.prototype.getElementOffsetY = function () {\n return (this.overflowMode === 'Extended' && window.getComputedStyle(this.element).getPropertyValue('box-sizing') === 'border-box' ?\n this.element.clientHeight : this.element.offsetHeight);\n };\n Toolbar.prototype.popupInit = function (element, ele) {\n if (!this.popObj) {\n element.appendChild(ele);\n if (this.cssClass) {\n addClass([ele], this.cssClass.split(' '));\n }\n setStyle(this.element, { overflow: '' });\n var eleStyles = window.getComputedStyle(this.element);\n var popup = new Popup(null, {\n relateTo: this.element,\n offsetY: (this.isVertical) ? 0 : this.getElementOffsetY(),\n enableRtl: this.enableRtl,\n open: this.popupOpen.bind(this),\n close: this.popupClose.bind(this),\n collision: { Y: this.enableCollision ? 'flip' : 'none' },\n position: this.enableRtl ? { X: 'left', Y: 'top' } : { X: 'right', Y: 'top' }\n });\n if (this.overflowMode === 'Extended') {\n popup.width = parseFloat(eleStyles.width) + ((parseFloat(eleStyles.borderRightWidth)) * 2);\n popup.offsetX = 0;\n }\n popup.appendTo(ele);\n EventHandler.add(document, 'scroll', this.docEvent.bind(this));\n EventHandler.add(document, 'click ', this.docEvent.bind(this));\n popup.element.style.maxHeight = popup.element.offsetHeight + 'px';\n if (this.isVertical) {\n popup.element.style.visibility = 'hidden';\n }\n if (this.isExtendedOpen) {\n var popupNav = this.element.querySelector('.' + CLS_TBARNAV);\n popupNav.classList.add(CLS_TBARNAVACT);\n classList(popupNav.firstElementChild, [CLS_POPUPICON], [CLS_POPUPDOWN]);\n this.element.querySelector('.' + CLS_EXTENDABLECLASS).classList.add(CLS_POPUPOPEN);\n }\n else {\n popup.hide();\n }\n this.popObj = popup;\n }\n else {\n var popupEle = this.popObj.element;\n setStyle(popupEle, { maxHeight: '', display: 'block' });\n setStyle(popupEle, { maxHeight: popupEle.offsetHeight + 'px', display: '' });\n }\n };\n Toolbar.prototype.tbarPopupHandler = function (isOpen) {\n if (this.overflowMode === 'Extended') {\n if (isOpen) {\n this.add(this.element, CLS_EXTENDEDPOPOPEN);\n }\n else {\n this.remove(this.element, CLS_EXTENDEDPOPOPEN);\n }\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n Toolbar.prototype.popupOpen = function (e) {\n var popObj = this.popObj;\n if (!this.isVertical) {\n popObj.offsetY = this.getElementOffsetY();\n popObj.dataBind();\n }\n var popupEle = this.popObj.element;\n var toolEle = this.popObj.element.parentElement;\n var popupNav = toolEle.querySelector('.' + CLS_TBARNAV);\n popupNav.setAttribute('aria-expanded', 'true');\n setStyle(popObj.element, { height: 'auto', maxHeight: '' });\n popObj.element.style.maxHeight = popObj.element.offsetHeight + 'px';\n if (this.overflowMode === 'Extended') {\n popObj.element.style.minHeight = '';\n }\n var popupElePos = popupEle.offsetTop + popupEle.offsetHeight + calculatePosition(toolEle).top;\n var popIcon = popupNav.firstElementChild;\n popupNav.classList.add(CLS_TBARNAVACT);\n classList(popIcon, [CLS_POPUPICON], [CLS_POPUPDOWN]);\n this.tbarPopupHandler(true);\n var scrollVal = isNOU(window.scrollY) ? 0 : window.scrollY;\n if (!this.isVertical && ((window.innerHeight + scrollVal) < popupElePos) && (this.element.offsetTop < popupEle.offsetHeight)) {\n var overflowHeight = (popupEle.offsetHeight - ((popupElePos - window.innerHeight - scrollVal) + 5));\n popObj.height = overflowHeight + 'px';\n for (var i = 0; i <= popupEle.childElementCount; i++) {\n var ele = popupEle.children[parseInt(i.toString(), 10)];\n if (ele.offsetTop + ele.offsetHeight > overflowHeight) {\n overflowHeight = ele.offsetTop;\n break;\n }\n }\n setStyle(popObj.element, { maxHeight: overflowHeight + 'px' });\n }\n else if (this.isVertical) {\n var tbEleData = this.element.getBoundingClientRect();\n setStyle(popObj.element, { maxHeight: (tbEleData.top + this.element.offsetHeight) + 'px', bottom: 0, visibility: '' });\n }\n if (popObj) {\n var popupOffset = popupEle.getBoundingClientRect();\n if (popupOffset.right > document.documentElement.clientWidth && popupOffset.width > toolEle.getBoundingClientRect().width) {\n popObj.collision = { Y: 'none' };\n popObj.dataBind();\n }\n popObj.refreshPosition();\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n Toolbar.prototype.popupClose = function (e) {\n var element = this.element;\n var popupNav = element.querySelector('.' + CLS_TBARNAV);\n popupNav.setAttribute('aria-expanded', 'false');\n var popIcon = popupNav.firstElementChild;\n popupNav.classList.remove(CLS_TBARNAVACT);\n classList(popIcon, [CLS_POPUPDOWN], [CLS_POPUPICON]);\n this.tbarPopupHandler(false);\n };\n Toolbar.prototype.checkPriority = function (ele, inEle, eleWidth, pre) {\n var popPriority = this.popupPriCount > 0;\n var len = inEle.length;\n var eleWid = eleWidth;\n var eleOffset;\n var checkoffset;\n var sepCheck = 0;\n var itemCount = 0;\n var itemPopCount = 0;\n var checkClass = function (ele, val) {\n var rVal = false;\n val.forEach(function (cls) {\n if (ele.classList.contains(cls)) {\n rVal = true;\n }\n });\n return rVal;\n };\n for (var i = len - 1; i >= 0; i--) {\n var mrgn = void 0;\n var compuStyle = window.getComputedStyle(inEle[parseInt(i.toString(), 10)]);\n if (this.isVertical) {\n mrgn = parseFloat((compuStyle).marginTop);\n mrgn += parseFloat((compuStyle).marginBottom);\n }\n else {\n mrgn = parseFloat((compuStyle).marginRight);\n mrgn += parseFloat((compuStyle).marginLeft);\n }\n var fstEleCheck = inEle[parseInt(i.toString(), 10)] === this.tbarEle[0];\n if (fstEleCheck) {\n this.tbarEleMrgn = mrgn;\n }\n eleOffset = this.isVertical ? inEle[parseInt(i.toString(), 10)].offsetHeight : inEle[parseInt(i.toString(), 10)].offsetWidth;\n var eleWid_1 = fstEleCheck ? (eleOffset + mrgn) : eleOffset;\n if (checkClass(inEle[parseInt(i.toString(), 10)], [CLS_POPPRI]) && popPriority) {\n inEle[parseInt(i.toString(), 10)].classList.add(CLS_POPUP);\n if (this.isVertical) {\n setStyle(inEle[parseInt(i.toString(), 10)], { display: 'none', minHeight: eleWid_1 + 'px' });\n }\n else {\n setStyle(inEle[parseInt(i.toString(), 10)], { display: 'none', minWidth: eleWid_1 + 'px' });\n }\n itemPopCount++;\n }\n if (this.isVertical) {\n checkoffset =\n (inEle[parseInt(i.toString(), 10)].offsetTop + inEle[parseInt(i.toString(), 10)].offsetHeight + mrgn) > eleWidth;\n }\n else {\n checkoffset =\n (inEle[parseInt(i.toString(), 10)].offsetLeft + inEle[parseInt(i.toString(), 10)].offsetWidth + mrgn) > eleWidth;\n }\n if (checkoffset) {\n if (inEle[parseInt(i.toString(), 10)].classList.contains(CLS_SEPARATOR)) {\n if (this.overflowMode === 'Extended') {\n if (itemCount === itemPopCount) {\n var sepEle = inEle[parseInt(i.toString(), 10)];\n if (checkClass(sepEle, [CLS_SEPARATOR, CLS_TBARIGNORE])) {\n inEle[parseInt(i.toString(), 10)].classList.add(CLS_POPUP);\n itemPopCount++;\n }\n }\n itemCount++;\n }\n else if (this.overflowMode === 'Popup') {\n if (sepCheck > 0 && itemCount === itemPopCount) {\n var sepEle = inEle[i + itemCount + (sepCheck - 1)];\n if (checkClass(sepEle, [CLS_SEPARATOR, CLS_TBARIGNORE])) {\n setStyle(sepEle, { display: 'none' });\n }\n }\n sepCheck++;\n itemCount = 0;\n itemPopCount = 0;\n }\n }\n else {\n itemCount++;\n }\n if (inEle[parseInt(i.toString(), 10)].classList.contains(CLS_TBAROVERFLOW) && pre) {\n eleWidth -= ((this.isVertical ? inEle[parseInt(i.toString(), 10)].offsetHeight :\n inEle[parseInt(i.toString(), 10)].offsetWidth) + (mrgn));\n }\n else if (!checkClass(inEle[parseInt(i.toString(), 10)], [CLS_SEPARATOR, CLS_TBARIGNORE])) {\n inEle[parseInt(i.toString(), 10)].classList.add(CLS_POPUP);\n if (this.isVertical) {\n setStyle(inEle[parseInt(i.toString(), 10)], { display: 'none', minHeight: eleWid_1 + 'px' });\n }\n else {\n setStyle(inEle[parseInt(i.toString(), 10)], { display: 'none', minWidth: eleWid_1 + 'px' });\n }\n itemPopCount++;\n }\n else {\n eleWidth -= ((this.isVertical ? inEle[parseInt(i.toString(), 10)].offsetHeight :\n inEle[parseInt(i.toString(), 10)].offsetWidth) + (mrgn));\n }\n }\n }\n if (pre) {\n var popedEle = selectAll('.' + CLS_ITEM + ':not(.' + CLS_POPUP + ')', this.element);\n this.checkPriority(ele, popedEle, eleWid, false);\n }\n };\n Toolbar.prototype.createPopupIcon = function (element) {\n var id = element.id.concat('_nav');\n var className = 'e-' + element.id.concat('_nav ' + CLS_POPUPNAV);\n className = this.overflowMode === 'Extended' ? className + ' ' + CLS_EXTENDPOPUP : className;\n var nav = this.createElement('div', { id: id, className: className });\n if (Browser.info.name === 'msie' || Browser.info.name === 'edge') {\n nav.classList.add('e-ie-align');\n }\n var navItem = this.createElement('div', { className: CLS_POPUPDOWN + ' e-icons' });\n nav.appendChild(navItem);\n nav.setAttribute('tabindex', '0');\n nav.setAttribute('role', 'button');\n element.appendChild(nav);\n };\n Toolbar.prototype.tbarPriRef = function (inEle, indx, sepPri, el, des, elWid, wid, ig) {\n var ignoreCount = ig;\n var popEle = this.popObj.element;\n var query = '.' + CLS_ITEM + ':not(.' + CLS_SEPARATOR + '):not(.' + CLS_TBAROVERFLOW + ')';\n var priEleCnt = selectAll('.' + CLS_POPUP + ':not(.' + CLS_TBAROVERFLOW + ')', popEle).length;\n var checkClass = function (ele, val) {\n return ele.classList.contains(val);\n };\n if (selectAll(query, inEle).length === 0) {\n var eleSep = inEle.children[indx - (indx - sepPri) - 1];\n var ignoreCheck = (!isNOU(eleSep) && checkClass(eleSep, CLS_TBARIGNORE));\n if ((!isNOU(eleSep) && checkClass(eleSep, CLS_SEPARATOR) && !isVisible(eleSep)) || ignoreCheck) {\n var sepDisplay = 'none';\n eleSep.style.display = 'inherit';\n var eleSepWidth = eleSep.offsetWidth + (parseFloat(window.getComputedStyle(eleSep).marginRight) * 2);\n var prevSep = eleSep.previousElementSibling;\n if ((elWid + eleSepWidth) < wid || des) {\n inEle.insertBefore(el, inEle.children[(indx + ignoreCount) - (indx - sepPri)]);\n if (!isNOU(prevSep)) {\n prevSep.style.display = '';\n }\n }\n else {\n if (prevSep.classList.contains(CLS_SEPARATOR)) {\n prevSep.style.display = sepDisplay;\n }\n }\n eleSep.style.display = '';\n }\n else {\n inEle.insertBefore(el, inEle.children[(indx + ignoreCount) - (indx - sepPri)]);\n }\n }\n else {\n inEle.insertBefore(el, inEle.children[(indx + ignoreCount) - priEleCnt]);\n }\n };\n Toolbar.prototype.popupRefresh = function (popupEle, destroy) {\n var _this = this;\n var ele = this.element;\n var isVer = this.isVertical;\n var innerEle = ele.querySelector('.' + CLS_ITEMS);\n var popNav = ele.querySelector('.' + CLS_TBARNAV);\n if (isNOU(popNav)) {\n return;\n }\n innerEle.removeAttribute('style');\n popupEle.style.display = 'block';\n var dimension;\n if (isVer) {\n dimension = ele.offsetHeight - (popNav.offsetHeight + innerEle.offsetHeight);\n }\n else {\n dimension = ele.offsetWidth - (popNav.offsetWidth + innerEle.offsetWidth);\n }\n var popupEleWidth = 0;\n [].slice.call(popupEle.children).forEach(function (el) {\n popupEleWidth += _this.popupEleWidth(el);\n setStyle(el, { 'position': '' });\n });\n if ((dimension + (isVer ? popNav.offsetHeight : popNav.offsetWidth)) > (popupEleWidth) && this.popupPriCount === 0) {\n destroy = true;\n }\n this.popupEleRefresh(dimension, popupEle, destroy);\n popupEle.style.display = '';\n if (popupEle.children.length === 0 && popNav && this.popObj) {\n detach(popNav);\n popNav = null;\n this.popObj.destroy();\n detach(this.popObj.element);\n this.popObj = null;\n }\n };\n Toolbar.prototype.ignoreEleFetch = function (index, innerEle) {\n var ignoreEle = [].slice.call(innerEle.querySelectorAll('.' + CLS_TBARIGNORE));\n var ignoreInx = [];\n var count = 0;\n if (ignoreEle.length > 0) {\n ignoreEle.forEach(function (ele) {\n ignoreInx.push([].slice.call(innerEle.children).indexOf(ele));\n });\n }\n else {\n return 0;\n }\n ignoreInx.forEach(function (val) {\n if (val <= index) {\n count++;\n }\n });\n return count;\n };\n Toolbar.prototype.checkPopupRefresh = function (root, popEle) {\n popEle.style.display = 'block';\n var elWid = this.popupEleWidth(popEle.firstElementChild);\n popEle.firstElementChild.style.removeProperty('Position');\n var tbarWidth = root.offsetWidth - root.querySelector('.' + CLS_TBARNAV).offsetWidth;\n var tbarItemsWid = root.querySelector('.' + CLS_ITEMS).offsetWidth;\n popEle.style.removeProperty('display');\n if (tbarWidth > (elWid + tbarItemsWid)) {\n return true;\n }\n return false;\n };\n Toolbar.prototype.popupEleWidth = function (el) {\n el.style.position = 'absolute';\n var elWidth = this.isVertical ? el.offsetHeight : el.offsetWidth;\n var btnText = el.querySelector('.' + CLS_TBARBTNTEXT);\n if (el.classList.contains('e-tbtn-align') || el.classList.contains(CLS_TBARTEXT)) {\n var btn = el.children[0];\n if (!isNOU(btnText) && el.classList.contains(CLS_TBARTEXT)) {\n btnText.style.display = 'none';\n }\n else if (!isNOU(btnText) && el.classList.contains(CLS_POPUPTEXT)) {\n btnText.style.display = 'block';\n }\n btn.style.minWidth = '0%';\n elWidth = parseFloat(!this.isVertical ? el.style.minWidth : el.style.minHeight);\n btn.style.minWidth = '';\n btn.style.minHeight = '';\n if (!isNOU(btnText)) {\n btnText.style.display = '';\n }\n }\n return elWidth;\n };\n Toolbar.prototype.popupEleRefresh = function (width, popupEle, destroy) {\n var popPriority = this.popupPriCount > 0;\n var eleSplice = this.tbarEle;\n var priEleCnt;\n var index;\n var innerEle = this.element.querySelector('.' + CLS_ITEMS);\n var ignoreCount = 0;\n var _loop_1 = function (el) {\n if (el.classList.contains(CLS_POPPRI) && popPriority && !destroy) {\n return \"continue\";\n }\n var elWidth = this_1.popupEleWidth(el);\n if (el === this_1.tbarEle[0]) {\n elWidth += this_1.tbarEleMrgn;\n }\n el.style.position = '';\n if (elWidth < width || destroy) {\n setStyle(el, { minWidth: '', height: '', minHeight: '' });\n if (!el.classList.contains(CLS_POPOVERFLOW)) {\n el.classList.remove(CLS_POPUP);\n }\n index = this_1.tbarEle.indexOf(el);\n if (this_1.tbarAlign) {\n var pos = this_1.items[parseInt(index.toString(), 10)].align;\n index = this_1.tbarAlgEle[(pos + 's').toLowerCase()].indexOf(el);\n eleSplice = this_1.tbarAlgEle[(pos + 's').toLowerCase()];\n innerEle = this_1.element.querySelector('.' + CLS_ITEMS + ' .' + 'e-toolbar-' + pos.toLowerCase());\n }\n var sepBeforePri_1 = 0;\n if (this_1.overflowMode !== 'Extended') {\n eleSplice.slice(0, index).forEach(function (el) {\n if (el.classList.contains(CLS_TBAROVERFLOW) || el.classList.contains(CLS_SEPARATOR)) {\n if (el.classList.contains(CLS_SEPARATOR)) {\n el.style.display = '';\n width -= el.offsetWidth;\n }\n sepBeforePri_1++;\n }\n });\n }\n ignoreCount = this_1.ignoreEleFetch(index, innerEle);\n if (el.classList.contains(CLS_TBAROVERFLOW)) {\n this_1.tbarPriRef(innerEle, index, sepBeforePri_1, el, destroy, elWidth, width, ignoreCount);\n width -= el.offsetWidth;\n }\n else if (index === 0) {\n innerEle.insertBefore(el, innerEle.firstChild);\n width -= el.offsetWidth;\n }\n else {\n priEleCnt = selectAll('.' + CLS_TBAROVERFLOW, this_1.popObj.element).length;\n innerEle.insertBefore(el, innerEle.children[(index + ignoreCount) - priEleCnt]);\n width -= el.offsetWidth;\n }\n el.style.height = '';\n }\n else {\n return \"break\";\n }\n };\n var this_1 = this;\n for (var _i = 0, _a = [].slice.call(popupEle.children); _i < _a.length; _i++) {\n var el = _a[_i];\n var state_1 = _loop_1(el);\n if (state_1 === \"break\")\n break;\n }\n var checkOverflow = this.checkOverflow(this.element, this.element.getElementsByClassName(CLS_ITEMS)[0]);\n if (checkOverflow && !destroy) {\n this.renderOverflowMode();\n }\n };\n Toolbar.prototype.removePositioning = function () {\n var item = this.element.querySelector('.' + CLS_ITEMS);\n if (isNOU(item) || !item.classList.contains(CLS_TBARPOS)) {\n return;\n }\n this.remove(item, CLS_TBARPOS);\n var innerItem = [].slice.call(item.childNodes);\n innerItem[1].removeAttribute('style');\n innerItem[2].removeAttribute('style');\n };\n Toolbar.prototype.refreshPositioning = function () {\n var item = this.element.querySelector('.' + CLS_ITEMS);\n this.add(item, CLS_TBARPOS);\n this.itemPositioning();\n };\n Toolbar.prototype.itemPositioning = function () {\n var item = this.element.querySelector('.' + CLS_ITEMS);\n var margin;\n if (isNOU(item) || !item.classList.contains(CLS_TBARPOS)) {\n return;\n }\n var popupNav = this.element.querySelector('.' + CLS_TBARNAV);\n var innerItem;\n if (this.scrollModule) {\n var trgClass = (this.isVertical) ? CLS_VSCROLLCNT : CLS_HSCROLLCNT;\n innerItem = [].slice.call(item.querySelector('.' + trgClass).children);\n }\n else {\n innerItem = [].slice.call(item.childNodes);\n }\n if (this.isVertical) {\n margin = innerItem[0].offsetHeight + innerItem[2].offsetHeight;\n }\n else {\n margin = innerItem[0].offsetWidth + innerItem[2].offsetWidth;\n }\n var tbarWid = this.isVertical ? this.element.offsetHeight : this.element.offsetWidth;\n if (popupNav) {\n tbarWid -= (this.isVertical ? popupNav.offsetHeight : popupNav.offsetWidth);\n var popWid = (this.isVertical ? popupNav.offsetHeight : popupNav.offsetWidth) + 'px';\n innerItem[2].removeAttribute('style');\n if (this.isVertical) {\n if (this.enableRtl) {\n innerItem[2].style.top = popWid;\n }\n else {\n innerItem[2].style.bottom = popWid;\n }\n }\n else {\n if (this.enableRtl) {\n innerItem[2].style.left = popWid;\n }\n else {\n innerItem[2].style.right = popWid;\n }\n }\n }\n if (tbarWid <= margin) {\n return;\n }\n var value = (((tbarWid - margin)) - (!this.isVertical ? innerItem[1].offsetWidth : innerItem[1].offsetHeight)) / 2;\n innerItem[1].removeAttribute('style');\n var mrgn = ((!this.isVertical ? innerItem[0].offsetWidth : innerItem[0].offsetHeight) + value) + 'px';\n if (this.isVertical) {\n if (this.enableRtl) {\n innerItem[1].style.marginBottom = mrgn;\n }\n else {\n innerItem[1].style.marginTop = mrgn;\n }\n }\n else {\n if (this.enableRtl) {\n innerItem[1].style.marginRight = mrgn;\n }\n else {\n innerItem[1].style.marginLeft = mrgn;\n }\n }\n };\n Toolbar.prototype.tbarItemAlign = function (item, itemEle, pos) {\n var _this = this;\n if (item.showAlwaysInPopup && item.overflow !== 'Show') {\n return;\n }\n var alignDiv = [];\n alignDiv.push(this.createElement('div', { className: CLS_TBARLEFT }));\n alignDiv.push(this.createElement('div', { className: CLS_TBARCENTER }));\n alignDiv.push(this.createElement('div', { className: CLS_TBARRIGHT }));\n if (pos === 0 && item.align !== 'Left') {\n alignDiv.forEach(function (ele) {\n itemEle.appendChild(ele);\n });\n this.tbarAlign = true;\n this.add(itemEle, CLS_TBARPOS);\n }\n else if (item.align !== 'Left') {\n var alignEle = itemEle.childNodes;\n var leftAlign_1 = alignDiv[0];\n [].slice.call(alignEle).forEach(function (el) {\n _this.tbarAlgEle.lefts.push(el);\n leftAlign_1.appendChild(el);\n });\n itemEle.appendChild(leftAlign_1);\n itemEle.appendChild(alignDiv[1]);\n itemEle.appendChild(alignDiv[2]);\n this.tbarAlign = true;\n this.add(itemEle, CLS_TBARPOS);\n }\n };\n Toolbar.prototype.ctrlTemplate = function () {\n var _this = this;\n this.ctrlTem = this.trgtEle.cloneNode(true);\n this.add(this.trgtEle, CLS_ITEMS);\n this.tbarEle = [];\n var innerEle = [].slice.call(this.trgtEle.children);\n innerEle.forEach(function (ele) {\n if (ele.tagName === 'DIV') {\n _this.tbarEle.push(ele);\n ele.setAttribute('aria-disabled', 'false');\n _this.add(ele, CLS_ITEM);\n }\n });\n };\n Toolbar.prototype.renderItems = function () {\n var ele = this.element;\n var items = this.items;\n if (this.trgtEle != null) {\n this.ctrlTemplate();\n }\n else if (ele && items.length > 0) {\n var itemEleDom = void 0;\n if (ele && ele.children.length > 0) {\n itemEleDom = ele.querySelector('.' + CLS_ITEMS);\n }\n if (!itemEleDom) {\n itemEleDom = this.createElement('div', { className: CLS_ITEMS });\n }\n this.itemsAlign(items, itemEleDom);\n ele.appendChild(itemEleDom);\n }\n };\n Toolbar.prototype.setAttr = function (attr, element) {\n var key = Object.keys(attr);\n var keyVal;\n for (var i = 0; i < key.length; i++) {\n keyVal = key[parseInt(i.toString(), 10)];\n if (keyVal === 'class') {\n this.add(element, attr[\"\" + keyVal]);\n }\n else {\n element.setAttribute(keyVal, attr[\"\" + keyVal]);\n }\n }\n };\n /**\n * Enables or disables the specified Toolbar item.\n *\n * @param {number|HTMLElement|NodeList} items - DOM element or an array of items to be enabled or disabled.\n * @param {boolean} isEnable - Boolean value that determines whether the command should be enabled or disabled.\n * By default, `isEnable` is set to true.\n * @returns {void}.\n */\n Toolbar.prototype.enableItems = function (items, isEnable) {\n var elements = items;\n var len = elements.length;\n var ele;\n if (isNOU(isEnable)) {\n isEnable = true;\n }\n var enable = function (isEnable, ele) {\n if (isEnable) {\n ele.classList.remove(CLS_DISABLE);\n ele.setAttribute('aria-disabled', 'false');\n }\n else {\n ele.classList.add(CLS_DISABLE);\n ele.setAttribute('aria-disabled', 'true');\n }\n };\n if (!isNOU(len) && len >= 1) {\n for (var a = 0, element = [].slice.call(elements); a < len; a++) {\n var itemElement = element[parseInt(a.toString(), 10)];\n if (typeof (itemElement) === 'number') {\n ele = this.getElementByIndex(itemElement);\n if (isNOU(ele)) {\n return;\n }\n else {\n elements[parseInt(a.toString(), 10)] = ele;\n }\n }\n else {\n ele = itemElement;\n }\n enable(isEnable, ele);\n }\n if (isEnable) {\n removeClass(elements, CLS_DISABLE);\n }\n else {\n addClass(elements, CLS_DISABLE);\n }\n }\n else {\n if (typeof (elements) === 'number') {\n ele = this.getElementByIndex(elements);\n if (isNOU(ele)) {\n return;\n }\n }\n else {\n ele = items;\n }\n enable(isEnable, ele);\n }\n };\n Toolbar.prototype.getElementByIndex = function (index) {\n if (this.tbarEle[parseInt(index.toString(), 10)]) {\n return this.tbarEle[parseInt(index.toString(), 10)];\n }\n return null;\n };\n /**\n * Adds new items to the Toolbar that accepts an array as Toolbar items.\n *\n * @param {ItemModel[]} items - DOM element or an array of items to be added to the Toolbar.\n * @param {number} index - Number value that determines where the command is to be added. By default, index is 0.\n * @returns {void}.\n */\n Toolbar.prototype.addItems = function (items, index) {\n var innerItems;\n this.extendedOpen();\n var itemsDiv = this.element.querySelector('.' + CLS_ITEMS);\n if (isNOU(itemsDiv)) {\n this.itemsRerender(items);\n return;\n }\n var innerEle;\n var itemAgn = 'Left';\n if (isNOU(index)) {\n index = 0;\n }\n items.forEach(function (e) {\n if (!isNOU(e.align) && e.align !== 'Left' && itemAgn === 'Left') {\n itemAgn = e.align;\n }\n });\n for (var _i = 0, items_1 = items; _i < items_1.length; _i++) {\n var item = items_1[_i];\n if (isNOU(item.type)) {\n item.type = 'Button';\n }\n innerItems = selectAll('.' + CLS_ITEM, this.element);\n item.align = itemAgn;\n innerEle = this.renderSubComponent(item, index);\n if (this.tbarEle.length >= index && innerItems.length >= 0) {\n if (isNOU(this.scrollModule)) {\n this.destroyMode();\n }\n var algIndex = item.align[0] === 'L' ? 0 : item.align[0] === 'C' ? 1 : 2;\n var ele = void 0;\n if (!this.tbarAlign && itemAgn !== 'Left') {\n this.tbarItemAlign(item, itemsDiv, 1);\n this.tbarAlign = true;\n ele = closest(innerItems[0], '.' + CLS_ITEMS).children[parseInt(algIndex.toString(), 10)];\n ele.appendChild(innerEle);\n this.tbarAlgEle[(item.align + 's').toLowerCase()].push(innerEle);\n this.refreshPositioning();\n }\n else if (this.tbarAlign) {\n ele = closest(innerItems[0], '.' + CLS_ITEMS).children[parseInt(algIndex.toString(), 10)];\n ele.insertBefore(innerEle, ele.children[parseInt(index.toString(), 10)]);\n this.tbarAlgEle[(item.align + 's').toLowerCase()].splice(index, 0, innerEle);\n this.refreshPositioning();\n }\n else if (innerItems.length === 0) {\n innerItems = selectAll('.' + CLS_ITEMS, this.element);\n innerItems[0].appendChild(innerEle);\n }\n else {\n innerItems[0].parentNode.insertBefore(innerEle, innerItems[parseInt(index.toString(), 10)]);\n }\n this.items.splice(index, 0, item);\n if (item.template) {\n this.tbarEle.splice(this.tbarEle.length - 1, 1);\n }\n this.tbarEle.splice(index, 0, innerEle);\n index++;\n this.offsetWid = itemsDiv.offsetWidth;\n }\n }\n itemsDiv.style.width = '';\n this.renderOverflowMode();\n if (this.isReact) {\n this.renderReactTemplates();\n }\n };\n /**\n * Removes the items from the Toolbar. Acceptable arguments are index of item/HTMLElement/node list.\n *\n * @param {number|HTMLElement|NodeList|HTMLElement[]} args\n * Index or DOM element or an Array of item which is to be removed from the Toolbar.\n * @returns {void}.\n */\n Toolbar.prototype.removeItems = function (args) {\n var elements = args;\n var index;\n var innerItems = [].slice.call(selectAll('.' + CLS_ITEM, this.element));\n if (typeof (elements) === 'number') {\n index = parseInt(args.toString(), 10);\n this.removeItemByIndex(index, innerItems);\n }\n else {\n if (elements && elements.length > 1) {\n for (var _i = 0, _a = [].slice.call(elements); _i < _a.length; _i++) {\n var ele = _a[_i];\n index = this.tbarEle.indexOf(ele);\n this.removeItemByIndex(index, innerItems);\n innerItems = selectAll('.' + CLS_ITEM, this.element);\n }\n }\n else {\n var ele = (elements && elements.length && elements.length === 1) ? elements[0] : args;\n index = innerItems.indexOf(ele);\n this.removeItemByIndex(index, innerItems);\n }\n }\n this.resize();\n };\n Toolbar.prototype.removeItemByIndex = function (index, innerItems) {\n if (this.tbarEle[parseInt(index.toString(), 10)] && innerItems[parseInt(index.toString(), 10)]) {\n var eleIdx = this.tbarEle.indexOf(innerItems[parseInt(index.toString(), 10)]);\n if (this.tbarAlign) {\n var indexAgn = this.tbarAlgEle[(this.items[parseInt(eleIdx.toString(), 10)].align + 's').toLowerCase()].indexOf(this.tbarEle[parseInt(eleIdx.toString(), 10)]);\n this.tbarAlgEle[(this.items[parseInt(eleIdx.toString(), 10)].align + 's').toLowerCase()].splice(parseInt(indexAgn.toString(), 10), 1);\n }\n if (this.isReact) {\n this.clearTemplate();\n }\n var btnItem = innerItems[parseInt(index.toString(), 10)].querySelector('.e-control.e-btn');\n if (!isNOU(btnItem) && !isNOU(btnItem.ej2_instances[0]) && !(btnItem.ej2_instances[0].isDestroyed)) {\n btnItem.ej2_instances[0].destroy();\n }\n detach(innerItems[parseInt(index.toString(), 10)]);\n this.items.splice(eleIdx, 1);\n this.tbarEle.splice(eleIdx, 1);\n }\n };\n Toolbar.prototype.templateRender = function (templateProp, innerEle, item, index) {\n var itemType = item.type;\n var eleObj = templateProp;\n var isComponent;\n if (typeof (templateProp) === 'object') {\n isComponent = typeof (eleObj.appendTo) === 'function';\n }\n if (typeof (templateProp) === 'string' || !isComponent) {\n var templateFn = void 0;\n var val = templateProp;\n var regEx = new RegExp(/<(?=.*? .*?\\/ ?>|br|hr|input|!--|wbr)[a-z]+.*?>|<([a-z]+).*?<\\/\\1>/i);\n val = (typeof (templateProp) === 'string') ? templateProp.trim() : templateProp;\n try {\n if (typeof (templateProp) === 'object' && !isNOU(templateProp.tagName)) {\n innerEle.appendChild(templateProp);\n }\n else if (typeof (templateProp) === 'string' && regEx.test(val)) {\n innerEle.innerHTML = val;\n }\n else if (document.querySelectorAll(val).length) {\n var ele = document.querySelector(val);\n var tempStr = ele.outerHTML.trim();\n innerEle.appendChild(ele);\n ele.style.display = '';\n if (!isNOU(tempStr)) {\n this.tempId.push(val);\n }\n }\n else {\n templateFn = templateCompiler(val);\n }\n }\n catch (e) {\n templateFn = templateCompiler(val);\n }\n var tempArray = void 0;\n if (!isNOU(templateFn)) {\n var toolbarTemplateID = this.element.id + index + '_template';\n tempArray = templateFn({}, this, 'template', toolbarTemplateID, this.isStringTemplate);\n }\n if (!isNOU(tempArray) && tempArray.length > 0) {\n [].slice.call(tempArray).forEach(function (ele) {\n if (!isNOU(ele.tagName)) {\n ele.style.display = '';\n }\n innerEle.appendChild(ele);\n });\n }\n }\n else if (itemType === 'Input') {\n var ele = this.createElement('input');\n if (item.id) {\n ele.id = item.id;\n }\n else {\n ele.id = getUniqueID('tbr-ipt');\n }\n innerEle.appendChild(ele);\n eleObj.appendTo(ele);\n }\n this.add(innerEle, CLS_TEMPLATE);\n this.tbarEle.push(innerEle);\n };\n Toolbar.prototype.buttonRendering = function (item, innerEle) {\n var dom = this.createElement('button', { className: CLS_TBARBTN });\n dom.setAttribute('type', 'button');\n var textStr = item.text;\n var iconCss;\n var iconPos;\n if (item.id) {\n dom.id = item.id;\n }\n else {\n dom.id = getUniqueID('e-tbr-btn');\n }\n var btnTxt = this.createElement('span', { className: 'e-tbar-btn-text' });\n if (textStr) {\n btnTxt.innerHTML = this.enableHtmlSanitizer ? SanitizeHtmlHelper.sanitize(textStr) : textStr;\n dom.appendChild(btnTxt);\n dom.classList.add('e-tbtn-txt');\n }\n else {\n this.add(innerEle, 'e-tbtn-align');\n }\n if (item.prefixIcon || item.suffixIcon) {\n if ((item.prefixIcon && item.suffixIcon) || item.prefixIcon) {\n iconCss = item.prefixIcon + ' e-icons';\n iconPos = 'Left';\n }\n else {\n iconCss = item.suffixIcon + ' e-icons';\n iconPos = 'Right';\n }\n }\n var btnObj = new Button({ iconCss: iconCss, iconPosition: iconPos });\n btnObj.createElement = this.createElement;\n btnObj.appendTo(dom);\n if (item.width) {\n setStyle(dom, { 'width': formatUnit(item.width) });\n }\n return dom;\n };\n Toolbar.prototype.renderSubComponent = function (item, index) {\n var dom;\n var innerEle = this.createElement('div', { className: CLS_ITEM });\n innerEle.setAttribute('aria-disabled', 'false');\n var tempDom = this.createElement('div', {\n innerHTML: this.enableHtmlSanitizer ? SanitizeHtmlHelper.sanitize(item.tooltipText) : item.tooltipText\n });\n if (!this.tbarEle) {\n this.tbarEle = [];\n }\n if (item.htmlAttributes) {\n this.setAttr(item.htmlAttributes, innerEle);\n }\n if (item.tooltipText) {\n innerEle.setAttribute('title', tempDom.textContent);\n }\n if (item.cssClass) {\n innerEle.className = innerEle.className + ' ' + item.cssClass;\n }\n if (item.template) {\n this.templateRender(item.template, innerEle, item, index);\n }\n else {\n switch (item.type) {\n case 'Button':\n dom = this.buttonRendering(item, innerEle);\n dom.setAttribute('tabindex', isNOU(item.tabIndex) ? '-1' : item.tabIndex.toString());\n dom.setAttribute('data-tabindex', isNOU(item.tabIndex) ? '-1' : item.tabIndex.toString());\n dom.setAttribute('aria-label', (item.text || item.tooltipText));\n innerEle.appendChild(dom);\n innerEle.addEventListener('click', this.itemClick.bind(this));\n break;\n case 'Separator':\n this.add(innerEle, CLS_SEPARATOR);\n break;\n }\n }\n if (item.showTextOn) {\n var sTxt = item.showTextOn;\n if (sTxt === 'Toolbar') {\n this.add(innerEle, CLS_POPUPTEXT);\n this.add(innerEle, 'e-tbtn-align');\n }\n else if (sTxt === 'Overflow') {\n this.add(innerEle, CLS_TBARTEXT);\n }\n }\n if (item.overflow) {\n var overflow = item.overflow;\n if (overflow === 'Show') {\n this.add(innerEle, CLS_TBAROVERFLOW);\n }\n else if (overflow === 'Hide') {\n if (!innerEle.classList.contains(CLS_SEPARATOR)) {\n this.add(innerEle, CLS_POPOVERFLOW);\n }\n }\n }\n if (item.overflow !== 'Show' && item.showAlwaysInPopup && !innerEle.classList.contains(CLS_SEPARATOR)) {\n this.add(innerEle, CLS_POPPRI);\n this.popupPriCount++;\n }\n if (item.disabled) {\n this.add(innerEle, CLS_DISABLE);\n }\n if (item.visible === false) {\n this.add(innerEle, CLS_HIDDEN);\n }\n return innerEle;\n };\n Toolbar.prototype.getDataTabindex = function (ele) {\n return isNOU(ele.getAttribute('data-tabindex')) ? '-1' : ele.getAttribute('data-tabindex');\n };\n Toolbar.prototype.itemClick = function (e) {\n this.activeEleSwitch(e.currentTarget);\n };\n Toolbar.prototype.activeEleSwitch = function (ele) {\n this.activeEleRemove(ele.firstElementChild);\n this.activeEle.focus();\n };\n Toolbar.prototype.activeEleRemove = function (curEle) {\n if (!isNOU(this.activeEle)) {\n this.activeEle.setAttribute('tabindex', this.getDataTabindex(this.activeEle));\n }\n this.activeEle = curEle;\n if (this.getDataTabindex(this.activeEle) === '-1') {\n if (isNOU(this.trgtEle) && !curEle.parentElement.classList.contains(CLS_TEMPLATE)) {\n this.updateTabIndex('-1');\n curEle.removeAttribute('tabindex');\n }\n else {\n this.activeEle.setAttribute('tabindex', this.getDataTabindex(this.activeEle));\n }\n }\n };\n Toolbar.prototype.getPersistData = function () {\n return this.addOnPersist([]);\n };\n /**\n * Returns the current module name.\n *\n * @returns {string} - Returns the module name as string.\n * @private\n */\n Toolbar.prototype.getModuleName = function () {\n return 'toolbar';\n };\n Toolbar.prototype.itemsRerender = function (newProp) {\n this.items = this.tbarItemsCol;\n if (this.isReact || this.isAngular) {\n this.clearTemplate();\n }\n this.destroyMode();\n this.destroyItems();\n this.items = newProp;\n this.tbarItemsCol = this.items;\n this.renderItems();\n this.renderOverflowMode();\n if (this.isReact) {\n this.renderReactTemplates();\n }\n };\n Toolbar.prototype.resize = function () {\n var ele = this.element;\n this.tbResize = true;\n if (this.tbarAlign) {\n this.itemPositioning();\n }\n if (this.popObj && this.overflowMode === 'Popup') {\n this.popObj.hide();\n }\n var checkOverflow = this.checkOverflow(ele, ele.getElementsByClassName(CLS_ITEMS)[0]);\n if (!checkOverflow) {\n this.destroyScroll();\n var multirowele = ele.querySelector('.' + CLS_ITEMS);\n if (!isNOU(multirowele)) {\n this.remove(multirowele, CLS_MULTIROWPOS);\n if (this.tbarAlign) {\n this.add(multirowele, CLS_TBARPOS);\n }\n }\n }\n if (checkOverflow && this.scrollModule && (this.offsetWid === ele.offsetWidth)) {\n return;\n }\n if (this.offsetWid > ele.offsetWidth || checkOverflow) {\n this.renderOverflowMode();\n }\n if (this.popObj) {\n if (this.overflowMode === 'Extended') {\n var eleStyles = window.getComputedStyle(this.element);\n this.popObj.width = parseFloat(eleStyles.width) + ((parseFloat(eleStyles.borderRightWidth)) * 2);\n }\n if (this.tbarAlign) {\n this.removePositioning();\n }\n this.popupRefresh(this.popObj.element, false);\n if (this.tbarAlign) {\n this.refreshPositioning();\n }\n }\n if (this.element.querySelector('.' + CLS_HSCROLLBAR)) {\n this.scrollStep = this.element.querySelector('.' + CLS_HSCROLLBAR).offsetWidth;\n }\n this.offsetWid = ele.offsetWidth;\n this.tbResize = false;\n this.separator();\n };\n Toolbar.prototype.extendedOpen = function () {\n var sib = this.element.querySelector('.' + CLS_EXTENDABLECLASS);\n if (this.overflowMode === 'Extended' && sib) {\n this.isExtendedOpen = sib.classList.contains(CLS_POPUPOPEN);\n }\n };\n Toolbar.prototype.updateHideEleTabIndex = function (ele, isHidden, isElement, eleIndex, innerItems) {\n if (isElement) {\n eleIndex = innerItems.indexOf(ele);\n }\n var nextEle = innerItems[++eleIndex];\n while (nextEle) {\n var skipEle = this.eleContains(nextEle);\n if (!skipEle) {\n var dataTabIndex = nextEle.firstElementChild.getAttribute('data-tabindex');\n if (isHidden && dataTabIndex === '-1') {\n nextEle.firstElementChild.setAttribute('tabindex', '0');\n }\n else if (dataTabIndex !== nextEle.firstElementChild.getAttribute('tabindex')) {\n nextEle.firstElementChild.setAttribute('tabindex', dataTabIndex);\n }\n break;\n }\n nextEle = innerItems[++eleIndex];\n }\n };\n /**\n * Gets called when the model property changes.The data that describes the old and new values of the property that changed.\n *\n * @param {ToolbarModel} newProp - It contains new value of the data.\n * @param {ToolbarModel} oldProp - It contains old value of the data.\n * @returns {void}\n * @private\n */\n Toolbar.prototype.onPropertyChanged = function (newProp, oldProp) {\n var tEle = this.element;\n var wid = tEle.offsetWidth;\n this.extendedOpen();\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'items':\n if (!(newProp.items instanceof Array && oldProp.items instanceof Array)) {\n var changedProb = Object.keys(newProp.items);\n for (var i = 0; i < changedProb.length; i++) {\n var index = parseInt(Object.keys(newProp.items)[parseInt(i.toString(), 10)], 10);\n var property = Object.keys(newProp.items[parseInt(index.toString(), 10)])[0];\n var newProperty = Object(newProp.items[parseInt(index.toString(), 10)])[\"\" + property];\n if (typeof newProperty !== 'function') {\n if (this.tbarAlign || property === 'align') {\n this.refresh();\n this.trigger('created');\n break;\n }\n var popupPriCheck = property === 'showAlwaysInPopup' && !newProperty;\n var booleanCheck = property === 'overflow' && this.popupPriCount !== 0;\n if ((popupPriCheck) || (this.items[parseInt(index.toString(), 10)].showAlwaysInPopup) && booleanCheck) {\n --this.popupPriCount;\n }\n if (isNOU(this.scrollModule)) {\n this.destroyMode();\n }\n var itemCol = [].slice.call(selectAll('.' + CLS_ITEMS + ' .' + CLS_ITEM, tEle));\n if (this.isReact && this.items[parseInt(index.toString(), 10)].template) {\n this.clearTemplate();\n }\n detach(itemCol[parseInt(index.toString(), 10)]);\n this.tbarEle.splice(index, 1);\n this.addItems([this.items[parseInt(index.toString(), 10)]], index);\n this.items.splice(index, 1);\n if (this.items[parseInt(index.toString(), 10)].template) {\n this.tbarEle.splice(this.items.length, 1);\n }\n }\n }\n }\n else {\n this.itemsRerender(newProp.items);\n }\n break;\n case 'width':\n setStyle(tEle, { 'width': formatUnit(newProp.width) });\n this.renderOverflowMode();\n if (this.popObj && wid < tEle.offsetWidth) {\n this.popupRefresh(this.popObj.element, false);\n }\n break;\n case 'height':\n setStyle(this.element, { 'height': formatUnit(newProp.height) });\n break;\n case 'overflowMode':\n this.destroyMode();\n this.renderOverflowMode();\n if (this.enableRtl) {\n this.add(tEle, CLS_RTL);\n }\n this.refreshOverflow();\n break;\n case 'enableRtl':\n if (newProp.enableRtl) {\n this.add(tEle, CLS_RTL);\n }\n else {\n this.remove(tEle, CLS_RTL);\n }\n if (!isNOU(this.scrollModule)) {\n if (newProp.enableRtl) {\n this.add(this.scrollModule.element, CLS_RTL);\n }\n else {\n this.remove(this.scrollModule.element, CLS_RTL);\n }\n }\n if (!isNOU(this.popObj)) {\n if (newProp.enableRtl) {\n this.add(this.popObj.element, CLS_RTL);\n }\n else {\n this.remove(this.popObj.element, CLS_RTL);\n }\n }\n if (this.tbarAlign) {\n this.itemPositioning();\n }\n break;\n case 'scrollStep':\n if (this.scrollModule) {\n this.scrollModule.scrollStep = this.scrollStep;\n }\n break;\n case 'enableCollision':\n if (this.popObj) {\n this.popObj.collision = { Y: this.enableCollision ? 'flip' : 'none' };\n }\n break;\n case 'cssClass':\n if (oldProp.cssClass) {\n removeClass([this.element], oldProp.cssClass.split(' '));\n }\n if (newProp.cssClass) {\n addClass([this.element], newProp.cssClass.split(' '));\n }\n break;\n case 'allowKeyboard':\n this.unwireKeyboardEvent();\n if (newProp.allowKeyboard) {\n this.wireKeyboardEvent();\n }\n break;\n }\n }\n };\n /**\n * Shows or hides the Toolbar item that is in the specified index.\n *\n * @param {number | HTMLElement} index - Index value of target item or DOM element of items to be hidden or shown.\n * @param {boolean} value - Based on this Boolean value, item will be hide (true) or show (false). By default, value is false.\n * @returns {void}.\n */\n Toolbar.prototype.hideItem = function (index, value) {\n var isElement = (typeof (index) === 'object') ? true : false;\n var eleIndex = index;\n var ele;\n if (!isElement && isNOU(eleIndex)) {\n return;\n }\n var innerItems = [].slice.call(selectAll('.' + CLS_ITEM, this.element));\n if (isElement) {\n ele = index;\n }\n else if (this.tbarEle[parseInt(eleIndex.toString(), 10)]) {\n var innerItems_1 = [].slice.call(selectAll('.' + CLS_ITEM, this.element));\n ele = innerItems_1[parseInt(eleIndex.toString(), 10)];\n }\n if (ele) {\n if (value) {\n ele.classList.add(CLS_HIDDEN);\n if (!ele.classList.contains(CLS_SEPARATOR)) {\n if (isNOU(ele.firstElementChild.getAttribute('tabindex')) ||\n ele.firstElementChild.getAttribute('tabindex') !== '-1') {\n this.updateHideEleTabIndex(ele, value, isElement, eleIndex, innerItems);\n }\n }\n }\n else {\n ele.classList.remove(CLS_HIDDEN);\n if (!ele.classList.contains(CLS_SEPARATOR)) {\n this.updateHideEleTabIndex(ele, value, isElement, eleIndex, innerItems);\n }\n }\n this.refreshOverflow();\n }\n };\n __decorate([\n Collection([], Item)\n ], Toolbar.prototype, \"items\", void 0);\n __decorate([\n Property('auto')\n ], Toolbar.prototype, \"width\", void 0);\n __decorate([\n Property('auto')\n ], Toolbar.prototype, \"height\", void 0);\n __decorate([\n Property('')\n ], Toolbar.prototype, \"cssClass\", void 0);\n __decorate([\n Property('Scrollable')\n ], Toolbar.prototype, \"overflowMode\", void 0);\n __decorate([\n Property()\n ], Toolbar.prototype, \"scrollStep\", void 0);\n __decorate([\n Property(true)\n ], Toolbar.prototype, \"enableCollision\", void 0);\n __decorate([\n Property(true)\n ], Toolbar.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Property(true)\n ], Toolbar.prototype, \"allowKeyboard\", void 0);\n __decorate([\n Event()\n ], Toolbar.prototype, \"clicked\", void 0);\n __decorate([\n Event()\n ], Toolbar.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], Toolbar.prototype, \"destroyed\", void 0);\n __decorate([\n Event()\n ], Toolbar.prototype, \"beforeCreate\", void 0);\n Toolbar = __decorate([\n NotifyPropertyChanges\n ], Toolbar);\n return Toolbar;\n}(Component));\nexport { Toolbar };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Component, Property, Event, closest, Collection, Complex, attributes, detach, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { NotifyPropertyChanges, ChildProperty, select, isVisible } from '@syncfusion/ej2-base';\nimport { KeyboardEvents, Browser, formatUnit, L10n } from '@syncfusion/ej2-base';\nimport { setStyleAttribute as setStyle, isNullOrUndefined as isNOU, selectAll, addClass, removeClass, remove } from '@syncfusion/ej2-base';\nimport { EventHandler, rippleEffect, Touch, compile, Animation } from '@syncfusion/ej2-base';\nimport { getRandomId, SanitizeHtmlHelper, Draggable } from '@syncfusion/ej2-base';\nimport { Toolbar } from '../toolbar/toolbar';\nvar CLS_TAB = 'e-tab';\nvar CLS_HEADER = 'e-tab-header';\nvar CLS_BLA_TEM = 'blazor-template';\nvar CLS_CONTENT = 'e-content';\nvar CLS_NEST = 'e-nested';\nvar CLS_ITEMS = 'e-items';\nvar CLS_ITEM = 'e-item';\nvar CLS_TEMPLATE = 'e-template';\nvar CLS_RTL = 'e-rtl';\nvar CLS_ACTIVE = 'e-active';\nvar CLS_DISABLE = 'e-disable';\nvar CLS_HIDDEN = 'e-hidden';\nvar CLS_FOCUS = 'e-focused';\nvar CLS_ICONS = 'e-icons';\nvar CLS_ICON = 'e-icon';\nvar CLS_ICON_TAB = 'e-icon-tab';\nvar CLS_ICON_CLOSE = 'e-close-icon';\nvar CLS_CLOSE_SHOW = 'e-close-show';\nvar CLS_TEXT = 'e-tab-text';\nvar CLS_INDICATOR = 'e-indicator';\nvar CLS_WRAP = 'e-tab-wrap';\nvar CLS_TEXT_WRAP = 'e-text-wrap';\nvar CLS_TAB_ICON = 'e-tab-icon';\nvar CLS_TB_ITEMS = 'e-toolbar-items';\nvar CLS_TB_ITEM = 'e-toolbar-item';\nvar CLS_TB_POP = 'e-toolbar-pop';\nvar CLS_TB_POPUP = 'e-toolbar-popup';\nvar CLS_HOR_NAV = 'e-hor-nav';\nvar CLS_POPUP_OPEN = 'e-popup-open';\nvar CLS_POPUP_CLOSE = 'e-popup-close';\nvar CLS_PROGRESS = 'e-progress';\nvar CLS_IGNORE = 'e-ignore';\nvar CLS_OVERLAY = 'e-overlay';\nvar CLS_HSCRCNT = 'e-hscroll-content';\nvar CLS_VSCRCNT = 'e-vscroll-content';\nvar CLS_VTAB = 'e-vertical-tab';\nvar CLS_VERTICAL = 'e-vertical';\nvar CLS_VLEFT = 'e-vertical-left';\nvar CLS_VRIGHT = 'e-vertical-right';\nvar CLS_HBOTTOM = 'e-horizontal-bottom';\nvar CLS_FILL = 'e-fill-mode';\nvar TABITEMPREFIX = 'tabitem_';\nvar CLS_REORDER_ACTIVE_ITEM = 'e-reorder-active-item';\n/**\n * Objects used for configuring the Tab selecting item action properties.\n */\nvar TabActionSettings = /** @class */ (function (_super) {\n __extends(TabActionSettings, _super);\n function TabActionSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('SlideLeftIn')\n ], TabActionSettings.prototype, \"effect\", void 0);\n __decorate([\n Property(600)\n ], TabActionSettings.prototype, \"duration\", void 0);\n __decorate([\n Property('ease')\n ], TabActionSettings.prototype, \"easing\", void 0);\n return TabActionSettings;\n}(ChildProperty));\nexport { TabActionSettings };\n/**\n * Objects used for configuring the Tab animation properties.\n */\nvar TabAnimationSettings = /** @class */ (function (_super) {\n __extends(TabAnimationSettings, _super);\n function TabAnimationSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Complex({ effect: 'SlideLeftIn', duration: 600, easing: 'ease' }, TabActionSettings)\n ], TabAnimationSettings.prototype, \"previous\", void 0);\n __decorate([\n Complex({ effect: 'SlideRightIn', duration: 600, easing: 'ease' }, TabActionSettings)\n ], TabAnimationSettings.prototype, \"next\", void 0);\n return TabAnimationSettings;\n}(ChildProperty));\nexport { TabAnimationSettings };\n/**\n * Objects used for configuring the Tab item header properties.\n */\nvar Header = /** @class */ (function (_super) {\n __extends(Header, _super);\n function Header() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], Header.prototype, \"text\", void 0);\n __decorate([\n Property('')\n ], Header.prototype, \"iconCss\", void 0);\n __decorate([\n Property('left')\n ], Header.prototype, \"iconPosition\", void 0);\n return Header;\n}(ChildProperty));\nexport { Header };\n/**\n * An array of object that is used to configure the Tab.\n */\nvar TabItem = /** @class */ (function (_super) {\n __extends(TabItem, _super);\n function TabItem() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Complex({}, Header)\n ], TabItem.prototype, \"header\", void 0);\n __decorate([\n Property(null)\n ], TabItem.prototype, \"headerTemplate\", void 0);\n __decorate([\n Property('')\n ], TabItem.prototype, \"content\", void 0);\n __decorate([\n Property('')\n ], TabItem.prototype, \"cssClass\", void 0);\n __decorate([\n Property(false)\n ], TabItem.prototype, \"disabled\", void 0);\n __decorate([\n Property(true)\n ], TabItem.prototype, \"visible\", void 0);\n __decorate([\n Property()\n ], TabItem.prototype, \"id\", void 0);\n __decorate([\n Property(-1)\n ], TabItem.prototype, \"tabIndex\", void 0);\n return TabItem;\n}(ChildProperty));\nexport { TabItem };\n/**\n * Tab is a content panel to show multiple contents in a single space, one at a time.\n * Each Tab item has an associated content, that will be displayed based on the active Tab header item.\n * ```html\n *
\n * \n * ```\n */\nvar Tab = /** @class */ (function (_super) {\n __extends(Tab, _super);\n /**\n * Initializes a new instance of the Tab class.\n *\n * @param {TabModel} options - Specifies Tab model properties as options.\n * @param {string | HTMLElement} element - Specifies the element that is rendered as a Tab.\n */\n function Tab(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.show = {};\n _this.hide = {};\n _this.maxHeight = 0;\n _this.title = 'Close';\n _this.isInteracted = false;\n _this.lastIndex = 0;\n _this.isAdd = false;\n _this.isIconAlone = false;\n _this.draggableItems = [];\n _this.resizeContext = _this.refreshActiveTabBorder.bind(_this);\n /**\n * Contains the keyboard configuration of the Tab.\n */\n _this.keyConfigs = {\n tab: 'tab',\n home: 'home',\n end: 'end',\n enter: 'enter',\n space: 'space',\n delete: 'delete',\n moveLeft: 'leftarrow',\n moveRight: 'rightarrow',\n moveUp: 'uparrow',\n moveDown: 'downarrow'\n };\n return _this;\n }\n /**\n * Removes the component from the DOM and detaches all its related event handlers, attributes and classes.\n *\n * @returns {void}\n */\n Tab.prototype.destroy = function () {\n if (this.isReact || this.isAngular) {\n this.clearTemplate();\n }\n if (!isNOU(this.tbObj)) {\n this.tbObj.destroy();\n this.tbObj = null;\n }\n this.unWireEvents();\n this.element.removeAttribute('aria-disabled');\n this.expTemplateContent();\n if (!this.isTemplate) {\n while (this.element.firstElementChild) {\n remove(this.element.firstElementChild);\n }\n }\n else {\n var cntEle = select('.' + CLS_TAB + ' > .' + CLS_CONTENT, this.element);\n this.element.classList.remove(CLS_TEMPLATE);\n if (!isNOU(cntEle)) {\n cntEle.innerHTML = this.cnt;\n }\n }\n if (this.btnCls) {\n this.btnCls = null;\n }\n this.hdrEle = null;\n this.cntEle = null;\n this.tbItems = null;\n this.tbItem = null;\n this.tbPop = null;\n this.prevItem = null;\n this.popEle = null;\n this.bdrLine = null;\n this.content = null;\n this.dragItem = null;\n this.cloneElement = null;\n this.draggingItems = [];\n if (this.draggableItems && this.draggableItems.length > 0) {\n for (var i = 0; i < this.draggableItems.length; i++) {\n this.draggableItems[i].destroy();\n this.draggableItems[i] = null;\n }\n this.draggableItems = [];\n }\n _super.prototype.destroy.call(this);\n this.trigger('destroyed');\n };\n /**\n * Refresh the tab component\n *\n * @returns {void}\n */\n Tab.prototype.refresh = function () {\n if (this.isReact) {\n this.clearTemplate();\n }\n _super.prototype.refresh.call(this);\n if (this.isReact) {\n this.renderReactTemplates();\n }\n };\n /**\n * Initialize component\n *\n * @private\n * @returns {void}\n */\n Tab.prototype.preRender = function () {\n var nested = closest(this.element, '.' + CLS_CONTENT);\n this.prevIndex = 0;\n this.isNested = false;\n this.isPopup = false;\n this.initRender = true;\n this.isSwipeed = false;\n this.itemIndexArray = [];\n this.templateEle = [];\n if (this.allowDragAndDrop) {\n this.dragArea = !isNOU(this.dragArea) ? this.dragArea : '#' + this.element.id + ' ' + ('.' + CLS_HEADER);\n }\n if (!isNOU(nested)) {\n nested.parentElement.classList.add(CLS_NEST);\n this.isNested = true;\n }\n var name = Browser.info.name;\n var css = (name === 'msie') ? 'e-ie' : (name === 'edge') ? 'e-edge' : (name === 'safari') ? 'e-safari' : '';\n setStyle(this.element, { 'width': formatUnit(this.width), 'height': formatUnit(this.height) });\n this.setCssClass(this.element, this.cssClass, true);\n attributes(this.element, { 'aria-disabled': 'false' });\n this.setCssClass(this.element, css, true);\n this.updatePopAnimationConfig();\n };\n /**\n * Initialize the component rendering\n *\n * @private\n * @returns {void}\n */\n Tab.prototype.render = function () {\n this.btnCls = this.createElement('span', { className: CLS_ICONS + ' ' + CLS_ICON_CLOSE, attrs: { title: this.title } });\n this.tabId = this.element.id.length > 0 ? ('-' + this.element.id) : getRandomId();\n this.renderContainer();\n this.wireEvents();\n this.initRender = false;\n };\n Tab.prototype.renderContainer = function () {\n var ele = this.element;\n this.items.forEach(function (item, index) {\n if (isNOU(item.id) && !isNOU(item.setProperties)) {\n item.setProperties({ id: TABITEMPREFIX + index.toString() }, true);\n }\n });\n if (this.items.length > 0 && ele.children.length === 0) {\n ele.appendChild(this.createElement('div', { className: CLS_CONTENT }));\n this.setOrientation(this.headerPlacement, this.createElement('div', { className: CLS_HEADER }));\n this.isTemplate = false;\n }\n else if (this.element.children.length > 0) {\n this.isTemplate = true;\n ele.classList.add(CLS_TEMPLATE);\n var header = ele.querySelector('.' + CLS_HEADER);\n if (header && this.headerPlacement === 'Bottom') {\n this.setOrientation(this.headerPlacement, header);\n }\n }\n if (!isNOU(select('.' + CLS_HEADER, this.element)) && !isNOU(select('.' + CLS_CONTENT, this.element))) {\n this.renderHeader();\n this.tbItems = select('.' + CLS_HEADER + ' .' + CLS_TB_ITEMS, this.element);\n if (!isNOU(this.tbItems)) {\n rippleEffect(this.tbItems, { selector: '.e-tab-wrap' });\n }\n this.renderContent();\n if (selectAll('.' + CLS_TB_ITEM, this.element).length > 0) {\n this.tbItems = select('.' + CLS_HEADER + ' .' + CLS_TB_ITEMS, this.element);\n this.bdrLine = this.createElement('div', { className: CLS_INDICATOR + ' ' + CLS_HIDDEN + ' ' + CLS_IGNORE });\n var scrCnt = select('.' + this.scrCntClass, this.tbItems);\n if (!isNOU(scrCnt)) {\n scrCnt.insertBefore(this.bdrLine, scrCnt.firstChild);\n }\n else {\n this.tbItems.insertBefore(this.bdrLine, this.tbItems.firstChild);\n }\n this.setContentHeight(true);\n this.select(this.selectedItem);\n }\n this.tbItem = selectAll('.' + CLS_TB_ITEM, this.hdrEle);\n if (!isNOU(this.tbItem)) {\n for (var i = 0; i < this.items.length; i++) {\n if (this.tbItem[i]) {\n var tabID = this.items[i].id;\n this.tbItem[i].setAttribute('data-id', tabID);\n }\n }\n }\n this.setRTL(this.enableRtl);\n }\n };\n Tab.prototype.renderHeader = function () {\n var _this = this;\n var hdrPlace = this.headerPlacement;\n var tabItems = [];\n this.hdrEle = this.getTabHeader();\n this.addVerticalClass();\n if (!this.isTemplate) {\n tabItems = this.parseObject(this.items, 0);\n }\n else {\n if (this.element.children.length > 1 && this.element.children[1].classList.contains(CLS_HEADER)) {\n this.setProperties({ headerPlacement: 'Bottom' }, true);\n }\n var count = this.hdrEle.children.length;\n var hdrItems = [];\n for (var i = 0; i < count; i++) {\n hdrItems.push(this.hdrEle.children.item(i).innerHTML);\n }\n if (count > 0) {\n while (this.hdrEle.firstElementChild) {\n detach(this.hdrEle.firstElementChild);\n }\n var tabItems_1 = this.createElement('div', { className: CLS_ITEMS });\n this.hdrEle.appendChild(tabItems_1);\n hdrItems.forEach(function (item, index) {\n _this.lastIndex = index;\n var attr = {\n className: CLS_ITEM, id: CLS_ITEM + _this.tabId + '_' + index\n };\n var txt = _this.createElement('span', {\n className: CLS_TEXT, innerHTML: item, attrs: { 'role': 'presentation' }\n }).outerHTML;\n var cont = _this.createElement('div', {\n className: CLS_TEXT_WRAP, innerHTML: txt + _this.btnCls.outerHTML\n }).outerHTML;\n var wrap = _this.createElement('div', {\n className: CLS_WRAP, innerHTML: cont,\n attrs: { role: 'tab', tabIndex: '-1', 'aria-selected': 'false', 'aria-controls': CLS_CONTENT + _this.tabId + '_' + index }\n });\n tabItems_1.appendChild(_this.createElement('div', attr));\n selectAll('.' + CLS_ITEM, tabItems_1)[index].appendChild(wrap);\n });\n }\n }\n this.tbObj = new Toolbar({\n width: (hdrPlace === 'Left' || hdrPlace === 'Right') ? 'auto' : '100%',\n height: (hdrPlace === 'Left' || hdrPlace === 'Right') ? '100%' : 'auto',\n overflowMode: this.overflowMode,\n items: (tabItems.length !== 0) ? tabItems : [],\n clicked: this.clickHandler.bind(this),\n scrollStep: this.scrollStep,\n enableHtmlSanitizer: this.enableHtmlSanitizer,\n cssClass: this.cssClass\n });\n this.tbObj.isStringTemplate = true;\n this.tbObj.createElement = this.createElement;\n this.tbObj.appendTo(this.hdrEle);\n attributes(this.hdrEle, { role: 'tablist' });\n if (!isNOU(this.element.getAttribute('aria-label'))) {\n this.hdrEle.setAttribute('aria-label', this.element.getAttribute('aria-label'));\n this.element.removeAttribute('aria-label');\n }\n else if (!isNOU(this.element.getAttribute('aria-labelledby'))) {\n this.hdrEle.setAttribute('aria-labelledby', this.element.getAttribute('aria-labelledby'));\n this.element.removeAttribute('aria-labelledby');\n }\n this.setCloseButton(this.showCloseButton);\n var toolbarHeader = this.tbObj.element.querySelector('.' + CLS_TB_ITEMS);\n if (!isNOU(toolbarHeader)) {\n if (isNOU(toolbarHeader.id) || toolbarHeader.id === '') {\n toolbarHeader.id = this.element.id + '_' + 'tab_header_items';\n }\n }\n };\n Tab.prototype.renderContent = function () {\n this.cntEle = select('.' + CLS_CONTENT, this.element);\n var hdrItem = selectAll('.' + CLS_TB_ITEM, this.element);\n if (this.isTemplate) {\n this.cnt = (this.cntEle.children.length > 0) ? this.cntEle.innerHTML : '';\n var contents = this.cntEle.children;\n for (var i = 0; i < hdrItem.length; i++) {\n if (contents.length - 1 >= i) {\n addClass([contents.item(i)], CLS_ITEM);\n attributes(contents.item(i), { 'role': 'tabpanel', 'aria-labelledby': CLS_ITEM + this.tabId + '_' + i });\n contents.item(i).id = CLS_CONTENT + this.tabId + '_' + i;\n }\n }\n }\n };\n Tab.prototype.reRenderItems = function () {\n this.renderContainer();\n if (!isNOU(this.cntEle)) {\n this.touchModule = new Touch(this.cntEle, { swipe: this.swipeHandler.bind(this) });\n }\n };\n Tab.prototype.parseObject = function (items, index) {\n var _this = this;\n var tbItems = selectAll('.e-tab-header .' + CLS_TB_ITEM, this.element);\n var maxId = this.lastIndex;\n if (!this.isReplace && tbItems.length > 0) {\n var idList_1 = [];\n tbItems.forEach(function (item) {\n idList_1.push(_this.getIndexFromEle(item.id));\n });\n maxId = Math.max.apply(Math, idList_1);\n }\n var tItems = [];\n var txtWrapEle;\n var spliceArray = [];\n var i = 0;\n items.forEach(function (item, i) {\n var pos = (isNOU(item.header) || isNOU(item.header.iconPosition)) ? '' : item.header.iconPosition;\n var css = (isNOU(item.header) || isNOU(item.header.iconCss)) ? '' : item.header.iconCss;\n if ((isNOU(item.headerTemplate)) && (isNOU(item.header) || isNOU(item.header.text) ||\n ((item.header.text.length === 0)) && (css === ''))) {\n spliceArray.push(i);\n return;\n }\n var txt = item.headerTemplate || item.header.text;\n if (typeof txt === 'string' && _this.enableHtmlSanitizer) {\n txt = SanitizeHtmlHelper.sanitize(txt);\n }\n var itemIndex;\n if (_this.isReplace && !isNOU(_this.tbId) && _this.tbId !== '') {\n itemIndex = parseInt(_this.tbId.substring(_this.tbId.lastIndexOf('_') + 1), 10);\n _this.tbId = '';\n }\n else {\n itemIndex = index + i;\n }\n _this.lastIndex = ((tbItems.length === 0) ? i : ((_this.isReplace) ? (itemIndex) : (maxId + 1 + i)));\n var disabled = (item.disabled) ? ' ' + CLS_DISABLE + ' ' + CLS_OVERLAY : '';\n var hidden = (item.visible === false) ? ' ' + CLS_HIDDEN : '';\n txtWrapEle = _this.createElement('div', { className: CLS_TEXT, attrs: { 'role': 'presentation' } });\n var tHtml = ((txt instanceof Object) ? txt.outerHTML : txt);\n var txtEmpty = (!isNOU(tHtml) && tHtml !== '');\n if (!isNOU(txt.tagName)) {\n txtWrapEle.appendChild(txt);\n }\n else {\n _this.headerTextCompile(txtWrapEle, txt, i);\n }\n var tEle;\n var icon = _this.createElement('span', {\n className: CLS_ICONS + ' ' + CLS_TAB_ICON + ' ' + CLS_ICON + '-' + pos + ' ' + css\n });\n var tCont = _this.createElement('div', { className: CLS_TEXT_WRAP });\n tCont.appendChild(txtWrapEle);\n if ((txt !== '' && txt !== undefined) && css !== '') {\n if ((pos === 'left' || pos === 'top')) {\n tCont.insertBefore(icon, tCont.firstElementChild);\n }\n else {\n tCont.appendChild(icon);\n }\n tEle = txtWrapEle;\n _this.isIconAlone = false;\n }\n else {\n tEle = ((css === '') ? txtWrapEle : icon);\n if (tEle === icon) {\n detach(txtWrapEle);\n tCont.appendChild(icon);\n _this.isIconAlone = true;\n }\n }\n var tabIndex = isNOU(item.tabIndex) ? '-1' : item.tabIndex.toString();\n var wrapAttrs = (item.disabled) ? {} : { tabIndex: tabIndex, 'data-tabindex': tabIndex, role: 'tab', 'aria-selected': 'false' };\n tCont.appendChild(_this.btnCls.cloneNode(true));\n var wrap = _this.createElement('div', { className: CLS_WRAP, attrs: wrapAttrs });\n wrap.appendChild(tCont);\n if (_this.itemIndexArray === []) {\n _this.itemIndexArray.push(CLS_ITEM + _this.tabId + '_' + _this.lastIndex);\n }\n else {\n _this.itemIndexArray.splice((index + i), 0, CLS_ITEM + _this.tabId + '_' + _this.lastIndex);\n }\n var attrObj = {\n id: CLS_ITEM + _this.tabId + '_' + _this.lastIndex\n };\n var tItem = { htmlAttributes: attrObj, template: wrap };\n tItem.cssClass = ((item.cssClass !== undefined) ? item.cssClass : ' ') + ' ' + disabled + ' ' + hidden + ' '\n + ((css !== '') ? 'e-i' + pos : '') + ' ' + ((!txtEmpty) ? CLS_ICON : '');\n if (pos === 'top' || pos === 'bottom') {\n _this.element.classList.add('e-vertical-icon');\n }\n tItems.push(tItem);\n i++;\n });\n if (!this.isAdd) {\n spliceArray.forEach(function (spliceItemIndex) {\n _this.items.splice(spliceItemIndex, 1);\n });\n }\n if (this.isIconAlone) {\n this.element.classList.add(CLS_ICON_TAB);\n }\n else {\n this.element.classList.remove(CLS_ICON_TAB);\n }\n return tItems;\n };\n Tab.prototype.removeActiveClass = function () {\n var tabHeader = this.getTabHeader();\n if (tabHeader) {\n var tabItems = selectAll('.' + CLS_TB_ITEM + '.' + CLS_ACTIVE, tabHeader);\n [].slice.call(tabItems).forEach(function (node) { return node.classList.remove(CLS_ACTIVE); });\n [].slice.call(tabItems).forEach(function (node) { return node.firstElementChild.setAttribute('aria-selected', 'false'); });\n }\n };\n Tab.prototype.checkPopupOverflow = function (ele) {\n this.tbPop = select('.' + CLS_TB_POP, this.element);\n var popIcon = select('.e-hor-nav', this.element);\n var tbrItems = select('.' + CLS_TB_ITEMS, this.element);\n var lastChild = tbrItems.lastChild;\n var isOverflow = false;\n if (!this.isVertical() && ((this.enableRtl && ((popIcon.offsetLeft + popIcon.offsetWidth) > tbrItems.offsetLeft))\n || (!this.enableRtl && popIcon.offsetLeft < tbrItems.offsetWidth))) {\n isOverflow = true;\n }\n else if (this.isVertical() && (popIcon.offsetTop < lastChild.offsetTop + lastChild.offsetHeight)) {\n isOverflow = true;\n }\n if (isOverflow) {\n ele.classList.add(CLS_TB_POPUP);\n this.tbPop.insertBefore(ele, selectAll('.' + CLS_TB_POPUP, this.tbPop)[0]);\n }\n return true;\n };\n Tab.prototype.popupHandler = function (target) {\n var ripEle = target.querySelector('.e-ripple-element');\n if (!isNOU(ripEle)) {\n ripEle.outerHTML = '';\n target.querySelector('.' + CLS_WRAP).classList.remove('e-ripple');\n }\n this.tbItem = selectAll('.' + CLS_TB_ITEMS + ' .' + CLS_TB_ITEM, this.hdrEle);\n var lastChild = this.tbItem[this.tbItem.length - 1];\n if (this.tbItem.length !== 0) {\n target.classList.remove(CLS_TB_POPUP);\n target.removeAttribute('style');\n this.tbItems.appendChild(target);\n this.actEleId = target.id;\n if (this.checkPopupOverflow(lastChild)) {\n var prevEle = this.tbItems.lastChild.previousElementSibling;\n this.checkPopupOverflow(prevEle);\n }\n this.isPopup = true;\n }\n return selectAll('.' + CLS_TB_ITEM, this.tbItems).length - 1;\n };\n Tab.prototype.setCloseButton = function (val) {\n var trg = select('.' + CLS_HEADER, this.element);\n if (val === true) {\n trg.classList.add(CLS_CLOSE_SHOW);\n }\n else {\n trg.classList.remove(CLS_CLOSE_SHOW);\n }\n this.tbObj.refreshOverflow();\n this.refreshActiveTabBorder();\n };\n Tab.prototype.prevCtnAnimation = function (prev, current) {\n var animation;\n var checkRTL = this.enableRtl || this.element.classList.contains(CLS_RTL);\n if (this.isPopup || prev <= current) {\n if (this.animation.previous.effect === 'SlideLeftIn') {\n animation = {\n name: 'SlideLeftOut',\n duration: this.animation.previous.duration, timingFunction: this.animation.previous.easing\n };\n }\n else {\n animation = null;\n }\n }\n else {\n if (this.animation.next.effect === 'SlideRightIn') {\n animation = {\n name: 'SlideRightOut',\n duration: this.animation.next.duration, timingFunction: this.animation.next.easing\n };\n }\n else {\n animation = null;\n }\n }\n return animation;\n };\n Tab.prototype.triggerPrevAnimation = function (oldCnt, prevIndex) {\n var _this = this;\n var animateObj = this.prevCtnAnimation(prevIndex, this.selectedItem);\n if (!isNOU(animateObj)) {\n animateObj.begin = function () {\n setStyle(oldCnt, { 'position': 'absolute' });\n oldCnt.classList.add(CLS_PROGRESS);\n oldCnt.classList.add('e-view');\n };\n animateObj.end = function () {\n oldCnt.style.display = 'none';\n oldCnt.classList.remove(CLS_ACTIVE);\n oldCnt.classList.remove(CLS_PROGRESS);\n oldCnt.classList.remove('e-view');\n setStyle(oldCnt, { 'display': '', 'position': '' });\n if (oldCnt.childNodes.length === 0 && !_this.isTemplate) {\n detach(oldCnt);\n }\n };\n new Animation(animateObj).animate(oldCnt);\n }\n else {\n oldCnt.classList.remove(CLS_ACTIVE);\n }\n };\n Tab.prototype.triggerAnimation = function (id, value) {\n var _this = this;\n var prevIndex = this.prevIndex;\n var oldCnt;\n var itemCollection = [].slice.call(this.element.querySelector('.' + CLS_CONTENT).children);\n itemCollection.forEach(function (item) {\n if (item.id === _this.prevActiveEle) {\n oldCnt = item;\n }\n });\n var prevEle = this.tbItem[prevIndex];\n var newCnt = this.getTrgContent(this.cntEle, this.extIndex(id));\n if (isNOU(oldCnt) && !isNOU(prevEle)) {\n var idNo = this.extIndex(prevEle.id);\n oldCnt = this.getTrgContent(this.cntEle, idNo);\n }\n if (!isNOU(newCnt)) {\n this.prevActiveEle = newCnt.id;\n }\n var isPrevent = isNOU(this.animation) || this.animation.next === {} || this.animation.previous === {}\n || isNOU(this.animation.next.effect) || isNOU(this.animation.previous.effect)\n || this.animation.previous.effect == 'None' || this.animation.next.effect == 'None';\n if (this.initRender || value === false || this.animation === {} || isPrevent) {\n if (oldCnt && oldCnt !== newCnt) {\n oldCnt.classList.remove(CLS_ACTIVE);\n }\n return;\n }\n var cnt = select('.' + CLS_CONTENT, this.element);\n var animateObj;\n if (this.prevIndex > this.selectedItem && !this.isPopup) {\n var openEff = this.animation.previous.effect;\n animateObj = {\n name: ((openEff === 'None') ? '' : ((openEff !== 'SlideLeftIn') ? openEff : 'SlideLeftIn')),\n duration: this.animation.previous.duration,\n timingFunction: this.animation.previous.easing\n };\n }\n else if (this.isPopup || this.prevIndex < this.selectedItem || this.prevIndex === this.selectedItem) {\n var clsEff = this.animation.next.effect;\n animateObj = {\n name: ((clsEff === 'None') ? '' : ((clsEff !== 'SlideRightIn') ? clsEff : 'SlideRightIn')),\n duration: this.animation.next.duration,\n timingFunction: this.animation.next.easing\n };\n }\n animateObj.progress = function () {\n cnt.classList.add(CLS_PROGRESS);\n _this.setActiveBorder();\n };\n animateObj.end = function () {\n cnt.classList.remove(CLS_PROGRESS);\n newCnt.classList.add(CLS_ACTIVE);\n };\n if (!this.initRender && !isNOU(oldCnt)) {\n this.triggerPrevAnimation(oldCnt, prevIndex);\n }\n this.isPopup = false;\n if (animateObj.name === '') {\n newCnt.classList.add(CLS_ACTIVE);\n }\n else {\n new Animation(animateObj).animate(newCnt);\n }\n };\n Tab.prototype.keyPressed = function (trg) {\n var trgParent = closest(trg, '.' + CLS_HEADER + ' .' + CLS_TB_ITEM);\n var trgIndex = this.getEleIndex(trgParent);\n if (!isNOU(this.popEle) && trg.classList.contains('e-hor-nav')) {\n (this.popEle.classList.contains(CLS_POPUP_OPEN)) ? this.popObj.hide(this.hide) : this.popObj.show(this.show);\n }\n else if (trg.classList.contains('e-scroll-nav')) {\n trg.click();\n }\n else {\n if (!isNOU(trgParent) && trgParent.classList.contains(CLS_ACTIVE) === false) {\n this.selectTab(trgIndex, null, true);\n if (!isNOU(this.popEle)) {\n this.popObj.hide(this.hide);\n }\n }\n }\n };\n Tab.prototype.getTabHeader = function () {\n if (isNOU(this.element)) {\n return undefined;\n }\n var headers = [].slice.call(this.element.children).filter(function (e) { return e.classList.contains(CLS_HEADER); });\n if (headers.length > 0) {\n return headers[0];\n }\n else {\n var wrap = [].slice.call(this.element.children).filter(function (e) { return !e.classList.contains(CLS_BLA_TEM); })[0];\n if (!wrap) {\n return undefined;\n }\n return [].slice.call(wrap.children).filter(function (e) { return e.classList.contains(CLS_HEADER); })[0];\n }\n };\n Tab.prototype.getEleIndex = function (item) {\n return Array.prototype.indexOf.call(selectAll('.' + CLS_TB_ITEM, this.getTabHeader()), item);\n };\n Tab.prototype.extIndex = function (id) {\n return id.replace(CLS_ITEM + this.tabId + '_', '');\n };\n Tab.prototype.expTemplateContent = function () {\n var _this = this;\n this.templateEle.forEach(function (eleStr) {\n if (!isNOU(_this.element.querySelector(eleStr))) {\n document.body.appendChild(_this.element.querySelector(eleStr)).style.display = 'none';\n }\n });\n };\n Tab.prototype.templateCompile = function (ele, cnt, index) {\n var tempEle = this.createElement('div');\n this.compileElement(tempEle, cnt, 'content', index);\n if (tempEle.childNodes.length !== 0) {\n ele.appendChild(tempEle);\n }\n if (this.isReact) {\n this.renderReactTemplates();\n }\n };\n Tab.prototype.compileElement = function (ele, val, prop, index) {\n var templateFn;\n if (typeof val === 'string') {\n val = val.trim();\n if (this.isVue) {\n templateFn = compile(SanitizeHtmlHelper.sanitize(val));\n }\n else {\n ele.innerHTML = SanitizeHtmlHelper.sanitize(val);\n }\n }\n else {\n templateFn = compile(val);\n }\n var templateFUN;\n if (!isNOU(templateFn)) {\n templateFUN = templateFn({}, this, prop);\n }\n if (!isNOU(templateFn) && templateFUN.length > 0) {\n [].slice.call(templateFUN).forEach(function (el) {\n ele.appendChild(el);\n });\n }\n };\n Tab.prototype.headerTextCompile = function (element, text, index) {\n this.compileElement(element, text, 'headerTemplate', index);\n };\n Tab.prototype.getContent = function (ele, cnt, callType, index) {\n var eleStr;\n cnt = isNOU(cnt) ? \"\" : cnt;\n if (typeof cnt === 'string' || isNOU(cnt.innerHTML)) {\n if (typeof cnt === 'string' && this.enableHtmlSanitizer) {\n cnt = SanitizeHtmlHelper.sanitize(cnt);\n }\n if (cnt[0] === '.' || cnt[0] === '#') {\n if (document.querySelectorAll(cnt).length) {\n var eleVal = document.querySelector(cnt);\n eleStr = eleVal.outerHTML.trim();\n if (callType === 'clone') {\n ele.appendChild(eleVal.cloneNode(true));\n }\n else {\n ele.appendChild(eleVal);\n eleVal.style.display = '';\n }\n }\n else {\n this.templateCompile(ele, cnt, index);\n }\n }\n else {\n this.templateCompile(ele, cnt, index);\n }\n }\n else {\n ele.appendChild(cnt);\n }\n if (!isNOU(eleStr)) {\n if (this.templateEle.indexOf(cnt.toString()) === -1) {\n this.templateEle.push(cnt.toString());\n }\n }\n };\n Tab.prototype.getTrgContent = function (cntEle, no) {\n var ele;\n if (this.element.classList.contains(CLS_NEST)) {\n ele = select('.' + CLS_NEST + '> .' + CLS_CONTENT + ' > #' + CLS_CONTENT + this.tabId + '_' + no, this.element);\n }\n else {\n ele = this.findEle(cntEle.children, CLS_CONTENT + this.tabId + '_' + no);\n }\n return ele;\n };\n Tab.prototype.findEle = function (items, key) {\n var ele;\n for (var i = 0; i < items.length; i++) {\n if (items[i].id === key) {\n ele = items[i];\n break;\n }\n }\n return ele;\n };\n Tab.prototype.isVertical = function () {\n var isVertical = (this.headerPlacement === 'Left' || this.headerPlacement === 'Right') ? true : false;\n this.scrCntClass = (isVertical) ? CLS_VSCRCNT : CLS_HSCRCNT;\n return isVertical;\n };\n Tab.prototype.addVerticalClass = function () {\n if (this.isVertical()) {\n var tbPos = (this.headerPlacement === 'Left') ? CLS_VLEFT : CLS_VRIGHT;\n addClass([this.hdrEle], [CLS_VERTICAL, tbPos]);\n if (!this.element.classList.contains(CLS_NEST)) {\n addClass([this.element], [CLS_VTAB, tbPos]);\n }\n else {\n addClass([this.hdrEle], [CLS_VTAB, tbPos]);\n }\n }\n if (this.headerPlacement === 'Bottom') {\n addClass([this.hdrEle], [CLS_HBOTTOM]);\n }\n };\n Tab.prototype.updatePopAnimationConfig = function () {\n this.show = { name: (this.isVertical() ? 'FadeIn' : 'SlideDown'), duration: 100 };\n this.hide = { name: (this.isVertical() ? 'FadeOut' : 'SlideUp'), duration: 100 };\n };\n Tab.prototype.changeOrientation = function (place) {\n this.setOrientation(place, this.hdrEle);\n var activeTab = this.hdrEle.querySelector('.' + CLS_ACTIVE);\n var isVertical = this.hdrEle.classList.contains(CLS_VERTICAL) ? true : false;\n removeClass([this.element], [CLS_VTAB]);\n removeClass([this.hdrEle], [CLS_VERTICAL, CLS_VLEFT, CLS_VRIGHT]);\n if (isVertical !== this.isVertical()) {\n this.changeToolbarOrientation();\n if (!isNOU(activeTab) && activeTab.classList.contains(CLS_TB_POPUP)) {\n this.popupHandler(activeTab);\n }\n }\n this.addVerticalClass();\n this.setActiveBorder();\n this.focusItem();\n };\n Tab.prototype.focusItem = function () {\n var curActItem = select(' #' + CLS_ITEM + this.tabId + '_' + this.selectedItem, this.hdrEle);\n if (!isNOU(curActItem)) {\n curActItem.firstElementChild.focus();\n }\n };\n Tab.prototype.changeToolbarOrientation = function () {\n this.tbObj.setProperties({ height: (this.isVertical() ? '100%' : 'auto'), width: (this.isVertical() ? 'auto' : '100%') }, true);\n this.tbObj.changeOrientation();\n this.updatePopAnimationConfig();\n };\n Tab.prototype.setOrientation = function (place, ele) {\n var headerPos = Array.prototype.indexOf.call(this.element.children, ele);\n var contentPos = Array.prototype.indexOf.call(this.element.children, this.element.querySelector('.' + CLS_CONTENT));\n if (place === 'Bottom' && (contentPos > headerPos)) {\n this.element.appendChild(ele);\n }\n else {\n removeClass([ele], [CLS_HBOTTOM]);\n this.element.insertBefore(ele, select('.' + CLS_CONTENT, this.element));\n }\n };\n Tab.prototype.setCssClass = function (ele, cls, val) {\n if (cls === '') {\n return;\n }\n var list = cls.split(' ');\n for (var i = 0; i < list.length; i++) {\n if (val) {\n ele.classList.add(list[i]);\n }\n else {\n ele.classList.remove(list[i]);\n }\n }\n };\n Tab.prototype.setContentHeight = function (val) {\n if (this.element.classList.contains(CLS_FILL)) {\n removeClass([this.element], [CLS_FILL]);\n }\n if (isNOU(this.cntEle)) {\n return;\n }\n var hdrEle = this.getTabHeader();\n if (this.heightAdjustMode === 'None') {\n if (this.height === 'auto') {\n return;\n }\n else {\n if (!this.isVertical()) {\n setStyle(this.cntEle, { 'height': (this.element.clientHeight - hdrEle.offsetHeight) + 'px' });\n }\n }\n }\n else if (this.heightAdjustMode === 'Fill') {\n addClass([this.element], [CLS_FILL]);\n setStyle(this.element, { 'height': '100%' });\n this.cntEle.style.height = 'calc(100% - ' + this.hdrEle.offsetHeight + 'px)';\n }\n else if (this.heightAdjustMode === 'Auto') {\n if (this.isTemplate === true) {\n var cnt = selectAll('.' + CLS_CONTENT + ' > .' + CLS_ITEM, this.element);\n for (var i = 0; i < cnt.length; i++) {\n cnt[i].setAttribute('style', 'display:block; visibility: visible');\n this.maxHeight = Math.max(this.maxHeight, this.getHeight(cnt[i]));\n cnt[i].style.removeProperty('display');\n cnt[i].style.removeProperty('visibility');\n }\n }\n else {\n this.cntEle = select('.' + CLS_CONTENT, this.element);\n if (val === true) {\n this.cntEle.appendChild(this.createElement('div', {\n id: (CLS_CONTENT + this.tabId + '_' + 0), className: CLS_ITEM + ' ' + CLS_ACTIVE,\n attrs: { 'role': 'tabpanel', 'aria-labelledby': CLS_ITEM + this.tabId + '_' + 0 }\n }));\n }\n var ele = this.cntEle.children.item(0);\n for (var i = 0; i < this.items.length; i++) {\n this.getContent(ele, this.items[i].content, 'clone', i);\n this.maxHeight = Math.max(this.maxHeight, this.getHeight(ele));\n while (ele.firstChild) {\n ele.removeChild(ele.firstChild);\n }\n }\n if (this.isReact) {\n this.clearTemplate(['content']);\n }\n this.templateEle = [];\n this.getContent(ele, this.items[0].content, 'render', 0);\n if (this.prevIndex !== this.selectedItem) {\n ele.classList.remove(CLS_ACTIVE);\n }\n }\n setStyle(this.cntEle, { 'height': this.maxHeight + 'px' });\n }\n else {\n setStyle(this.cntEle, { 'height': 'auto' });\n }\n };\n Tab.prototype.getHeight = function (ele) {\n var cs = window.getComputedStyle(ele);\n return ele.offsetHeight + parseFloat(cs.getPropertyValue('padding-top')) + parseFloat(cs.getPropertyValue('padding-bottom')) +\n parseFloat(cs.getPropertyValue('margin-top')) + parseFloat(cs.getPropertyValue('margin-bottom'));\n };\n Tab.prototype.setActiveBorder = function () {\n var trgHdrEle = this.getTabHeader();\n var trg = select('.' + CLS_TB_ITEM + '.' + CLS_ACTIVE, trgHdrEle);\n if (isNOU(trg)) {\n return;\n }\n if (!this.reorderActiveTab) {\n if (trg.classList.contains(CLS_TB_POPUP) && !this.bdrLine.classList.contains(CLS_HIDDEN)) {\n this.bdrLine.classList.add(CLS_HIDDEN);\n }\n if (trgHdrEle && !trgHdrEle.classList.contains(CLS_REORDER_ACTIVE_ITEM)) {\n trgHdrEle.classList.add(CLS_REORDER_ACTIVE_ITEM);\n }\n }\n else if (trgHdrEle) {\n trgHdrEle.classList.remove(CLS_REORDER_ACTIVE_ITEM);\n }\n var root = closest(trg, '.' + CLS_TAB);\n if (this.element !== root) {\n return;\n }\n this.tbItems = select('.' + CLS_TB_ITEMS, trgHdrEle);\n var bar = select('.' + CLS_INDICATOR, trgHdrEle);\n var scrollCnt = select('.' + CLS_TB_ITEMS + ' .' + this.scrCntClass, trgHdrEle);\n if (this.isVertical()) {\n setStyle(bar, { 'left': '', 'right': '' });\n var tbHeight = (isNOU(scrollCnt)) ? this.tbItems.offsetHeight : scrollCnt.offsetHeight;\n if (tbHeight !== 0) {\n setStyle(bar, { 'top': trg.offsetTop + 'px', 'height': trg.offsetHeight + 'px' });\n }\n else {\n setStyle(bar, { 'top': 0, 'height': 0 });\n }\n }\n else {\n if (this.overflowMode === 'MultiRow') {\n var top_1 = this.headerPlacement === 'Bottom' ? trg.offsetTop : trg.offsetHeight + trg.offsetTop;\n setStyle(bar, { 'top': top_1 + 'px', 'height': '' });\n }\n else {\n setStyle(bar, { 'top': '', 'height': '' });\n }\n var tbWidth = (isNOU(scrollCnt)) ? this.tbItems.offsetWidth : scrollCnt.offsetWidth;\n if (tbWidth !== 0) {\n setStyle(bar, { 'left': trg.offsetLeft + 'px', 'right': tbWidth - (trg.offsetLeft + trg.offsetWidth) + 'px' });\n }\n else {\n setStyle(bar, { 'left': 'auto', 'right': 'auto' });\n }\n }\n if (!isNOU(this.bdrLine) && !trg.classList.contains(CLS_TB_POPUP)) {\n this.bdrLine.classList.remove(CLS_HIDDEN);\n }\n };\n Tab.prototype.setActive = function (value, skipDataBind, isInteracted) {\n if (skipDataBind === void 0) { skipDataBind = false; }\n if (isInteracted === void 0) { isInteracted = false; }\n this.tbItem = selectAll('.' + CLS_TB_ITEM, this.getTabHeader());\n var trg = this.tbItem[value];\n if (value < 0 || isNaN(value) || this.tbItem.length === 0) {\n return;\n }\n if (value >= 0 && !skipDataBind) {\n this.allowServerDataBinding = false;\n this.setProperties({ selectedItem: value }, true);\n this.allowServerDataBinding = true;\n if (!this.initRender) {\n this.serverDataBind();\n }\n }\n if (trg.classList.contains(CLS_ACTIVE)) {\n this.setActiveBorder();\n return;\n }\n if (!this.isTemplate) {\n attributes(trg.firstElementChild, { 'aria-controls': CLS_CONTENT + this.tabId + '_' + value });\n }\n var id = trg.id;\n this.removeActiveClass();\n trg.classList.add(CLS_ACTIVE);\n trg.firstElementChild.setAttribute('aria-selected', 'true');\n var no = Number(this.extIndex(id));\n if (isNOU(this.prevActiveEle)) {\n this.prevActiveEle = CLS_CONTENT + this.tabId + '_' + no;\n }\n if (this.isTemplate) {\n if (select('.' + CLS_CONTENT, this.element).children.length > 0) {\n var trg_1 = this.findEle(select('.' + CLS_CONTENT, this.element).children, CLS_CONTENT + this.tabId + '_' + no);\n if (!isNOU(trg_1)) {\n trg_1.classList.add(CLS_ACTIVE);\n }\n this.triggerAnimation(id, this.enableAnimation);\n }\n }\n else {\n this.cntEle = select('.' + CLS_TAB + ' > .' + CLS_CONTENT, this.element);\n var item = this.getTrgContent(this.cntEle, this.extIndex(id));\n if (isNOU(item)) {\n this.cntEle.appendChild(this.createElement('div', {\n id: CLS_CONTENT + this.tabId + '_' + this.extIndex(id), className: CLS_ITEM + ' ' + CLS_ACTIVE,\n attrs: { role: 'tabpanel', 'aria-labelledby': CLS_ITEM + this.tabId + '_' + this.extIndex(id) }\n }));\n var eleTrg = this.getTrgContent(this.cntEle, this.extIndex(id));\n var itemIndex = Array.prototype.indexOf.call(this.itemIndexArray, id);\n this.getContent(eleTrg, this.items[itemIndex].content, 'render', itemIndex);\n }\n else {\n item.classList.add(CLS_ACTIVE);\n }\n this.triggerAnimation(id, this.enableAnimation);\n }\n this.setActiveBorder();\n this.refreshItemVisibility(trg);\n if (!this.initRender && !skipDataBind) {\n trg.firstElementChild.focus();\n var eventArg = {\n previousItem: this.prevItem,\n previousIndex: this.prevIndex,\n selectedItem: trg,\n selectedIndex: value,\n selectedContent: select('#' + CLS_CONTENT + this.tabId + '_' + this.selectingID, this.content),\n isSwiped: this.isSwipeed,\n isInteracted: isInteracted\n };\n this.trigger('selected', eventArg);\n }\n };\n Tab.prototype.setItems = function (items) {\n this.isReplace = true;\n this.tbItems = select('.' + CLS_TB_ITEMS, this.getTabHeader());\n this.tbObj.items = this.parseObject(items, 0);\n this.tbObj.dataBind();\n this.isReplace = false;\n };\n Tab.prototype.setRTL = function (value) {\n this.tbObj.enableRtl = value;\n this.tbObj.dataBind();\n this.setCssClass(this.element, CLS_RTL, value);\n this.refreshActiveBorder();\n };\n Tab.prototype.refreshActiveBorder = function () {\n if (!isNOU(this.bdrLine)) {\n this.bdrLine.classList.add(CLS_HIDDEN);\n }\n this.setActiveBorder();\n };\n Tab.prototype.showPopup = function (config) {\n var tbPop = select('.e-popup.e-toolbar-pop', this.hdrEle);\n if (tbPop.classList.contains('e-popup-close')) {\n var tbPopObj = (tbPop && tbPop.ej2_instances[0]);\n tbPopObj.position.X = (this.headerPlacement === 'Left') ? 'left' : 'right';\n tbPopObj.dataBind();\n tbPopObj.show(config);\n }\n };\n Tab.prototype.bindDraggable = function () {\n var _this = this;\n if (this.allowDragAndDrop) {\n var tabHeader = this.element.querySelector('.' + CLS_HEADER);\n if (tabHeader) {\n var items = tabHeader.querySelectorAll('.' + CLS_TB_ITEM);\n items.forEach(function (element) {\n _this.initializeDrag(element);\n });\n }\n }\n };\n Tab.prototype.wireEvents = function () {\n this.bindDraggable();\n window.addEventListener('resize', this.resizeContext);\n EventHandler.add(this.element, 'mouseover', this.hoverHandler, this);\n EventHandler.add(this.element, 'keydown', this.spaceKeyDown, this);\n if (!isNOU(this.cntEle)) {\n this.touchModule = new Touch(this.cntEle, { swipe: this.swipeHandler.bind(this) });\n }\n this.keyModule = new KeyboardEvents(this.element, { keyAction: this.keyHandler.bind(this), keyConfigs: this.keyConfigs });\n this.tabKeyModule = new KeyboardEvents(this.element, {\n keyAction: this.keyHandler.bind(this),\n keyConfigs: { openPopup: 'shift+f10', tab: 'tab', shiftTab: 'shift+tab' },\n eventName: 'keydown'\n });\n };\n Tab.prototype.unWireEvents = function () {\n if (!isNOU(this.keyModule)) {\n this.keyModule.destroy();\n }\n if (!isNOU(this.tabKeyModule)) {\n this.tabKeyModule.destroy();\n }\n if (!isNOU(this.cntEle) && !isNOU(this.touchModule)) {\n this.touchModule.destroy();\n this.touchModule = null;\n }\n window.removeEventListener('resize', this.resizeContext);\n EventHandler.remove(this.element, 'mouseover', this.hoverHandler);\n EventHandler.remove(this.element, 'keydown', this.spaceKeyDown);\n this.element.classList.remove(CLS_RTL);\n this.element.classList.remove(CLS_FOCUS);\n };\n Tab.prototype.clickHandler = function (args) {\n this.element.classList.remove(CLS_FOCUS);\n var trg = args.originalEvent.target;\n var trgParent = closest(trg, '.' + CLS_TB_ITEM);\n var trgIndex = this.getEleIndex(trgParent);\n if (trg.classList.contains(CLS_ICON_CLOSE)) {\n this.removeTab(trgIndex);\n }\n else if (this.isVertical() && closest(trg, '.' + CLS_HOR_NAV)) {\n this.showPopup(this.show);\n }\n else {\n this.isPopup = false;\n if (!isNOU(trgParent) && (trgIndex !== this.selectedItem || trgIndex !== this.prevIndex)) {\n this.selectTab(trgIndex, args.originalEvent, true);\n }\n }\n };\n Tab.prototype.swipeHandler = function (e) {\n if (e.velocity < 3 && isNOU(e.originalEvent.changedTouches)) {\n return;\n }\n if (this.isNested) {\n this.element.setAttribute('data-swipe', 'true');\n }\n var nestedTab = this.element.querySelector('[data-swipe=\"true\"]');\n if (nestedTab) {\n nestedTab.removeAttribute('data-swipe');\n return;\n }\n this.isSwipeed = true;\n if (e.swipeDirection === 'Right' && this.selectedItem !== 0) {\n for (var k = this.selectedItem - 1; k >= 0; k--) {\n if (!this.tbItem[k].classList.contains(CLS_HIDDEN)) {\n this.selectTab(k, null, true);\n break;\n }\n }\n }\n else if (e.swipeDirection === 'Left' && (this.selectedItem !== selectAll('.' + CLS_TB_ITEM, this.element).length - 1)) {\n for (var i = this.selectedItem + 1; i < this.tbItem.length; i++) {\n if (!this.tbItem[i].classList.contains(CLS_HIDDEN)) {\n this.selectTab(i, null, true);\n break;\n }\n }\n }\n this.isSwipeed = false;\n };\n Tab.prototype.spaceKeyDown = function (e) {\n if ((e.keyCode === 32 && e.which === 32) || (e.keyCode === 35 && e.which === 35)) {\n var clstHead = closest(e.target, '.' + CLS_HEADER);\n if (!isNOU(clstHead)) {\n e.preventDefault();\n }\n }\n };\n Tab.prototype.keyHandler = function (e) {\n if (this.element.classList.contains(CLS_DISABLE)) {\n return;\n }\n this.element.classList.add(CLS_FOCUS);\n var trg = e.target;\n var tabHeader = this.getTabHeader();\n var actEle = select('.' + CLS_ACTIVE, tabHeader);\n this.popEle = select('.' + CLS_TB_POP, tabHeader);\n if (!isNOU(this.popEle)) {\n this.popObj = this.popEle.ej2_instances[0];\n }\n var item = closest(document.activeElement, '.' + CLS_TB_ITEM);\n var trgParent = closest(trg, '.' + CLS_TB_ITEM);\n switch (e.action) {\n case 'space':\n case 'enter':\n if (trg.parentElement.classList.contains(CLS_DISABLE)) {\n return;\n }\n if (e.action === 'enter' && trg.classList.contains('e-hor-nav')) {\n this.showPopup(this.show);\n break;\n }\n this.keyPressed(trg);\n break;\n case 'tab':\n case 'shiftTab':\n if (trg.classList.contains(CLS_WRAP)\n && closest(trg, '.' + CLS_TB_ITEM).classList.contains(CLS_ACTIVE) === false) {\n trg.setAttribute('tabindex', trg.getAttribute('data-tabindex'));\n }\n if (this.popObj && isVisible(this.popObj.element)) {\n this.popObj.hide(this.hide);\n }\n if (!isNOU(actEle) && actEle.children.item(0).getAttribute('tabindex') === '-1') {\n actEle.children.item(0).setAttribute('tabindex', '0');\n }\n break;\n case 'moveLeft':\n case 'moveRight':\n if (!isNOU(item)) {\n this.refreshItemVisibility(item);\n }\n break;\n case 'openPopup':\n e.preventDefault();\n if (!isNOU(this.popEle) && this.popEle.classList.contains(CLS_POPUP_CLOSE)) {\n this.popObj.show(this.show);\n }\n break;\n case 'delete':\n if (this.showCloseButton === true && !isNOU(trgParent)) {\n var nxtSib = trgParent.nextSibling;\n if (!isNOU(nxtSib) && nxtSib.classList.contains(CLS_TB_ITEM)) {\n nxtSib.firstElementChild.focus();\n }\n this.removeTab(this.getEleIndex(trgParent));\n }\n this.setActiveBorder();\n break;\n }\n };\n Tab.prototype.refreshItemVisibility = function (target) {\n var scrCnt = select('.' + this.scrCntClass, this.tbItems);\n if (!this.isVertical() && !isNOU(scrCnt)) {\n var scrBar = select('.e-hscroll-bar', this.tbItems);\n var scrStart = scrBar.scrollLeft;\n var scrEnd = scrStart + scrBar.offsetWidth;\n var eleStart = target.offsetLeft;\n var eleWidth = target.offsetWidth;\n var eleEnd = target.offsetLeft + target.offsetWidth;\n if ((scrStart < eleStart) && (scrEnd < eleEnd)) {\n var eleViewRange = scrEnd - eleStart;\n scrBar.scrollLeft = scrStart + (eleWidth - eleViewRange);\n }\n else {\n if ((scrStart > eleStart) && (scrEnd > eleEnd)) {\n var eleViewRange = eleEnd - scrStart;\n scrBar.scrollLeft = scrStart - (eleWidth - eleViewRange);\n }\n }\n }\n else {\n return;\n }\n };\n Tab.prototype.getIndexFromEle = function (id) {\n return parseInt(id.substring(id.lastIndexOf('_') + 1), 10);\n };\n Tab.prototype.hoverHandler = function (e) {\n var trg = e.target;\n if (!isNOU(trg.classList) && trg.classList.contains(CLS_ICON_CLOSE)) {\n trg.setAttribute('title', new L10n('tab', { closeButtonTitle: this.title }, this.locale).getConstant('closeButtonTitle'));\n }\n };\n Tab.prototype.evalOnPropertyChangeItems = function (newProp, oldProp) {\n if (!(newProp.items instanceof Array && oldProp.items instanceof Array)) {\n var changedProp = Object.keys(newProp.items);\n for (var i = 0; i < changedProp.length; i++) {\n var index = parseInt(Object.keys(newProp.items)[i], 10);\n var properties = Object.keys(newProp.items[index]);\n for (var j = 0; j < properties.length; j++) {\n var oldVal = Object(oldProp.items[index])[properties[j]];\n var newVal = Object(newProp.items[index])[properties[j]];\n var hdr = this.element.querySelectorAll('.' + CLS_TB_ITEM)[index];\n var itemIndex = void 0;\n if (hdr && !isNOU(hdr.id) && hdr.id !== '') {\n itemIndex = this.getIndexFromEle(hdr.id);\n }\n else {\n itemIndex = index;\n }\n var hdrItem = select('.' + CLS_TB_ITEMS + ' #' + CLS_ITEM + this.tabId + '_' + itemIndex, this.element);\n var cntItem = select('.' + CLS_CONTENT + ' #' + CLS_CONTENT + this.tabId + '_' + itemIndex, this.element);\n if (properties[j] === 'header' || properties[j] === 'headerTemplate') {\n var icon = (isNOU(this.items[index].header) ||\n isNOU(this.items[index].header.iconCss)) ? '' : this.items[index].header.iconCss;\n var textVal = this.items[index].headerTemplate || this.items[index].header.text;\n if ((textVal === '') && (icon === '')) {\n this.removeTab(index);\n }\n else {\n this.tbId = hdr.id;\n var arr = [];\n arr.push(this.items[index]);\n this.items.splice(index, 1);\n this.itemIndexArray.splice(index, 1);\n this.tbObj.items.splice(index, 1);\n var isHiddenEle = hdrItem.classList.contains(CLS_HIDDEN);\n detach(hdrItem);\n this.isReplace = true;\n this.addTab(arr, index);\n if (isHiddenEle) {\n this.hideTab(index);\n }\n this.isReplace = false;\n }\n }\n if (properties[j] === 'content' && !isNOU(cntItem)) {\n var strVal = typeof newVal === 'string' || isNOU(newVal.innerHTML);\n if (strVal && (newVal[0] === '.' || newVal[0] === '#') && newVal.length) {\n var eleVal = document.querySelector(newVal);\n cntItem.appendChild(eleVal);\n eleVal.style.display = '';\n }\n else if (newVal === '' && oldVal[0] === '#') {\n document.body.appendChild(this.element.querySelector(oldVal)).style.display = 'none';\n cntItem.innerHTML = newVal;\n }\n else if (this.isReact) {\n cntItem.innerHTML = '';\n this.templateCompile(cntItem, newVal, index);\n }\n else if (typeof newVal !== 'function') {\n cntItem.innerHTML = newVal;\n }\n }\n if (properties[j] === 'cssClass') {\n if (!isNOU(hdrItem)) {\n hdrItem.classList.remove(oldVal);\n hdrItem.classList.add(newVal);\n }\n if (!isNOU(cntItem)) {\n cntItem.classList.remove(oldVal);\n cntItem.classList.add(newVal);\n }\n }\n if (properties[j] === 'disabled') {\n this.enableTab(index, ((newVal === true) ? false : true));\n }\n if (properties[j] === 'visible') {\n this.hideTab(index, ((newVal === true) ? false : true));\n }\n }\n }\n }\n else {\n this.lastIndex = 0;\n if (isNOU(this.tbObj)) {\n this.reRenderItems();\n }\n else {\n if (this.isReact || this.isAngular) {\n this.clearTemplate();\n }\n this.setItems(newProp.items);\n if (this.templateEle.length > 0) {\n this.expTemplateContent();\n }\n this.templateEle = [];\n var selectElement = select('.' + CLS_TAB + ' > .' + CLS_CONTENT, this.element);\n while (selectElement.firstElementChild) {\n detach(selectElement.firstElementChild);\n }\n this.select(this.selectedItem);\n this.draggableItems = [];\n this.bindDraggable();\n }\n }\n };\n Tab.prototype.initializeDrag = function (target) {\n var _this = this;\n var dragObj = new Draggable(target, {\n dragArea: this.dragArea,\n dragTarget: '.' + CLS_TB_ITEM,\n clone: true,\n helper: this.helper.bind(this),\n dragStart: this.itemDragStart.bind(this),\n drag: function (e) {\n var dragIndex = _this.getEleIndex(_this.dragItem);\n var dropIndex;\n var dropItem;\n var dragArgs = {\n draggedItem: _this.dragItem,\n event: e.event,\n target: e.target,\n droppedItem: e.target.closest('.' + CLS_TB_ITEM),\n clonedElement: _this.cloneElement,\n index: dragIndex\n };\n if (!isNOU(e.target.closest('.' + CLS_TAB)) && !e.target.closest('.' + CLS_TAB).isEqualNode(_this.element) &&\n _this.dragArea !== '.' + CLS_HEADER) {\n _this.trigger('dragging', dragArgs);\n }\n else {\n if (!(e.target.closest(_this.dragArea)) && _this.overflowMode !== 'Popup') {\n document.body.style.cursor = 'not-allowed';\n addClass([_this.cloneElement], CLS_HIDDEN);\n if (_this.dragItem.classList.contains(CLS_HIDDEN)) {\n removeClass([_this.dragItem], CLS_HIDDEN);\n }\n _this.dragItem.querySelector('.' + CLS_WRAP).style.visibility = 'visible';\n }\n else {\n document.body.style.cursor = '';\n _this.dragItem.querySelector('.' + CLS_WRAP).style.visibility = 'hidden';\n if (_this.cloneElement.classList.contains(CLS_HIDDEN)) {\n removeClass([_this.cloneElement], CLS_HIDDEN);\n }\n }\n if (_this.overflowMode === 'Scrollable' && !isNOU(_this.element.querySelector('.e-hscroll'))) {\n var scrollRightNavEle = _this.element.querySelector('.e-scroll-right-nav');\n var scrollLeftNavEle = _this.element.querySelector('.e-scroll-left-nav');\n var hscrollBar = _this.element.querySelector('.e-hscroll-bar');\n if (!isNOU(scrollRightNavEle) && Math.abs((scrollRightNavEle.offsetWidth / 2) +\n scrollRightNavEle.offsetLeft) > _this.cloneElement.offsetLeft + _this.cloneElement.offsetWidth) {\n hscrollBar.scrollLeft -= 10;\n }\n if (!isNOU(scrollLeftNavEle) && Math.abs((scrollLeftNavEle.offsetLeft + scrollLeftNavEle.offsetWidth) -\n _this.cloneElement.offsetLeft) > (scrollLeftNavEle.offsetWidth / 2)) {\n hscrollBar.scrollLeft += 10;\n }\n }\n _this.cloneElement.style.pointerEvents = 'none';\n dropItem = closest(e.target, '.' + CLS_TB_ITEM + '.e-draggable');\n var scrollContentWidth = 0;\n if (_this.overflowMode === 'Scrollable' && !isNOU(_this.element.querySelector('.e-hscroll'))) {\n scrollContentWidth = _this.element.querySelector('.e-hscroll-content').offsetWidth;\n }\n if (dropItem != null && !dropItem.isSameNode(_this.dragItem) &&\n dropItem.closest('.' + CLS_TAB).isSameNode(_this.dragItem.closest('.' + CLS_TAB))) {\n dropIndex = _this.getEleIndex(dropItem);\n if (dropIndex < dragIndex &&\n (Math.abs((dropItem.offsetLeft + dropItem.offsetWidth) -\n _this.cloneElement.offsetLeft) > (dropItem.offsetWidth / 2))) {\n _this.dragAction(dropItem, dragIndex, dropIndex);\n }\n if (dropIndex > dragIndex &&\n (Math.abs(dropItem.offsetWidth / 2) + dropItem.offsetLeft -\n scrollContentWidth) < _this.cloneElement.offsetLeft + _this.cloneElement.offsetWidth) {\n _this.dragAction(dropItem, dragIndex, dropIndex);\n }\n }\n _this.droppedIndex = _this.getEleIndex(_this.dragItem);\n _this.trigger('dragging', dragArgs);\n }\n },\n dragStop: this.itemDragStop.bind(this)\n });\n this.draggableItems.push(dragObj);\n };\n Tab.prototype.helper = function (e) {\n this.cloneElement = this.createElement('div');\n if (e.element) {\n this.cloneElement = (e.element.cloneNode(true));\n addClass([this.cloneElement], 'e-tab-clone-element');\n if (this.element.querySelector('.' + CLS_HEADER).classList.contains(CLS_CLOSE_SHOW)) {\n addClass([this.cloneElement], CLS_CLOSE_SHOW);\n }\n removeClass([this.cloneElement.querySelector('.' + CLS_WRAP)], 'e-ripple');\n if (!isNOU(this.cloneElement.querySelector('.e-ripple-element'))) {\n remove(this.cloneElement.querySelector('.e-ripple-element'));\n }\n document.body.appendChild(this.cloneElement);\n }\n return this.cloneElement;\n };\n Tab.prototype.itemDragStart = function (e) {\n var _this = this;\n this.draggingItems = this.items.map(function (x) { return x; });\n this.dragItem = e.element;\n var dragArgs = {\n draggedItem: e.element,\n event: e.event,\n target: e.target,\n droppedItem: null,\n index: this.getEleIndex(this.dragItem),\n clonedElement: this.cloneElement,\n cancel: false\n };\n this.trigger('onDragStart', dragArgs, function (tabitemDragArgs) {\n if (tabitemDragArgs.cancel) {\n detach(_this.cloneElement);\n }\n else {\n _this.removeActiveClass();\n addClass([_this.tbItems.querySelector('.' + CLS_INDICATOR)], CLS_HIDDEN);\n _this.dragItem.querySelector('.' + CLS_WRAP).style.visibility = 'hidden';\n }\n });\n };\n Tab.prototype.dragAction = function (dropItem, dragsIndex, dropIndex) {\n if (this.items.length > 0) {\n var item = this.draggingItems[dragsIndex];\n this.draggingItems.splice(dragsIndex, 1);\n this.draggingItems.splice(dropIndex, 0, item);\n }\n if (this.overflowMode === 'MultiRow') {\n dropItem.parentNode.insertBefore(this.dragItem, dropItem.nextElementSibling);\n }\n if (dragsIndex > dropIndex) {\n if (!(this.dragItem.parentElement).isSameNode(dropItem.parentElement)) {\n if (this.overflowMode === 'Extended') {\n if (dropItem.isSameNode(dropItem.parentElement.lastChild)) {\n var popupContainer = this.dragItem.parentNode;\n dropItem.parentNode.insertBefore(this.dragItem, dropItem);\n popupContainer.insertBefore(dropItem.parentElement.lastChild, popupContainer.childNodes[0]);\n }\n else {\n this.dragItem.parentNode.insertBefore((dropItem.parentElement.lastChild), this.dragItem.parentElement.childNodes[0]);\n dropItem.parentNode.insertBefore(this.dragItem, dropItem);\n }\n }\n else {\n var lastEle = (dropItem.parentElement).lastChild;\n if (dropItem.isSameNode(lastEle)) {\n var popupContainer = this.dragItem.parentNode;\n dropItem.parentNode.insertBefore(this.dragItem, dropItem);\n popupContainer.insertBefore(lastEle, popupContainer.childNodes[0]);\n }\n else {\n this.dragItem.parentNode.insertBefore((dropItem.parentElement).lastChild, this.dragItem.parentElement.childNodes[0]);\n dropItem.parentNode.insertBefore(this.dragItem, dropItem);\n }\n }\n }\n else {\n this.dragItem.parentNode.insertBefore(this.dragItem, dropItem);\n }\n }\n if (dragsIndex < dropIndex) {\n if (!(this.dragItem.parentElement).isSameNode(dropItem.parentElement)) {\n if (this.overflowMode === 'Extended') {\n this.dragItem.parentElement.appendChild(dropItem.parentElement.firstElementChild);\n dropItem.parentNode.insertBefore(this.dragItem, dropItem.nextSibling);\n }\n else {\n this.dragItem.parentNode.insertBefore((dropItem.parentElement).lastChild, this.dragItem.parentElement.childNodes[0]);\n dropItem.parentNode.insertBefore(this.dragItem, dropItem);\n }\n }\n else {\n this.dragItem.parentNode.insertBefore(this.dragItem, dropItem.nextElementSibling);\n }\n }\n };\n Tab.prototype.itemDragStop = function (e) {\n var _this = this;\n detach(this.cloneElement);\n this.cloneElement = null;\n this.dragItem.querySelector('.' + CLS_WRAP).style.visibility = 'visible';\n document.body.style.cursor = '';\n var dragStopArgs = {\n draggedItem: this.dragItem,\n event: e.event,\n target: e.target,\n droppedItem: this.tbItem[this.droppedIndex],\n clonedElement: null,\n index: this.droppedIndex,\n cancel: false\n };\n this.trigger('dragged', dragStopArgs, function (tabItemDropArgs) {\n if (tabItemDropArgs.cancel) {\n _this.refresh();\n }\n else {\n if (_this.items.length > 0 && _this.draggingItems.length > 0) {\n _this.items = _this.draggingItems;\n _this.selectedItem = _this.droppedIndex;\n _this.refresh();\n }\n else {\n _this.dragItem.querySelector('.' + CLS_WRAP).style.visibility = '';\n removeClass([_this.tbItems.querySelector('.' + CLS_INDICATOR)], CLS_HIDDEN);\n _this.selectTab(_this.droppedIndex, null, true);\n }\n }\n });\n this.dragItem = null;\n };\n /**\n * Enables or disables the specified Tab item. On passing value as `false`, the item will be disabled.\n *\n * @param {number} index - Index value of target Tab item.\n * @param {boolean} value - Boolean value that determines whether the command should be enabled or disabled.\n * By default, isEnable is true.\n * @returns {void}.\n */\n Tab.prototype.enableTab = function (index, value) {\n var tbItems = selectAll('.' + CLS_TB_ITEM, this.element)[index];\n if (isNOU(tbItems)) {\n return;\n }\n if (value === true) {\n tbItems.classList.remove(CLS_DISABLE, CLS_OVERLAY);\n tbItems.firstElementChild.setAttribute('tabindex', tbItems.firstElementChild.getAttribute('data-tabindex'));\n }\n else {\n tbItems.classList.add(CLS_DISABLE, CLS_OVERLAY);\n tbItems.firstElementChild.removeAttribute('tabindex');\n if (tbItems.classList.contains(CLS_ACTIVE)) {\n this.select(index + 1);\n }\n }\n if (!isNOU(this.items[index])) {\n this.items[index].disabled = !value;\n this.dataBind();\n }\n tbItems.setAttribute('aria-disabled', (value === true) ? 'false' : 'true');\n };\n /**\n * Adds new items to the Tab that accepts an array as Tab items.\n *\n * @param {TabItemModel[]} items - An array of item that is added to the Tab.\n * @param {number} index - Number value that determines where the items to be added. By default, index is 0.\n * @returns {void}.\n */\n Tab.prototype.addTab = function (items, index) {\n var _this = this;\n var addArgs = { addedItems: items, cancel: false };\n if (!this.isReplace) {\n this.trigger('adding', addArgs, function (tabAddingArgs) {\n if (!tabAddingArgs.cancel) {\n _this.addingTabContent(items, index);\n }\n });\n }\n else {\n this.addingTabContent(items, index);\n }\n if (this.isReact) {\n this.renderReactTemplates();\n }\n };\n Tab.prototype.addingTabContent = function (items, index) {\n var _this = this;\n var lastEleIndex = 0;\n this.hdrEle = select('.' + CLS_HEADER, this.element);\n if (isNOU(this.hdrEle)) {\n this.items = items;\n this.reRenderItems();\n this.bindDraggable();\n }\n else {\n var itemsCount = selectAll('.e-tab-header .' + CLS_TB_ITEM, this.element).length;\n if (itemsCount !== 0) {\n lastEleIndex = this.lastIndex + 1;\n }\n if (isNOU(index)) {\n index = itemsCount - 1;\n }\n if (itemsCount < index || index < 0 || isNaN(index)) {\n return;\n }\n if (itemsCount === 0 && !isNOU(this.hdrEle)) {\n this.hdrEle.style.display = '';\n }\n if (!isNOU(this.bdrLine)) {\n this.bdrLine.classList.add(CLS_HIDDEN);\n }\n this.tbItems = select('.' + CLS_TB_ITEMS, this.getTabHeader());\n this.isAdd = true;\n var tabItems_2 = this.parseObject(items, index);\n this.isAdd = false;\n var i_1 = 0;\n var textValue_1;\n items.forEach(function (item, place) {\n textValue_1 = item.headerTemplate || item.header.text;\n if (!(isNOU(item.headerTemplate || item.header) || isNOU(textValue_1) ||\n (textValue_1.length === 0) && !isNOU(item.header) && isNOU(item.header.iconCss))) {\n if (tabItems_2[place]) {\n if (isNOU(item.id)) {\n item.id = CLS_ITEM + _this.tabId + '_' + TABITEMPREFIX + (lastEleIndex + place).toString();\n }\n tabItems_2[place].htmlAttributes['data-id'] = item.id;\n }\n _this.items.splice((index + i_1), 0, item);\n i_1++;\n }\n if (_this.isTemplate && !isNOU(item.header) && !isNOU(item.header.text)) {\n var no = lastEleIndex + place;\n var ele = _this.createElement('div', {\n id: CLS_CONTENT + _this.tabId + '_' + no, className: CLS_ITEM,\n attrs: { role: 'tabpanel', 'aria-labelledby': CLS_ITEM + '_' + no }\n });\n _this.cntEle.insertBefore(ele, _this.cntEle.children[(index + place)]);\n var eleTrg = _this.getTrgContent(_this.cntEle, no.toString());\n _this.getContent(eleTrg, item.content, 'render', index);\n }\n });\n this.tbObj.addItems(tabItems_2, index);\n if (!this.isReplace) {\n this.trigger('added', { addedItems: items });\n }\n if (this.selectedItem === index) {\n this.select(index);\n }\n else {\n this.setActiveBorder();\n this.tbItem = selectAll('.' + CLS_TB_ITEM, this.getTabHeader());\n }\n this.bindDraggable();\n }\n };\n /**\n * Removes the items in the Tab from the specified index.\n *\n * @param {number} index - Index of target item that is going to be removed.\n * @returns {void}.\n */\n Tab.prototype.removeTab = function (index) {\n var _this = this;\n var trg = selectAll('.' + CLS_TB_ITEM, this.element)[index];\n if (isNOU(trg)) {\n return;\n }\n var removeArgs = { removedItem: trg, removedIndex: index, cancel: false };\n this.trigger('removing', removeArgs, function (tabRemovingArgs) {\n if (!tabRemovingArgs.cancel) {\n _this.tbObj.removeItems(index);\n if (_this.allowDragAndDrop && (index !== Array.prototype.indexOf.call(_this.itemIndexArray, trg.id))) {\n index = Array.prototype.indexOf.call(_this.itemIndexArray, trg.id);\n }\n var targetEleIndex = _this.itemIndexArray.indexOf(trg.id);\n _this.items.splice(targetEleIndex, 1);\n _this.itemIndexArray.splice(targetEleIndex, 1);\n _this.refreshActiveBorder();\n var cntTrg = select('#' + CLS_CONTENT + _this.tabId + '_' + _this.extIndex(trg.id), select('.' + CLS_CONTENT, _this.element));\n if (!isNOU(cntTrg)) {\n var registeredTemplate = _this.registeredTemplate;\n if (registeredTemplate && registeredTemplate.content) {\n var templateToClear = [];\n for (var i = 0; i < registeredTemplate.content.length; i++) {\n var registeredItem = registeredTemplate.content[i].rootNodes[0];\n var closestItem = closest(registeredItem, '.' + CLS_ITEM);\n if (!isNullOrUndefined(registeredItem) && closestItem === cntTrg) {\n templateToClear.push(registeredTemplate.content[i]);\n break;\n }\n }\n if (templateToClear.length > 0) {\n _this.clearTemplate(['content'], templateToClear);\n }\n }\n detach(cntTrg);\n }\n _this.trigger('removed', tabRemovingArgs);\n if (_this.draggableItems && _this.draggableItems.length > 0) {\n _this.draggableItems[index].destroy();\n _this.draggableItems[index] = null;\n _this.draggableItems.splice(index, 1);\n }\n if (trg.classList.contains(CLS_ACTIVE)) {\n index = (index > selectAll('.' + CLS_TB_ITEM + ':not(.' + CLS_TB_POPUP + ')', _this.element).length - 1) ? index - 1 : index;\n _this.enableAnimation = false;\n _this.selectedItem = index;\n _this.select(index);\n }\n else if (index !== _this.selectedItem) {\n if (index < _this.selectedItem) {\n index = _this.itemIndexArray.indexOf(_this.tbItem[_this.selectedItem].id);\n _this.setProperties({ selectedItem: index > -1 ? index : _this.selectedItem }, true);\n _this.prevIndex = _this.selectedItem;\n }\n _this.tbItem = selectAll('.' + CLS_TB_ITEM, _this.getTabHeader());\n }\n if (selectAll('.' + CLS_TB_ITEM, _this.element).length === 0) {\n _this.hdrEle.style.display = 'none';\n }\n _this.enableAnimation = true;\n }\n });\n };\n /**\n * Shows or hides the Tab that is in the specified index.\n *\n * @param {number} index - Index value of target item.\n * @param {boolean} value - Based on this Boolean value, item will be hide (false) or show (true). By default, value is true.\n * @returns {void}.\n */\n Tab.prototype.hideTab = function (index, value) {\n var items;\n var item = selectAll('.' + CLS_TB_ITEM, this.element)[index];\n if (isNOU(item)) {\n return;\n }\n if (isNOU(value)) {\n value = true;\n }\n this.bdrLine.classList.add(CLS_HIDDEN);\n if (value === true) {\n item.classList.add(CLS_HIDDEN);\n items = selectAll('.' + CLS_TB_ITEM + ':not(.' + CLS_HIDDEN + ')', this.tbItems);\n if (items.length !== 0 && item.classList.contains(CLS_ACTIVE)) {\n if (index !== 0) {\n for (var i = index - 1; i >= 0; i--) {\n if (!this.tbItem[i].classList.contains(CLS_HIDDEN)) {\n this.select(i);\n break;\n }\n else if (i === 0) {\n for (var k = index + 1; k < this.tbItem.length; k++) {\n if (!this.tbItem[k].classList.contains(CLS_HIDDEN)) {\n this.select(k);\n break;\n }\n }\n }\n }\n }\n else {\n for (var k = index + 1; k < this.tbItem.length; k++) {\n if (!this.tbItem[k].classList.contains(CLS_HIDDEN)) {\n this.select(k);\n break;\n }\n }\n }\n }\n else if (items.length === 0) {\n this.element.classList.add(CLS_HIDDEN);\n }\n }\n else {\n this.element.classList.remove(CLS_HIDDEN);\n items = selectAll('.' + CLS_TB_ITEM + ':not(.' + CLS_HIDDEN + ')', this.tbItems);\n item.classList.remove(CLS_HIDDEN);\n if (items.length === 0) {\n this.select(index);\n }\n }\n this.setActiveBorder();\n item.setAttribute('aria-hidden', '' + value);\n if (this.overflowMode === 'Popup' && this.tbObj) {\n this.tbObj.refreshOverflow();\n }\n };\n Tab.prototype.selectTab = function (args, event, isInteracted) {\n if (event === void 0) { event = null; }\n if (isInteracted === void 0) { isInteracted = false; }\n this.isInteracted = isInteracted;\n this.select(args, event);\n };\n /**\n * Specifies the index or HTMLElement to select an item from the Tab.\n *\n * @param {number | HTMLElement} args - Index or DOM element is used for selecting an item from the Tab.\n * @param {Event} event - An event which takes place in DOM.\n * @returns {void}\n */\n Tab.prototype.select = function (args, event) {\n var _this = this;\n var tabHeader = this.getTabHeader();\n this.tbItems = select('.' + CLS_TB_ITEMS, tabHeader);\n this.tbItem = selectAll('.' + CLS_TB_ITEM, tabHeader);\n this.content = select('.' + CLS_CONTENT, this.element);\n this.prevItem = this.tbItem[this.prevIndex];\n if (isNOU(this.selectedItem) || (this.selectedItem < 0) || (this.tbItem.length <= this.selectedItem) || isNaN(this.selectedItem)) {\n this.selectedItem = 0;\n }\n else {\n this.selectedID = this.extIndex(this.tbItem[this.selectedItem].id);\n }\n var trg = this.tbItem[args];\n if (isNOU(trg)) {\n this.selectedID = '0';\n }\n else {\n this.selectingID = this.extIndex(trg.id);\n }\n if (!isNOU(this.prevItem) && !this.prevItem.classList.contains(CLS_DISABLE)) {\n this.prevItem.children.item(0).setAttribute('tabindex', this.prevItem.firstElementChild.getAttribute('tabindex'));\n }\n var eventArg = {\n event: event,\n previousItem: this.prevItem,\n previousIndex: this.prevIndex,\n selectedItem: this.tbItem[this.selectedItem],\n selectedIndex: this.selectedItem,\n selectedContent: !isNOU(this.content) ?\n select('#' + CLS_CONTENT + this.tabId + '_' + this.selectedID, this.content) : null,\n selectingItem: trg,\n selectingIndex: args,\n selectingContent: !isNOU(this.content) ?\n select('#' + CLS_CONTENT + this.tabId + '_' + this.selectingID, this.content) : null,\n isSwiped: this.isSwipeed,\n isInteracted: this.isInteracted,\n cancel: false\n };\n if (!this.initRender) {\n this.trigger('selecting', eventArg, function (selectArgs) {\n if (!selectArgs.cancel) {\n _this.selectingContent(args, _this.isInteracted);\n }\n });\n }\n else {\n this.selectingContent(args, this.isInteracted);\n }\n this.isInteracted = false;\n };\n Tab.prototype.selectingContent = function (args, isInteracted) {\n if (typeof args === 'number') {\n if (!isNOU(this.tbItem[args]) && (this.tbItem[args].classList.contains(CLS_DISABLE) ||\n this.tbItem[args].classList.contains(CLS_HIDDEN))) {\n for (var i = args + 1; i < this.items.length; i++) {\n if (this.items[i].disabled === false && this.items[i].visible === true) {\n args = i;\n break;\n }\n else {\n args = 0;\n }\n }\n }\n if (this.tbItem.length > args && args >= 0 && !isNaN(args)) {\n this.prevIndex = this.selectedItem;\n this.prevItem = this.tbItem[this.prevIndex];\n if (this.tbItem[args].classList.contains(CLS_TB_POPUP) && this.reorderActiveTab) {\n this.setActive(this.popupHandler(this.tbItem[args]), null, isInteracted);\n if ((!isNOU(this.items) && this.items.length > 0) && this.allowDragAndDrop) {\n this.tbItem = selectAll('.' + CLS_TB_ITEMS + ' .' + CLS_TB_ITEM, this.hdrEle);\n var item = this.items[args];\n this.items.splice(args, 1);\n this.items.splice(this.tbItem.length - 1, 0, item);\n var itemId = this.itemIndexArray[args];\n this.itemIndexArray.splice(args, 1);\n this.itemIndexArray.splice(this.tbItem.length - 1, 0, itemId);\n }\n }\n else {\n this.setActive(args, null, isInteracted);\n }\n }\n else {\n this.setActive(0, null, isInteracted);\n }\n }\n else if (args instanceof (HTMLElement)) {\n this.setActive(this.getEleIndex(args), null, isInteracted);\n }\n };\n /**\n * Gets the item index from the Tab.\n *\n * @param {string} tabItemId - Item ID is used for getting index from the Tab.\n * @returns {number} - It returns item index.\n */\n Tab.prototype.getItemIndex = function (tabItemId) {\n var tabIndex;\n for (var i = 0; i < this.tbItem.length; i++) {\n var value = this.tbItem[i].getAttribute('data-id');\n if (tabItemId === value) {\n tabIndex = i;\n break;\n }\n }\n return tabIndex;\n };\n /**\n * Specifies the value to disable/enable the Tab component.\n * When set to `true`, the component will be disabled.\n *\n * @param {boolean} value - Based on this Boolean value, Tab will be enabled (false) or disabled (true).\n * @returns {void}.\n */\n Tab.prototype.disable = function (value) {\n this.setCssClass(this.element, CLS_DISABLE, value);\n this.element.setAttribute('aria-disabled', '' + value);\n };\n /**\n * Get the properties to be maintained in the persisted state.\n *\n * @returns {string} - It returns the persisted state.\n */\n Tab.prototype.getPersistData = function () {\n return this.addOnPersist(['selectedItem', 'actEleId']);\n };\n /**\n * Returns the current module name.\n *\n * @returns {string} - It returns the current module name.\n * @private\n */\n Tab.prototype.getModuleName = function () {\n return 'tab';\n };\n /**\n * Gets called when the model property changes.The data that describes the old and new values of the property that changed.\n *\n * @param {TabModel} newProp - It contains the new value of data.\n * @param {TabModel} oldProp - It contains the old value of data.\n * @returns {void}\n * @private\n */\n Tab.prototype.onPropertyChanged = function (newProp, oldProp) {\n var _this = this;\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'width':\n setStyle(this.element, { width: formatUnit(newProp.width) });\n break;\n case 'height':\n setStyle(this.element, { height: formatUnit(newProp.height) });\n this.setContentHeight(false);\n break;\n case 'cssClass':\n var headerEle = this.element.querySelector('.' + CLS_HEADER);\n if (oldProp.cssClass !== '' && !isNullOrUndefined(oldProp.cssClass)) {\n this.setCssClass(this.element, oldProp.cssClass, false);\n this.setCssClass(this.element, newProp.cssClass, true);\n if (!isNullOrUndefined(headerEle)) {\n this.setCssClass(headerEle, oldProp.cssClass, false);\n this.setCssClass(headerEle, newProp.cssClass, true);\n }\n }\n else {\n this.setCssClass(this.element, newProp.cssClass, true);\n if (!isNullOrUndefined(headerEle)) {\n this.setCssClass(headerEle, newProp.cssClass, true);\n }\n }\n break;\n case 'items':\n this.evalOnPropertyChangeItems(newProp, oldProp);\n break;\n case 'showCloseButton':\n this.setCloseButton(newProp.showCloseButton);\n break;\n case 'reorderActiveTab':\n this.refreshActiveTabBorder();\n break;\n case 'selectedItem':\n this.selectedItem = oldProp.selectedItem;\n this.select(newProp.selectedItem);\n break;\n case 'headerPlacement':\n this.changeOrientation(newProp.headerPlacement);\n break;\n case 'enableRtl':\n this.setRTL(newProp.enableRtl);\n break;\n case 'overflowMode':\n this.tbObj.overflowMode = newProp.overflowMode;\n this.tbObj.dataBind();\n this.refreshActiveTabBorder();\n break;\n case 'heightAdjustMode':\n this.setContentHeight(false);\n this.select(this.selectedItem);\n break;\n case 'scrollStep':\n if (this.tbObj) {\n this.tbObj.scrollStep = this.scrollStep;\n }\n break;\n case 'allowDragAndDrop':\n this.bindDraggable();\n break;\n case 'dragArea':\n if (this.allowDragAndDrop) {\n this.draggableItems.forEach(function (item) {\n item.dragArea = _this.dragArea;\n });\n this.refresh();\n }\n break;\n }\n }\n };\n /**\n * To refresh the active tab contents.\n *\n * @returns {void}\n */\n Tab.prototype.refreshActiveTab = function () {\n if (this.isReact && this.isTemplate) {\n this.clearTemplate();\n }\n if (!this.isTemplate) {\n if (this.element.querySelector('.' + CLS_TB_ITEM + '.' + CLS_ACTIVE)) {\n detach(this.element.querySelector('.' + CLS_TB_ITEM + '.' + CLS_ACTIVE).children[0]);\n detach(this.element.querySelector('.' + CLS_CONTENT).querySelector('.' + CLS_ACTIVE).children[0]);\n var item = this.items[this.selectedItem];\n var pos = (isNOU(item.header) || isNOU(item.header.iconPosition)) ? '' : item.header.iconPosition;\n var css = (isNOU(item.header) || isNOU(item.header.iconCss)) ? '' : item.header.iconCss;\n var text = item.headerTemplate || item.header.text;\n var txtWrap = this.createElement('div', { className: CLS_TEXT, attrs: { 'role': 'presentation' } });\n if (!isNOU(text.tagName)) {\n txtWrap.appendChild(text);\n }\n else {\n this.headerTextCompile(txtWrap, text, this.selectedItem);\n }\n var tEle = void 0;\n var icon = this.createElement('span', {\n className: CLS_ICONS + ' ' + CLS_TAB_ICON + ' ' + CLS_ICON + '-' + pos + ' ' + css\n });\n var tConts = this.createElement('div', { className: CLS_TEXT_WRAP });\n tConts.appendChild(txtWrap);\n if ((text !== '' && text !== undefined) && css !== '') {\n if ((pos === 'left' || pos === 'top')) {\n tConts.insertBefore(icon, tConts.firstElementChild);\n }\n else {\n tConts.appendChild(icon);\n }\n tEle = txtWrap;\n this.isIconAlone = false;\n }\n else {\n tEle = ((css === '') ? txtWrap : icon);\n if (tEle === icon) {\n detach(txtWrap);\n tConts.appendChild(icon);\n this.isIconAlone = true;\n }\n }\n var tabIndex = isNOU(item.tabIndex) ? '-1' : item.tabIndex.toString();\n var wrapAtt = (item.disabled) ? {} : { tabIndex: tabIndex, 'data-tabindex': tabIndex, role: 'tab', 'aria-selected': 'true' };\n tConts.appendChild(this.btnCls.cloneNode(true));\n var wraper = this.createElement('div', { className: CLS_WRAP, attrs: wrapAtt });\n wraper.appendChild(tConts);\n if (pos === 'top' || pos === 'bottom') {\n this.element.classList.add('e-vertical-icon');\n }\n this.element.querySelector('.' + CLS_TB_ITEM + '.' + CLS_ACTIVE).appendChild(wraper);\n var crElem = this.createElement('div');\n var cnt = item.content;\n var eleStr = void 0;\n if (typeof cnt === 'string' || isNOU(cnt.innerHTML)) {\n if (typeof cnt === 'string' && this.enableHtmlSanitizer) {\n cnt = SanitizeHtmlHelper.sanitize(cnt);\n }\n if (cnt[0] === '.' || cnt[0] === '#') {\n if (document.querySelectorAll(cnt).length) {\n var eleVal = document.querySelector(cnt);\n eleStr = eleVal.outerHTML.trim();\n crElem.appendChild(eleVal);\n eleVal.style.display = '';\n }\n else {\n this.compileElement(crElem, cnt, 'content', this.selectedItem);\n }\n }\n else {\n this.compileElement(crElem, cnt, 'content', this.selectedItem);\n }\n }\n else {\n crElem.appendChild(cnt);\n }\n if (!isNOU(eleStr)) {\n if (this.templateEle.indexOf(cnt.toString()) === -1) {\n this.templateEle.push(cnt.toString());\n }\n }\n this.element.querySelector('.' + CLS_ITEM + '.' + CLS_ACTIVE).appendChild(crElem);\n }\n }\n else {\n var tabItems = this.element.querySelector('.' + CLS_TB_ITEMS);\n var element = this.element.querySelector('.' + CLS_TB_ITEM + '.' + CLS_ACTIVE);\n var index = this.getIndexFromEle(element.id);\n var header = element.innerText;\n var detachContent = this.element.querySelector('.' + CLS_CONTENT).querySelector('.' + CLS_ACTIVE).children[0];\n var mainContents = detachContent.innerHTML;\n detach(element);\n detach(detachContent);\n var attr = {\n className: CLS_TB_ITEM + ' ' + CLS_TEMPLATE + ' ' + CLS_ACTIVE, id: CLS_ITEM + this.tabId + '_' + index\n };\n var txtString = this.createElement('span', {\n className: CLS_TEXT, innerHTML: header, attrs: { 'role': 'presentation' }\n }).outerHTML;\n var conte = this.createElement('div', {\n className: CLS_TEXT_WRAP, innerHTML: txtString + this.btnCls.outerHTML\n }).outerHTML;\n var tabIndex = element.firstElementChild.getAttribute('data-tabindex');\n var wrap = this.createElement('div', {\n className: CLS_WRAP, innerHTML: conte,\n attrs: { tabIndex: tabIndex, 'data-tabindex': tabIndex, role: 'tab', 'aria-controls': CLS_CONTENT + this.tabId + '_' + index, 'aria-selected': 'true' }\n });\n tabItems.insertBefore(this.createElement('div', attr), tabItems.children[index + 1]);\n this.element.querySelector('.' + CLS_TB_ITEM + '.' + CLS_ACTIVE).appendChild(wrap);\n var crElem = this.createElement('div', { innerHTML: mainContents });\n this.element.querySelector('.' + CLS_CONTENT).querySelector('.' + CLS_ACTIVE).appendChild(crElem);\n }\n if (this.isReact) {\n this.renderReactTemplates();\n }\n };\n /**\n * To refresh the active tab indicator.\n *\n * @returns {void}\n */\n Tab.prototype.refreshActiveTabBorder = function () {\n var activeEle = select('.' + CLS_TB_ITEM + '.' + CLS_TB_POPUP + '.' + CLS_ACTIVE, this.element);\n if (!isNOU(activeEle) && this.reorderActiveTab) {\n this.select(this.getEleIndex(activeEle));\n }\n this.refreshActiveBorder();\n };\n __decorate([\n Collection([], TabItem)\n ], Tab.prototype, \"items\", void 0);\n __decorate([\n Property('100%')\n ], Tab.prototype, \"width\", void 0);\n __decorate([\n Property('auto')\n ], Tab.prototype, \"height\", void 0);\n __decorate([\n Property('')\n ], Tab.prototype, \"cssClass\", void 0);\n __decorate([\n Property(0)\n ], Tab.prototype, \"selectedItem\", void 0);\n __decorate([\n Property('Top')\n ], Tab.prototype, \"headerPlacement\", void 0);\n __decorate([\n Property('Content')\n ], Tab.prototype, \"heightAdjustMode\", void 0);\n __decorate([\n Property('Scrollable')\n ], Tab.prototype, \"overflowMode\", void 0);\n __decorate([\n Property('Dynamic')\n ], Tab.prototype, \"loadOn\", void 0);\n __decorate([\n Property(false)\n ], Tab.prototype, \"enablePersistence\", void 0);\n __decorate([\n Property(false)\n ], Tab.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Property(false)\n ], Tab.prototype, \"showCloseButton\", void 0);\n __decorate([\n Property(true)\n ], Tab.prototype, \"reorderActiveTab\", void 0);\n __decorate([\n Property()\n ], Tab.prototype, \"scrollStep\", void 0);\n __decorate([\n Property()\n ], Tab.prototype, \"dragArea\", void 0);\n __decorate([\n Property(false)\n ], Tab.prototype, \"allowDragAndDrop\", void 0);\n __decorate([\n Complex({}, TabAnimationSettings)\n ], Tab.prototype, \"animation\", void 0);\n __decorate([\n Event()\n ], Tab.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], Tab.prototype, \"adding\", void 0);\n __decorate([\n Event()\n ], Tab.prototype, \"added\", void 0);\n __decorate([\n Event()\n ], Tab.prototype, \"selecting\", void 0);\n __decorate([\n Event()\n ], Tab.prototype, \"selected\", void 0);\n __decorate([\n Event()\n ], Tab.prototype, \"removing\", void 0);\n __decorate([\n Event()\n ], Tab.prototype, \"removed\", void 0);\n __decorate([\n Event()\n ], Tab.prototype, \"onDragStart\", void 0);\n __decorate([\n Event()\n ], Tab.prototype, \"dragging\", void 0);\n __decorate([\n Event()\n ], Tab.prototype, \"dragged\", void 0);\n __decorate([\n Event()\n ], Tab.prototype, \"destroyed\", void 0);\n Tab = __decorate([\n NotifyPropertyChanges\n ], Tab);\n return Tab;\n}(Component));\nexport { Tab };\n","import { createElement, isNullOrUndefined, isBlazor } from '@syncfusion/ej2-base';\nimport { Dialog } from '@syncfusion/ej2-popups';\nimport { splitArrayCollection, processPathData, getPathString } from '@syncfusion/ej2-drawings';\nimport { TextBox } from '@syncfusion/ej2-inputs';\nimport { cloneObject } from '../drawing/drawing-util';\nimport { CheckBox } from '@syncfusion/ej2-buttons';\nimport { Tab } from '@syncfusion/ej2-navigations';\nimport { Button } from '@syncfusion/ej2-buttons';\nimport { DisplayMode } from './types';\n/**\n * @hidden\n */\nvar Signature = /** @class */ (function () {\n /**\n * Initialize the constructor of blazorUIadapater.\n * @private\n * @param { PdfViewer } pdfViewer - Specified PdfViewer class.\n * @param { PdfViewerBase } pdfViewerBase - The pdfViewerBase.\n */\n function Signature(pdfViewer, pdfViewerBase) {\n var _this = this;\n this.mouseMoving = true;\n this.canvasTouched = false;\n this.imageSignatureDataUrl = '';\n this.drawSignatureDataUrl = '';\n // eslint-disable-next-line\n this.newObject = [];\n /**\n * @private\n */\n this.outputString = '';\n /**\n * @private\n */\n this.drawOutputString = '';\n /**\n * @private\n */\n this.imageOutputString = '';\n /**\n * @private\n */\n // eslint-disable-next-line\n this.signaturecollection = [];\n /**\n * @private\n */\n // eslint-disable-next-line\n this.outputcollection = [];\n /**\n * @private\n */\n // eslint-disable-next-line\n this.signAnnotationIndex = [];\n // eslint-disable-next-line\n this.fontsign = [];\n // eslint-disable-next-line\n this.signfontStyle = [];\n this.isSaveSignature = false;\n this.isSaveInitial = false;\n this.isInitialFiledSaveSignature = false;\n this.isSignatureFieldsSaveSignature = false;\n // eslint-disable-next-line\n this.saveSignatureString = '';\n // eslint-disable-next-line\n this.saveInitialString = '';\n /**\n * @private\n */\n // eslint-disable-next-line\n this.saveImageString = '';\n this.signatureImageString = '';\n this.initialImageString = '';\n /**\n * @private\n */\n // eslint-disable-next-line\n this.maxSaveLimit = 5;\n this.select = function (e) {\n if (this.canvasTouched) {\n this.mouseMoving = true;\n this.canvasTouched = false;\n }\n if (e.isSwiped && this.signaturetype == 'Draw' && this.mouseMoving) {\n e.cancel = true;\n this.mouseMoving = false;\n }\n };\n // eslint-disable-next-line\n this.addStampImage = function (args) {\n // eslint-disable-next-line\n var proxy = _this;\n // eslint-disable-next-line\n var upoadedFiles = args.target.files;\n if (args.target.files[0] !== null) {\n var uploadedFile = upoadedFiles[0];\n if (uploadedFile.type.split('/')[0] === 'image') {\n var reader = new FileReader();\n // eslint-disable-next-line\n reader.onload = function (e) {\n // eslint-disable-next-line\n var canvas = document.getElementById(_this.pdfViewer.element.id + '_signatureuploadCanvas_');\n // eslint-disable-next-line\n var context = canvas.getContext('2d');\n // eslint-disable-next-line\n var image = new Image();\n // eslint-disable-next-line\n var proxy = _this;\n image.onload = function () {\n // eslint-disable-next-line\n var signbutton = document.getElementById(_this.pdfViewer.element.id + '_e-pv-upload-button');\n signbutton.style.visibility = 'hidden';\n context.drawImage(image, 0, 0, canvas.width, canvas.height);\n proxy.enableCreateButton(false);\n proxy.outputString = image.src;\n proxy.signatureImageHeight = image.naturalHeight;\n proxy.signatureImageWidth = image.naturalWidth;\n };\n image.src = e.currentTarget.result;\n proxy.outputString = e.currentTarget.result;\n proxy.switchTabImageSignature = e.currentTarget.result;\n };\n reader.readAsDataURL(uploadedFile);\n }\n }\n args.target.value = '';\n args.currentTarget.value = '';\n };\n this.pdfViewer = pdfViewer;\n this.pdfViewerBase = pdfViewerBase;\n }\n /**\n * @private\n * @returns {void}\n */\n Signature.prototype.createSignaturePanel = function () {\n var _this = this;\n var maximumWidth = 750;\n this.imageSignatureDataUrl = \"\";\n this.drawSignatureDataUrl = \"\";\n if (!isBlazor()) {\n var elementID = this.pdfViewer.element.id;\n var dialogDiv = createElement('div', { id: elementID + '_signature_window', className: 'e-pv-signature-window' });\n dialogDiv.style.display = 'block';\n this.pdfViewerBase.pageContainer.appendChild(dialogDiv);\n var appearanceTab = this.createSignatureCanvas();\n var signaturePanelHeader = void 0;\n if (!this.pdfViewerBase.isToolbarSignClicked) {\n if (this.pdfViewerBase.isInitialField) {\n signaturePanelHeader = this.pdfViewer.localeObj.getConstant('HandwrittenInitialDialogHeaderText');\n }\n else {\n signaturePanelHeader = this.pdfViewer.localeObj.getConstant('HandwrittenSignatureDialogHeaderText');\n }\n }\n else {\n if (this.pdfViewerBase.isInitialField) {\n signaturePanelHeader = this.pdfViewer.localeObj.getConstant('InitialFieldDialogHeaderText');\n }\n else {\n signaturePanelHeader = this.pdfViewer.localeObj.getConstant('SignatureFieldDialogHeaderText');\n }\n }\n if (this.signatureDialog) {\n this.signatureDialog.content = appearanceTab;\n }\n else {\n this.signatureDialog = new Dialog({\n // eslint-disable-next-line max-len\n showCloseIcon: true, closeOnEscape: false, isModal: true, header: signaturePanelHeader, cssClass: 'e-pv-signature-dialog-height',\n target: this.pdfViewer.element, content: appearanceTab, width: '750px', visible: true, allowDragging: true,\n beforeClose: function () {\n _this.clearSignatureCanvas();\n _this.signatureDialog.destroy();\n _this.signatureDialog = null;\n if (_this.tabObj) {\n _this.tabObj.destroy();\n }\n // eslint-disable-next-line\n var signatureWindow = document.getElementById(_this.pdfViewer.element.id + '_signature_window');\n if (signatureWindow) {\n // eslint-disable-next-line\n signatureWindow.parentNode ? signatureWindow.parentNode.removeChild(signatureWindow) : signatureWindow.parentElement.removeChild(signatureWindow);\n }\n // eslint-disable-next-line max-len\n if (!_this.pdfViewerBase.isToolbarSignClicked && !_this.pdfViewerBase.drawSignatureWithTool && !isNullOrUndefined(_this.pdfViewer.formFieldsModule.currentTarget)) {\n _this.pdfViewer.fireFocusOutFormField(_this.pdfViewer.formFieldsModule.currentTarget.name, '');\n }\n _this.pdfViewerBase.isToolbarSignClicked = false;\n _this.pdfViewer.formFieldsModule.setFocus();\n }\n });\n this.signatureDialog.buttons = [\n // eslint-disable-next-line max-len\n { buttonModel: { content: this.pdfViewer.localeObj.getConstant('Clear'), disabled: true, cssClass: 'e-pv-clearbtn' }, click: this.clearSignatureCanvas.bind(this) },\n // eslint-disable-next-line max-len\n { buttonModel: { content: this.pdfViewer.localeObj.getConstant('Cancel'), cssClass: 'e-pv-cancelbtn' }, click: this.closeSignaturePanel.bind(this) },\n // eslint-disable-next-line max-len\n { buttonModel: { content: this.pdfViewer.localeObj.getConstant('Create'), isPrimary: true, disabled: true, cssClass: 'e-pv-createbtn' }, click: this.addSignatureInPage.bind(this) }\n ];\n this.signatureDialog.appendTo(dialogDiv);\n }\n if (this.pdfViewer.element.offsetWidth < maximumWidth)\n this.updateCanvasSize();\n if (this.pdfViewer.enableRtl) {\n this.signatureDialog.enableRtl = this.pdfViewer.enableRtl;\n }\n var checkboxItem = this.signatureDialog.content.ej2_instances[0].items[0];\n if (checkboxItem.header.label === 'DRAW') {\n var drawCheckbox = document.getElementById(\"checkbox\");\n this.hideSignatureCheckbox(drawCheckbox);\n }\n else if (checkboxItem.header.label === 'TYPE') {\n var typeCheckbox = document.getElementById(\"checkbox1\");\n this.hideSignatureCheckbox(typeCheckbox);\n }\n else {\n var imageCheckbox = document.getElementById(\"checkbox2\");\n this.hideSignatureCheckbox(imageCheckbox);\n }\n }\n else {\n // eslint-disable-next-line\n var canvas = document.getElementById(this.pdfViewer.element.id + '_signatureCanvas_');\n if (canvas) {\n if (!this.pdfViewerBase.pageContainer.querySelector('.e-pv-signature-window')) {\n var elementID = this.pdfViewer.element.id;\n // eslint-disable-next-line max-len\n var dialogDiv = createElement('div', { id: elementID + '_signature_window', className: 'e-pv-signature-window' });\n dialogDiv.style.display = 'block';\n this.pdfViewerBase.pageContainer.appendChild(dialogDiv);\n }\n canvas.addEventListener('mousedown', this.signaturePanelMouseDown.bind(this));\n canvas.addEventListener('mousemove', this.signaturePanelMouseMove.bind(this));\n canvas.addEventListener('mouseup', this.signaturePanelMouseUp.bind(this));\n canvas.addEventListener('mouseleave', this.signaturePanelMouseUp.bind(this));\n canvas.addEventListener('touchstart', this.signaturePanelMouseDown.bind(this));\n canvas.addEventListener('touchmove', this.signaturePanelMouseMove.bind(this));\n canvas.addEventListener('touchend', this.signaturePanelMouseUp.bind(this));\n this.clearSignatureCanvas();\n }\n this.pdfViewer._dotnetInstance.invokeMethodAsync('OpenSignaturePanel', this.pdfViewerBase.isToolbarSignClicked);\n }\n this.drawSavedSignature();\n };\n Signature.prototype.drawSavedSignature = function () {\n if (!this.pdfViewerBase.isToolbarSignClicked && (this.isSaveSignature || this.isSaveInitial)) {\n if (!this.pdfViewerBase.isInitialField && this.isSaveSignature) {\n this.outputString = this.saveSignatureString;\n }\n else if (this.pdfViewerBase.isInitialField && this.isSaveInitial) {\n this.outputString = this.saveInitialString;\n }\n // eslint-disable-next-line\n var canvas = document.getElementById(this.pdfViewer.element.id + '_signatureCanvas_');\n // eslint-disable-next-line\n var context_1 = canvas.getContext('2d');\n // eslint-disable-next-line\n var image_1 = new Image();\n image_1.onload = function () {\n context_1.drawImage(image_1, 0, 0);\n };\n if (!this.pdfViewerBase.isInitialField && this.isSaveSignature) {\n image_1.src = this.signatureImageString;\n }\n else if (this.pdfViewerBase.isInitialField && this.isSaveInitial) {\n image_1.src = this.initialImageString;\n }\n // eslint-disable-next-line\n var checkbox = document.getElementById(this.pdfViewer.element.id + '_signatureCheckBox');\n if (checkbox) {\n checkbox.checked = true;\n }\n this.enableCreateButton(false);\n this.enableClearbutton(false);\n }\n };\n Signature.prototype.hideSignatureCheckbox = function (checkbox) {\n if (this.pdfViewerBase.isToolbarSignClicked) {\n if (this.pdfViewerBase.isInitialField) {\n if (this.pdfViewer.handWrittenSignatureSettings.initialDialogSettings && this.pdfViewer.handWrittenSignatureSettings.initialDialogSettings.hideSaveSignature) {\n this.hideCheckboxParent(checkbox);\n }\n }\n else if (this.pdfViewer.handWrittenSignatureSettings.signatureDialogSettings && this.pdfViewer.handWrittenSignatureSettings.signatureDialogSettings.hideSaveSignature) {\n this.hideCheckboxParent(checkbox);\n }\n }\n else {\n if (this.pdfViewerBase.isInitialField) {\n if (this.pdfViewer.initialFieldSettings.initialDialogSettings && this.pdfViewer.initialFieldSettings.initialDialogSettings.hideSaveSignature) {\n this.hideCheckboxParent(checkbox);\n }\n }\n else {\n if (this.pdfViewer.signatureFieldSettings.signatureDialogSettings && this.pdfViewer.signatureFieldSettings.signatureDialogSettings.hideSaveSignature) {\n this.hideCheckboxParent(checkbox);\n }\n }\n }\n };\n Signature.prototype.saveSignatureCheckbox = function () {\n if (this.pdfViewerBase.isToolbarSignClicked) {\n return false;\n }\n else {\n if (this.pdfViewerBase.isInitialField) {\n if (this.pdfViewer.initialFieldSettings.initialDialogSettings && this.pdfViewer.initialFieldSettings.initialDialogSettings.hideSaveSignature) {\n return false;\n }\n else {\n return this.isInitialFiledSaveSignature;\n }\n }\n else {\n if (this.pdfViewer.signatureFieldSettings.signatureDialogSettings && this.pdfViewer.signatureFieldSettings.signatureDialogSettings.hideSaveSignature) {\n return false;\n }\n else {\n return this.isSignatureFieldsSaveSignature;\n }\n }\n }\n };\n Signature.prototype.hideCheckboxParent = function (checkbox) {\n if (checkbox) {\n checkbox.parentElement.style.display = 'none';\n }\n };\n Signature.prototype.saveSignatureImage = function () {\n // eslint-disable-next-line\n var checkbox = document.getElementById(this.pdfViewer.element.id + '_signatureCheckBox');\n if (checkbox && checkbox.checked) {\n if (this.outputString !== '') {\n if (!this.pdfViewerBase.isInitialField) {\n this.isSaveSignature = true;\n this.saveSignatureString = this.outputString;\n }\n else {\n this.isSaveInitial = true;\n this.saveInitialString = this.outputString;\n }\n // eslint-disable-next-line\n var canvas = document.getElementById(this.pdfViewer.element.id + '_signatureCanvas_');\n this.saveImageString = canvas.toDataURL();\n if (!this.pdfViewerBase.isInitialField) {\n this.signatureImageString = this.saveImageString;\n }\n else {\n this.initialImageString = this.saveImageString;\n }\n }\n }\n else {\n if (this.isSaveSignature && !this.pdfViewerBase.isInitialField) {\n this.isSaveSignature = false;\n this.saveSignatureString = '';\n this.saveImageString = '';\n this.signatureImageString = '';\n }\n else if (this.isSaveInitial && this.pdfViewerBase.isInitialField) {\n this.isSaveInitial = false;\n this.saveInitialString = '';\n this.saveImageString = '';\n this.initialImageString = '';\n }\n this.clearSignatureCanvas();\n }\n };\n /**\n * @param type\n * @private\n */\n // eslint-disable-next-line\n Signature.prototype.addSignature = function (type) {\n var annot;\n if (this.pdfViewerBase.isToolbarSignClicked) {\n var annotationName = this.pdfViewer.annotation.createGUID();\n this.pdfViewerBase.currentSignatureAnnot = null;\n this.pdfViewerBase.isSignatureAdded = true;\n var pageIndex = this.pdfViewerBase.currentPageNumber - 1;\n // eslint-disable-next-line max-len\n var thickness = this.pdfViewer.handWrittenSignatureSettings.thickness ? this.pdfViewer.handWrittenSignatureSettings.thickness : 1;\n // eslint-disable-next-line max-len\n var opacity = this.pdfViewer.handWrittenSignatureSettings.opacity ? this.pdfViewer.handWrittenSignatureSettings.opacity : 1;\n // eslint-disable-next-line max-len\n var strokeColor = this.pdfViewer.handWrittenSignatureSettings.strokeColor ? this.pdfViewer.handWrittenSignatureSettings.strokeColor : '#000000';\n var fontSize = 16;\n var fontFamily = 'Helvetica';\n var signatureBounds = this.pdfViewer.formFieldsModule.updateSignatureAspectRatio(this.outputString, true);\n // eslint-disable-next-line\n var canvas = document.getElementById(this.pdfViewer.element.id + '_signatureCanvas_');\n this.saveImageString = canvas.toDataURL();\n if (!this.pdfViewerBase.isInitialField) {\n this.signatureImageString = this.saveImageString;\n }\n else {\n this.initialImageString = this.saveImageString;\n }\n annot = {\n // eslint-disable-next-line max-len\n id: 'sign' + this.pdfViewerBase.signatureCount, bounds: signatureBounds, pageIndex: pageIndex, data: this.outputString, fontFamily: fontFamily, fontSize: fontSize,\n shapeAnnotationType: 'HandWrittenSignature', opacity: opacity, strokeColor: strokeColor, thickness: thickness, signatureName: annotationName\n };\n this.pdfViewerBase.currentSignatureAnnot = annot;\n // eslint-disable-next-line\n var checkbox = void 0;\n if (isBlazor()) {\n checkbox = document.getElementById(this.pdfViewer.element.id + '_signatureCheckBox');\n }\n else {\n checkbox = document.getElementById('checkbox');\n }\n if (checkbox && checkbox.checked) {\n this.addSignatureCollection();\n }\n this.hideSignaturePanel();\n this.pdfViewerBase.isToolbarSignClicked = false;\n }\n else {\n // eslint-disable-next-line\n var checkbox = void 0;\n if (isBlazor()) {\n checkbox = document.getElementById(this.pdfViewer.element.id + '_signatureCheckBox');\n }\n else {\n checkbox = document.getElementById('checkbox');\n }\n var isSignatureAdded = false;\n if (isBlazor() && type) {\n if (type[0] === 'Image') {\n this.imageAddSignature();\n isSignatureAdded = true;\n this.outputString = '';\n }\n else if (type[0] === 'Type') {\n this.typeAddSignature();\n isSignatureAdded = true;\n this.outputString = '';\n }\n }\n if (!isSignatureAdded) {\n // eslint-disable-next-line\n var canvas = document.getElementById(this.pdfViewer.element.id + '_signatureCanvas_');\n this.saveImageString = canvas.toDataURL();\n if (checkbox && checkbox.checked) {\n if (!this.pdfViewerBase.isInitialField) {\n this.isSaveSignature = true;\n this.signatureImageString = this.saveImageString;\n this.saveSignatureString = this.outputString;\n }\n else {\n this.isSaveInitial = true;\n this.initialImageString = this.saveImageString;\n this.saveInitialString = this.outputString;\n }\n this.checkSaveFiledSign(this.pdfViewerBase.isInitialField, true);\n }\n else {\n if (!this.pdfViewerBase.isInitialField) {\n this.isSaveSignature = false;\n this.saveSignatureString = '';\n }\n else {\n this.isSaveInitial = false;\n this.saveInitialString = '';\n }\n this.checkSaveFiledSign(this.pdfViewerBase.isInitialField, false);\n }\n if (!this.pdfViewerBase.isInitialField) {\n this.signatureImageString = this.saveImageString;\n }\n else {\n this.initialImageString = this.saveImageString;\n }\n this.pdfViewer.formFieldsModule.drawSignature(null, null, this.pdfViewerBase.currentTarget, null);\n isSignatureAdded = true;\n }\n }\n };\n Signature.prototype.checkSaveFiledSign = function (initialField, saveSign) {\n if (initialField) {\n this.isInitialFiledSaveSignature = saveSign;\n }\n else {\n this.isSignatureFieldsSaveSignature = saveSign;\n }\n };\n Signature.prototype.addSignatureInPage = function () {\n if (this.signaturetype === 'Draw') {\n this.addSignature();\n }\n else if (this.signaturetype === 'Type') {\n this.typeAddSignature();\n }\n else {\n this.imageAddSignature();\n }\n this.drawOutputString = '';\n this.imageOutputString = '';\n };\n Signature.prototype.typeAddSignature = function () {\n if (this.pdfViewerBase.isToolbarSignClicked) {\n var zoomvalue = this.pdfViewerBase.getZoomFactor();\n // eslint-disable-next-line\n var annot = null;\n var annotationName = this.pdfViewer.annotation.createGUID();\n this.pdfViewerBase.currentSignatureAnnot = null;\n this.pdfViewerBase.isSignatureAdded = true;\n var pageIndex = this.pdfViewerBase.currentPageNumber - 1;\n var pageDiv = document.getElementById(this.pdfViewer.element.id + '_pageDiv_' + pageIndex);\n var thickness = this.pdfViewer.handWrittenSignatureSettings.thickness ? this.pdfViewer.handWrittenSignatureSettings.thickness : 1;\n var opacity = this.pdfViewer.handWrittenSignatureSettings.opacity ? this.pdfViewer.handWrittenSignatureSettings.opacity : 1;\n var strokeColor = this.pdfViewer.handWrittenSignatureSettings.strokeColor ? this.pdfViewer.handWrittenSignatureSettings.strokeColor : '#000000';\n var fontSize = 16;\n var currentLeft = 0;\n var currentTop = 0;\n var currentHeight = 65;\n var currentWidth = 200;\n currentLeft = ((parseFloat(pageDiv.style.width) / 2) - (currentWidth / 2)) / zoomvalue;\n currentTop = ((parseFloat(pageDiv.style.height) / 2) - (currentHeight / 2)) / zoomvalue;\n var zoomFactor = this.pdfViewerBase.getZoomFactor();\n if (!this.signtypevalue) {\n this.updateSignatureTypeValue(true);\n }\n var inputValue = this.signtypevalue;\n annot = {\n // eslint-disable-next-line max-len\n id: 'Typesign' + this.pdfViewerBase.signatureCount, bounds: {\n left: currentLeft / zoomFactor, top: currentTop / zoomFactor, x: currentLeft / zoomFactor,\n // eslint-disable-next-line max-len\n y: currentTop / zoomFactor, width: currentWidth, height: currentHeight\n }, pageIndex: pageIndex, dynamicText: inputValue, data: this.pdfViewerBase.signatureModule.outputString, shapeAnnotationType: 'SignatureText',\n opacity: opacity, strokeColor: strokeColor, thickness: thickness, fontSize: fontSize, fontFamily: this.fontName, signatureName: annotationName\n };\n this.pdfViewerBase.currentSignatureAnnot = annot;\n // eslint-disable-next-line\n var checkbox = void 0;\n if (isBlazor()) {\n checkbox = document.getElementById(this.pdfViewer.element.id + '_signatureCheckBox');\n }\n else {\n checkbox = document.getElementById('checkbox1');\n }\n if (checkbox && checkbox.checked) {\n this.addSignatureCollection();\n }\n this.signtypevalue = '';\n this.hideSignaturePanel();\n this.pdfViewerBase.isToolbarSignClicked = false;\n }\n else {\n if (this.outputString === '') {\n this.updateSignatureTypeValue();\n }\n this.pdfViewer.formFieldsModule.drawSignature('Type', '', this.pdfViewerBase.currentTarget);\n this.hideSignaturePanel();\n }\n };\n Signature.prototype.imageAddSignature = function () {\n if (this.pdfViewerBase.isToolbarSignClicked) {\n var zoomvalue = this.pdfViewerBase.getZoomFactor();\n // eslint-disable-next-line\n var annot = null;\n var annotationName = this.pdfViewer.annotation.createGUID();\n this.pdfViewerBase.currentSignatureAnnot = null;\n this.pdfViewerBase.isSignatureAdded = true;\n var pageIndex = this.pdfViewerBase.currentPageNumber - 1;\n var pageDiv = document.getElementById(this.pdfViewer.element.id + '_pageDiv_' + pageIndex);\n var thickness = this.pdfViewer.handWrittenSignatureSettings.thickness ? this.pdfViewer.handWrittenSignatureSettings.thickness : 1;\n var opacity = this.pdfViewer.handWrittenSignatureSettings.opacity ? this.pdfViewer.handWrittenSignatureSettings.opacity : 1;\n var strokeColor = this.pdfViewer.handWrittenSignatureSettings.strokeColor ? this.pdfViewer.handWrittenSignatureSettings.strokeColor : '#000000';\n var fontSize = 16;\n var currentLeft = 0;\n var currentTop = 0;\n var standardImageRatio = 100;\n var currentHeight = 0;\n var currentWidth = 0;\n // eslint-disable-next-line max-len\n if (this.signatureImageHeight >= this.signatureImageWidth) {\n currentHeight = ((this.signatureImageHeight / this.signatureImageHeight) * standardImageRatio);\n currentWidth = ((this.signatureImageWidth / this.signatureImageHeight) * standardImageRatio);\n }\n else {\n currentHeight = ((this.signatureImageHeight / this.signatureImageWidth) * standardImageRatio);\n currentWidth = ((this.signatureImageWidth / this.signatureImageWidth) * standardImageRatio);\n }\n currentLeft = ((parseFloat(pageDiv.style.width) / 2) - (currentWidth / 2)) / zoomvalue;\n currentTop = ((parseFloat(pageDiv.style.height) / 2) - (currentHeight / 2)) / zoomvalue;\n var zoomFactor = this.pdfViewerBase.getZoomFactor();\n var inputValue = this.signtypevalue;\n annot = {\n // eslint-disable-next-line max-len\n id: 'Typesign' + this.pdfViewerBase.signatureCount, bounds: {\n left: currentLeft / zoomFactor, top: currentTop / zoomFactor, x: currentLeft / zoomFactor,\n // eslint-disable-next-line max-len\n y: currentTop / zoomFactor, width: currentWidth, height: currentHeight\n }, pageIndex: pageIndex, dynamicText: inputValue, data: this.pdfViewerBase.signatureModule.outputString, shapeAnnotationType: 'SignatureImage',\n opacity: opacity, strokeColor: strokeColor, thickness: thickness, fontSize: fontSize, fontFamily: this.fontName, signatureName: annotationName\n };\n this.pdfViewerBase.currentSignatureAnnot = annot;\n // eslint-disable-next-line\n var checkbox = void 0;\n if (isBlazor()) {\n checkbox = document.getElementById(this.pdfViewer.element.id + '_signatureCheckBox');\n }\n else {\n checkbox = document.getElementById('checkbox2');\n }\n if (checkbox && checkbox.checked) {\n this.addSignatureCollection();\n }\n this.hideSignaturePanel();\n this.pdfViewerBase.isToolbarSignClicked = false;\n }\n else {\n this.pdfViewer.formFieldsModule.drawSignature('Image', '', this.pdfViewerBase.currentTarget);\n this.hideSignaturePanel();\n }\n };\n Signature.prototype.updateSignatureTypeValue = function (isType) {\n // eslint-disable-next-line\n var fontElements = document.querySelectorAll('.e-pv-font-sign');\n if (fontElements) {\n for (var j = 0; j < fontElements.length; j++) {\n if (fontElements[parseInt(j.toString(), 10)] && fontElements[parseInt(j.toString(), 10)].style.borderColor === 'red') {\n if (isType) {\n this.signtypevalue = fontElements[parseInt(j.toString(), 10)].textContent;\n this.outputString = fontElements[parseInt(j.toString(), 10)].textContent;\n }\n else {\n this.outputString = fontElements[parseInt(j.toString(), 10)].textContent;\n }\n try {\n this.fontName = JSON.parse(fontElements[parseInt(j.toString(), 10)].style.fontFamily);\n }\n catch (e) {\n this.fontName = fontElements[parseInt(j.toString(), 10)].style.fontFamily;\n }\n }\n }\n }\n };\n /**\n * @private\n * @returns {void}\n */\n Signature.prototype.hideSignaturePanel = function () {\n if (this.signatureDialog) {\n this.signatureDialog.hide();\n }\n };\n Signature.prototype.bindTypeSignatureClickEvent = function () {\n if (isBlazor()) {\n for (var i = 0; i < 4; i++) {\n // eslint-disable-next-line\n var fontElement = document.querySelector('#' + this.pdfViewer.element.id + '_font_signature' + i);\n if (fontElement) {\n fontElement.addEventListener('click', this.typeSignatureclicked.bind(this));\n }\n }\n }\n };\n Signature.prototype.bindDrawSignatureClickEvent = function () {\n // eslint-disable-next-line\n var canvas = document.getElementById(this.pdfViewer.element.id + '_signatureCanvas_');\n if (canvas) {\n canvas.addEventListener('mousedown', this.signaturePanelMouseDown.bind(this));\n canvas.addEventListener('mousemove', this.signaturePanelMouseMove.bind(this));\n canvas.addEventListener('mouseup', this.signaturePanelMouseUp.bind(this));\n canvas.addEventListener('mouseleave', this.signaturePanelMouseUp.bind(this));\n canvas.addEventListener('touchstart', this.signaturePanelMouseDown.bind(this));\n canvas.addEventListener('touchmove', this.signaturePanelMouseMove.bind(this));\n canvas.addEventListener('touchend', this.signaturePanelMouseUp.bind(this));\n }\n };\n // eslint-disable-next-line\n Signature.prototype.typeSignatureclicked = function (event) {\n var eventTarget = event.target;\n if (eventTarget) {\n for (var i = 0; i < 4; i++) {\n // eslint-disable-next-line\n var fontElement = document.querySelector('#' + this.pdfViewer.element.id + '_font_signature' + i);\n if (fontElement) {\n fontElement.style.borderColor = '';\n }\n }\n eventTarget.style.borderColor = 'red';\n this.outputString = eventTarget.textContent;\n try {\n this.fontName = JSON.parse(eventTarget.style.fontFamily);\n }\n catch (e) {\n this.fontName = eventTarget.style.fontFamily;\n }\n this.enableCreateButton(false);\n }\n };\n // eslint-disable-next-line\n Signature.prototype.createSignatureCanvas = function () {\n // eslint-disable-next-line\n var previousField = document.getElementById(this.pdfViewer.element.id + '_signatureCanvas_');\n // eslint-disable-next-line\n var field = document.getElementById(this.pdfViewer.element.id + 'Signature_appearance');\n if (previousField) {\n previousField.remove();\n }\n if (field) {\n field.remove();\n }\n // eslint-disable-next-line max-len\n var appearanceDiv = createElement('div', { id: this.pdfViewer.element.id + 'Signature_appearance', className: 'e-pv-signature-apperance', styles: 'margin-top:30px' });\n // eslint-disable-next-line max-len\n var canvas = createElement('canvas', { id: this.pdfViewer.element.id + '_signatureCanvas_', className: 'e-pv-signature-canvas' });\n if (this.pdfViewer.element.offsetWidth > 750) {\n canvas.width = 714;\n }\n else {\n canvas.width = this.pdfViewer.element.offsetWidth - 35;\n }\n canvas.classList.add('e-pv-canvas-signature');\n canvas.height = 305;\n canvas.style.height = '305px';\n canvas.style.border = '1px dotted #bdbdbd';\n canvas.style.backgroundColor = 'white';\n canvas.style.boxSizing = 'border-box';\n canvas.style.borderRadius = '2px';\n canvas.addEventListener('mousedown', this.signaturePanelMouseDown.bind(this));\n canvas.addEventListener('mousemove', this.signaturePanelMouseMove.bind(this));\n canvas.addEventListener('mouseup', this.signaturePanelMouseUp.bind(this));\n canvas.addEventListener('mouseleave', this.signaturePanelMouseLeave.bind(this));\n canvas.addEventListener('touchstart', this.signaturePanelMouseDown.bind(this));\n canvas.addEventListener('touchmove', this.signaturePanelMouseMove.bind(this));\n canvas.addEventListener('touchend', this.signaturePanelMouseUp.bind(this));\n appearanceDiv.appendChild(canvas);\n // eslint-disable-next-line\n var checkBoxObj;\n // eslint-disable-next-line\n var input;\n var saveCheckBoxContent;\n if (this.pdfViewerBase.isToolbarSignClicked && !this.pdfViewerBase.isInitialField) {\n saveCheckBoxContent = this.pdfViewer.localeObj.getConstant('Save Signature');\n }\n else {\n saveCheckBoxContent = this.pdfViewerBase.isInitialField ? this.pdfViewer.localeObj.getConstant('Save Initial') : this.pdfViewer.localeObj.getConstant('Save Signature');\n }\n if (!this.pdfViewer.hideSaveSignature) {\n // eslint-disable-next-line\n input = document.createElement('input');\n input.type = 'checkbox';\n input.id = 'checkbox';\n appearanceDiv.appendChild(input);\n checkBoxObj = new CheckBox({ label: saveCheckBoxContent, disabled: false, checked: false });\n checkBoxObj.appendTo(input);\n }\n if (!this.pdfViewerBase.isInitialField) {\n this.isSaveSignature = this.saveSignatureCheckbox();\n }\n else {\n this.isSaveInitial = this.saveSignatureCheckbox();\n }\n if (this.isSaveSignature && !this.pdfViewerBase.isInitialField) {\n checkBoxObj.checked = true;\n }\n else if (this.isSaveInitial && this.pdfViewerBase.isInitialField) {\n checkBoxObj.checked = true;\n }\n //if (!this.pdfViewerBase.isToolbarSignClicked) {\n // eslint-disable-next-line\n var typeDiv = createElement('div', { id: this.pdfViewer.element.id + 'type_appearance', className: 'e-pv-signature-apperance', styles: 'margin-top:6px' });\n // eslint-disable-next-line\n var inputText = document.createElement('input');\n inputText.type = 'text';\n inputText.id = this.pdfViewer.element.id + '_e-pv-Signtext-box';\n typeDiv.appendChild(inputText);\n // eslint-disable-next-line\n var inputobj = new TextBox({\n placeholder: this.pdfViewer.localeObj.getConstant('Enter Signature as Name'),\n floatLabelType: 'Auto'\n });\n inputobj.appendTo(inputText);\n // eslint-disable-next-line\n var fontDiv = createElement('div', { id: this.pdfViewer.element.id + '_font_appearance', className: 'e-pv-font-appearance-style' });\n fontDiv.classList.add('e-pv-canvas-signature');\n fontDiv.style.height = '270px';\n fontDiv.style.border = '1px dotted #bdbdbd';\n fontDiv.style.boxSizing = 'border-box';\n fontDiv.style.borderRadius = '2px';\n fontDiv.style.backgroundColor = 'white';\n fontDiv.style.color = 'black';\n fontDiv.style.marginTop = '8px';\n typeDiv.appendChild(fontDiv);\n input = document.createElement('input');\n input.type = 'checkbox';\n input.id = 'checkbox1';\n typeDiv.appendChild(input);\n checkBoxObj = new CheckBox({ label: saveCheckBoxContent, disabled: false, checked: false });\n checkBoxObj.appendTo(input);\n inputobj.addEventListener('input', this.renderSignatureText.bind(this));\n this.enableCreateButton(true);\n // eslint-disable-next-line\n var tab = createElement('div', { id: this.pdfViewer.element.id + 'Signature_tab' });\n var uploadDiv = createElement('div', { id: this.pdfViewer.element.id + 'upload_appearance', className: 'e-pv-signature-apperance', styles: 'padding-top:30px' });\n // eslint-disable-next-line\n var button = document.createElement('div');\n button.id = this.pdfViewer.element.id + '_e-pv-upload-button';\n uploadDiv.appendChild(button);\n // eslint-disable-next-line\n var uploadButton = new Button({ cssClass: 'e-pv-sign-upload', content: this.pdfViewer.localeObj.getConstant('Browse Signature Image') });\n uploadButton.appendTo(button);\n uploadButton.element.style.position = 'absolute';\n // eslint-disable-next-line max-len\n var uploadCanvas = createElement('canvas', { id: this.pdfViewer.element.id + '_signatureuploadCanvas_', className: 'e-pv-signature-uploadcanvas' });\n if (this.pdfViewer.element.offsetWidth > 750) {\n uploadCanvas.width = 714;\n }\n else {\n uploadCanvas.width = this.pdfViewer.element.offsetWidth - 35;\n }\n uploadCanvas.classList.add('e-pv-canvas-signature');\n uploadCanvas.height = 305;\n uploadCanvas.style.height = '305px';\n uploadButton.element.style.left = ((uploadCanvas.width / 2) - 50) + 'px';\n uploadButton.element.style.top = ((parseFloat(uploadCanvas.style.height) / 2) + 20) + 'px';\n uploadCanvas.style.border = '1px dotted #bdbdbd';\n uploadCanvas.style.backgroundColor = 'white';\n uploadCanvas.style.boxSizing = 'border-box';\n uploadCanvas.style.borderRadius = '2px';\n uploadCanvas.style.zIndex = '0';\n uploadDiv.appendChild(uploadCanvas);\n input = document.createElement('input');\n input.type = 'checkbox';\n input.id = 'checkbox2';\n uploadDiv.appendChild(input);\n checkBoxObj = new CheckBox({ label: saveCheckBoxContent, disabled: false, checked: false });\n checkBoxObj.appendTo(input);\n button.addEventListener('click', this.uploadSignatureImage.bind(this));\n // eslint-disable-next-line max-len\n this.signfontStyle = [{ FontName: 'Helvetica' }, { FontName: 'Times New Roman' }, { FontName: 'Courier' }, { FontName: 'Symbol' }];\n // eslint-disable-next-line\n var fontSignature = [];\n if (this.pdfViewerBase.isToolbarSignClicked && !isNullOrUndefined(this.pdfViewer.handWrittenSignatureSettings.typeSignatureFonts)) {\n for (var j = 0; j < 4; j++) {\n if (!isNullOrUndefined(this.pdfViewer.handWrittenSignatureSettings.typeSignatureFonts[parseInt(j.toString(), 10)])) {\n this.signfontStyle[parseInt(j.toString(), 10)].FontName = this.pdfViewer.handWrittenSignatureSettings.typeSignatureFonts[parseInt(j.toString(), 10)];\n }\n }\n }\n for (var i = 0; i < this.signfontStyle.length; i++) {\n fontSignature[parseInt(i.toString(), 10)] = document.createElement('div');\n fontSignature[parseInt(i.toString(), 10)].id = '_font_signature' + i + '';\n fontSignature[parseInt(i.toString(), 10)].classList.add('e-pv-font-sign');\n }\n this.fontsign = fontSignature;\n // eslint-disable-next-line\n var proxy = this;\n var items = [];\n if (this.pdfViewerBase.isToolbarSignClicked) {\n if (this.pdfViewerBase.isInitialField) {\n items = this.showHideSignatureTab(this.pdfViewer.handWrittenSignatureSettings.initialDialogSettings && this.pdfViewer.handWrittenSignatureSettings.initialDialogSettings.displayMode, appearanceDiv, typeDiv, uploadDiv);\n }\n else {\n items = this.showHideSignatureTab(this.pdfViewer.handWrittenSignatureSettings.signatureDialogSettings && this.pdfViewer.handWrittenSignatureSettings.signatureDialogSettings.displayMode, appearanceDiv, typeDiv, uploadDiv);\n }\n }\n else {\n if (this.pdfViewerBase.isInitialField) {\n items = this.showHideSignatureTab((this.pdfViewer.initialFieldSettings.initialDialogSettings ? this.pdfViewer.initialFieldSettings.initialDialogSettings.displayMode : 7), appearanceDiv, typeDiv, uploadDiv);\n }\n else {\n items = this.showHideSignatureTab((this.pdfViewer.signatureFieldSettings.signatureDialogSettings ? this.pdfViewer.signatureFieldSettings.signatureDialogSettings.displayMode : 7), appearanceDiv, typeDiv, uploadDiv);\n }\n }\n // eslint-disable-next-line\n this.tabObj = new Tab({\n selected: function (args) {\n proxy.handleSelectEvent(args);\n },\n selecting: function (args) {\n proxy.select(args);\n },\n items: items\n });\n this.tabObj.appendTo(tab);\n if (tab && tab.lastElementChild) {\n tab.lastElementChild.style.overflow = 'hidden';\n }\n if (items[0].header.label === 'DRAW') {\n this.signaturetype = 'Draw';\n }\n else if (items[0].header.label === 'TYPE') {\n this.signaturetype = 'Type';\n }\n else {\n this.signaturetype = 'Image';\n }\n return tab;\n // } else {\n // return appearanceDiv;\n // }\n };\n Signature.prototype.handleSelectEvent = function (e) {\n // eslint-disable-next-line\n var headerText = '';\n var maximumWidth = 750;\n var tabInstance = document.getElementById(this.pdfViewer.element.id + 'Signature_tab').ej2_instances[0];\n if (tabInstance) {\n if (tabInstance.items.length > 0) {\n for (var i = 0; i < tabInstance.items.length; i++) {\n var headerValue = tabInstance.items[parseInt(i.toString(), 10)].header.text;\n if (headerValue === e.selectedItem.textContent) {\n headerText = tabInstance.items[parseInt(i.toString(), 10)].header.label;\n }\n }\n }\n }\n var checkbox = document.getElementById('checkbox');\n if (checkbox && checkbox.checked) {\n if (e.previousIndex === 0 && this.outputString !== '') {\n if (!this.pdfViewerBase.isInitialField) {\n this.isSaveSignature = true;\n this.saveSignatureString = this.outputString;\n }\n else {\n this.isSaveInitial = true;\n this.saveInitialString = this.outputString;\n }\n // eslint-disable-next-line\n var canvas = document.getElementById(this.pdfViewer.element.id + '_signatureCanvas_');\n this.saveImageString = canvas.toDataURL();\n if (!this.pdfViewerBase.isInitialField) {\n this.signatureImageString = this.saveImageString;\n }\n else {\n this.initialImageString = this.saveImageString;\n }\n }\n }\n else {\n if (this.isSaveSignature && !this.pdfViewerBase.isInitialField) {\n this.isSaveSignature = false;\n this.saveSignatureString = '';\n this.saveImageString = '';\n this.signatureImageString = '';\n }\n else if (this.isSaveInitial && this.pdfViewerBase.isInitialField) {\n this.isSaveInitial = false;\n this.saveInitialString = '';\n this.saveImageString = '';\n this.initialImageString = '';\n }\n }\n this.clearSignatureCanvas(e);\n // eslint-disable-next-line\n if (headerText.toLocaleLowerCase() === 'draw') {\n this.signaturetype = 'Draw';\n this.enableCreateSignatureButton();\n var drawCheckbox = document.getElementById(\"checkbox\");\n this.hideSignatureCheckbox(drawCheckbox);\n }\n else if (headerText.toLocaleLowerCase() === 'type') {\n var canvas = document.getElementById(this.pdfViewer.element.id + '_signatureCanvas_');\n this.drawSignatureDataUrl = canvas.toDataURL();\n this.updateSignatureTypeValue();\n this.signaturetype = 'Type';\n this.enableCreateSignatureButton();\n var typeCheckbox = document.getElementById(\"checkbox1\");\n this.hideSignatureCheckbox(typeCheckbox);\n }\n else if (headerText.toLocaleLowerCase() === 'upload') {\n var canvas = document.getElementById(this.pdfViewer.element.id + '_signatureCanvas_');\n this.drawSignatureDataUrl = canvas.toDataURL();\n this.signaturetype = 'Image';\n this.enableCreateSignatureButton();\n var imageCheckbox = document.getElementById(\"checkbox2\");\n this.hideSignatureCheckbox(imageCheckbox);\n }\n if (this.pdfViewer.element.offsetWidth < maximumWidth)\n this.updateCanvasSize();\n this.drawSignOnTabSwitch();\n if (headerText.toLocaleLowerCase() === 'upload' && this.imageSignatureDataUrl) {\n this.imageSignOnTabSwitch();\n }\n };\n Signature.prototype.enableCreateSignatureButton = function () {\n if (this.outputString !== \"\") {\n this.enableCreateButton(false);\n }\n else {\n this.enableCreateButton(true);\n }\n };\n Signature.prototype.showHideSignatureTab = function (displayMode, appearanceDiv, typeDiv, uploadDiv) {\n var items = [];\n if (displayMode & DisplayMode.Draw) {\n items.push({\n header: { 'text': this.pdfViewer.localeObj.getConstant('Draw-hand Signature'), 'label': 'DRAW' },\n content: appearanceDiv\n });\n }\n if (displayMode & DisplayMode.Text) {\n items.push({\n header: { 'text': this.pdfViewer.localeObj.getConstant('Type Signature'), 'label': 'TYPE' },\n content: typeDiv\n });\n }\n if (displayMode & DisplayMode.Upload) {\n items.push({\n header: { 'text': this.pdfViewer.localeObj.getConstant('Upload Signature'), 'label': 'UPLOAD' },\n content: uploadDiv\n });\n }\n return items;\n };\n /**\n * @private\n * @returns {void}\n */\n Signature.prototype.createSignatureFileElement = function () {\n // eslint-disable-next-line\n var signImage = createElement('input', { id: this.pdfViewer.element.id + '_signElement', attrs: { 'type': 'file' } });\n signImage.setAttribute('accept', '.jpg,.jpeg,.png');\n signImage.style.position = 'absolute';\n signImage.style.left = '0px';\n signImage.style.top = '0px';\n signImage.style.visibility = 'hidden';\n document.body.appendChild(signImage);\n signImage.addEventListener('change', this.addStampImage);\n };\n Signature.prototype.uploadSignatureImage = function () {\n // eslint-disable-next-line\n var signImage = document.getElementById(this.pdfViewer.element.id + '_signElement');\n if (signImage) {\n signImage.click();\n }\n };\n Signature.prototype.renderSignatureText = function () {\n var maximumWidth = 750;\n // eslint-disable-next-line\n var fontDiv = document.getElementById(this.pdfViewer.element.id + '_font_appearance');\n // eslint-disable-next-line\n var textBox = document.getElementById(this.pdfViewer.element.id + '_e-pv-Signtext-box');\n for (var i = 0; i < this.signfontStyle.length; i++) {\n this.fontsign[parseInt(i.toString(), 10)].innerHTML = textBox.value;\n this.fontsign[parseInt(i.toString(), 10)].style.fontFamily = this.signfontStyle[parseInt(i.toString(), 10)].FontName;\n if (this.signfontStyle[parseInt(i.toString(), 10)].FontName === 'Helvetica') {\n this.fontsign[parseInt(i.toString(), 10)].style.borderColor = 'red';\n }\n fontDiv.appendChild(this.fontsign[parseInt(i.toString(), 10)]);\n }\n for (var i = 0; i < this.signfontStyle.length; i++) {\n // eslint-disable-next-line\n var clickSign = document.getElementById('_font_signature' + i + '');\n clickSign.addEventListener('click', this.typeSignatureclick.bind(this));\n }\n this.enableCreateButton(false);\n this.enableClearbutton(false);\n if (this.pdfViewer.element.offsetWidth < maximumWidth)\n this.updateCanvasSize();\n this.drawSignOnTabSwitch();\n };\n Signature.prototype.typeSignatureclick = function () {\n var eventTarget = event.target;\n // eslint-disable-next-line\n var createButton = document.getElementsByClassName('e-pv-createbtn')[0];\n createButton.disabled = false;\n for (var i = 0; i < 4; i++) {\n // eslint-disable-next-line\n var fontElement = document.getElementById('_font_signature' + i + '');\n if (fontElement) {\n fontElement.style.borderColor = '';\n }\n }\n eventTarget.style.borderColor = 'red';\n this.outputString = eventTarget.textContent;\n try {\n this.fontName = JSON.parse(eventTarget.style.fontFamily);\n }\n catch (e) {\n this.fontName = eventTarget.style.fontFamily;\n }\n };\n /**\n * @param bounds\n * @param position\n * @private\n */\n // eslint-disable-next-line\n Signature.prototype.addSignatureCollection = function (bounds, position) {\n var minimumX = -1;\n var minimumY = -1;\n var maximumX = -1;\n var maximumY = -1;\n // eslint-disable-next-line\n var collectionData = processPathData(this.outputString);\n // eslint-disable-next-line\n var newCanvas = document.createElement('canvas');\n // eslint-disable-next-line\n var context = newCanvas.getContext('2d');\n // eslint-disable-next-line\n var imageString;\n var signatureType = this.pdfViewerBase.currentSignatureAnnot.shapeAnnotationType;\n if (signatureType === 'HandWrittenSignature') {\n if (collectionData.length !== 0) {\n // eslint-disable-next-line\n for (var k = 0; k < collectionData.length; k++) {\n // eslint-disable-next-line\n var val = collectionData[k];\n if (minimumX === -1) {\n // eslint-disable-next-line\n minimumX = (val['x']);\n // eslint-disable-next-line\n maximumX = (val['x']);\n // eslint-disable-next-line\n minimumY = (val['y']);\n // eslint-disable-next-line\n maximumY = (val['y']);\n }\n else {\n // eslint-disable-next-line\n var point1 = (val['x']);\n // eslint-disable-next-line\n var point2 = (val['y']);\n if (minimumX >= point1) {\n minimumX = point1;\n }\n if (minimumY >= point2) {\n minimumY = point2;\n }\n if (maximumX <= point1) {\n maximumX = point1;\n }\n if (maximumY <= point2) {\n maximumY = point2;\n }\n }\n }\n var newdifferenceX = maximumX - minimumX;\n var newdifferenceY = maximumY - minimumY;\n var differenceX = newdifferenceX / 100;\n var differenceY = newdifferenceY / 100;\n var left = 0;\n var top_1 = 0;\n if (bounds) {\n newCanvas.width = position.currentWidth;\n newCanvas.height = position.currentHeight;\n differenceX = newdifferenceX / (bounds.width);\n differenceY = newdifferenceY / (bounds.height);\n left = bounds.x - position.currentLeft;\n top_1 = bounds.y - position.currentTop;\n }\n else {\n newCanvas.width = 100;\n newCanvas.height = 100;\n }\n context.beginPath();\n for (var n = 0; n < collectionData.length; n++) {\n // eslint-disable-next-line\n var val = collectionData[n];\n // eslint-disable-next-line\n var point1 = ((val['x'] - minimumX) / differenceX) + left;\n // eslint-disable-next-line\n var point2 = ((val['y'] - minimumY) / differenceY) + top_1;\n // eslint-disable-next-line\n if (val['command'] === 'M') {\n context.moveTo(point1, point2);\n // eslint-disable-next-line\n }\n else if (val['command'] === 'L') {\n context.lineTo(point1, point2);\n }\n }\n context.stroke();\n context.closePath();\n imageString = newCanvas.toDataURL();\n }\n }\n else if (signatureType === 'SignatureText') {\n imageString = this.outputString;\n }\n else {\n imageString = this.outputString;\n }\n if (bounds) {\n this.saveImageString = imageString;\n }\n else {\n // eslint-disable-next-line\n var signCollection = {};\n signCollection['sign_' + this.pdfViewerBase.imageCount] = this.outputString;\n this.outputcollection.push(signCollection);\n // eslint-disable-next-line\n var signature = [];\n signature.push({ id: 'sign_' + this.pdfViewerBase.imageCount, imageData: imageString, signatureType: signatureType, fontFamily: this.pdfViewerBase.currentSignatureAnnot.fontFamily });\n this.signaturecollection.push({ image: signature, isInitial: this.pdfViewerBase.isInitialField });\n this.pdfViewerBase.imageCount++;\n }\n };\n /**\n * @private]\n * @param {number} limit - The limit.\n * @returns {number} - Returns number.\n */\n Signature.prototype.getSaveLimit = function (limit) {\n if (limit > this.maxSaveLimit) {\n limit = this.maxSaveLimit;\n }\n else if (limit < 1) {\n limit = 1;\n }\n return limit;\n };\n /**\n * @private\n * @returns {void}\n */\n Signature.prototype.RenderSavedSignature = function () {\n this.pdfViewerBase.signatureCount++;\n var zoomvalue = this.pdfViewerBase.getZoomFactor();\n var annot;\n if (this.pdfViewerBase.isAddedSignClicked) {\n var annotationName = this.pdfViewer.annotation.createGUID();\n this.pdfViewerBase.currentSignatureAnnot = null;\n this.pdfViewerBase.isSignatureAdded = true;\n var pageIndex = this.pdfViewerBase.currentPageNumber - 1;\n var pageDiv = document.getElementById(this.pdfViewer.element.id + '_pageDiv_' + pageIndex);\n var currentLeft = 0;\n var currentTop = 0;\n // eslint-disable-next-line max-len\n var currentWidth = this.pdfViewer.handWrittenSignatureSettings.width ? this.pdfViewer.handWrittenSignatureSettings.width : 100;\n // eslint-disable-next-line max-len\n var currentHeight = this.pdfViewer.handWrittenSignatureSettings.height ? this.pdfViewer.handWrittenSignatureSettings.height : 100;\n // eslint-disable-next-line max-len\n var thickness = this.pdfViewer.handWrittenSignatureSettings.thickness ? this.pdfViewer.handWrittenSignatureSettings.thickness : 1;\n // eslint-disable-next-line max-len\n var opacity = this.pdfViewer.handWrittenSignatureSettings.opacity ? this.pdfViewer.handWrittenSignatureSettings.opacity : 1;\n // eslint-disable-next-line max-len\n var strokeColor = this.pdfViewer.handWrittenSignatureSettings.strokeColor ? this.pdfViewer.handWrittenSignatureSettings.strokeColor : '#000000';\n currentLeft = ((parseFloat(pageDiv.style.width) / 2) - (currentWidth / 2)) / zoomvalue;\n // eslint-disable-next-line max-len\n currentTop = ((parseFloat(pageDiv.style.height) / 2) - (currentHeight / 2)) / zoomvalue;\n var keyString = '';\n var signatureType = void 0;\n var signatureFontFamily = void 0;\n for (var collection = 0; collection < this.outputcollection.length; collection++) {\n // eslint-disable-next-line\n var collectionAddedsign = this.outputcollection[collection];\n // eslint-disable-next-line\n var eventTarget = event.target;\n // eslint-disable-next-line max-len\n if (eventTarget && eventTarget.id === 'sign_' + collection || eventTarget && eventTarget.id === 'sign_border' + collection) {\n keyString = collectionAddedsign['sign_' + collection];\n break;\n }\n }\n for (var signatureIndex = 0; signatureIndex < this.signaturecollection.length; signatureIndex++) {\n var eventTarget = event.target;\n var signatureId = this.signaturecollection[parseInt(signatureIndex.toString(), 10)].image[0].id.split('_')[1];\n if (eventTarget && eventTarget.id === 'sign_' + signatureId || eventTarget && eventTarget.id === 'sign_border' + signatureId) {\n signatureType = this.signaturecollection[parseInt(signatureIndex.toString(), 10)].image[0].signatureType;\n signatureFontFamily = this.signaturecollection[parseInt(signatureIndex.toString(), 10)].image[0].fontFamily;\n break;\n }\n }\n if (signatureType === 'HandWrittenSignature') {\n // eslint-disable-next-line\n var signatureBounds = this.pdfViewer.formFieldsModule.updateSignatureAspectRatio(keyString, true);\n // eslint-disable-next-line max-len\n currentWidth = signatureBounds.width ? signatureBounds.width : currentWidth;\n // eslint-disable-next-line max-len\n currentHeight = signatureBounds.height ? signatureBounds.height : currentHeight;\n }\n else {\n currentWidth = currentWidth === 150 ? 200 : this.pdfViewer.handWrittenSignatureSettings.width;\n // eslint-disable-next-line max-len\n currentHeight = currentHeight === 100 ? 65 : this.pdfViewer.handWrittenSignatureSettings.height;\n }\n annot = {\n // eslint-disable-next-line max-len\n id: 'sign' + this.pdfViewerBase.signatureCount, bounds: { x: currentLeft, y: currentTop, width: currentWidth, height: currentHeight }, pageIndex: pageIndex, data: keyString,\n // eslint-disable-next-line max-len\n shapeAnnotationType: signatureType, opacity: opacity, fontFamily: signatureFontFamily, strokeColor: strokeColor, thickness: thickness, signatureName: annotationName\n };\n this.pdfViewerBase.currentSignatureAnnot = annot;\n this.pdfViewerBase.isAddedSignClicked = false;\n }\n else {\n this.pdfViewer.formFieldsModule.drawSignature();\n }\n };\n /**\n * @private\n * @returns {void}\n */\n Signature.prototype.updateCanvasSize = function () {\n // eslint-disable-next-line\n var canvas = document.getElementById(this.pdfViewer.element.id + '_signatureCanvas_');\n this.setTabItemWidth(canvas);\n var uploadCanvas = document.getElementById(this.pdfViewer.element.id + '_signatureuploadCanvas_');\n this.setTabItemWidth(uploadCanvas);\n var fontAppearance = document.getElementById(this.pdfViewer.element.id + '_font_appearance');\n this.setTabItemWidth(fontAppearance);\n };\n Signature.prototype.setTabItemWidth = function (canvas) {\n var padding = 2;\n var maximumWidth = 750;\n var canvasWidth = 714;\n var margin = 50;\n var elem = document.querySelector('.e-dlg-content');\n if (elem) {\n var style = getComputedStyle(elem);\n padding = padding + parseInt(style.paddingLeft, 10) + parseInt(style.paddingRight, 10);\n }\n if (canvas && this.signatureDialog && this.signatureDialog.visible) {\n if (this.pdfViewer.element.offsetWidth > maximumWidth) {\n canvas.width = canvasWidth;\n canvas.style.width = canvasWidth + 'px';\n }\n else {\n canvas.width = this.pdfViewer.element.offsetWidth - padding;\n canvas.style.width = canvas.width + 'px';\n }\n }\n var fontInnerDiv = document.getElementsByClassName('e-pv-font-sign');\n if (canvas && fontInnerDiv && fontInnerDiv.length > 0) {\n for (var i = 0; i < fontInnerDiv.length; i++) {\n var fontDiv = fontInnerDiv[parseInt(i.toString(), 10)];\n fontDiv.style.width = ((canvas.width / 2) - margin) + 'px';\n }\n }\n };\n Signature.prototype.drawSignOnTabSwitch = function () {\n var proxy = this;\n var image = new Image();\n image.onload = function () {\n var canvas = document.getElementById(proxy.pdfViewer.element.id + '_signatureCanvas_');\n if (canvas) {\n var context = canvas.getContext('2d');\n context.drawImage(image, 0, 0);\n }\n };\n image.src = this.drawSignatureDataUrl;\n };\n Signature.prototype.imageSignOnTabSwitch = function () {\n var proxy = this;\n var image = new Image();\n image.onload = function () {\n var canvas = document.getElementById(proxy.pdfViewer.element.id + '_signatureuploadCanvas_');\n if (canvas) {\n var context = canvas.getContext('2d');\n var signbutton = document.getElementById(proxy.pdfViewer.element.id + '_e-pv-upload-button');\n signbutton.style.visibility = 'hidden';\n context.drawImage(image, 0, 0, canvas.width, canvas.height);\n proxy.enableCreateButton(false);\n proxy.signatureImageHeight = image.naturalHeight;\n proxy.signatureImageWidth = image.naturalWidth;\n }\n };\n image.src = this.imageSignatureDataUrl;\n };\n Signature.prototype.signaturePanelMouseDown = function (e) {\n if (e.type !== 'contextmenu') {\n e.preventDefault();\n this.findMousePosition(e);\n this.mouseDetection = true;\n this.oldX = this.mouseX;\n this.oldY = this.mouseY;\n this.newObject = [];\n this.drawMousePosition(e);\n this.mouseMoving = true;\n }\n };\n Signature.prototype.enableCreateButton = function (isEnable) {\n // eslint-disable-next-line\n var createbtn = document.getElementsByClassName('e-pv-createbtn')[0];\n if (createbtn) {\n createbtn.disabled = isEnable;\n }\n this.enableClearbutton(isEnable);\n };\n Signature.prototype.enableClearbutton = function (isEnable) {\n // eslint-disable-next-line\n var clearbtn = document.getElementsByClassName('e-pv-clearbtn')[0];\n if (clearbtn) {\n clearbtn.disabled = isEnable;\n }\n };\n Signature.prototype.signaturePanelMouseMove = function (e) {\n if (this.mouseDetection && this.signaturetype === 'Draw') {\n this.findMousePosition(e);\n this.enableCreateButton(false);\n this.drawMousePosition(e);\n }\n };\n Signature.prototype.findMousePosition = function (event) {\n var offsetX;\n var offsetY;\n if (event.type.indexOf('touch') !== -1) {\n event = event;\n var element = event.target;\n // eslint-disable-next-line\n var currentRect = element.getBoundingClientRect();\n this.mouseX = event.changedTouches[0].clientX - currentRect.left;\n this.mouseY = event.changedTouches[0].clientY - currentRect.top;\n }\n else {\n event = event;\n this.mouseX = event.offsetX;\n this.mouseY = event.offsetY;\n }\n };\n Signature.prototype.drawMousePosition = function (event) {\n if (this.mouseDetection) {\n this.drawSignatureInCanvas();\n this.oldX = this.mouseX;\n this.oldY = this.mouseY;\n }\n };\n Signature.prototype.drawSignatureInCanvas = function () {\n // eslint-disable-next-line\n var canvas = document.getElementById(this.pdfViewer.element.id + '_signatureCanvas_');\n // eslint-disable-next-line\n var context = canvas.getContext('2d');\n context.beginPath();\n context.moveTo(this.oldX, this.oldY);\n context.lineTo(this.mouseX, this.mouseY);\n context.stroke();\n context.lineWidth = 2;\n context.arc(this.oldX, this.oldY, 2 / 2, 0, Math.PI * 2, true);\n context.closePath();\n this.newObject.push(this.mouseX, this.mouseY);\n };\n Signature.prototype.signaturePanelMouseUp = function () {\n if (this.mouseDetection) {\n this.convertToPath(this.newObject);\n }\n this.mouseDetection = false;\n if (event.type == 'touchend') {\n this.canvasTouched = true;\n }\n };\n Signature.prototype.signaturePanelMouseLeave = function () {\n if (this.mouseDetection) {\n this.convertToPath(this.newObject);\n }\n this.mouseDetection = false;\n this.mouseMoving = false;\n };\n ;\n // eslint-disable-next-line\n Signature.prototype.convertToPath = function (newObject) {\n this.movePath(newObject[0], newObject[1]);\n this.linePath(newObject[0], newObject[1]);\n for (var n = 2; n < newObject.length; n = n + 2) {\n this.linePath(newObject[parseInt(n.toString(), 10)], newObject[n + 1]);\n }\n };\n Signature.prototype.linePath = function (x, y) {\n this.outputString += 'L' + x + ',' + y + ' ';\n };\n Signature.prototype.movePath = function (x, y) {\n this.outputString += 'M' + x + ',' + y + ' ';\n };\n /**\n * @private\n * @returns {void}\n */\n Signature.prototype.clearSignatureCanvas = function (type) {\n var isCanvasClear = true;\n var drawObject = [];\n if (type && !isNullOrUndefined(type.previousIndex) && !isNullOrUndefined(type.selectedIndex)) {\n isCanvasClear = false;\n if (type.previousIndex === 0) {\n this.drawOutputString = this.outputString;\n drawObject = this.newObject;\n }\n else if (type.previousIndex === 2) {\n this.imageOutputString = this.outputString;\n }\n this.outputString = '';\n this.newObject = [];\n if (type.selectedIndex === 0) {\n this.outputString = this.drawOutputString;\n this.newObject = drawObject;\n }\n else if (type.selectedIndex === 2) {\n this.outputString = this.imageOutputString;\n }\n }\n else {\n this.outputString = '';\n this.newObject = [];\n }\n var isClearDrawTab = false;\n var isClearTypeTab = false;\n var isClearImageTab = false;\n if (type && type.currentTarget && type.currentTarget.classList.contains(\"e-pv-clearbtn\")) {\n isCanvasClear = false;\n if (this.signaturetype === 'Draw') {\n isClearDrawTab = true;\n }\n else if (this.signaturetype === 'Type') {\n isClearTypeTab = true;\n }\n else {\n isClearImageTab = true;\n }\n }\n // eslint-disable-next-line\n var canvas = document.getElementById(this.pdfViewer.element.id + '_signatureCanvas_');\n // eslint-disable-next-line\n if ((canvas && isCanvasClear) || (isClearDrawTab)) {\n // eslint-disable-next-line\n var context = canvas.getContext('2d');\n context.clearRect(0, 0, canvas.width, canvas.height);\n }\n // eslint-disable-next-line\n var imageCanvas = document.getElementById(this.pdfViewer.element.id + '_signatureuploadCanvas_');\n if (imageCanvas && isCanvasClear || (isClearImageTab)) {\n // eslint-disable-next-line\n var context = imageCanvas.getContext('2d');\n context.clearRect(0, 0, imageCanvas.width, imageCanvas.height);\n // eslint-disable-next-line\n var signbutton = document.getElementById(this.pdfViewer.element.id + '_e-pv-upload-button');\n if (signbutton) {\n signbutton.style.visibility = '';\n }\n }\n // eslint-disable-next-line\n var fontdiv = document.getElementById(this.pdfViewer.element.id + '_font_appearance');\n // eslint-disable-next-line\n var textbox = document.getElementById(this.pdfViewer.element.id + '_e-pv-Signtext-box');\n if ((fontdiv && textbox && isCanvasClear) || (isClearTypeTab)) {\n textbox.value = '';\n if (!isBlazor()) {\n fontdiv.innerHTML = '';\n }\n }\n this.enableCreateButton(true);\n };\n /**\n * @private\n * @returns {void}\n */\n Signature.prototype.closeSignaturePanel = function () {\n if (this.pdfViewerBase.currentTarget) {\n this.pdfViewerBase.drawSignatureWithTool = true;\n }\n this.clearSignatureCanvas();\n if (!isBlazor()) {\n this.signatureDialog.hide();\n }\n this.pdfViewerBase.isToolbarSignClicked = false;\n this.pdfViewerBase.drawSignatureWithTool = false;\n this.drawOutputString = '';\n this.imageOutputString = '';\n };\n /**\n * @private\n * @returns {string} - Returns the string.\n */\n Signature.prototype.saveSignature = function () {\n // eslint-disable-next-line\n var storeObject = null;\n if (this.pdfViewerBase.isStorageExceed) {\n storeObject = this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_sign'];\n }\n else {\n storeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_sign');\n }\n // eslint-disable-next-line\n var annotations = new Array();\n for (var j = 0; j < this.pdfViewerBase.pageCount; j++) {\n annotations[parseInt(j.toString(), 10)] = [];\n }\n if (storeObject) {\n var annotationCollection = JSON.parse(storeObject);\n for (var i = 0; i < annotationCollection.length; i++) {\n var newArray = [];\n var pageAnnotationObject = annotationCollection[parseInt(i.toString(), 10)];\n if (pageAnnotationObject) {\n for (var z = 0; pageAnnotationObject.annotations.length > z; z++) {\n // eslint-disable-next-line max-len\n var strokeColorString = pageAnnotationObject.annotations[parseInt(z.toString(), 10)].strokeColor ? pageAnnotationObject.annotations[parseInt(z.toString(), 10)].strokeColor : \"black\";\n pageAnnotationObject.annotations[parseInt(z.toString(), 10)].strokeColor = JSON.stringify(this.getRgbCode(strokeColorString));\n // eslint-disable-next-line max-len\n pageAnnotationObject.annotations[parseInt(z.toString(), 10)].bounds = JSON.stringify(this.pdfViewer.annotation.getBounds(pageAnnotationObject.annotations[parseInt(z.toString(), 10)].bounds, pageAnnotationObject.pageIndex));\n if (pageAnnotationObject.annotations[parseInt(z.toString(), 10)].shapeAnnotationType === 'HandWrittenSignature' || pageAnnotationObject.annotations[parseInt(z.toString(), 10)].signatureName === 'ink') {\n // eslint-disable-next-line\n var collectionData = processPathData(pageAnnotationObject.annotations[parseInt(z.toString(), 10)].data);\n // eslint-disable-next-line\n var csData = splitArrayCollection(collectionData);\n pageAnnotationObject.annotations[parseInt(z.toString(), 10)].data = JSON.stringify(csData);\n }\n else {\n if (pageAnnotationObject.annotations[parseInt(z.toString(), 10)].shapeAnnotationType === 'SignatureText' && !this.checkDefaultFont(pageAnnotationObject.annotations[parseInt(z.toString(), 10)].fontFamily)) {\n var signTypeCanvas = createElement('canvas');\n var bounds = JSON.parse(pageAnnotationObject.annotations[parseInt(z.toString(), 10)].bounds);\n signTypeCanvas.width = (bounds && bounds.width) || 150;\n signTypeCanvas.height = (bounds && bounds.height) || pageAnnotationObject.annotations[parseInt(z.toString(), 10)].fontSize * 2;\n // eslint-disable-next-line\n var canvasContext = signTypeCanvas.getContext('2d');\n var x = signTypeCanvas.width / 2;\n var y = (signTypeCanvas.height / 2) + pageAnnotationObject.annotations[parseInt(z.toString(), 10)].fontSize / 2 - 10;\n canvasContext.textAlign = 'center';\n canvasContext.font = pageAnnotationObject.annotations[parseInt(z.toString(), 10)].fontSize + 'px ' + pageAnnotationObject.annotations[parseInt(z.toString(), 10)].fontFamily;\n canvasContext.fillText(pageAnnotationObject.annotations[parseInt(z.toString(), 10)].data, x, y);\n pageAnnotationObject.annotations[parseInt(z.toString(), 10)].data = JSON.stringify(signTypeCanvas.toDataURL('image/png'));\n pageAnnotationObject.annotations[parseInt(z.toString(), 10)].shapeAnnotationType = 'SignatureImage';\n }\n else {\n pageAnnotationObject.annotations[parseInt(z.toString(), 10)].data = JSON.stringify(pageAnnotationObject.annotations[parseInt(z.toString(), 10)].data);\n }\n }\n }\n newArray = pageAnnotationObject.annotations;\n }\n annotations[pageAnnotationObject.pageIndex] = newArray;\n }\n }\n return JSON.stringify(annotations);\n };\n Signature.prototype.checkDefaultFont = function (fontName) {\n // eslint-disable-next-line\n [{ FontName: 'Helvetica' }, { FontName: 'Times New Roman' }, { FontName: 'Courier' }, { FontName: 'Symbol' }];\n if (fontName === 'Helvetica' || fontName === 'Times New Roman' || fontName === 'Courier' || fontName === 'Symbol') {\n return true;\n }\n return false;\n };\n /**\n * @param colorString\n * @private\n */\n // eslint-disable-next-line\n Signature.prototype.getRgbCode = function (colorString) {\n /* eslint-disable-next-line security/detect-unsafe-regex */\n if (!colorString.match(/#([a-z0-9]+)/gi) && !colorString.match(/^rgba?\\((\\d+),\\s*(\\d+),\\s*(\\d+)(?:,\\s*(\\d+(?:\\.\\d+)?))?\\)$/)) {\n colorString = this.pdfViewer.annotationModule.nameToHash(colorString);\n }\n var stringArray = colorString.split(',');\n if (isNullOrUndefined(stringArray[1])) {\n colorString = this.pdfViewer.annotationModule.getValue(colorString, 'rgba');\n stringArray = colorString.split(',');\n }\n // eslint-disable-next-line radix\n var r = parseInt(stringArray[0].split('(')[1]);\n // eslint-disable-next-line radix\n var g = parseInt(stringArray[1]);\n // eslint-disable-next-line radix\n var b = parseInt(stringArray[2]);\n // eslint-disable-next-line radix\n var a = parseInt(stringArray[3]);\n return { r: r, g: g, b: b, a: a };\n };\n /**\n * @private\n * @param {number} left - The left.\n * @param {number} top - The top.\n * @returns {void}\n */\n Signature.prototype.renderSignature = function (left, top) {\n var annot;\n // eslint-disable-next-line\n var currentAnnotation = this.pdfViewerBase.currentSignatureAnnot;\n var annotationName = this.pdfViewer.annotation.createGUID();\n if (currentAnnotation) {\n if (this.pdfViewerBase.currentSignatureAnnot.shapeAnnotationType === 'HandWrittenSignature') {\n annot = {\n // eslint-disable-next-line max-len\n id: currentAnnotation.id, bounds: { x: left, y: top, width: currentAnnotation.bounds.width, height: currentAnnotation.bounds.height }, pageIndex: currentAnnotation.pageIndex, data: currentAnnotation.data,\n shapeAnnotationType: 'HandWrittenSignature', opacity: currentAnnotation.opacity, fontFamily: currentAnnotation.fontFamily, fontSize: currentAnnotation.fontSize, strokeColor: currentAnnotation.strokeColor, thickness: currentAnnotation.thickness, signatureName: annotationName\n };\n }\n if (this.pdfViewerBase.currentSignatureAnnot.shapeAnnotationType === 'SignatureText') {\n annot = {\n // eslint-disable-next-line max-len\n id: currentAnnotation.id, bounds: { x: left, y: top, width: currentAnnotation.bounds.width, height: currentAnnotation.bounds.height }, pageIndex: currentAnnotation.pageIndex, data: currentAnnotation.data,\n shapeAnnotationType: 'SignatureText', opacity: currentAnnotation.opacity, fontFamily: currentAnnotation.fontFamily, fontSize: currentAnnotation.fontSize, strokeColor: currentAnnotation.strokeColor, thickness: currentAnnotation.thickness, signatureName: annotationName\n };\n }\n else if (this.pdfViewerBase.currentSignatureAnnot.shapeAnnotationType === 'SignatureImage') {\n annot = {\n // eslint-disable-next-line max-len\n id: currentAnnotation.id, bounds: { x: left, y: top, width: currentAnnotation.bounds.width, height: currentAnnotation.bounds.height }, pageIndex: currentAnnotation.pageIndex, data: currentAnnotation.data,\n shapeAnnotationType: 'SignatureImage', opacity: currentAnnotation.opacity, fontFamily: currentAnnotation.fontFamily, fontSize: currentAnnotation.fontSize, strokeColor: currentAnnotation.strokeColor, thickness: currentAnnotation.thickness, signatureName: annotationName\n };\n }\n this.pdfViewer.add(annot);\n // eslint-disable-next-line\n var canvass = document.getElementById(this.pdfViewer.element.id + '_annotationCanvas_' + currentAnnotation.pageIndex);\n // eslint-disable-next-line\n this.pdfViewer.renderDrawing(canvass, currentAnnotation.pageIndex);\n this.pdfViewerBase.signatureAdded = true;\n // eslint-disable-next-line max-len\n this.storeSignatureData(currentAnnotation.pageIndex, annot);\n this.pdfViewer.fireSignatureAdd(currentAnnotation.pageIndex, currentAnnotation.signatureName, currentAnnotation.shapeAnnotationType, currentAnnotation.bounds, currentAnnotation.opacity, currentAnnotation.strokeColor, currentAnnotation.thickness);\n this.pdfViewerBase.currentSignatureAnnot = null;\n this.pdfViewerBase.signatureCount++;\n }\n };\n /**\n * @param annotationCollection\n * @param pageIndex\n * @param isImport\n * @private\n */\n // eslint-disable-next-line\n Signature.prototype.renderExistingSignature = function (annotationCollection, pageIndex, isImport) {\n var annot;\n var isAnnotationAdded = false;\n if (!isImport) {\n for (var p = 0; p < this.signAnnotationIndex.length; p++) {\n if (this.signAnnotationIndex[parseInt(p.toString(), 10)] === pageIndex) {\n isAnnotationAdded = true;\n break;\n }\n }\n }\n if (annotationCollection && !isAnnotationAdded) {\n if (annotationCollection.length > 0 && this.signAnnotationIndex.indexOf(pageIndex) === -1) {\n this.signAnnotationIndex.push(pageIndex);\n }\n for (var n = 0; n < annotationCollection.length; n++) {\n // eslint-disable-next-line\n var currentAnnotation = annotationCollection[n];\n if (currentAnnotation) {\n // eslint-disable-next-line\n var data = currentAnnotation.PathData;\n if (isImport) {\n if (currentAnnotation.IsSignature) {\n data = currentAnnotation.PathData;\n }\n else if (currentAnnotation.AnnotationType === 'SignatureImage' || currentAnnotation.AnnotationType === 'SignatureText') {\n data = JSON.parse(JSON.stringify(currentAnnotation.PathData));\n }\n else {\n if (data.includes('command')) {\n data = getPathString(JSON.parse(currentAnnotation.PathData));\n }\n else {\n data = currentAnnotation.PathData;\n }\n }\n }\n this.outputString = data;\n this.outputString = '';\n var rectDiff = 0;\n var rectDifference = 1;\n var bounds = currentAnnotation.Bounds;\n var currentLeft = !isNullOrUndefined(bounds.X) ? bounds.X + (rectDiff / 2) : bounds.x + (rectDiff / 2);\n var currentTop = !isNullOrUndefined(bounds.Y) ? bounds.Y + (rectDiff / 2) : bounds.y + (rectDiff / 2);\n var currentWidth = bounds.Width ? bounds.Width - (rectDifference - 1) : bounds.width - (rectDifference - 1);\n var currentHeight = bounds.Height ? bounds.Height - (rectDifference - 1) : bounds.height - (rectDifference - 1);\n if (currentAnnotation.AnnotationType === 'SignatureText') {\n annot = {\n id: 'sign' + this.pdfViewerBase.signatureCount, bounds: { x: currentLeft, y: currentTop, width: currentWidth, height: currentHeight }, pageIndex: pageIndex, data: data, fontFamily: currentAnnotation.FontFamily, fontSize: currentAnnotation.FontSize,\n shapeAnnotationType: 'SignatureText', opacity: currentAnnotation.Opacity, strokeColor: currentAnnotation.StrokeColor, thickness: currentAnnotation.Thickness, signatureName: currentAnnotation.SignatureName\n };\n }\n else if (currentAnnotation.AnnotationType === 'SignatureImage') {\n annot = {\n id: 'sign' + this.pdfViewerBase.signatureCount, bounds: { x: currentLeft, y: currentTop, width: currentWidth, height: currentHeight }, pageIndex: pageIndex, data: data, shapeAnnotationType: 'SignatureImage', opacity: currentAnnotation.Opacity, strokeColor: currentAnnotation.StrokeColor, thickness: currentAnnotation.Thickness, signatureName: currentAnnotation.SignatureName\n };\n }\n else {\n annot = {\n id: 'sign' + this.pdfViewerBase.signatureCount, bounds: { x: currentLeft, y: currentTop, width: currentWidth, height: currentHeight }, pageIndex: pageIndex, data: data, shapeAnnotationType: 'HandWrittenSignature', opacity: currentAnnotation.Opacity, strokeColor: currentAnnotation.StrokeColor, thickness: currentAnnotation.Thickness, signatureName: currentAnnotation.SignatureName ? currentAnnotation.SignatureName : \"ink\"\n };\n }\n }\n this.pdfViewer.add(annot);\n // eslint-disable-next-line\n var canvass = document.getElementById(this.pdfViewer.element.id + '_annotationCanvas_' + currentAnnotation.pageIndex);\n // eslint-disable-next-line\n this.pdfViewer.renderDrawing(canvass, annot.pageIndex);\n this.storeSignatureData(annot.pageIndex, annot);\n this.pdfViewerBase.currentSignatureAnnot = null;\n this.pdfViewerBase.signatureCount++;\n // eslint-disable-next-line max-len\n if (this.pdfViewerBase.navigationPane && this.pdfViewerBase.navigationPane.annotationMenuObj && this.pdfViewer.isSignatureEditable) {\n // eslint-disable-next-line max-len\n this.pdfViewerBase.navigationPane.annotationMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Export Annotations')], true);\n // eslint-disable-next-line max-len\n this.pdfViewerBase.navigationPane.annotationMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Export XFDF')], true);\n }\n }\n }\n };\n /**\n * @param pageNumber\n * @param annotations\n * @private\n */\n // eslint-disable-next-line\n Signature.prototype.storeSignatureData = function (pageNumber, annotations) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.addAction(annotations.pageIndex ? annotations.pageIndex : annotations.PageIndex, null, annotations, 'Addition', '', annotations, annotations);\n var annotation = null;\n var left;\n var top;\n var width;\n var height;\n var pageIndex;\n if (annotations.bounds) {\n left = annotations.bounds.left ? annotations.bounds.left : annotations.bounds.x;\n top = annotations.bounds.top ? annotations.bounds.top : annotations.bounds.y;\n width = annotations.bounds.width;\n height = annotations.bounds.height;\n pageIndex = annotations.pageIndex;\n }\n else {\n left = annotations.Bounds.left ? annotations.Bounds.left : annotations.Bounds.x;\n top = annotations.Bounds.top ? annotations.Bounds.top : annotations.Bounds.y;\n width = annotations.LineBounds.Width;\n height = annotations.LineBounds.Height;\n pageIndex = annotations.PageIndex;\n }\n if (annotations.wrapper && annotations.wrapper.bounds) {\n left = annotations.wrapper.bounds.left;\n top = annotations.wrapper.bounds.top;\n }\n annotation = {\n id: annotations.id ? annotations.id : null, bounds: { left: left, top: top, width: width, height: height }, shapeAnnotationType: annotations.shapeAnnotationType ? annotations.shapeAnnotationType : \"ink\", opacity: annotations.opacity ? annotations.opacity : 1, thickness: annotations.thickness ? annotations.thickness : 1, strokeColor: annotations.strokeColor ? annotations.strokeColor : null, pageIndex: pageIndex, data: annotations.data ? annotations.data : annotations.Value, fontSize: annotations.fontSize ? annotations.fontSize : null, fontFamily: annotations.fontFamily ? annotations.fontFamily : null, signatureName: annotations.signatureName ? annotations.signatureName : annotations.Name\n };\n // eslint-disable-next-line\n var sessionSize = Math.round(JSON.stringify(window.sessionStorage).length / 1024);\n // eslint-disable-next-line\n var currentAnnotation = Math.round(JSON.stringify(annotation).length / 1024);\n if ((sessionSize + currentAnnotation) > 4500) {\n this.pdfViewerBase.isStorageExceed = true;\n this.pdfViewer.annotationModule.clearAnnotationStorage();\n if (!(this.pdfViewerBase.isFormStorageExceed)) {\n this.pdfViewer.formFieldsModule.clearFormFieldStorage();\n }\n }\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_sign');\n var index = 0;\n if (!storeObject) {\n this.storeSignatureCollections(annotation, pageNumber);\n var shapeAnnotation = { pageIndex: pageNumber, annotations: [] };\n shapeAnnotation.annotations.push(annotation);\n index = shapeAnnotation.annotations.indexOf(annotation);\n var annotationCollection = [];\n annotationCollection.push(shapeAnnotation);\n var annotationStringified = JSON.stringify(annotationCollection);\n if (this.pdfViewerBase.isStorageExceed) {\n this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_sign'] = annotationStringified;\n }\n else {\n window.sessionStorage.setItem(this.pdfViewerBase.documentId + '_annotations_sign', annotationStringified);\n }\n }\n else {\n this.storeSignatureCollections(annotation, pageNumber);\n var annotObject = JSON.parse(storeObject);\n window.sessionStorage.removeItem(this.pdfViewerBase.documentId + '_annotations_sign');\n var pageIndex_1 = this.pdfViewer.annotationModule.getPageCollection(annotObject, pageNumber);\n if (!isNullOrUndefined(pageIndex_1) && annotObject[parseInt(pageIndex_1.toString(), 10)]) {\n annotObject[parseInt(pageIndex_1.toString(), 10)].annotations.push(annotation);\n index = annotObject[parseInt(pageIndex_1.toString(), 10)].annotations.indexOf(annotation);\n }\n else {\n var markupAnnotation = { pageIndex: pageNumber, annotations: [] };\n markupAnnotation.annotations.push(annotation);\n index = markupAnnotation.annotations.indexOf(annotation);\n annotObject.push(markupAnnotation);\n }\n var annotationStringified = JSON.stringify(annotObject);\n if (this.pdfViewerBase.isStorageExceed) {\n this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_sign'] = annotationStringified;\n }\n else {\n window.sessionStorage.setItem(this.pdfViewerBase.documentId + '_annotations_sign', annotationStringified);\n }\n }\n };\n /**\n * @param property\n * @param pageNumber\n * @param annotationBase\n * @param isSignatureEdited\n * @private\n */\n // eslint-disable-next-line\n Signature.prototype.modifySignatureCollection = function (property, pageNumber, annotationBase, isSignatureEdited) {\n this.pdfViewerBase.updateDocumentEditedProperty(true);\n var currentAnnotObject = null;\n var pageAnnotations = this.getAnnotations(pageNumber, null);\n if (pageAnnotations != null && annotationBase) {\n for (var i = 0; i < pageAnnotations.length; i++) {\n if (annotationBase.id === pageAnnotations[parseInt(i.toString(), 10)].id) {\n if (property === 'bounds') {\n // eslint-disable-next-line max-len\n pageAnnotations[parseInt(i.toString(), 10)].bounds = { left: annotationBase.wrapper.bounds.left, top: annotationBase.wrapper.bounds.top, width: annotationBase.bounds.width, height: annotationBase.bounds.height };\n pageAnnotations[parseInt(i.toString(), 10)].fontSize = annotationBase.fontSize;\n }\n else if (property === 'stroke') {\n pageAnnotations[parseInt(i.toString(), 10)].strokeColor = annotationBase.wrapper.children[0].style.strokeColor;\n }\n else if (property === 'opacity') {\n pageAnnotations[parseInt(i.toString(), 10)].opacity = annotationBase.wrapper.children[0].style.opacity;\n }\n else if (property === 'thickness') {\n pageAnnotations[parseInt(i.toString(), 10)].thickness = annotationBase.wrapper.children[0].style.strokeWidth;\n }\n else if (property === 'delete') {\n this.updateSignatureCollection(pageAnnotations[parseInt(i.toString(), 10)]);\n currentAnnotObject = pageAnnotations.splice(i, 1)[0];\n break;\n }\n if (property && property !== 'delete') {\n this.storeSignatureCollections(pageAnnotations[parseInt(i.toString(), 10)], pageNumber);\n }\n if (isSignatureEdited) {\n pageAnnotations[parseInt(i.toString(), 10)].opacity = annotationBase.wrapper.children[0].style.opacity;\n pageAnnotations[parseInt(i.toString(), 10)].strokeColor = annotationBase.wrapper.children[0].style.strokeColor;\n pageAnnotations[parseInt(i.toString(), 10)].thickness = annotationBase.wrapper.children[0].style.strokeWidth;\n this.storeSignatureCollections(pageAnnotations[parseInt(i.toString(), 10)], pageNumber);\n break;\n }\n }\n }\n this.manageAnnotations(pageAnnotations, pageNumber);\n }\n return currentAnnotObject;\n };\n /**\n * @param annotation\n * @param pageNumber\n * @private\n */\n // eslint-disable-next-line\n Signature.prototype.storeSignatureCollections = function (annotation, pageNumber) {\n // eslint-disable-next-line\n var collectionDetails = this.checkSignatureCollection(annotation);\n // eslint-disable-next-line\n var selectAnnotation = cloneObject(annotation);\n selectAnnotation.annotationId = annotation.signatureName;\n selectAnnotation.pageNumber = pageNumber;\n delete selectAnnotation.annotName;\n if (annotation.id) {\n selectAnnotation.uniqueKey = annotation.id;\n delete selectAnnotation.id;\n }\n if (collectionDetails.isExisting) {\n this.pdfViewer.signatureCollection.splice(collectionDetails.position, 0, selectAnnotation);\n }\n else {\n this.pdfViewer.signatureCollection.push(selectAnnotation);\n }\n };\n // eslint-disable-next-line\n Signature.prototype.checkSignatureCollection = function (signature) {\n // eslint-disable-next-line\n var collections = this.pdfViewer.signatureCollection;\n if (collections && signature) {\n for (var i = 0; i < collections.length; i++) {\n if (collections[parseInt(i.toString(), 10)].annotationId === signature.signatureName) {\n this.pdfViewer.signatureCollection.splice(i, 1);\n return { isExisting: true, position: i };\n }\n }\n }\n return { isExisting: false, position: null };\n };\n /**\n * @param signature\n * @private\n */\n // eslint-disable-next-line\n Signature.prototype.updateSignatureCollection = function (signature) {\n // eslint-disable-next-line\n var collections = this.pdfViewer.signatureCollection;\n if (collections && signature) {\n for (var i = 0; i < collections.length; i++) {\n if (collections[parseInt(i.toString(), 10)].annotationId === signature.signatureName) {\n this.pdfViewer.signatureCollection.splice(i, 1);\n break;\n }\n }\n }\n };\n /**\n * @param pageNumber\n * @param signature\n * @private\n */\n // eslint-disable-next-line\n Signature.prototype.addInCollection = function (pageNumber, signature) {\n if (signature) {\n this.storeSignatureCollections(signature, pageNumber);\n // eslint-disable-next-line\n var pageSignatures = this.getAnnotations(pageNumber, null);\n if (pageSignatures) {\n pageSignatures.push(signature);\n }\n this.manageAnnotations(pageSignatures, pageNumber);\n }\n };\n // eslint-disable-next-line\n Signature.prototype.getAnnotations = function (pageIndex, shapeAnnotations) {\n // eslint-disable-next-line\n var annotationCollection;\n // eslint-disable-next-line\n var storeObject = null;\n if (this.pdfViewerBase.isStorageExceed) {\n storeObject = this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_sign'];\n }\n else {\n storeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_sign');\n }\n if (storeObject) {\n var annotObject = JSON.parse(storeObject);\n var index = this.pdfViewer.annotationModule.getPageCollection(annotObject, pageIndex);\n if (annotObject[parseInt(index.toString(), 10)]) {\n annotationCollection = annotObject[parseInt(index.toString(), 10)].annotations;\n }\n else {\n annotationCollection = shapeAnnotations;\n }\n }\n else {\n annotationCollection = shapeAnnotations;\n }\n return annotationCollection;\n };\n Signature.prototype.manageAnnotations = function (pageAnnotations, pageNumber) {\n // eslint-disable-next-line\n var storeObject = null;\n if (this.pdfViewerBase.isStorageExceed) {\n storeObject = this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_sign'];\n }\n else {\n storeObject = window.sessionStorage.getItem(this.pdfViewerBase.documentId + '_annotations_sign');\n }\n if (storeObject) {\n var annotObject = JSON.parse(storeObject);\n window.sessionStorage.removeItem(this.pdfViewerBase.documentId + '_annotations_sign');\n var index = this.pdfViewer.annotationModule.getPageCollection(annotObject, pageNumber);\n if (annotObject[parseInt(index.toString(), 10)]) {\n annotObject[parseInt(index.toString(), 10)].annotations = pageAnnotations;\n }\n var annotationStringified = JSON.stringify(annotObject);\n if (this.pdfViewerBase.isStorageExceed) {\n this.pdfViewerBase.annotationStorage[this.pdfViewerBase.documentId + '_annotations_sign'] = annotationStringified;\n }\n else {\n window.sessionStorage.setItem(this.pdfViewerBase.documentId + '_annotations_sign', annotationStringified);\n }\n }\n };\n /**\n * @private\n * @param {boolean} isShow - Returns the true or false.\n * @returns {void}\n */\n Signature.prototype.showSignatureDialog = function (isShow) {\n if (isShow) {\n this.createSignaturePanel();\n }\n };\n /**\n * @private\n * @returns {void}\n */\n Signature.prototype.setAnnotationMode = function () {\n this.pdfViewerBase.isToolbarSignClicked = true;\n this.showSignatureDialog(true);\n };\n /**\n * @private\n * @returns {void}\n */\n Signature.prototype.setInitialMode = function () {\n this.pdfViewerBase.isToolbarSignClicked = true;\n this.pdfViewerBase.isInitialField = true;\n this.showSignatureDialog(true);\n };\n /**\n * @param number\n * @private\n */\n // eslint-disable-next-line\n Signature.prototype.ConvertPointToPixel = function (number) {\n return (number * (96 / 72));\n };\n /**\n * @param signature\n * @param pageIndex\n * @param isImport\n * @private\n */\n // eslint-disable-next-line\n Signature.prototype.updateSignatureCollections = function (signature, pageIndex, isImport) {\n var annot;\n // eslint-disable-next-line\n if (signature) {\n // eslint-disable-next-line\n var bounds = signature.Bounds;\n var currentLeft = bounds.X;\n var currentTop = bounds.Y;\n var currentWidth = bounds.Width;\n var currentHeight = bounds.Height;\n // eslint-disable-next-line\n var data = signature.PathData;\n if (isImport) {\n data = getPathString(JSON.parse(signature.PathData));\n }\n annot = {\n // eslint-disable-next-line max-len\n id: 'sign' + signature.SignatureName, bounds: { x: currentLeft, y: currentTop, width: currentWidth, height: currentHeight }, pageIndex: pageIndex, data: data,\n shapeAnnotationType: 'HandWrittenSignature', opacity: signature.Opacity, strokeColor: signature.StrokeColor, thickness: signature.Thickness, signatureName: signature.SignatureName\n };\n return annot;\n }\n };\n /**\n * @private\n * @returns {void}\n */\n Signature.prototype.destroy = function () {\n window.sessionStorage.removeItem('_annotations_sign');\n // eslint-disable-next-line\n var signImage = document.getElementById(this.pdfViewer.element.id + '_signElement');\n if (signImage) {\n signImage.removeEventListener('change', this.addStampImage);\n if (signImage.parentElement)\n signImage.parentElement.removeChild(signImage);\n }\n if (this.signatureDialog)\n this.signatureDialog.destroy();\n };\n return Signature;\n}());\nexport { Signature };\n","/* eslint-disable no-inner-declarations */\nimport { extend, merge, isNullOrUndefined, getValue } from '@syncfusion/ej2-base';\nimport { attributes, prepend, isVisible, append, addClass } from '@syncfusion/ej2-base';\nimport { compile } from '@syncfusion/ej2-base';\nimport { DataManager, Query } from '@syncfusion/ej2-data';\nexport var cssClass = {\n li: 'e-list-item',\n ul: 'e-list-parent e-ul',\n group: 'e-list-group-item',\n icon: 'e-list-icon',\n text: 'e-list-text',\n check: 'e-list-check',\n checked: 'e-checked',\n selected: 'e-selected',\n expanded: 'e-expanded',\n textContent: 'e-text-content',\n hasChild: 'e-has-child',\n level: 'e-level',\n url: 'e-list-url',\n collapsible: 'e-icon-collapsible',\n disabled: 'e-disabled',\n image: 'e-list-img',\n iconWrapper: 'e-icon-wrapper',\n anchorWrap: 'e-anchor-wrap',\n navigable: 'e-navigable'\n};\n/**\n * Base List Generator\n */\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport var ListBase;\n(function (ListBase) {\n /**\n *\n * Default mapped fields.\n */\n ListBase.defaultMappedFields = {\n id: 'id',\n text: 'text',\n url: 'url',\n value: 'value',\n isChecked: 'isChecked',\n enabled: 'enabled',\n expanded: 'expanded',\n selected: 'selected',\n iconCss: 'iconCss',\n child: 'child',\n isVisible: 'isVisible',\n hasChildren: 'hasChildren',\n tooltip: 'tooltip',\n htmlAttributes: 'htmlAttributes',\n urlAttributes: 'urlAttributes',\n imageAttributes: 'imageAttributes',\n imageUrl: 'imageUrl',\n groupBy: null,\n sortBy: null\n };\n var defaultAriaAttributes = {\n level: 1,\n listRole: 'presentation',\n itemRole: 'presentation',\n groupItemRole: 'group',\n itemText: 'list-item',\n wrapperRole: 'presentation'\n };\n var defaultListBaseOptions = {\n showCheckBox: false,\n showIcon: false,\n enableHtmlSanitizer: false,\n expandCollapse: false,\n fields: ListBase.defaultMappedFields,\n ariaAttributes: defaultAriaAttributes,\n listClass: '',\n itemClass: '',\n processSubChild: false,\n sortOrder: 'None',\n template: null,\n groupTemplate: null,\n headerTemplate: null,\n expandIconClass: 'e-icon-collapsible',\n moduleName: 'list',\n expandIconPosition: 'Right',\n itemNavigable: false\n };\n /**\n * Function helps to created and return the UL Li element based on your data.\n *\n * @param {createElementParams} createElement - Specifies an array of JSON data.\n *\n * @param {{Object}[]} dataSource - Specifies an array of JSON data.\n *\n * @param {ListBaseOptions} options? - Specifies the list options that need to provide.\n *\n * @param {boolean} isSingleLevel? - Specifies the list options that need to provide.\n *\n * @param {any} componentInstance? - Specifies the list options that need to provide.\n *\n * @returns {createElement} createListFromJson - Specifies the list options that need to provide.\n */\n function createList(createElement, dataSource, \n // eslint-disable-next-line\n options, isSingleLevel, componentInstance) {\n var curOpt = extend({}, defaultListBaseOptions, options);\n var ariaAttributes = extend({}, defaultAriaAttributes, curOpt.ariaAttributes);\n var type = typeofData(dataSource).typeof;\n if (type === 'string' || type === 'number') {\n return createListFromArray(createElement, dataSource, isSingleLevel, options, componentInstance);\n }\n else {\n return createListFromJson(createElement, dataSource, options, ariaAttributes.level, isSingleLevel, componentInstance);\n }\n }\n ListBase.createList = createList;\n /**\n * Function helps to created an element list based on string array input .\n *\n * @param {createElementParams} createElement - Specifies an array of JSON data.\n *\n * @param {{Object}[]} dataSource - Specifies an array of JSON data.\n *\n * @param {ListBaseOptions} options? - Specifies the list options that need to provide.\n *\n * @param {boolean} isSingleLevel? - Specifies the list options that need to provide.\n *\n * @param {any} componentInstance? - Specifies the list options that need to provide.\n *\n * @returns {createElement} generateUL - returns the list options that need to provide.\n */\n function createListFromArray(createElement, dataSource, \n // tslint:disable-next-line\n // eslint-disable-next-line\n isSingleLevel, options, componentInstance) {\n var subChild = createListItemFromArray(createElement, dataSource, isSingleLevel, options, componentInstance);\n return generateUL(createElement, subChild, null, options);\n }\n ListBase.createListFromArray = createListFromArray;\n /**\n * Function helps to created an element list based on string array input .\n *\n * @param {createElementParams} createElement - Specifies an array of JSON data.\n *\n * @param {{Object}[]} dataSource - Specifies an array of JSON data.\n *\n * @param {ListBaseOptions} options? - Specifies the list options that need to provide.\n *\n * @param {boolean} isSingleLevel? - Specifies the list options that need to provide.\n *\n * @param {any} componentInstance? - Specifies the list options that need to provide.\n *\n * @returns {HTMLElement[]} subChild - returns the list options that need to provide.\n */\n function createListItemFromArray(createElement, dataSource, \n // eslint-disable-next-line\n isSingleLevel, options, componentInstance) {\n var subChild = [];\n var curOpt = extend({}, defaultListBaseOptions, options);\n cssClass = getModuleClass(curOpt.moduleName);\n var id = generateId(); // generate id for drop-down-list option.\n for (var i = 0; i < dataSource.length; i++) {\n if (isNullOrUndefined(dataSource[i])) {\n continue;\n }\n var li = void 0;\n if (curOpt.itemCreating && typeof curOpt.itemCreating === 'function') {\n var curData = {\n dataSource: dataSource,\n curData: dataSource[i],\n text: dataSource[i],\n options: curOpt\n };\n curOpt.itemCreating(curData);\n }\n if (isSingleLevel) {\n li = generateSingleLevelLI(createElement, dataSource[i], undefined, null, null, [], null, id, i, options);\n }\n else {\n li = generateLI(createElement, dataSource[i], undefined, null, null, options, componentInstance);\n }\n if (curOpt.itemCreated && typeof curOpt.itemCreated === 'function') {\n var curData = {\n dataSource: dataSource,\n curData: dataSource[i],\n text: dataSource[i],\n item: li,\n options: curOpt\n };\n curOpt.itemCreated(curData);\n }\n subChild.push(li);\n }\n return subChild;\n }\n ListBase.createListItemFromArray = createListItemFromArray;\n /**\n * Function helps to created an element list based on array of JSON input .\n *\n * @param {createElementParams} createElement - Specifies an array of JSON data.\n *\n * @param {{Object}[]} dataSource - Specifies an array of JSON data.\n *\n * @param {ListBaseOptions} options? - Specifies the list options that need to provide.\n *\n * @param {boolean} isSingleLevel? - Specifies the list options that need to provide.\n *\n * @param {number} level? - Specifies the list options that need to provide.\n *\n * @param {any} componentInstance? - Specifies the list options that need to provide.\n *\n * @returns {HTMLElement[]} child - returns the list options that need to provide.\n */\n function createListItemFromJson(createElement, dataSource, \n // eslint-disable-next-line\n options, level, isSingleLevel, componentInstance) {\n var curOpt = extend({}, defaultListBaseOptions, options);\n cssClass = getModuleClass(curOpt.moduleName);\n var fields = (componentInstance &&\n (componentInstance.getModuleName() === 'listview' || componentInstance.getModuleName() === 'multiselect'))\n ? curOpt.fields : extend({}, ListBase.defaultMappedFields, curOpt.fields);\n var ariaAttributes = extend({}, defaultAriaAttributes, curOpt.ariaAttributes);\n var id;\n var checkboxElement = [];\n if (level) {\n ariaAttributes.level = level;\n }\n var child = [];\n var li;\n var anchorElement;\n if (dataSource && dataSource.length && !isNullOrUndefined(typeofData(dataSource).item) &&\n // eslint-disable-next-line no-prototype-builtins\n !typeofData(dataSource).item.hasOwnProperty(fields.id)) {\n id = generateId(); // generate id for drop-down-list option.\n }\n for (var i = 0; i < dataSource.length; i++) {\n var fieldData = getFieldValues(dataSource[i], fields);\n if (isNullOrUndefined(dataSource[i])) {\n continue;\n }\n if (curOpt.itemCreating && typeof curOpt.itemCreating === 'function') {\n var curData = {\n dataSource: dataSource,\n curData: dataSource[i],\n text: fieldData[fields.text],\n options: curOpt,\n fields: fields\n };\n curOpt.itemCreating(curData);\n }\n var curItem = dataSource[i];\n if (curOpt.itemCreating && typeof curOpt.itemCreating === 'function') {\n fieldData = getFieldValues(dataSource[i], fields);\n }\n // eslint-disable-next-line no-prototype-builtins\n if (fieldData.hasOwnProperty(fields.id) && !isNullOrUndefined(fieldData[fields.id])) {\n id = fieldData[fields.id];\n }\n var innerEle = [];\n if (curOpt.showCheckBox) {\n if (curOpt.itemNavigable && (fieldData[fields.url] || fieldData[fields.urlAttributes])) {\n checkboxElement.push(createElement('input', { className: cssClass.check, attrs: { type: 'checkbox' } }));\n }\n else {\n innerEle.push(createElement('input', { className: cssClass.check, attrs: { type: 'checkbox' } }));\n }\n }\n if (isSingleLevel === true) {\n // eslint-disable-next-line no-prototype-builtins\n if (curOpt.showIcon && fieldData.hasOwnProperty(fields.iconCss) && !isNullOrUndefined(fieldData[fields.iconCss])) {\n innerEle.push(createElement('span', { className: cssClass.icon + ' ' + fieldData[fields.iconCss] }));\n }\n li = generateSingleLevelLI(createElement, curItem, fieldData, fields, curOpt.itemClass, innerEle, \n // eslint-disable-next-line no-prototype-builtins\n (curItem.hasOwnProperty('isHeader') &&\n curItem.isHeader) ? true : false, id, i, options);\n anchorElement = li.querySelector('.' + cssClass.anchorWrap);\n if (curOpt.itemNavigable && checkboxElement.length) {\n prepend(checkboxElement, li.firstElementChild);\n }\n }\n else {\n li = generateLI(createElement, curItem, fieldData, fields, curOpt.itemClass, options, componentInstance);\n li.classList.add(cssClass.level + '-' + ariaAttributes.level);\n li.setAttribute('aria-level', ariaAttributes.level.toString());\n if (ariaAttributes.groupItemRole == 'presentation') {\n li.removeAttribute('aria-level');\n }\n anchorElement = li.querySelector('.' + cssClass.anchorWrap);\n // eslint-disable-next-line no-prototype-builtins\n if (fieldData.hasOwnProperty(fields.tooltip)) {\n li.setAttribute('title', fieldData[fields.tooltip]);\n }\n // eslint-disable-next-line no-prototype-builtins\n if (fieldData.hasOwnProperty(fields.htmlAttributes) && fieldData[fields.htmlAttributes]) {\n setAttribute(li, fieldData[fields.htmlAttributes]);\n }\n // eslint-disable-next-line no-prototype-builtins\n if (fieldData.hasOwnProperty(fields.enabled) && fieldData[fields.enabled] === false) {\n li.classList.add(cssClass.disabled);\n }\n // eslint-disable-next-line no-prototype-builtins\n if (fieldData.hasOwnProperty(fields.isVisible) && fieldData[fields.isVisible] === false) {\n li.style.display = 'none';\n }\n // eslint-disable-next-line no-prototype-builtins\n if (fieldData.hasOwnProperty(fields.imageUrl) && !isNullOrUndefined(fieldData[fields.imageUrl])\n && !curOpt.template) {\n var attr = { src: fieldData[fields.imageUrl] };\n merge(attr, fieldData[fields.imageAttributes]);\n var imageElemnt = createElement('img', { className: cssClass.image, attrs: attr });\n if (anchorElement) {\n anchorElement.insertAdjacentElement('afterbegin', imageElemnt);\n }\n else {\n prepend([imageElemnt], li.firstElementChild);\n }\n }\n // eslint-disable-next-line no-prototype-builtins\n if (curOpt.showIcon && fieldData.hasOwnProperty(fields.iconCss) &&\n !isNullOrUndefined(fieldData[fields.iconCss]) && !curOpt.template) {\n var iconElement = createElement('div', { className: cssClass.icon + ' ' + fieldData[fields.iconCss] });\n if (anchorElement) {\n anchorElement.insertAdjacentElement('afterbegin', iconElement);\n }\n else {\n prepend([iconElement], li.firstElementChild);\n }\n }\n if (innerEle.length) {\n prepend(innerEle, li.firstElementChild);\n }\n if (curOpt.itemNavigable && checkboxElement.length) {\n prepend(checkboxElement, li.firstElementChild);\n }\n processSubChild(createElement, fieldData, fields, dataSource, curOpt, li, ariaAttributes.level);\n }\n if (anchorElement) {\n addClass([li], [cssClass.navigable]);\n }\n if (curOpt.itemCreated && typeof curOpt.itemCreated === 'function') {\n var curData = {\n dataSource: dataSource,\n curData: dataSource[i],\n text: fieldData[fields.text],\n item: li,\n options: curOpt,\n fields: fields\n };\n curOpt.itemCreated(curData);\n }\n checkboxElement = [];\n child.push(li);\n }\n return child;\n }\n ListBase.createListItemFromJson = createListItemFromJson;\n /**\n * Function helps to created an element list based on array of JSON input .\n *\n * @param {createElementParams} createElement - Specifies an array of JSON data.\n *\n * @param {{Object}[]} dataSource - Specifies an array of JSON data.\n *\n * @param {ListBaseOptions} options? - Specifies the list options that need to provide.\n *\n * @param {number} level? - Specifies the list options that need to provide.\n *\n * @param {boolean} isSingleLevel? - Specifies the list options that need to provide.\n *\n * @param {any} componentInstance? - Specifies the list options that need to provide.\n *\n * @returns {createElement} generateUL - Specifies the list options that need to provide.\n */\n function createListFromJson(createElement, dataSource, \n // eslint-disable-next-line\n options, level, isSingleLevel, componentInstance) {\n var curOpt = extend({}, defaultListBaseOptions, options);\n var li = createListItemFromJson(createElement, dataSource, options, level, isSingleLevel, componentInstance);\n return generateUL(createElement, li, curOpt.listClass, options);\n }\n ListBase.createListFromJson = createListFromJson;\n /**\n * Return the next or previous visible element.\n *\n * @param {Element[]|NodeList} elementArray - An element array to find next or previous element.\n * @param {Element} li - An element to find next or previous after this element.\n * @param {boolean} isPrevious? - Specify when the need get previous element from array.\n */\n function getSiblingLI(elementArray, element, isPrevious) {\n cssClass = getModuleClass(defaultListBaseOptions.moduleName);\n if (!elementArray || !elementArray.length) {\n return void 0;\n }\n var siblingLI;\n var liIndex;\n var liCollections = Array.prototype.slice.call(elementArray);\n if (element) {\n liIndex = indexOf(element, liCollections);\n }\n else {\n liIndex = (isPrevious === true ? liCollections.length : -1);\n }\n siblingLI = liCollections[liIndex + (isPrevious === true ? -1 : 1)];\n while (siblingLI && (!isVisible(siblingLI) || siblingLI.classList.contains(cssClass.disabled))) {\n liIndex = liIndex + (isPrevious === true ? -1 : 1);\n siblingLI = liCollections[liIndex];\n }\n return siblingLI;\n }\n ListBase.getSiblingLI = getSiblingLI;\n /**\n * Return the index of the li element\n *\n * @param {Element} item - An element to find next or previous after this element.\n * @param {Element[]} elementArray - An element array to find index of given li.\n */\n function indexOf(item, elementArray) {\n if (!elementArray || !item) {\n return void 0;\n }\n else {\n var liCollections = elementArray;\n liCollections = Array.prototype.slice.call(elementArray);\n return liCollections.indexOf(item);\n }\n }\n ListBase.indexOf = indexOf;\n /**\n * Returns the grouped data from given dataSource.\n *\n * @param {{Object}[]} dataSource - The JSON data which is necessary to process.\n * @param {FieldsMapping} fields - Fields that are mapped from the data source.\n * @param {SortOrder} sortOrder- Specifies final result sort order.\n */\n function groupDataSource(dataSource, fields, sortOrder) {\n if (sortOrder === void 0) { sortOrder = 'None'; }\n var curFields = extend({}, ListBase.defaultMappedFields, fields);\n var cusQuery = new Query().group(curFields.groupBy);\n // need to remove once sorting issues fixed in DataManager\n cusQuery = addSorting(sortOrder, 'key', cusQuery);\n var ds = getDataSource(dataSource, cusQuery);\n dataSource = [];\n for (var j = 0; j < ds.length; j++) {\n var itemObj = ds[j].items;\n var grpItem = {};\n var hdr = 'isHeader';\n grpItem[curFields.text] = ds[j].key;\n grpItem[hdr] = true;\n var newtext = curFields.text;\n if (newtext === 'id') {\n newtext = 'text';\n grpItem[newtext] = ds[j].key;\n }\n grpItem._id = 'group-list-item-' + (ds[j].key ?\n ds[j].key.toString().trim() : 'undefined');\n grpItem.items = itemObj;\n dataSource.push(grpItem);\n for (var k = 0; k < itemObj.length; k++) {\n dataSource.push(itemObj[k]);\n }\n }\n return dataSource;\n }\n ListBase.groupDataSource = groupDataSource;\n /**\n * Returns a sorted query object.\n *\n * @param {SortOrder} sortOrder - Specifies that sort order.\n * @param {string} sortBy - Specifies sortBy fields.\n * @param {Query} query - Pass if any existing query.\n */\n function addSorting(sortOrder, sortBy, query) {\n if (query === void 0) { query = new Query(); }\n if (sortOrder === 'Ascending') {\n query.sortBy(sortBy, 'ascending', true);\n }\n else if (sortOrder === 'Descending') {\n query.sortBy(sortBy, 'descending', true);\n }\n else {\n for (var i = 0; i < query.queries.length; i++) {\n if (query.queries[i].fn === 'onSortBy') {\n query.queries.splice(i, 1);\n }\n }\n }\n return query;\n }\n ListBase.addSorting = addSorting;\n /**\n * Return an array of JSON Data that processed based on queries.\n *\n * @param {{Object}[]} dataSource - Specifies local JSON data source.\n *\n * @param {Query} query - Specifies query that need to process.\n */\n function getDataSource(dataSource, query) {\n // eslint-disable-next-line\n return new DataManager(dataSource)\n .executeLocal(query);\n }\n ListBase.getDataSource = getDataSource;\n /**\n * Created JSON data based the UL and LI element\n *\n * @param {HTMLElement|Element} element - UL element that need to convert as a JSON\n * @param {ListBaseOptions} options? - Specifies listbase option for fields.\n */\n function createJsonFromElement(element, options) {\n var curOpt = extend({}, defaultListBaseOptions, options);\n var fields = extend({}, ListBase.defaultMappedFields, curOpt.fields);\n var curEle = element.cloneNode(true);\n // eslint-disable-next-line\n var jsonAr = [];\n curEle.classList.add('json-parent');\n var childs = curEle.querySelectorAll('.json-parent>li');\n curEle.classList.remove('json-parent');\n for (var i = 0; i < childs.length; i++) {\n var li = childs[i];\n var anchor = li.querySelector('a');\n var ul = li.querySelector('ul');\n // eslint-disable-next-line\n var json = {};\n var childNodes = anchor ? anchor.childNodes : li.childNodes;\n var keys = Object.keys(childNodes);\n for (var i_1 = 0; i_1 < childNodes.length; i_1++) {\n if (!(childNodes[Number(keys[i_1])]).hasChildNodes()) {\n json[fields.text] = childNodes[Number(keys[i_1])].textContent;\n }\n }\n var attributes_1 = getAllAttributes(li);\n if (attributes_1.id) {\n json[fields.id] = attributes_1.id;\n delete attributes_1.id;\n }\n else {\n json[fields.id] = generateId();\n }\n if (Object.keys(attributes_1).length) {\n json[fields.htmlAttributes] = attributes_1;\n }\n if (anchor) {\n attributes_1 = getAllAttributes(anchor);\n if (Object.keys(attributes_1).length) {\n json[fields.urlAttributes] = attributes_1;\n }\n }\n if (ul) {\n json[fields.child] = createJsonFromElement(ul, options);\n }\n jsonAr.push(json);\n }\n return jsonAr;\n }\n ListBase.createJsonFromElement = createJsonFromElement;\n function typeofData(data) {\n var match = { typeof: null, item: null };\n for (var i = 0; i < data.length; i++) {\n if (!isNullOrUndefined(data[i])) {\n return match = { typeof: typeof data[i], item: data[i] };\n }\n }\n return match;\n }\n function setAttribute(element, elementAttributes) {\n var attr = {};\n merge(attr, elementAttributes);\n if (attr.class) {\n addClass([element], attr.class.split(' '));\n delete attr.class;\n }\n attributes(element, attr);\n }\n function getAllAttributes(element) {\n var attributes = {};\n var attr = element.attributes;\n for (var index = 0; index < attr.length; index++) {\n attributes[attr[index].nodeName] = attr[index].nodeValue;\n }\n return attributes;\n }\n /**\n * Created UL element from content template.\n *\n * @param {string} template - that need to convert and generate li element.\n * @param {{Object}[]} dataSource - Specifies local JSON data source.\n * @param {ListBaseOptions} options? - Specifies listbase option for fields.\n */\n function renderContentTemplate(createElement, template, dataSource, \n // eslint-disable-next-line\n fields, options, componentInstance) {\n cssClass = getModuleClass(defaultListBaseOptions.moduleName);\n var ulElement = createElement('ul', { className: cssClass.ul, attrs: { role: 'presentation' } });\n var curOpt = extend({}, defaultListBaseOptions, options);\n var curFields = extend({}, ListBase.defaultMappedFields, fields);\n // eslint-disable-next-line\n var compiledString = compileTemplate(template);\n var liCollection = [];\n var value;\n var id = generateId(); // generate id for drop-down-list option.\n for (var i = 0; i < dataSource.length; i++) {\n var fieldData = getFieldValues(dataSource[i], curFields);\n var curItem = dataSource[i];\n var isHeader = curItem.isHeader;\n if (typeof dataSource[i] === 'string' || typeof dataSource[i] === 'number') {\n value = curItem;\n }\n else {\n value = fieldData[curFields.value];\n }\n if (curOpt.itemCreating && typeof curOpt.itemCreating === 'function') {\n var curData = {\n dataSource: dataSource,\n curData: curItem,\n text: value,\n options: curOpt,\n fields: curFields\n };\n curOpt.itemCreating(curData);\n }\n if (curOpt.itemCreating && typeof curOpt.itemCreating === 'function') {\n fieldData = getFieldValues(dataSource[i], curFields);\n if (typeof dataSource[i] === 'string' || typeof dataSource[i] === 'number') {\n value = curItem;\n }\n else {\n value = fieldData[curFields.value];\n }\n }\n var li = createElement('li', {\n id: id + '-' + i,\n className: isHeader ? cssClass.group : cssClass.li, attrs: { role: 'presentation' }\n });\n if (isHeader) {\n if (typeof dataSource[i] === 'string' || typeof dataSource[i] === 'number') {\n li.innerText = curItem;\n }\n else {\n li.innerText = fieldData[curFields.text];\n }\n }\n else {\n var currentID = isHeader ? curOpt.groupTemplateID : curOpt.templateID;\n if (isHeader) {\n if (componentInstance && componentInstance.getModuleName() != 'listview') {\n // eslint-disable-next-line\n var compiledElement = compiledString(curItem, componentInstance, 'headerTemplate', currentID, !!curOpt.isStringTemplate, null, li);\n if (compiledElement) {\n append(compiledElement, li);\n }\n }\n else {\n append(compiledString(curItem, componentInstance, 'headerTemplate', currentID, !!curOpt.isStringTemplate), li);\n }\n }\n else {\n if (componentInstance && componentInstance.getModuleName() !== 'listview') {\n // eslint-disable-next-line\n var compiledElement = compiledString(curItem, componentInstance, 'template', currentID, !!curOpt.isStringTemplate, null, li);\n if (compiledElement) {\n append(compiledElement, li);\n }\n }\n else {\n append(compiledString(curItem, componentInstance, 'template', currentID, !!curOpt.isStringTemplate), li);\n }\n }\n li.setAttribute('data-value', isNullOrUndefined(value) ? 'null' : value);\n li.setAttribute('role', 'option');\n }\n if (curOpt.itemCreated && typeof curOpt.itemCreated === 'function') {\n var curData = {\n dataSource: dataSource,\n curData: curItem,\n text: value,\n item: li,\n options: curOpt,\n fields: curFields\n };\n curOpt.itemCreated(curData);\n }\n liCollection.push(li);\n }\n append(liCollection, ulElement);\n return ulElement;\n }\n ListBase.renderContentTemplate = renderContentTemplate;\n /**\n * Created header items from group template.\n *\n * @param {string} template - that need to convert and generate li element.\n *\n * @param {{Object}[]} dataSource - Specifies local JSON data source.\n *\n * @param {FieldsMapping} fields - Specifies fields for mapping the dataSource.\n *\n * @param {Element[]} headerItems? - Specifies listbase header items.\n */\n // tslint:disable-next-line\n function renderGroupTemplate(groupTemplate, groupDataSource, fields, \n // eslint-disable-next-line\n headerItems, options, componentInstance) {\n // eslint-disable-next-line @typescript-eslint/ban-types\n var compiledString = compileTemplate(groupTemplate);\n var curFields = extend({}, ListBase.defaultMappedFields, fields);\n var curOpt = extend({}, defaultListBaseOptions, options);\n var category = curFields.groupBy;\n for (var _i = 0, headerItems_1 = headerItems; _i < headerItems_1.length; _i++) {\n var header = headerItems_1[_i];\n var headerData = {};\n headerData[category] = header.textContent;\n header.innerHTML = '';\n if (componentInstance && componentInstance.getModuleName() !== \"listview\") {\n // eslint-disable-next-line\n var compiledElement = compiledString(headerData, componentInstance, 'groupTemplate', curOpt.groupTemplateID, !!curOpt.isStringTemplate, null, header);\n if (compiledElement) {\n append(compiledElement, header);\n }\n }\n else {\n append(compiledString(headerData, componentInstance, 'groupTemplate', curOpt.groupTemplateID, !!curOpt.isStringTemplate), header);\n }\n }\n return headerItems;\n }\n ListBase.renderGroupTemplate = renderGroupTemplate;\n function generateId() {\n return Math.floor((1 + Math.random()) * 0x10000)\n .toString(16)\n .substring(1);\n }\n ListBase.generateId = generateId;\n function processSubChild(createElement, fieldData, fields, ds, options, element, level) {\n // Get SubList\n var subDS = fieldData[fields.child] || [];\n var hasChildren = fieldData[fields.hasChildren];\n //Create Sub child\n if (subDS.length) {\n hasChildren = true;\n element.classList.add(cssClass.hasChild);\n if (options.processSubChild) {\n var subLi = createListFromJson(createElement, subDS, options, ++level);\n element.appendChild(subLi);\n }\n }\n // Create expand and collapse node\n if (!!options.expandCollapse && hasChildren && !options.template) {\n element.firstElementChild.classList.add(cssClass.iconWrapper);\n // eslint-disable-next-line @typescript-eslint/ban-types\n var expandElement = options.expandIconPosition === 'Left' ? prepend : append;\n expandElement([createElement('div', { className: 'e-icons ' + options.expandIconClass })], element.querySelector('.' + cssClass.textContent));\n }\n }\n function generateSingleLevelLI(createElement, item, fieldData, fields, className, innerElements, grpLI, id, index, options) {\n var curOpt = extend({}, defaultListBaseOptions, options);\n var ariaAttributes = extend({}, defaultAriaAttributes, curOpt.ariaAttributes);\n var text = item;\n var value = item;\n var dataSource;\n if (typeof item !== 'string' && typeof item !== 'number' && typeof item !== 'boolean') {\n dataSource = item;\n text = (typeof fieldData[fields.text] === 'boolean' || typeof fieldData[fields.text] === 'number') ?\n fieldData[fields.text] : (fieldData[fields.text] || '');\n value = fieldData[fields.value];\n }\n var elementID;\n if (!isNullOrUndefined(dataSource) && !isNullOrUndefined(fieldData[fields.id])\n && fieldData[fields.id] !== '') {\n elementID = id;\n }\n else {\n elementID = id + '-' + index;\n }\n var li = createElement('li', {\n className: (grpLI === true ? cssClass.group : cssClass.li) + ' ' + (isNullOrUndefined(className) ? '' : className),\n id: elementID, attrs: (ariaAttributes.groupItemRole !== '' && ariaAttributes.itemRole !== '' ?\n { role: (grpLI === true ? ariaAttributes.groupItemRole : ariaAttributes.itemRole) } : {})\n });\n // eslint-disable-next-line no-prototype-builtins\n if (dataSource && fieldData.hasOwnProperty(fields.enabled) && fieldData[fields.enabled].toString() === 'false') {\n li.classList.add(cssClass.disabled);\n }\n if (grpLI) {\n li.innerText = text;\n }\n else {\n li.setAttribute('data-value', isNullOrUndefined(value) ? 'null' : value);\n li.setAttribute('role', 'option');\n // eslint-disable-next-line no-prototype-builtins\n if (dataSource && fieldData.hasOwnProperty(fields.htmlAttributes) && fieldData[fields.htmlAttributes]) {\n setAttribute(li, fieldData[fields.htmlAttributes]);\n }\n if (innerElements.length && !curOpt.itemNavigable) {\n append(innerElements, li);\n }\n if (dataSource && (fieldData[fields.url] || (fieldData[fields.urlAttributes] &&\n fieldData[fields.urlAttributes].href))) {\n li.appendChild(anchorTag(createElement, dataSource, fields, text, innerElements, curOpt.itemNavigable));\n }\n else {\n if (innerElements.length && curOpt.itemNavigable) {\n append(innerElements, li);\n }\n li.appendChild(document.createTextNode(text));\n }\n }\n return li;\n }\n function getModuleClass(moduleName) {\n var moduleClass;\n // eslint-disable-next-line\n return moduleClass = {\n li: \"e-\" + moduleName + \"-item\",\n ul: \"e-\" + moduleName + \"-parent e-ul\",\n group: \"e-\" + moduleName + \"-group-item\",\n icon: \"e-\" + moduleName + \"-icon\",\n text: \"e-\" + moduleName + \"-text\",\n check: \"e-\" + moduleName + \"-check\",\n checked: 'e-checked',\n selected: 'e-selected',\n expanded: 'e-expanded',\n textContent: 'e-text-content',\n hasChild: 'e-has-child',\n level: 'e-level',\n url: \"e-\" + moduleName + \"-url\",\n collapsible: 'e-icon-collapsible',\n disabled: 'e-disabled',\n image: \"e-\" + moduleName + \"-img\",\n iconWrapper: 'e-icon-wrapper',\n anchorWrap: 'e-anchor-wrap',\n navigable: 'e-navigable'\n };\n }\n function anchorTag(createElement, dataSource, fields, text, innerElements, isFullNavigation) {\n var fieldData = getFieldValues(dataSource, fields);\n var attr = { href: fieldData[fields.url] };\n // eslint-disable-next-line no-prototype-builtins\n if (fieldData.hasOwnProperty(fields.urlAttributes) && fieldData[fields.urlAttributes]) {\n merge(attr, fieldData[fields.urlAttributes]);\n attr.href = fieldData[fields.url] ? fieldData[fields.url] :\n fieldData[fields.urlAttributes].href;\n }\n var anchorTag;\n if (!isFullNavigation) {\n anchorTag = createElement('a', { className: cssClass.text + ' ' + cssClass.url, innerHTML: text });\n }\n else {\n anchorTag = createElement('a', { className: cssClass.text + ' ' + cssClass.url });\n var anchorWrapper = createElement('div', { className: cssClass.anchorWrap });\n if (innerElements && innerElements.length) {\n append(innerElements, anchorWrapper);\n }\n anchorWrapper.appendChild(document.createTextNode(text));\n append([anchorWrapper], anchorTag);\n }\n setAttribute(anchorTag, attr);\n return anchorTag;\n }\n // tslint:disable-next-line\n /* tslint:disable:align */\n function generateLI(createElement, item, fieldData, \n // eslint-disable-next-line\n fields, className, options, componentInstance) {\n var curOpt = extend({}, defaultListBaseOptions, options);\n var ariaAttributes = extend({}, defaultAriaAttributes, curOpt.ariaAttributes);\n var text = item;\n var uID;\n var grpLI;\n var dataSource;\n if (typeof item !== 'string' && typeof item !== 'number') {\n dataSource = item;\n text = fieldData[fields.text] || '';\n // tslint:disable-next-line\n uID = (isNullOrUndefined(fieldData['_id'])) ? fieldData[fields.id] : fieldData['_id'];\n // eslint-disable-next-line no-prototype-builtins\n grpLI = (item.hasOwnProperty('isHeader') && item.isHeader)\n ? true : false;\n }\n if (options && options.enableHtmlSanitizer) {\n // eslint-disable-next-line no-self-assign\n text = text;\n }\n var li = createElement('li', {\n className: (grpLI === true ? cssClass.group : cssClass.li) + ' ' + (isNullOrUndefined(className) ? '' : className),\n attrs: (ariaAttributes.groupItemRole !== '' && ariaAttributes.itemRole !== '' ?\n { role: (grpLI === true ? ariaAttributes.groupItemRole : ariaAttributes.itemRole) } : {})\n });\n if (!isNullOrUndefined(uID) === true) {\n li.setAttribute('data-uid', uID);\n }\n else {\n li.setAttribute('data-uid', generateId());\n }\n if (grpLI && options && options.groupTemplate) {\n // eslint-disable-next-line @typescript-eslint/ban-types\n var compiledString = compileTemplate(options.groupTemplate);\n if (componentInstance && componentInstance.getModuleName() !== \"listview\") {\n // eslint-disable-next-line\n var compiledElement = compiledString(item, componentInstance, 'groupTemplate', curOpt.groupTemplateID, !!curOpt.isStringTemplate, null, li);\n if (compiledElement) {\n append(compiledElement, li);\n }\n }\n else {\n append(compiledString(item, componentInstance, 'groupTemplate', curOpt.groupTemplateID, !!curOpt.isStringTemplate), li);\n }\n }\n else if (!grpLI && options && options.template) {\n // eslint-disable-next-line @typescript-eslint/ban-types\n var compiledString = compileTemplate(options.template);\n if (componentInstance && componentInstance.getModuleName() !== 'listview') {\n // eslint-disable-next-line\n var compiledElement = compiledString(item, componentInstance, 'template', curOpt.templateID, !!curOpt.isStringTemplate, null, li);\n if (compiledElement) {\n append(compiledElement, li);\n }\n }\n else {\n append(compiledString(item, componentInstance, 'template', curOpt.templateID, !!curOpt.isStringTemplate), li);\n }\n }\n else {\n var innerDiv = createElement('div', {\n className: cssClass.textContent,\n attrs: (ariaAttributes.wrapperRole !== '' ? { role: ariaAttributes.wrapperRole } : {})\n });\n if (dataSource && (fieldData[fields.url] || (fieldData[fields.urlAttributes] &&\n fieldData[fields.urlAttributes].href))) {\n innerDiv.appendChild(anchorTag(createElement, dataSource, fields, text, null, curOpt.itemNavigable));\n }\n else {\n var element = createElement('span', {\n className: cssClass.text,\n attrs: (ariaAttributes.itemText !== '' ? { role: ariaAttributes.itemText } : {})\n });\n if (options && options.enableHtmlSanitizer) {\n element.innerText = text;\n }\n else {\n element.innerHTML = text;\n }\n innerDiv.appendChild(element);\n }\n li.appendChild(innerDiv);\n }\n return li;\n }\n /**\n * Returns UL element based on the given LI element.\n *\n * @param {HTMLElement[]} liElement - Specifies array of LI element.\n *\n * @param {string} className? - Specifies class name that need to be added in UL element.\n *\n * @param {ListBaseOptions} options? - Specifies ListBase options.\n */\n function generateUL(createElement, liElement, className, options) {\n var curOpt = extend({}, defaultListBaseOptions, options);\n var ariaAttributes = extend({}, defaultAriaAttributes, curOpt.ariaAttributes);\n cssClass = getModuleClass(curOpt.moduleName);\n var ulElement = createElement('ul', {\n className: cssClass.ul + ' ' + (isNullOrUndefined(className) ? '' : className),\n attrs: (ariaAttributes.listRole !== '' ? { role: ariaAttributes.listRole } : {})\n });\n append(liElement, ulElement);\n return ulElement;\n }\n ListBase.generateUL = generateUL;\n /**\n * Returns LI element with additional DIV tag based on the given LI element.\n *\n * @param {liElement} liElement - Specifies LI element.\n *\n * @param {string} className? - Specifies class name that need to be added in created DIV element.\n *\n * @param {ListBaseOptions} options? - Specifies ListBase options.\n */\n function generateIcon(createElement, liElement, className, options) {\n var curOpt = extend({}, defaultListBaseOptions, options);\n cssClass = getModuleClass(curOpt.moduleName);\n // eslint-disable-next-line @typescript-eslint/ban-types\n var expandElement = curOpt.expandIconPosition === 'Left' ? prepend : append;\n expandElement([createElement('div', {\n className: 'e-icons ' + curOpt.expandIconClass + ' ' +\n (isNullOrUndefined(className) ? '' : className)\n })], liElement.querySelector('.' + cssClass.textContent));\n return liElement;\n }\n ListBase.generateIcon = generateIcon;\n})(ListBase || (ListBase = {}));\n/**\n * Used to get dataSource item from complex data using fields.\n *\n * @param {Object} dataSource - Specifies an JSON or String data.\n *\n * @param {FieldsMapping} fields - Fields that are mapped from the dataSource.\n */\nexport function getFieldValues(dataItem, fields) {\n var fieldData = {};\n if (isNullOrUndefined(dataItem) || typeof (dataItem) === 'string' || typeof (dataItem) === 'number'\n || !isNullOrUndefined(dataItem.isHeader)) {\n return dataItem;\n }\n else {\n for (var _i = 0, _a = Object.keys(fields); _i < _a.length; _i++) {\n var field = _a[_i];\n var dataField = fields[field];\n var value = !isNullOrUndefined(dataField) &&\n typeof (dataField) === 'string' ? getValue(dataField, dataItem) : undefined;\n if (!isNullOrUndefined(value)) {\n fieldData[dataField] = value;\n }\n }\n }\n return fieldData;\n}\nfunction compileTemplate(template) {\n if (template) {\n try {\n if (document.querySelector(template)) {\n return compile(document.querySelector(template).innerHTML.trim());\n }\n else {\n return compile(template);\n }\n }\n catch (e) {\n return compile(template);\n }\n }\n return undefined;\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { merge, extend, isNullOrUndefined, setValue, getValue } from '@syncfusion/ej2-base';\nimport { DataUtil } from './util';\nimport { Query, Predicate } from './query';\nvar consts = { GroupGuid: '{271bbba0-1ee7}' };\n/**\n * Adaptors are specific data source type aware interfaces that are used by DataManager to communicate with DataSource.\n * This is the base adaptor class that other adaptors can extend.\n * @hidden\n */\nvar Adaptor = /** @class */ (function () {\n /**\n * Constructor for Adaptor class\n * @param {DataOptions} ds?\n * @hidden\n * @returns aggregates\n */\n function Adaptor(ds) {\n // common options for all the adaptors \n this.options = {\n from: 'table',\n requestType: 'json',\n sortBy: 'sorted',\n select: 'select',\n skip: 'skip',\n group: 'group',\n take: 'take',\n search: 'search',\n count: 'requiresCounts',\n where: 'where',\n aggregates: 'aggregates',\n expand: 'expand'\n };\n /**\n * Specifies the type of adaptor.\n * @default Adaptor\n */\n this.type = Adaptor;\n this.dataSource = ds;\n this.pvt = {};\n }\n /**\n * Returns the data from the query processing.\n * @param {Object} data\n * @param {DataOptions} ds?\n * @param {Query} query?\n * @param {XMLHttpRequest} xhr?\n * @returns Object\n */\n Adaptor.prototype.processResponse = function (data, ds, query, xhr) {\n return data;\n };\n return Adaptor;\n}());\nexport { Adaptor };\n/**\n * JsonAdaptor is used to process JSON data. It contains methods to process the given JSON data based on the queries.\n * @hidden\n */\nvar JsonAdaptor = /** @class */ (function (_super) {\n __extends(JsonAdaptor, _super);\n function JsonAdaptor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Process the JSON data based on the provided queries.\n * @param {DataManager} dataManager\n * @param {Query} query\n * @returns Object\n */\n JsonAdaptor.prototype.processQuery = function (dataManager, query) {\n var result = dataManager.dataSource.json.slice(0);\n var count = result.length;\n var countFlg = true;\n var ret;\n var key;\n var lazyLoad = {};\n var keyCount = 0;\n var group = [];\n var page;\n for (var i = 0; i < query.lazyLoad.length; i++) {\n keyCount++;\n lazyLoad[query.lazyLoad[i].key] = query.lazyLoad[i].value;\n }\n var agg = {};\n for (var i = 0; i < query.queries.length; i++) {\n key = query.queries[i];\n if ((key.fn === 'onPage' || key.fn === 'onGroup') && query.lazyLoad.length) {\n if (key.fn === 'onGroup') {\n group.push(key.e);\n }\n if (key.fn === 'onPage') {\n page = key.e;\n }\n continue;\n }\n ret = this[key.fn].call(this, result, key.e, query);\n if (key.fn === 'onAggregates') {\n agg[key.e.field + ' - ' + key.e.type] = ret;\n }\n else {\n result = ret !== undefined ? ret : result;\n }\n if (key.fn === 'onPage' || key.fn === 'onSkip' || key.fn === 'onTake' || key.fn === 'onRange') {\n countFlg = false;\n }\n if (countFlg) {\n count = result.length;\n }\n }\n if (keyCount) {\n var args = {\n query: query, lazyLoad: lazyLoad, result: result, group: group, page: page\n };\n var lazyLoadData = this.lazyLoadGroup(args);\n result = lazyLoadData.result;\n count = lazyLoadData.count;\n }\n if (query.isCountRequired) {\n result = {\n result: result,\n count: count,\n aggregates: agg\n };\n }\n return result;\n };\n /**\n * Perform lazy load grouping in JSON array based on the given query and lazy load details.\n * @param {LazyLoadGroupArgs} args\n */\n JsonAdaptor.prototype.lazyLoadGroup = function (args) {\n var count = 0;\n var agg = this.getAggregate(args.query);\n var result = args.result;\n if (!isNullOrUndefined(args.lazyLoad.onDemandGroupInfo)) {\n var req = args.lazyLoad.onDemandGroupInfo;\n for (var i = req.where.length - 1; i >= 0; i--) {\n result = this.onWhere(result, req.where[i]);\n }\n if (args.group.length !== req.level) {\n var field = args.group[req.level].fieldName;\n result = DataUtil.group(result, field, agg, null, null, args.group[0].comparer, true);\n }\n count = result.length;\n var data = result;\n result = result.slice(req.skip);\n result = result.slice(0, req.take);\n if (args.group.length !== req.level) {\n this.formGroupResult(result, data);\n }\n }\n else {\n var field = args.group[0].fieldName;\n result = DataUtil.group(result, field, agg, null, null, args.group[0].comparer, true);\n count = result.length;\n var data = result;\n if (args.page) {\n result = this.onPage(result, args.page, args.query);\n }\n this.formGroupResult(result, data);\n }\n return { result: result, count: count };\n };\n JsonAdaptor.prototype.formGroupResult = function (result, data) {\n if (result.length && data.length) {\n var uid = 'GroupGuid';\n var childLevel = 'childLevels';\n var level = 'level';\n var records = 'records';\n result[uid] = data[uid];\n result[childLevel] = data[childLevel];\n result[level] = data[level];\n result[records] = data[records];\n }\n return result;\n };\n /**\n * Separate the aggregate query from the given queries\n * @param {Query} query\n */\n JsonAdaptor.prototype.getAggregate = function (query) {\n var aggQuery = Query.filterQueries(query.queries, 'onAggregates');\n var agg = [];\n if (aggQuery.length) {\n var tmp = void 0;\n for (var i = 0; i < aggQuery.length; i++) {\n tmp = aggQuery[i].e;\n agg.push({ type: tmp.type, field: DataUtil.getValue(tmp.field, query) });\n }\n }\n return agg;\n };\n /**\n * Performs batch update in the JSON array which add, remove and update records.\n * @param {DataManager} dm\n * @param {CrudOptions} changes\n * @param {RemoteArgs} e\n */\n JsonAdaptor.prototype.batchRequest = function (dm, changes, e) {\n var i;\n var deletedRecordsLen = changes.deletedRecords.length;\n for (i = 0; i < changes.addedRecords.length; i++) {\n this.insert(dm, changes.addedRecords[i]);\n }\n for (i = 0; i < changes.changedRecords.length; i++) {\n this.update(dm, e.key, changes.changedRecords[i]);\n }\n for (i = 0; i < deletedRecordsLen; i++) {\n this.remove(dm, e.key, changes.deletedRecords[i]);\n }\n return changes;\n };\n /**\n * Performs filter operation with the given data and where query.\n * @param {Object[]} ds\n * @param {{validate:Function}} e\n */\n JsonAdaptor.prototype.onWhere = function (ds, e) {\n if (!ds || !ds.length) {\n return ds;\n }\n return ds.filter(function (obj) {\n if (e) {\n return e.validate(obj);\n }\n });\n };\n /**\n * Returns aggregate function based on the aggregate type.\n * @param {Object[]} ds\n * @param {{field:string} e\n * @param {string}} type\n */\n JsonAdaptor.prototype.onAggregates = function (ds, e) {\n var fn = DataUtil.aggregates[e.type];\n if (!ds || !fn || ds.length === 0) {\n return null;\n }\n return fn(ds, e.field);\n };\n /**\n * Performs search operation based on the given query.\n * @param {Object[]} ds\n * @param {QueryOptions} e\n */\n JsonAdaptor.prototype.onSearch = function (ds, e) {\n if (!ds || !ds.length) {\n return ds;\n }\n if (e.fieldNames.length === 0) {\n DataUtil.getFieldList(ds[0], e.fieldNames);\n }\n return ds.filter(function (obj) {\n for (var j = 0; j < e.fieldNames.length; j++) {\n if (e.comparer.call(obj, DataUtil.getObject(e.fieldNames[j], obj), e.searchKey, e.ignoreCase, e.ignoreAccent)) {\n return true;\n }\n }\n return false;\n });\n };\n /**\n * Sort the data with given direction and field.\n * @param {Object[]} ds\n * @param {{comparer:(a:Object} e\n * @param {Object} b\n */\n JsonAdaptor.prototype.onSortBy = function (ds, e, query) {\n if (!ds || !ds.length) {\n return ds;\n }\n var fnCompare;\n var field = DataUtil.getValue(e.fieldName, query);\n if (!field) {\n return ds.sort(e.comparer);\n }\n if (field instanceof Array) {\n field = field.slice(0);\n for (var i = field.length - 1; i >= 0; i--) {\n if (!field[i]) {\n continue;\n }\n fnCompare = e.comparer;\n if (DataUtil.endsWith(field[i], ' desc')) {\n fnCompare = DataUtil.fnSort('descending');\n field[i] = field[i].replace(' desc', '');\n }\n ds = DataUtil.sort(ds, field[i], fnCompare);\n }\n return ds;\n }\n return DataUtil.sort(ds, field, e.comparer);\n };\n /**\n * Group the data based on the given query.\n * @param {Object[]} ds\n * @param {QueryOptions} e\n * @param {Query} query\n */\n JsonAdaptor.prototype.onGroup = function (ds, e, query) {\n if (!ds || !ds.length) {\n return ds;\n }\n var agg = this.getAggregate(query);\n return DataUtil.group(ds, DataUtil.getValue(e.fieldName, query), agg, null, null, e.comparer);\n };\n /**\n * Retrieves records based on the given page index and size.\n * @param {Object[]} ds\n * @param {{pageSize:number} e\n * @param {number}} pageIndex\n * @param {Query} query\n */\n JsonAdaptor.prototype.onPage = function (ds, e, query) {\n var size = DataUtil.getValue(e.pageSize, query);\n var start = (DataUtil.getValue(e.pageIndex, query) - 1) * size;\n var end = start + size;\n if (!ds || !ds.length) {\n return ds;\n }\n return ds.slice(start, end);\n };\n /**\n * Retrieves records based on the given start and end index from query.\n * @param {Object[]} ds\n * @param {{start:number} e\n * @param {number}} end\n */\n JsonAdaptor.prototype.onRange = function (ds, e) {\n if (!ds || !ds.length) {\n return ds;\n }\n return ds.slice(DataUtil.getValue(e.start), DataUtil.getValue(e.end));\n };\n /**\n * Picks the given count of records from the top of the datasource.\n * @param {Object[]} ds\n * @param {{nos:number}} e\n */\n JsonAdaptor.prototype.onTake = function (ds, e) {\n if (!ds || !ds.length) {\n return ds;\n }\n return ds.slice(0, DataUtil.getValue(e.nos));\n };\n /**\n * Skips the given count of records from the data source.\n * @param {Object[]} ds\n * @param {{nos:number}} e\n */\n JsonAdaptor.prototype.onSkip = function (ds, e) {\n if (!ds || !ds.length) {\n return ds;\n }\n return ds.slice(DataUtil.getValue(e.nos));\n };\n /**\n * Selects specified columns from the data source.\n * @param {Object[]} ds\n * @param {{fieldNames:string}} e\n */\n JsonAdaptor.prototype.onSelect = function (ds, e) {\n if (!ds || !ds.length) {\n return ds;\n }\n return DataUtil.select(ds, DataUtil.getValue(e.fieldNames));\n };\n /**\n * Inserts new record in the table.\n * @param {DataManager} dm\n * @param {Object} data\n * @param {number} position\n */\n JsonAdaptor.prototype.insert = function (dm, data, tableName, query, position) {\n if (isNullOrUndefined(position)) {\n return dm.dataSource.json.push(data);\n }\n else {\n return dm.dataSource.json.splice(position, 0, data);\n }\n };\n /**\n * Remove the data from the dataSource based on the key field value.\n * @param {DataManager} dm\n * @param {string} keyField\n * @param {Object} value\n * @param {string} tableName?\n * @returns null\n */\n JsonAdaptor.prototype.remove = function (dm, keyField, value, tableName) {\n var ds = dm.dataSource.json;\n var i;\n if (typeof value === 'object' && !(value instanceof Date)) {\n value = DataUtil.getObject(keyField, value);\n }\n for (i = 0; i < ds.length; i++) {\n if (DataUtil.getObject(keyField, ds[i]) === value) {\n break;\n }\n }\n return i !== ds.length ? ds.splice(i, 1) : null;\n };\n /**\n * Updates existing record and saves the changes to the table.\n * @param {DataManager} dm\n * @param {string} keyField\n * @param {Object} value\n * @param {string} tableName?\n * @returns null\n */\n JsonAdaptor.prototype.update = function (dm, keyField, value, tableName) {\n var ds = dm.dataSource.json;\n var i;\n var key;\n if (!isNullOrUndefined(keyField)) {\n key = getValue(keyField, value);\n }\n for (i = 0; i < ds.length; i++) {\n if (!isNullOrUndefined(keyField) && (getValue(keyField, ds[i])) === key) {\n break;\n }\n }\n return i < ds.length ? merge(ds[i], value) : null;\n };\n return JsonAdaptor;\n}(Adaptor));\nexport { JsonAdaptor };\n/**\n * URL Adaptor of DataManager can be used when you are required to use remote service to retrieve data.\n * It interacts with server-side for all DataManager Queries and CRUD operations.\n * @hidden\n */\nvar UrlAdaptor = /** @class */ (function (_super) {\n __extends(UrlAdaptor, _super);\n function UrlAdaptor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Process the query to generate request body.\n * @param {DataManager} dm\n * @param {Query} query\n * @param {Object[]} hierarchyFilters?\n * @returns p\n */\n // tslint:disable-next-line:max-func-body-length\n UrlAdaptor.prototype.processQuery = function (dm, query, hierarchyFilters) {\n var queries = this.getQueryRequest(query);\n var singles = Query.filterQueryLists(query.queries, ['onSelect', 'onPage', 'onSkip', 'onTake', 'onRange']);\n var params = query.params;\n var url = dm.dataSource.url;\n var temp;\n var skip;\n var take = null;\n var options = this.options;\n var request = { sorts: [], groups: [], filters: [], searches: [], aggregates: [] };\n // calc Paging & Range\n if ('onPage' in singles) {\n temp = singles.onPage;\n skip = DataUtil.getValue(temp.pageIndex, query);\n take = DataUtil.getValue(temp.pageSize, query);\n skip = (skip - 1) * take;\n }\n else if ('onRange' in singles) {\n temp = singles.onRange;\n skip = temp.start;\n take = temp.end - temp.start;\n }\n // Sorting\n for (var i = 0; i < queries.sorts.length; i++) {\n temp = DataUtil.getValue(queries.sorts[i].e.fieldName, query);\n request.sorts.push(DataUtil.callAdaptorFunction(this, 'onEachSort', { name: temp, direction: queries.sorts[i].e.direction }, query));\n }\n // hierarchy\n if (hierarchyFilters) {\n temp = this.getFiltersFrom(hierarchyFilters, query);\n if (temp) {\n request.filters.push(DataUtil.callAdaptorFunction(this, 'onEachWhere', temp.toJson(), query));\n }\n }\n // Filters\n for (var i = 0; i < queries.filters.length; i++) {\n var res = DataUtil.callAdaptorFunction(this, 'onEachWhere', queries.filters[i].e.toJson(), query);\n if ((this.getModuleName &&\n this.getModuleName() === 'ODataV4Adaptor') &&\n !isNullOrUndefined(queries.filters[i].e.key) && queries.filters.length > 1) {\n res = \"(\" + res + \")\";\n }\n request.filters.push(res);\n var keys_3 = typeof request.filters[i] === 'object' ? Object.keys(request.filters[i]) : [];\n for (var _i = 0, keys_1 = keys_3; _i < keys_1.length; _i++) {\n var prop = keys_1[_i];\n if (DataUtil.isNull((request)[prop])) {\n delete request[prop];\n }\n }\n }\n // Searches\n for (var i = 0; i < queries.searches.length; i++) {\n temp = queries.searches[i].e;\n request.searches.push(DataUtil.callAdaptorFunction(this, 'onEachSearch', {\n fields: temp.fieldNames,\n operator: temp.operator,\n key: temp.searchKey,\n ignoreCase: temp.ignoreCase\n }, query));\n }\n // Grouping\n for (var i = 0; i < queries.groups.length; i++) {\n request.groups.push(DataUtil.getValue(queries.groups[i].e.fieldName, query));\n }\n // aggregates\n for (var i = 0; i < queries.aggregates.length; i++) {\n temp = queries.aggregates[i].e;\n request.aggregates.push({ type: temp.type, field: DataUtil.getValue(temp.field, query) });\n }\n var req = {};\n this.getRequestQuery(options, query, singles, request, req);\n // Params\n DataUtil.callAdaptorFunction(this, 'addParams', { dm: dm, query: query, params: params, reqParams: req });\n if (query.lazyLoad.length) {\n for (var i = 0; i < query.lazyLoad.length; i++) {\n req[query.lazyLoad[i].key] = query.lazyLoad[i].value;\n }\n }\n // cleanup\n var keys = Object.keys(req);\n for (var _a = 0, keys_2 = keys; _a < keys_2.length; _a++) {\n var prop = keys_2[_a];\n if (DataUtil.isNull(req[prop]) || req[prop] === '' || req[prop].length === 0) {\n delete req[prop];\n }\n }\n if (!(options.skip in req && options.take in req) && take !== null) {\n req[options.skip] = DataUtil.callAdaptorFunction(this, 'onSkip', skip, query);\n req[options.take] = DataUtil.callAdaptorFunction(this, 'onTake', take, query);\n }\n var p = this.pvt;\n this.pvt = {};\n if (this.options.requestType === 'json') {\n return {\n data: JSON.stringify(req, DataUtil.parse.jsonDateReplacer),\n url: url,\n pvtData: p,\n type: 'POST',\n contentType: 'application/json; charset=utf-8'\n };\n }\n temp = this.convertToQueryString(req, query, dm);\n temp = (dm.dataSource.url.indexOf('?') !== -1 ? '&' : '/') + temp;\n return {\n type: 'GET', url: temp.length ? url.replace(/\\/*$/, temp) : url, pvtData: p\n };\n };\n UrlAdaptor.prototype.getRequestQuery = function (options, query, singles, request, request1) {\n var param = 'param';\n var req = request1;\n req[options.from] = query.fromTable;\n if (options.apply && query.distincts.length) {\n req[options.apply] = 'onDistinct' in this ? DataUtil.callAdaptorFunction(this, 'onDistinct', query.distincts) : '';\n }\n if (!query.distincts.length && options.expand) {\n req[options.expand] = 'onExpand' in this && 'onSelect' in singles ?\n DataUtil.callAdaptorFunction(this, 'onExpand', { selects: DataUtil.getValue(singles.onSelect.fieldNames, query), expands: query.expands }, query) : query.expands;\n }\n req[options.select] = 'onSelect' in singles && !query.distincts.length ?\n DataUtil.callAdaptorFunction(this, 'onSelect', DataUtil.getValue(singles.onSelect.fieldNames, query), query) : '';\n req[options.count] = query.isCountRequired ? DataUtil.callAdaptorFunction(this, 'onCount', query.isCountRequired, query) : '';\n req[options.search] = request.searches.length ? DataUtil.callAdaptorFunction(this, 'onSearch', request.searches, query) : '';\n req[options.skip] = 'onSkip' in singles ?\n DataUtil.callAdaptorFunction(this, 'onSkip', DataUtil.getValue(singles.onSkip.nos, query), query) : '';\n req[options.take] = 'onTake' in singles ?\n DataUtil.callAdaptorFunction(this, 'onTake', DataUtil.getValue(singles.onTake.nos, query), query) : '';\n req[options.where] = request.filters.length || request.searches.length ?\n DataUtil.callAdaptorFunction(this, 'onWhere', request.filters, query) : '';\n req[options.sortBy] = request.sorts.length ? DataUtil.callAdaptorFunction(this, 'onSortBy', request.sorts, query) : '';\n req[options.group] = request.groups.length ? DataUtil.callAdaptorFunction(this, 'onGroup', request.groups, query) : '';\n req[options.aggregates] = request.aggregates.length ?\n DataUtil.callAdaptorFunction(this, 'onAggregates', request.aggregates, query) : '';\n req[param] = [];\n };\n /**\n * Convert the object from processQuery to string which can be added query string.\n * @param {Object} req\n * @param {Query} query\n * @param {DataManager} dm\n */\n UrlAdaptor.prototype.convertToQueryString = function (request, query, dm) {\n return '';\n // this needs to be overridden\n };\n /**\n * Return the data from the data manager processing.\n * @param {DataResult} data\n * @param {DataOptions} ds?\n * @param {Query} query?\n * @param {XMLHttpRequest} xhr?\n * @param {Object} request?\n * @param {CrudOptions} changes?\n */\n UrlAdaptor.prototype.processResponse = function (data, ds, query, xhr, request, changes) {\n if (xhr && xhr.getResponseHeader('Content-Type') &&\n xhr.getResponseHeader('Content-Type').indexOf('application/json') !== -1) {\n var handleTimeZone = DataUtil.timeZoneHandling;\n if (ds && !ds.timeZoneHandling) {\n DataUtil.timeZoneHandling = false;\n }\n data = DataUtil.parse.parseJson(data);\n DataUtil.timeZoneHandling = handleTimeZone;\n }\n var requests = request;\n var pvt = requests.pvtData || {};\n var groupDs = data ? data.groupDs : [];\n if (xhr && xhr.getResponseHeader('Content-Type') &&\n xhr.getResponseHeader('Content-Type').indexOf('xml') !== -1) {\n return (query.isCountRequired ? { result: [], count: 0 } : []);\n }\n var d = JSON.parse(requests.data);\n if (d && d.action === 'batch' && data && data.addedRecords) {\n changes.addedRecords = data.addedRecords;\n return changes;\n }\n if (data && data.d) {\n data = data.d;\n }\n var args = {};\n if (data && 'count' in data) {\n args.count = data.count;\n }\n args.result = data && data.result ? data.result : data;\n var isExpand = false;\n if (Array.isArray(data.result) && data.result.length) {\n var key = 'key';\n var val = 'value';\n var level = 'level';\n if (!isNullOrUndefined(data.result[0][key])) {\n args.result = this.formRemoteGroupedData(args.result, 1, pvt.groups.length - 1);\n }\n if (query && query.lazyLoad.length && pvt.groups.length) {\n for (var i = 0; i < query.lazyLoad.length; i++) {\n if (query.lazyLoad[i][key] === 'onDemandGroupInfo') {\n var value = query.lazyLoad[i][val][level];\n if (pvt.groups.length === value) {\n isExpand = true;\n }\n }\n }\n }\n }\n if (!isExpand) {\n this.getAggregateResult(pvt, data, args, groupDs, query);\n }\n return DataUtil.isNull(args.count) ? args.result : { result: args.result, count: args.count, aggregates: args.aggregates };\n };\n UrlAdaptor.prototype.formRemoteGroupedData = function (data, level, childLevel) {\n for (var i = 0; i < data.length; i++) {\n if (data[i].items.length && Object.keys(data[i].items[0]).indexOf('key') > -1) {\n this.formRemoteGroupedData(data[i].items, level + 1, childLevel - 1);\n }\n }\n var uid = 'GroupGuid';\n var childLvl = 'childLevels';\n var lvl = 'level';\n var records = 'records';\n data[uid] = consts[uid];\n data[lvl] = level;\n data[childLvl] = childLevel;\n data[records] = data[0].items.length ? this.getGroupedRecords(data, !isNullOrUndefined(data[0].items[records])) : [];\n return data;\n };\n UrlAdaptor.prototype.getGroupedRecords = function (data, hasRecords) {\n var childGroupedRecords = [];\n var records = 'records';\n for (var i = 0; i < data.length; i++) {\n if (!hasRecords) {\n for (var j = 0; j < data[i].items.length; j++) {\n childGroupedRecords.push(data[i].items[j]);\n }\n }\n else {\n childGroupedRecords = childGroupedRecords.concat(data[i].items[records]);\n }\n }\n return childGroupedRecords;\n };\n /**\n * Add the group query to the adaptor`s option.\n * @param {Object[]} e\n * @returns void\n */\n UrlAdaptor.prototype.onGroup = function (e) {\n this.pvt.groups = e;\n return e;\n };\n /**\n * Add the aggregate query to the adaptor`s option.\n * @param {Aggregates[]} e\n * @returns void\n */\n UrlAdaptor.prototype.onAggregates = function (e) {\n this.pvt.aggregates = e;\n };\n /**\n * Prepare the request body based on the newly added, removed and updated records.\n * The result is used by the batch request.\n * @param {DataManager} dm\n * @param {CrudOptions} changes\n * @param {Object} e\n */\n UrlAdaptor.prototype.batchRequest = function (dm, changes, e, query, original) {\n var url;\n var key;\n return {\n type: 'POST',\n url: dm.dataSource.batchUrl || dm.dataSource.crudUrl || dm.dataSource.removeUrl || dm.dataSource.url,\n contentType: 'application/json; charset=utf-8',\n dataType: 'json',\n data: JSON.stringify(extend({}, {\n changed: changes.changedRecords,\n added: changes.addedRecords,\n deleted: changes.deletedRecords,\n action: 'batch',\n table: e[url],\n key: e[key]\n }, DataUtil.getAddParams(this, dm, query)))\n };\n };\n /**\n * Method will trigger before send the request to server side.\n * Used to set the custom header or modify the request options.\n * @param {DataManager} dm\n * @param {XMLHttpRequest} request\n * @returns void\n */\n UrlAdaptor.prototype.beforeSend = function (dm, request) {\n // need to extend this method\n };\n /**\n * Prepare and returns request body which is used to insert a new record in the table.\n * @param {DataManager} dm\n * @param {Object} data\n * @param {string} tableName\n */\n UrlAdaptor.prototype.insert = function (dm, data, tableName, query) {\n return {\n url: dm.dataSource.insertUrl || dm.dataSource.crudUrl || dm.dataSource.url,\n data: JSON.stringify(extend({}, {\n value: data,\n table: tableName,\n action: 'insert'\n }, DataUtil.getAddParams(this, dm, query)))\n };\n };\n /**\n * Prepare and return request body which is used to remove record from the table.\n * @param {DataManager} dm\n * @param {string} keyField\n * @param {number|string} value\n * @param {string} tableName\n */\n UrlAdaptor.prototype.remove = function (dm, keyField, value, tableName, query) {\n return {\n type: 'POST',\n url: dm.dataSource.removeUrl || dm.dataSource.crudUrl || dm.dataSource.url,\n data: JSON.stringify(extend({}, {\n key: value,\n keyColumn: keyField,\n table: tableName,\n action: 'remove'\n }, DataUtil.getAddParams(this, dm, query)))\n };\n };\n /**\n * Prepare and return request body which is used to update record.\n * @param {DataManager} dm\n * @param {string} keyField\n * @param {Object} value\n * @param {string} tableName\n */\n UrlAdaptor.prototype.update = function (dm, keyField, value, tableName, query) {\n return {\n type: 'POST',\n url: dm.dataSource.updateUrl || dm.dataSource.crudUrl || dm.dataSource.url,\n data: JSON.stringify(extend({}, {\n value: value,\n action: 'update',\n keyColumn: keyField,\n key: DataUtil.getObject(keyField, value),\n table: tableName\n }, DataUtil.getAddParams(this, dm, query)))\n };\n };\n /**\n * To generate the predicate based on the filtered query.\n * @param {Object[]|string[]|number[]} data\n * @param {Query} query\n * @hidden\n */\n UrlAdaptor.prototype.getFiltersFrom = function (data, query) {\n var key = query.fKey;\n var value;\n var prop = key;\n var pKey = query.key;\n var predicats = [];\n if (typeof data[0] !== 'object') {\n prop = null;\n }\n for (var i = 0; i < data.length; i++) {\n if (typeof data[0] === 'object') {\n value = DataUtil.getObject(pKey || prop, data[i]);\n }\n else {\n value = data[i];\n }\n predicats.push(new Predicate(key, 'equal', value));\n }\n return Predicate.or(predicats);\n };\n UrlAdaptor.prototype.getAggregateResult = function (pvt, data, args, groupDs, query) {\n var pData = data;\n if (data && data.result) {\n pData = data.result;\n }\n if (pvt && pvt.aggregates && pvt.aggregates.length) {\n var agg = pvt.aggregates;\n var fn = void 0;\n var aggregateData = pData;\n var res = {};\n if (data.aggregate) {\n aggregateData = data.aggregate;\n }\n for (var i = 0; i < agg.length; i++) {\n fn = DataUtil.aggregates[agg[i].type];\n if (fn) {\n res[agg[i].field + ' - ' + agg[i].type] = fn(aggregateData, agg[i].field);\n }\n }\n args.aggregates = res;\n }\n var key = 'key';\n var isServerGrouping = Array.isArray(data.result) && data.result.length && !isNullOrUndefined(data.result[0][key]);\n if (pvt && pvt.groups && pvt.groups.length && !isServerGrouping) {\n var groups = pvt.groups;\n for (var i = 0; i < groups.length; i++) {\n var level = null;\n if (!isNullOrUndefined(groupDs)) {\n groupDs = DataUtil.group(groupDs, groups[i]);\n }\n var groupQuery = Query.filterQueries(query.queries, 'onGroup')[i].e;\n pData = DataUtil.group(pData, groups[i], pvt.aggregates, level, groupDs, groupQuery.comparer);\n }\n args.result = pData;\n }\n return args;\n };\n UrlAdaptor.prototype.getQueryRequest = function (query) {\n var req = { sorts: [], groups: [], filters: [], searches: [], aggregates: [] };\n req.sorts = Query.filterQueries(query.queries, 'onSortBy');\n req.groups = Query.filterQueries(query.queries, 'onGroup');\n req.filters = Query.filterQueries(query.queries, 'onWhere');\n req.searches = Query.filterQueries(query.queries, 'onSearch');\n req.aggregates = Query.filterQueries(query.queries, 'onAggregates');\n return req;\n };\n UrlAdaptor.prototype.addParams = function (options) {\n var req = options.reqParams;\n if (options.params.length) {\n req.params = {};\n }\n for (var _i = 0, _a = options.params; _i < _a.length; _i++) {\n var tmp = _a[_i];\n if (req[tmp.key]) {\n throw new Error('Query() - addParams: Custom Param is conflicting other request arguments');\n }\n req[tmp.key] = tmp.value;\n if (tmp.fn) {\n req[tmp.key] = tmp.fn.call(options.query, tmp.key, options.query, options.dm);\n }\n req.params[tmp.key] = req[tmp.key];\n }\n };\n return UrlAdaptor;\n}(Adaptor));\nexport { UrlAdaptor };\n/**\n * OData Adaptor that is extended from URL Adaptor, is used for consuming data through OData Service.\n * @hidden\n */\nvar ODataAdaptor = /** @class */ (function (_super) {\n __extends(ODataAdaptor, _super);\n function ODataAdaptor(props) {\n var _this = _super.call(this) || this;\n // options replaced the default adaptor options\n _this.options = extend({}, _this.options, {\n requestType: 'get',\n accept: 'application/json;odata=light;q=1,application/json;odata=verbose;q=0.5',\n multipartAccept: 'multipart/mixed',\n sortBy: '$orderby',\n select: '$select',\n skip: '$skip',\n take: '$top',\n count: '$inlinecount',\n where: '$filter',\n expand: '$expand',\n batch: '$batch',\n changeSet: '--changeset_',\n batchPre: 'batch_',\n contentId: 'Content-Id: ',\n batchContent: 'Content-Type: multipart/mixed; boundary=',\n changeSetContent: 'Content-Type: application/http\\nContent-Transfer-Encoding: binary ',\n batchChangeSetContentType: 'Content-Type: application/json; charset=utf-8 ',\n updateType: 'PUT'\n });\n extend(_this.options, props || {});\n return _this;\n }\n ODataAdaptor.prototype.getModuleName = function () {\n return 'ODataAdaptor';\n };\n /**\n * Generate request string based on the filter criteria from query.\n * @param {Predicate} pred\n * @param {boolean} requiresCast?\n */\n ODataAdaptor.prototype.onPredicate = function (predicate, query, requiresCast) {\n var returnValue = '';\n var operator;\n var guid;\n var val = predicate.value;\n var type = typeof val;\n var field = predicate.field ? ODataAdaptor.getField(predicate.field) : null;\n if (val instanceof Date) {\n val = 'datetime\\'' + DataUtil.parse.replacer(val) + '\\'';\n }\n if (type === 'string') {\n val = val.replace(/'/g, \"''\");\n if (predicate.ignoreCase) {\n val = val.toLowerCase();\n }\n val = encodeURIComponent(val);\n val = '\\'' + val + '\\'';\n if (requiresCast) {\n field = 'cast(' + field + ', \\'Edm.String\\')';\n }\n if (DataUtil.parse.isGuid(val)) {\n guid = 'guid';\n }\n if (predicate.ignoreCase) {\n if (!guid) {\n field = 'tolower(' + field + ')';\n }\n val = val.toLowerCase();\n }\n }\n operator = DataUtil.odBiOperator[predicate.operator];\n if (operator) {\n returnValue += field;\n returnValue += operator;\n if (guid) {\n returnValue += guid;\n }\n return returnValue + val;\n }\n if (!isNullOrUndefined(this.getModuleName) && this.getModuleName() === 'ODataV4Adaptor') {\n operator = DataUtil.odv4UniOperator[predicate.operator];\n }\n else {\n operator = DataUtil.odUniOperator[predicate.operator];\n }\n if (operator === 'substringof') {\n var temp = val;\n val = field;\n field = temp;\n }\n returnValue += operator + '(';\n returnValue += field + ',';\n if (guid) {\n returnValue += guid;\n }\n returnValue += val + ')';\n return returnValue;\n };\n ODataAdaptor.prototype.addParams = function (options) {\n _super.prototype.addParams.call(this, options);\n delete options.reqParams.params;\n };\n /**\n * Generate request string based on the multiple filter criteria from query.\n * @param {Predicate} pred\n * @param {boolean} requiresCast?\n */\n ODataAdaptor.prototype.onComplexPredicate = function (predicate, query, requiresCast) {\n var res = [];\n for (var i = 0; i < predicate.predicates.length; i++) {\n res.push('(' + this.onEachWhere(predicate.predicates[i], query, requiresCast) + ')');\n }\n return res.join(' ' + predicate.condition + ' ');\n };\n /**\n * Generate query string based on the multiple filter criteria from query.\n * @param {Predicate} filter\n * @param {boolean} requiresCast?\n */\n ODataAdaptor.prototype.onEachWhere = function (filter, query, requiresCast) {\n return filter.isComplex ? this.onComplexPredicate(filter, query, requiresCast) : this.onPredicate(filter, query, requiresCast);\n };\n /**\n * Generate query string based on the multiple filter criteria from query.\n * @param {string[]} filters\n */\n ODataAdaptor.prototype.onWhere = function (filters) {\n if (this.pvt.search) {\n filters.push(this.onEachWhere(this.pvt.search, null, true));\n }\n return filters.join(' and ');\n };\n /**\n * Generate query string based on the multiple search criteria from query.\n * @param {{fields:string[]} e\n * @param {string} operator\n * @param {string} key\n * @param {boolean}} ignoreCase\n */\n ODataAdaptor.prototype.onEachSearch = function (e) {\n if (e.fields && e.fields.length === 0) {\n DataUtil.throwError('Query() - Search : oData search requires list of field names to search');\n }\n var filter = this.pvt.search || [];\n for (var i = 0; i < e.fields.length; i++) {\n filter.push(new Predicate(e.fields[i], e.operator, e.key, e.ignoreCase));\n }\n this.pvt.search = filter;\n };\n /**\n * Generate query string based on the search criteria from query.\n * @param {Object} e\n */\n ODataAdaptor.prototype.onSearch = function (e) {\n this.pvt.search = Predicate.or(this.pvt.search);\n return '';\n };\n /**\n * Generate query string based on multiple sort criteria from query.\n * @param {QueryOptions} e\n */\n ODataAdaptor.prototype.onEachSort = function (e) {\n var res = [];\n if (e.name instanceof Array) {\n for (var i = 0; i < e.name.length; i++) {\n res.push(ODataAdaptor.getField(e.name[i]) + (e.direction === 'descending' ? ' desc' : ''));\n }\n }\n else {\n res.push(ODataAdaptor.getField(e.name) + (e.direction === 'descending' ? ' desc' : ''));\n }\n return res.join(',');\n };\n /**\n * Returns sort query string.\n * @param {string[]} e\n */\n ODataAdaptor.prototype.onSortBy = function (e) {\n return e.reverse().join(',');\n };\n /**\n * Adds the group query to the adaptor option.\n * @param {Object[]} e\n * @returns string\n */\n ODataAdaptor.prototype.onGroup = function (e) {\n this.pvt.groups = e;\n return [];\n };\n /**\n * Returns the select query string.\n * @param {string[]} e\n */\n ODataAdaptor.prototype.onSelect = function (e) {\n for (var i = 0; i < e.length; i++) {\n e[i] = ODataAdaptor.getField(e[i]);\n }\n return e.join(',');\n };\n /**\n * Add the aggregate query to the adaptor option.\n * @param {Object[]} e\n * @returns string\n */\n ODataAdaptor.prototype.onAggregates = function (e) {\n this.pvt.aggregates = e;\n return '';\n };\n /**\n * Returns the query string which requests total count from the data source.\n * @param {boolean} e\n * @returns string\n */\n ODataAdaptor.prototype.onCount = function (e) {\n return e === true ? 'allpages' : '';\n };\n /**\n * Method will trigger before send the request to server side.\n * Used to set the custom header or modify the request options.\n * @param {DataManager} dm\n * @param {XMLHttpRequest} request\n * @param {Ajax} settings?\n */\n ODataAdaptor.prototype.beforeSend = function (dm, request, settings) {\n if (DataUtil.endsWith(settings.url, this.options.batch) && settings.type.toLowerCase() === 'post') {\n request.setRequestHeader('Accept', this.options.multipartAccept);\n request.setRequestHeader('DataServiceVersion', '2.0');\n request.overrideMimeType('text/plain; charset=x-user-defined');\n }\n else {\n request.setRequestHeader('Accept', this.options.accept);\n }\n request.setRequestHeader('DataServiceVersion', '2.0');\n request.setRequestHeader('MaxDataServiceVersion', '2.0');\n };\n /**\n * Returns the data from the query processing.\n * @param {DataResult} data\n * @param {DataOptions} ds?\n * @param {Query} query?\n * @param {XMLHttpRequest} xhr?\n * @param {Ajax} request?\n * @param {CrudOptions} changes?\n * @returns aggregateResult\n */\n ODataAdaptor.prototype.processResponse = function (data, ds, query, xhr, request, changes) {\n var metaCheck = 'odata.metadata';\n if ((request && request.type === 'GET') && !this.rootUrl && data[metaCheck]) {\n var dataUrls = data[metaCheck].split('/$metadata#');\n this.rootUrl = dataUrls[0];\n this.resourceTableName = dataUrls[1];\n }\n var pvtData = 'pvtData';\n if (!isNullOrUndefined(data.d)) {\n var dataCopy = ((query && query.isCountRequired) ? data.d.results : data.d);\n var metaData = '__metadata';\n if (!isNullOrUndefined(dataCopy)) {\n for (var i = 0; i < dataCopy.length; i++) {\n if (!isNullOrUndefined(dataCopy[i][metaData])) {\n delete dataCopy[i][metaData];\n }\n }\n }\n }\n var pvt = request && request[pvtData];\n var emptyAndBatch = this.processBatchResponse(data, query, xhr, request, changes);\n if (emptyAndBatch) {\n return emptyAndBatch;\n }\n var versionCheck = xhr && request.getResponseHeader('DataServiceVersion');\n var count = null;\n var version = (versionCheck && parseInt(versionCheck, 10)) || 2;\n if (query && query.isCountRequired) {\n var oDataCount = '__count';\n if (data[oDataCount] || data['odata.count']) {\n count = data[oDataCount] || data['odata.count'];\n }\n if (data.d) {\n data = data.d;\n }\n if (data[oDataCount] || data['odata.count']) {\n count = data[oDataCount] || data['odata.count'];\n }\n }\n if (version === 3 && data.value) {\n data = data.value;\n }\n if (data.d) {\n data = data.d;\n }\n if (version < 3 && data.results) {\n data = data.results;\n }\n var args = {};\n args.count = count;\n args.result = data;\n this.getAggregateResult(pvt, data, args, null, query);\n return DataUtil.isNull(count) ? args.result : { result: args.result, count: args.count, aggregates: args.aggregates };\n };\n /**\n * Converts the request object to query string.\n * @param {Object} req\n * @param {Query} query\n * @param {DataManager} dm\n * @returns tableName\n */\n ODataAdaptor.prototype.convertToQueryString = function (request, query, dm) {\n var res = [];\n var table = 'table';\n var tableName = request[table] || '';\n var format = '$format';\n delete request[table];\n if (dm.dataSource.requiresFormat) {\n request[format] = 'json';\n }\n var keys = Object.keys(request);\n for (var _i = 0, keys_4 = keys; _i < keys_4.length; _i++) {\n var prop = keys_4[_i];\n res.push(prop + '=' + request[prop]);\n }\n res = res.join('&');\n if (dm.dataSource.url && dm.dataSource.url.indexOf('?') !== -1 && !tableName) {\n return res;\n }\n return res.length ? tableName + '?' + res : tableName || '';\n };\n ODataAdaptor.prototype.localTimeReplacer = function (key, convertObj) {\n for (var _i = 0, _a = !isNullOrUndefined(convertObj) ? Object.keys(convertObj) : []; _i < _a.length; _i++) {\n var prop = _a[_i];\n if ((convertObj[prop] instanceof Date)) {\n convertObj[prop] = DataUtil.dateParse.toLocalTime(convertObj[prop]);\n }\n }\n return convertObj;\n };\n /**\n * Prepare and returns request body which is used to insert a new record in the table.\n * @param {DataManager} dm\n * @param {Object} data\n * @param {string} tableName?\n */\n ODataAdaptor.prototype.insert = function (dm, data, tableName) {\n return {\n url: (dm.dataSource.insertUrl || dm.dataSource.url).replace(/\\/*$/, tableName ? '/' + tableName : ''),\n data: JSON.stringify(data, this.options.localTime ? this.localTimeReplacer : null)\n };\n };\n /**\n * Prepare and return request body which is used to remove record from the table.\n * @param {DataManager} dm\n * @param {string} keyField\n * @param {number} value\n * @param {string} tableName?\n */\n ODataAdaptor.prototype.remove = function (dm, keyField, value, tableName) {\n var url;\n if (typeof value === 'string' && !DataUtil.parse.isGuid(value)) {\n url = \"('\" + value + \"')\";\n }\n else {\n url = \"(\" + value + \")\";\n }\n return {\n type: 'DELETE',\n url: (dm.dataSource.removeUrl || dm.dataSource.url).replace(/\\/*$/, tableName ? '/' + tableName : '') + url\n };\n };\n /**\n * Updates existing record and saves the changes to the table.\n * @param {DataManager} dm\n * @param {string} keyField\n * @param {Object} value\n * @param {string} tableName?\n * @returns this\n */\n ODataAdaptor.prototype.update = function (dm, keyField, value, tableName, query, original) {\n if (this.options.updateType === 'PATCH' && !isNullOrUndefined(original)) {\n value = this.compareAndRemove(value, original, keyField);\n }\n var url;\n if (typeof value[keyField] === 'string' && !DataUtil.parse.isGuid(value[keyField])) {\n url = \"('\" + value[keyField] + \"')\";\n }\n else {\n url = \"(\" + value[keyField] + \")\";\n }\n return {\n type: this.options.updateType,\n url: (dm.dataSource.updateUrl || dm.dataSource.url).replace(/\\/*$/, tableName ? '/' + tableName : '') + url,\n data: JSON.stringify(value, this.options.localTime ? this.localTimeReplacer : null),\n accept: this.options.accept\n };\n };\n /**\n * Prepare the request body based on the newly added, removed and updated records.\n * The result is used by the batch request.\n * @param {DataManager} dm\n * @param {CrudOptions} changes\n * @param {RemoteArgs} e\n * @returns {Object}\n */\n ODataAdaptor.prototype.batchRequest = function (dm, changes, e, query, original) {\n var initialGuid = e.guid = DataUtil.getGuid(this.options.batchPre);\n var url = this.rootUrl ? this.rootUrl + '/' + this.options.batch :\n dm.dataSource.url.replace(/\\/*$/, '/' + this.options.batch);\n e.url = this.resourceTableName ? this.resourceTableName : e.url;\n var args = {\n url: e.url,\n key: e.key,\n cid: 1,\n cSet: DataUtil.getGuid(this.options.changeSet)\n };\n var req = '--' + initialGuid + '\\n';\n req += 'Content-Type: multipart/mixed; boundary=' + args.cSet.replace('--', '') + '\\n';\n this.pvt.changeSet = 0;\n req += this.generateInsertRequest(changes.addedRecords, args, dm);\n req += this.generateUpdateRequest(changes.changedRecords, args, dm, original ? original.changedRecords : []);\n req += this.generateDeleteRequest(changes.deletedRecords, args, dm);\n req += args.cSet + '--\\n';\n req += '--' + initialGuid + '--';\n return {\n type: 'POST',\n url: url,\n dataType: 'json',\n contentType: 'multipart/mixed; charset=UTF-8;boundary=' + initialGuid,\n data: req\n };\n };\n /**\n * Generate the string content from the removed records.\n * The result will be send during batch update.\n * @param {Object[]} arr\n * @param {RemoteArgs} e\n * @returns this\n */\n ODataAdaptor.prototype.generateDeleteRequest = function (arr, e, dm) {\n if (!arr) {\n return '';\n }\n var req = '';\n var stat = {\n 'method': 'DELETE ',\n 'url': function (data, i, key) {\n var url = DataUtil.getObject(key, data[i]);\n if (typeof url === 'number' || DataUtil.parse.isGuid(url)) {\n return '(' + url + ')';\n }\n else if (url instanceof Date) {\n var dateTime = data[i][key];\n return '(' + dateTime.toJSON() + ')';\n }\n else {\n return \"('\" + url + \"')\";\n }\n },\n 'data': function (data, i) { return ''; }\n };\n req = this.generateBodyContent(arr, e, stat, dm);\n return req + '\\n';\n };\n /**\n * Generate the string content from the inserted records.\n * The result will be send during batch update.\n * @param {Object[]} arr\n * @param {RemoteArgs} e\n */\n ODataAdaptor.prototype.generateInsertRequest = function (arr, e, dm) {\n if (!arr) {\n return '';\n }\n var req = '';\n var stat = {\n 'method': 'POST ',\n 'url': function (data, i, key) { return ''; },\n 'data': function (data, i) { return JSON.stringify(data[i]) + '\\n\\n'; }\n };\n req = this.generateBodyContent(arr, e, stat, dm);\n return req;\n };\n /**\n * Generate the string content from the updated records.\n * The result will be send during batch update.\n * @param {Object[]} arr\n * @param {RemoteArgs} e\n */\n ODataAdaptor.prototype.generateUpdateRequest = function (arr, e, dm, org) {\n var _this = this;\n if (!arr) {\n return '';\n }\n var req = '';\n arr.forEach(function (change) { return change = _this.compareAndRemove(change, org.filter(function (o) { return DataUtil.getObject(e.key, o) === DataUtil.getObject(e.key, change); })[0], e.key); });\n var stat = {\n 'method': this.options.updateType + ' ',\n 'url': function (data, i, key) {\n if (typeof data[i][key] === 'number' || DataUtil.parse.isGuid(data[i][key])) {\n return '(' + data[i][key] + ')';\n }\n else if (data[i][key] instanceof Date) {\n var date = data[i][key];\n return '(' + date.toJSON() + ')';\n }\n else {\n return \"('\" + data[i][key] + \"')\";\n }\n },\n 'data': function (data, i) { return JSON.stringify(data[i]) + '\\n\\n'; }\n };\n req = this.generateBodyContent(arr, e, stat, dm);\n return req;\n };\n ODataAdaptor.getField = function (prop) {\n return prop.replace(/\\./g, '/');\n };\n ODataAdaptor.prototype.generateBodyContent = function (arr, e, stat, dm) {\n var req = '';\n for (var i = 0; i < arr.length; i++) {\n req += '\\n' + e.cSet + '\\n';\n req += this.options.changeSetContent + '\\n\\n';\n req += stat.method;\n if (stat.method === 'POST ') {\n req += (dm.dataSource.insertUrl || dm.dataSource.crudUrl || e.url) + stat.url(arr, i, e.key) + ' HTTP/1.1\\n';\n }\n else if (stat.method === 'PUT ' || stat.method === 'PATCH ') {\n req += (dm.dataSource.updateUrl || dm.dataSource.crudUrl || e.url) + stat.url(arr, i, e.key) + ' HTTP/1.1\\n';\n }\n else if (stat.method === 'DELETE ') {\n req += (dm.dataSource.removeUrl || dm.dataSource.crudUrl || e.url) + stat.url(arr, i, e.key) + ' HTTP/1.1\\n';\n }\n req += 'Accept: ' + this.options.accept + '\\n';\n req += 'Content-Id: ' + this.pvt.changeSet++ + '\\n';\n req += this.options.batchChangeSetContentType + '\\n';\n if (!isNullOrUndefined(arr[i]['@odata.etag'])) {\n req += 'If-Match: ' + arr[i]['@odata.etag'] + '\\n\\n';\n delete arr[i]['@odata.etag'];\n }\n else {\n req += '\\n';\n }\n req += stat.data(arr, i);\n }\n return req;\n };\n ODataAdaptor.prototype.processBatchResponse = function (data, query, xhr, request, changes) {\n if (xhr && xhr.getResponseHeader('Content-Type') && xhr.getResponseHeader('Content-Type').indexOf('xml') !== -1) {\n return (query.isCountRequired ? { result: [], count: 0 } : []);\n }\n if (request && this.options.batch && DataUtil.endsWith(request.url, this.options.batch) && request.type.toLowerCase() === 'post') {\n var guid = xhr.getResponseHeader('Content-Type');\n var cIdx = void 0;\n var jsonObj = void 0;\n var d = data + '';\n guid = guid.substring(guid.indexOf('=batchresponse') + 1);\n d = d.split(guid);\n if (d.length < 2) {\n return {};\n }\n d = d[1];\n var exVal = /(?:\\bContent-Type.+boundary=)(changesetresponse.+)/i.exec(d);\n if (exVal) {\n d.replace(exVal[0], '');\n }\n var changeGuid = exVal ? exVal[1] : '';\n d = d.split(changeGuid);\n for (var i = d.length; i > -1; i--) {\n if (!/\\bContent-ID:/i.test(d[i]) || !/\\bHTTP.+201/.test(d[i])) {\n continue;\n }\n cIdx = parseInt(/\\bContent-ID: (\\d+)/i.exec(d[i])[1], 10);\n if (changes.addedRecords[cIdx]) {\n jsonObj = DataUtil.parse.parseJson(/^\\{.+\\}/m.exec(d[i])[0]);\n extend({}, changes.addedRecords[cIdx], this.processResponse(jsonObj));\n }\n }\n return changes;\n }\n return null;\n };\n ODataAdaptor.prototype.compareAndRemove = function (data, original, key) {\n var _this = this;\n if (isNullOrUndefined(original)) {\n return data;\n }\n Object.keys(data).forEach(function (prop) {\n if (prop !== key && prop !== '@odata.etag') {\n if (DataUtil.isPlainObject(data[prop])) {\n _this.compareAndRemove(data[prop], original[prop]);\n var final = Object.keys(data[prop]).filter(function (data) { return data !== '@odata.etag'; });\n if (final.length === 0) {\n delete data[prop];\n }\n }\n else if (data[prop] === original[prop]) {\n delete data[prop];\n }\n else if (data[prop] && original[prop] && data[prop].valueOf() === original[prop].valueOf()) {\n delete data[prop];\n }\n }\n });\n return data;\n };\n return ODataAdaptor;\n}(UrlAdaptor));\nexport { ODataAdaptor };\n/**\n * The OData v4 is an improved version of OData protocols.\n * The DataManager uses the ODataV4Adaptor to consume OData v4 services.\n * @hidden\n */\nvar ODataV4Adaptor = /** @class */ (function (_super) {\n __extends(ODataV4Adaptor, _super);\n function ODataV4Adaptor(props) {\n var _this = _super.call(this, props) || this;\n // options replaced the default adaptor options\n _this.options = extend({}, _this.options, {\n requestType: 'get',\n accept: 'application/json, text/javascript, */*; q=0.01',\n multipartAccept: 'multipart/mixed',\n sortBy: '$orderby',\n select: '$select',\n skip: '$skip',\n take: '$top',\n count: '$count',\n search: '$search',\n where: '$filter',\n expand: '$expand',\n batch: '$batch',\n changeSet: '--changeset_',\n batchPre: 'batch_',\n contentId: 'Content-Id: ',\n batchContent: 'Content-Type: multipart/mixed; boundary=',\n changeSetContent: 'Content-Type: application/http\\nContent-Transfer-Encoding: binary ',\n batchChangeSetContentType: 'Content-Type: application/json; charset=utf-8 ',\n updateType: 'PATCH',\n localTime: false,\n apply: '$apply'\n });\n extend(_this.options, props || {});\n return _this;\n }\n /**\n * @hidden\n */\n ODataV4Adaptor.prototype.getModuleName = function () {\n return 'ODataV4Adaptor';\n };\n /**\n * Returns the query string which requests total count from the data source.\n * @param {boolean} e\n * @returns string\n */\n ODataV4Adaptor.prototype.onCount = function (e) {\n return e === true ? 'true' : '';\n };\n /**\n * Generate request string based on the filter criteria from query.\n * @param {Predicate} pred\n * @param {boolean} requiresCast?\n */\n ODataV4Adaptor.prototype.onPredicate = function (predicate, query, requiresCast) {\n var returnValue = '';\n var val = predicate.value;\n var isDate = val instanceof Date;\n if (query instanceof Query) {\n var queries = this.getQueryRequest(query);\n for (var i = 0; i < queries.filters.length; i++) {\n if (queries.filters[i].e.key === predicate.value) {\n requiresCast = true;\n }\n }\n }\n returnValue = _super.prototype.onPredicate.call(this, predicate, query, requiresCast);\n if (isDate) {\n returnValue = returnValue.replace(/datetime'(.*)'$/, '$1');\n }\n if (DataUtil.parse.isGuid(val)) {\n returnValue = returnValue.replace('guid', '').replace(/'/g, '');\n }\n return returnValue;\n };\n /**\n * Generate query string based on the multiple search criteria from query.\n * @param {{fields:string[]} e\n * @param {string} operator\n * @param {string} key\n * @param {boolean}} ignoreCase\n */\n ODataV4Adaptor.prototype.onEachSearch = function (e) {\n var search = this.pvt.searches || [];\n search.push(e.key);\n this.pvt.searches = search;\n };\n /**\n * Generate query string based on the search criteria from query.\n * @param {Object} e\n */\n ODataV4Adaptor.prototype.onSearch = function (e) {\n return this.pvt.searches.join(' OR ');\n };\n /**\n * Returns the expand query string.\n * @param {string} e\n */\n ODataV4Adaptor.prototype.onExpand = function (e) {\n var _this = this;\n var selected = {};\n var expanded = {};\n var expands = e.expands.slice();\n var exArr = [];\n var selects = e.selects.filter(function (item) { return item.indexOf('.') > -1; });\n selects.forEach(function (select) {\n var splits = select.split('.');\n if (!(splits[0] in selected)) {\n selected[splits[0]] = [];\n }\n if (splits.length == 2) {\n if (selected[splits[0]].length && Object.keys(selected).indexOf(splits[0]) !== -1) {\n if (selected[splits[0]][0].indexOf('$expand') !== -1 && selected[splits[0]][0].indexOf(';$select=') === -1) {\n selected[splits[0]][0] = selected[splits[0]][0] + ';' + '$select=' + splits[1];\n }\n else {\n selected[splits[0]][0] = selected[splits[0]][0] + ',' + splits[1];\n }\n }\n else {\n selected[splits[0]].push('$select=' + splits[1]);\n }\n }\n else {\n var sel = '$select=' + splits[splits.length - 1];\n var exp = '';\n var close_1 = '';\n for (var i = 1; i < splits.length - 1; i++) {\n exp = exp + '$expand=' + splits[i] + '(';\n close_1 = close_1 + ')';\n }\n var combineVal = exp + sel + close_1;\n if (selected[splits[0]].length && Object.keys(selected).indexOf(splits[0]) !== -1 &&\n _this.expandQueryIndex(selected[splits[0]], true)) {\n var idx = _this.expandQueryIndex(selected[splits[0]]);\n selected[splits[0]][idx] = selected[splits[0]][idx] + combineVal.replace('$expand=', ',');\n }\n else {\n selected[splits[0]].push(combineVal);\n }\n }\n });\n //Auto expand from select query\n Object.keys(selected).forEach(function (expand) {\n if ((expands.indexOf(expand) === -1)) {\n expands.push(expand);\n }\n });\n expands.forEach(function (expand) {\n expanded[expand] = expand in selected ? expand + \"(\" + selected[expand].join(';') + \")\" : expand;\n });\n Object.keys(expanded).forEach(function (ex) { return exArr.push(expanded[ex]); });\n return exArr.join(',');\n };\n ODataV4Adaptor.prototype.expandQueryIndex = function (query, isExpand) {\n for (var i = 0; i < query.length; i++) {\n if (query[i].indexOf('$expand') !== -1) {\n return isExpand ? true : i;\n }\n }\n return isExpand ? false : 0;\n };\n /**\n * Returns the groupby query string.\n * @param {string} e\n */\n ODataV4Adaptor.prototype.onDistinct = function (distinctFields) {\n var fields = distinctFields.map(function (field) { return ODataAdaptor.getField(field); }).join(',');\n return \"groupby((\" + fields + \"))\";\n };\n /**\n * Returns the select query string.\n * @param {string[]} e\n */\n ODataV4Adaptor.prototype.onSelect = function (e) {\n return _super.prototype.onSelect.call(this, e.filter(function (item) { return item.indexOf('.') === -1; }));\n };\n /**\n * Method will trigger before send the request to server side.\n * Used to set the custom header or modify the request options.\n * @param {DataManager} dm\n * @param {XMLHttpRequest} request\n * @param {Ajax} settings\n * @returns void\n */\n ODataV4Adaptor.prototype.beforeSend = function (dm, request, settings) {\n if (settings.type === 'POST' || settings.type === 'PUT' || settings.type === 'PATCH') {\n request.setRequestHeader('Prefer', 'return=representation');\n }\n request.setRequestHeader('Accept', this.options.accept);\n };\n /**\n * Returns the data from the query processing.\n * @param {DataResult} data\n * @param {DataOptions} ds?\n * @param {Query} query?\n * @param {XMLHttpRequest} xhr?\n * @param {Ajax} request?\n * @param {CrudOptions} changes?\n * @returns aggregateResult\n */\n ODataV4Adaptor.prototype.processResponse = function (data, ds, query, xhr, request, changes) {\n var metaName = '@odata.context';\n if ((request && request.type === 'GET') && !this.rootUrl && data[metaName]) {\n var dataUrl = data[metaName].split('/$metadata#');\n this.rootUrl = dataUrl[0];\n this.resourceTableName = dataUrl[1];\n }\n var pvtData = 'pvtData';\n var pvt = request && request[pvtData];\n var emptyAndBatch = _super.prototype.processBatchResponse.call(this, data, query, xhr, request, changes);\n if (emptyAndBatch) {\n return emptyAndBatch;\n }\n var count = null;\n var dataCount = '@odata.count';\n if (query && query.isCountRequired) {\n if (dataCount in data) {\n count = data[dataCount];\n }\n }\n data = !isNullOrUndefined(data.value) ? data.value : data;\n var args = {};\n args.count = count;\n args.result = data;\n this.getAggregateResult(pvt, data, args, null, query);\n return DataUtil.isNull(count) ? args.result : { result: args.result, count: count, aggregates: args.aggregates };\n };\n return ODataV4Adaptor;\n}(ODataAdaptor));\nexport { ODataV4Adaptor };\n/**\n * The Web API is a programmatic interface to define the request and response messages system that is mostly exposed in JSON or XML.\n * The DataManager uses the WebApiAdaptor to consume Web API.\n * Since this adaptor is targeted to interact with Web API created using OData endpoint, it is extended from ODataAdaptor\n * @hidden\n */\nvar WebApiAdaptor = /** @class */ (function (_super) {\n __extends(WebApiAdaptor, _super);\n function WebApiAdaptor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n WebApiAdaptor.prototype.getModuleName = function () {\n return 'WebApiAdaptor';\n };\n /**\n * Prepare and returns request body which is used to insert a new record in the table.\n * @param {DataManager} dm\n * @param {Object} data\n * @param {string} tableName?\n */\n WebApiAdaptor.prototype.insert = function (dm, data, tableName) {\n return {\n type: 'POST',\n url: dm.dataSource.url,\n data: JSON.stringify(data)\n };\n };\n /**\n * Prepare and return request body which is used to remove record from the table.\n * @param {DataManager} dm\n * @param {string} keyField\n * @param {number} value\n * @param {string} tableName?\n */\n WebApiAdaptor.prototype.remove = function (dm, keyField, value, tableName) {\n return {\n type: 'DELETE',\n url: dm.dataSource.url + '/' + value,\n data: JSON.stringify(value)\n };\n };\n /**\n * Prepare and return request body which is used to update record.\n * @param {DataManager} dm\n * @param {string} keyField\n * @param {Object} value\n * @param {string} tableName?\n */\n WebApiAdaptor.prototype.update = function (dm, keyField, value, tableName) {\n return {\n type: 'PUT',\n url: dm.dataSource.url,\n data: JSON.stringify(value)\n };\n };\n WebApiAdaptor.prototype.batchRequest = function (dm, changes, e) {\n var _this = this;\n var initialGuid = e.guid = DataUtil.getGuid(this.options.batchPre);\n var url = dm.dataSource.url.replace(/\\/*$/, '/' + this.options.batch);\n e.url = this.resourceTableName ? this.resourceTableName : e.url;\n var req = [];\n var _loop_1 = function (i, x) {\n changes.addedRecords.forEach(function (j, d) {\n var stat = {\n 'method': 'POST ',\n 'url': function (data, i, key) { return ''; },\n 'data': function (data, i) { return JSON.stringify(data[i]) + '\\n\\n'; }\n };\n req.push('--' + initialGuid);\n req.push('Content-Type: application/http; msgtype=request', '');\n req.push('POST ' + '/api/' + (dm.dataSource.insertUrl || dm.dataSource.crudUrl || e.url)\n + stat.url(changes.addedRecords, i, e.key) + ' HTTP/1.1');\n req.push('Content-Type: ' + 'application/json; charset=utf-8');\n req.push('Host: ' + location.host);\n req.push('', j ? JSON.stringify(j) : '');\n });\n };\n //insertion\n for (var i = 0, x = changes.addedRecords.length; i < x; i++) {\n _loop_1(i, x);\n }\n var _loop_2 = function (i, x) {\n changes.changedRecords.forEach(function (j, d) {\n var stat = {\n 'method': _this.options.updateType + ' ',\n 'url': function (data, i, key) { return ''; },\n 'data': function (data, i) { return JSON.stringify(data[i]) + '\\n\\n'; }\n };\n req.push('--' + initialGuid);\n req.push('Content-Type: application/http; msgtype=request', '');\n req.push('PUT ' + '/api/' + (dm.dataSource.updateUrl || dm.dataSource.crudUrl || e.url)\n + stat.url(changes.changedRecords, i, e.key) + ' HTTP/1.1');\n req.push('Content-Type: ' + 'application/json; charset=utf-8');\n req.push('Host: ' + location.host);\n req.push('', j ? JSON.stringify(j) : '');\n });\n };\n //updation \n for (var i = 0, x = changes.changedRecords.length; i < x; i++) {\n _loop_2(i, x);\n }\n var _loop_3 = function (i, x) {\n changes.deletedRecords.forEach(function (j, d) {\n var state = {\n 'mtd': 'DELETE ',\n 'url': function (data, i, key) {\n var url = DataUtil.getObject(key, data[i]);\n if (typeof url === 'number' || DataUtil.parse.isGuid(url)) {\n return '/' + url;\n }\n else if (url instanceof Date) {\n var datTime = data[i][key];\n return '/' + datTime.toJSON();\n }\n else {\n return \"/'\" + url + \"'\";\n }\n },\n 'data': function (data, i) { return ''; }\n };\n req.push('--' + initialGuid);\n req.push('Content-Type: application/http; msgtype=request', '');\n req.push('DELETE ' + '/api/' + (dm.dataSource.removeUrl || dm.dataSource.crudUrl || e.url)\n + state.url(changes.deletedRecords, i, e.key) + ' HTTP/1.1');\n req.push('Content-Type: ' + 'application/json; charset=utf-8');\n req.push('Host: ' + location.host);\n req.push('', j ? JSON.stringify(j) : '');\n });\n };\n //deletion\n for (var i = 0, x = changes.deletedRecords.length; i < x; i++) {\n _loop_3(i, x);\n }\n req.push('--' + initialGuid + '--', '');\n return {\n type: 'POST',\n url: url,\n contentType: 'multipart/mixed; boundary=' + initialGuid,\n data: req.join('\\r\\n')\n };\n };\n /**\n * Method will trigger before send the request to server side.\n * Used to set the custom header or modify the request options.\n * @param {DataManager} dm\n * @param {XMLHttpRequest} request\n * @param {Ajax} settings\n * @returns void\n */\n WebApiAdaptor.prototype.beforeSend = function (dm, request, settings) {\n request.setRequestHeader('Accept', 'application/json, text/javascript, */*; q=0.01');\n };\n /**\n * Returns the data from the query processing.\n * @param {DataResult} data\n * @param {DataOptions} ds?\n * @param {Query} query?\n * @param {XMLHttpRequest} xhr?\n * @param {Ajax} request?\n * @param {CrudOptions} changes?\n * @returns aggregateResult\n */\n WebApiAdaptor.prototype.processResponse = function (data, ds, query, xhr, request, changes) {\n var pvtData = 'pvtData';\n var pvt = request && request[pvtData];\n var count = null;\n var args = {};\n if (request && request.type.toLowerCase() !== 'post') {\n var versionCheck = xhr && request.getResponseHeader('DataServiceVersion');\n var version = (versionCheck && parseInt(versionCheck, 10)) || 2;\n if (query && query.isCountRequired) {\n if (!DataUtil.isNull(data.Count)) {\n count = data.Count;\n }\n }\n if (version < 3 && data.Items) {\n data = data.Items;\n }\n args.count = count;\n args.result = data;\n this.getAggregateResult(pvt, data, args, null, query);\n }\n args.result = args.result || data;\n return DataUtil.isNull(count) ? args.result : { result: args.result, count: args.count, aggregates: args.aggregates };\n };\n return WebApiAdaptor;\n}(ODataAdaptor));\nexport { WebApiAdaptor };\n/**\n * WebMethodAdaptor can be used by DataManager to interact with web method.\n * @hidden\n */\nvar WebMethodAdaptor = /** @class */ (function (_super) {\n __extends(WebMethodAdaptor, _super);\n function WebMethodAdaptor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Prepare the request body based on the query.\n * The query information can be accessed at the WebMethod using variable named `value`.\n * @param {DataManager} dm\n * @param {Query} query\n * @param {Object[]} hierarchyFilters?\n * @returns application\n */\n WebMethodAdaptor.prototype.processQuery = function (dm, query, hierarchyFilters) {\n var obj = new UrlAdaptor().processQuery(dm, query, hierarchyFilters);\n var getData = 'data';\n var data = DataUtil.parse.parseJson(obj[getData]);\n var result = {};\n var value = 'value';\n if (data.param) {\n for (var i = 0; i < data.param.length; i++) {\n var param = data.param[i];\n var key = Object.keys(param)[0];\n result[key] = param[key];\n }\n }\n result[value] = data;\n var pvtData = 'pvtData';\n var url = 'url';\n return {\n data: JSON.stringify(result),\n url: obj[url],\n pvtData: obj[pvtData],\n type: 'POST',\n contentType: 'application/json; charset=utf-8'\n };\n };\n return WebMethodAdaptor;\n}(UrlAdaptor));\nexport { WebMethodAdaptor };\n/**\n * RemoteSaveAdaptor, extended from JsonAdaptor and it is used for binding local data and performs all DataManager queries in client-side.\n * It interacts with server-side only for CRUD operations.\n * @hidden\n */\nvar RemoteSaveAdaptor = /** @class */ (function (_super) {\n __extends(RemoteSaveAdaptor, _super);\n /**\n * @hidden\n */\n function RemoteSaveAdaptor() {\n var _this = _super.call(this) || this;\n setValue('beforeSend', UrlAdaptor.prototype.beforeSend, _this);\n return _this;\n }\n RemoteSaveAdaptor.prototype.insert = function (dm, data, tableName, query, position) {\n this.pvt.position = position;\n this.updateType = 'add';\n return {\n url: dm.dataSource.insertUrl || dm.dataSource.crudUrl || dm.dataSource.url,\n data: JSON.stringify(extend({}, {\n value: data,\n table: tableName,\n action: 'insert'\n }, DataUtil.getAddParams(this, dm, query)))\n };\n };\n RemoteSaveAdaptor.prototype.remove = function (dm, keyField, val, tableName, query) {\n _super.prototype.remove.call(this, dm, keyField, val);\n return {\n type: 'POST',\n url: dm.dataSource.removeUrl || dm.dataSource.crudUrl || dm.dataSource.url,\n data: JSON.stringify(extend({}, {\n key: val,\n keyColumn: keyField,\n table: tableName,\n action: 'remove'\n }, DataUtil.getAddParams(this, dm, query)))\n };\n };\n RemoteSaveAdaptor.prototype.update = function (dm, keyField, val, tableName, query) {\n this.updateType = 'update';\n this.updateKey = keyField;\n return {\n type: 'POST',\n url: dm.dataSource.updateUrl || dm.dataSource.crudUrl || dm.dataSource.url,\n data: JSON.stringify(extend({}, {\n value: val,\n action: 'update',\n keyColumn: keyField,\n key: val[keyField],\n table: tableName\n }, DataUtil.getAddParams(this, dm, query)))\n };\n };\n RemoteSaveAdaptor.prototype.processResponse = function (data, ds, query, xhr, request, changes, e) {\n var i;\n var newData = request ? JSON.parse(request.data) : data;\n data = newData.action === 'batch' ? DataUtil.parse.parseJson(data) : data;\n if (this.updateType === 'add') {\n _super.prototype.insert.call(this, ds, data, null, null, this.pvt.position);\n }\n if (this.updateType === 'update') {\n _super.prototype.update.call(this, ds, this.updateKey, data);\n }\n this.updateType = undefined;\n if (data.added) {\n for (i = 0; i < data.added.length; i++) {\n _super.prototype.insert.call(this, ds, data.added[i]);\n }\n }\n if (data.changed) {\n for (i = 0; i < data.changed.length; i++) {\n _super.prototype.update.call(this, ds, e.key, data.changed[i]);\n }\n }\n if (data.deleted) {\n for (i = 0; i < data.deleted.length; i++) {\n _super.prototype.remove.call(this, ds, e.key, data.deleted[i]);\n }\n }\n return data;\n };\n /**\n * Prepare the request body based on the newly added, removed and updated records.\n * Also perform the changes in the locally cached data to sync with the remote data.\n * The result is used by the batch request.\n * @param {DataManager} dm\n * @param {CrudOptions} changes\n * @param {RemoteArgs} e\n */\n RemoteSaveAdaptor.prototype.batchRequest = function (dm, changes, e, query, original) {\n return {\n type: 'POST',\n url: dm.dataSource.batchUrl || dm.dataSource.crudUrl || dm.dataSource.url,\n contentType: 'application/json; charset=utf-8',\n dataType: 'json',\n data: JSON.stringify(extend({}, {\n changed: changes.changedRecords,\n added: changes.addedRecords,\n deleted: changes.deletedRecords,\n action: 'batch',\n table: e.url,\n key: e.key\n }, DataUtil.getAddParams(this, dm, query)))\n };\n };\n RemoteSaveAdaptor.prototype.addParams = function (options) {\n var urlParams = new UrlAdaptor();\n urlParams.addParams(options);\n };\n return RemoteSaveAdaptor;\n}(JsonAdaptor));\nexport { RemoteSaveAdaptor };\n/**\n * Ajax Adaptor that is extended from URL Adaptor, is used for handle data operations with user defined functions.\n * @hidden\n */\nvar CustomDataAdaptor = /** @class */ (function (_super) {\n __extends(CustomDataAdaptor, _super);\n function CustomDataAdaptor(props) {\n var _this = _super.call(this) || this;\n // options replaced the default adaptor options\n _this.options = extend({}, _this.options, {\n getData: new Function(),\n addRecord: new Function(),\n updateRecord: new Function(),\n deleteRecord: new Function(),\n batchUpdate: new Function()\n });\n extend(_this.options, props || {});\n return _this;\n }\n CustomDataAdaptor.prototype.getModuleName = function () {\n return 'CustomDataAdaptor';\n };\n return CustomDataAdaptor;\n}(UrlAdaptor));\nexport { CustomDataAdaptor };\n/**\n * The GraphqlAdaptor that is extended from URL Adaptor, is used for retrieving data from the Graphql server.\n * It interacts with the Graphql server with all the DataManager Queries and performs CRUD operations.\n * @hidden\n */\nvar GraphQLAdaptor = /** @class */ (function (_super) {\n __extends(GraphQLAdaptor, _super);\n function GraphQLAdaptor(options) {\n var _this = _super.call(this) || this;\n _this.opt = options;\n _this.schema = _this.opt.response;\n _this.query = _this.opt.query;\n _this.getVariables = _this.opt.getVariables ? _this.opt.getVariables : function () { };\n _this.getQuery = function () { return _this.query; };\n return _this;\n }\n GraphQLAdaptor.prototype.getModuleName = function () {\n return 'GraphQLAdaptor';\n };\n /**\n * Process the JSON data based on the provided queries.\n * @param {DataManager} dm\n * @param {Query} query?\n */\n GraphQLAdaptor.prototype.processQuery = function (datamanager, query) {\n var urlQuery = _super.prototype.processQuery.apply(this, arguments);\n var dm = JSON.parse(urlQuery.data);\n // constructing GraphQL parameters\n var keys = ['skip', 'take', 'sorted', 'table', 'select', 'where',\n 'search', 'requiresCounts', 'aggregates', 'params'];\n var temp = {};\n var str = 'searchwhereparams';\n keys.filter(function (e) {\n temp[e] = str.indexOf(e) > -1 ? JSON.stringify(dm[e]) : dm[e];\n });\n var vars = this.getVariables() || {};\n vars['datamanager'] = temp;\n var data = JSON.stringify({\n query: this.getQuery(),\n variables: vars\n });\n urlQuery.data = data;\n return urlQuery;\n };\n /**\n * Returns the data from the query processing.\n * It will also cache the data for later usage.\n * @param {DataResult} data\n * @param {DataManager} ds?\n * @param {Query} query?\n * @param {XMLHttpRequest} xhr?\n * @param {Object} request?\n * @returns DataResult\n */\n GraphQLAdaptor.prototype.processResponse = function (resData, ds, query, xhr, request) {\n var res = resData;\n var count;\n var aggregates;\n var result = getValue(this.schema.result, res.data);\n if (this.schema.count) {\n count = getValue(this.schema.count, res.data);\n }\n if (this.schema.aggregates) {\n aggregates = getValue(this.schema.aggregates, res.data);\n aggregates = !isNullOrUndefined(aggregates) ? DataUtil.parse.parseJson(aggregates) : aggregates;\n }\n var pvt = request.pvtData || {};\n var args = { result: result, aggregates: aggregates };\n var data = args;\n if (pvt && pvt.groups && pvt.groups.length) {\n this.getAggregateResult(pvt, data, args, null, query);\n }\n return !isNullOrUndefined(count) ? { result: args.result, count: count, aggregates: aggregates } : args.result;\n };\n /**\n * Prepare and returns request body which is used to insert a new record in the table.\n */\n GraphQLAdaptor.prototype.insert = function () {\n var inserted = _super.prototype.insert.apply(this, arguments);\n return this.generateCrudData(inserted, 'insert');\n };\n /**\n * Prepare and returns request body which is used to update a new record in the table.\n */\n GraphQLAdaptor.prototype.update = function () {\n var inserted = _super.prototype.update.apply(this, arguments);\n return this.generateCrudData(inserted, 'update');\n };\n /**\n * Prepare and returns request body which is used to remove a new record in the table.\n */\n GraphQLAdaptor.prototype.remove = function () {\n var inserted = _super.prototype.remove.apply(this, arguments);\n return this.generateCrudData(inserted, 'remove');\n };\n /**\n * Prepare the request body based on the newly added, removed and updated records.\n * The result is used by the batch request.\n * @param {DataManager} dm\n * @param {CrudOptions} changes\n * @param {Object} e\n * @param {Query} query\n * @param {Object} original\n */\n GraphQLAdaptor.prototype.batchRequest = function (dm, changes, e, query, original) {\n var batch = _super.prototype.batchRequest.apply(this, arguments);\n var bData = JSON.parse(batch.data);\n bData.key = e.key;\n batch.data = JSON.stringify(bData);\n return this.generateCrudData(batch, 'batch');\n };\n GraphQLAdaptor.prototype.generateCrudData = function (crudData, action) {\n var parsed = JSON.parse(crudData.data);\n crudData.data = JSON.stringify({\n query: this.opt.getMutation(action),\n variables: parsed\n });\n return crudData;\n };\n return GraphQLAdaptor;\n}(UrlAdaptor));\nexport { GraphQLAdaptor };\n/**\n * Cache Adaptor is used to cache the data of the visited pages. It prevents new requests for the previously visited pages.\n * You can configure cache page size and duration of caching by using cachingPageSize and timeTillExpiration properties of the DataManager\n * @hidden\n */\nvar CacheAdaptor = /** @class */ (function (_super) {\n __extends(CacheAdaptor, _super);\n /**\n * Constructor for CacheAdaptor class.\n * @param {CacheAdaptor} adaptor?\n * @param {number} timeStamp?\n * @param {number} pageSize?\n * @hidden\n */\n function CacheAdaptor(adaptor, timeStamp, pageSize) {\n var _this = _super.call(this) || this;\n _this.isCrudAction = false;\n _this.isInsertAction = false;\n if (!isNullOrUndefined(adaptor)) {\n _this.cacheAdaptor = adaptor;\n }\n _this.pageSize = pageSize;\n _this.guidId = DataUtil.getGuid('cacheAdaptor');\n var obj = { keys: [], results: [] };\n window.localStorage.setItem(_this.guidId, JSON.stringify(obj));\n var guid = _this.guidId;\n if (!isNullOrUndefined(timeStamp)) {\n setInterval(function () {\n var data;\n data = DataUtil.parse.parseJson(window.localStorage.getItem(guid));\n var forDel = [];\n for (var i = 0; i < data.results.length; i++) {\n var currentTime = +new Date();\n var requestTime = +new Date(data.results[i].timeStamp);\n data.results[i].timeStamp = currentTime - requestTime;\n if (currentTime - requestTime > timeStamp) {\n forDel.push(i);\n }\n }\n for (var i = 0; i < forDel.length; i++) {\n data.results.splice(forDel[i], 1);\n data.keys.splice(forDel[i], 1);\n }\n window.localStorage.removeItem(guid);\n window.localStorage.setItem(guid, JSON.stringify(data));\n }, timeStamp);\n }\n return _this;\n }\n /**\n * It will generate the key based on the URL when we send a request to server.\n * @param {string} url\n * @param {Query} query?\n * @hidden\n */\n CacheAdaptor.prototype.generateKey = function (url, query) {\n var queries = this.getQueryRequest(query);\n var singles = Query.filterQueryLists(query.queries, ['onSelect', 'onPage', 'onSkip', 'onTake', 'onRange']);\n var key = url;\n var page = 'onPage';\n if (page in singles) {\n key += singles[page].pageIndex;\n }\n queries.sorts.forEach(function (obj) {\n key += obj.e.direction + obj.e.fieldName;\n });\n queries.groups.forEach(function (obj) {\n key += obj.e.fieldName;\n });\n queries.searches.forEach(function (obj) {\n key += obj.e.searchKey;\n });\n for (var filter = 0; filter < queries.filters.length; filter++) {\n var currentFilter = queries.filters[filter];\n if (currentFilter.e.isComplex) {\n var newQuery = query.clone();\n newQuery.queries = [];\n for (var i = 0; i < currentFilter.e.predicates.length; i++) {\n newQuery.queries.push({ fn: 'onWhere', e: currentFilter.e.predicates[i], filter: query.queries.filter });\n }\n key += currentFilter.e.condition + this.generateKey(url, newQuery);\n }\n else {\n key += currentFilter.e.field + currentFilter.e.operator + currentFilter.e.value;\n }\n }\n return key;\n };\n /**\n * Process the query to generate request body.\n * If the data is already cached, it will return the cached data.\n * @param {DataManager} dm\n * @param {Query} query?\n * @param {Object[]} hierarchyFilters?\n */\n CacheAdaptor.prototype.processQuery = function (dm, query, hierarchyFilters) {\n var key = this.generateKey(dm.dataSource.url, query);\n var cachedItems;\n cachedItems = DataUtil.parse.parseJson(window.localStorage.getItem(this.guidId));\n var data = cachedItems ? cachedItems.results[cachedItems.keys.indexOf(key)] : null;\n if (data != null && !this.isCrudAction && !this.isInsertAction) {\n return data;\n }\n this.isCrudAction = null;\n this.isInsertAction = null;\n return this.cacheAdaptor.processQuery.apply(this.cacheAdaptor, [].slice.call(arguments, 0));\n };\n /**\n * Returns the data from the query processing.\n * It will also cache the data for later usage.\n * @param {DataResult} data\n * @param {DataManager} ds?\n * @param {Query} query?\n * @param {XMLHttpRequest} xhr?\n * @param {Ajax} request?\n * @param {CrudOptions} changes?\n */\n CacheAdaptor.prototype.processResponse = function (data, ds, query, xhr, request, changes) {\n if (this.isInsertAction || (request && this.cacheAdaptor.options.batch &&\n DataUtil.endsWith(request.url, this.cacheAdaptor.options.batch) && request.type.toLowerCase() === 'post')) {\n return this.cacheAdaptor.processResponse(data, ds, query, xhr, request, changes);\n }\n data = this.cacheAdaptor.processResponse.apply(this.cacheAdaptor, [].slice.call(arguments, 0));\n var key = query ? this.generateKey(ds.dataSource.url, query) : ds.dataSource.url;\n var obj = {};\n obj = DataUtil.parse.parseJson(window.localStorage.getItem(this.guidId));\n var index = obj.keys.indexOf(key);\n if (index !== -1) {\n obj.results.splice(index, 1);\n obj.keys.splice(index, 1);\n }\n obj.results[obj.keys.push(key) - 1] = { keys: key, result: data.result, timeStamp: new Date(), count: data.count };\n while (obj.results.length > this.pageSize) {\n obj.results.splice(0, 1);\n obj.keys.splice(0, 1);\n }\n window.localStorage.setItem(this.guidId, JSON.stringify(obj));\n return data;\n };\n /**\n * Method will trigger before send the request to server side. Used to set the custom header or modify the request options.\n * @param {DataManager} dm\n * @param {XMLHttpRequest} request\n * @param {Ajax} settings?\n */\n CacheAdaptor.prototype.beforeSend = function (dm, request, settings) {\n if (!isNullOrUndefined(this.cacheAdaptor.options.batch) && DataUtil.endsWith(settings.url, this.cacheAdaptor.options.batch)\n && settings.type.toLowerCase() === 'post') {\n request.setRequestHeader('Accept', this.cacheAdaptor.options.multipartAccept);\n }\n if (!dm.dataSource.crossDomain) {\n request.setRequestHeader('Accept', this.cacheAdaptor.options.accept);\n }\n };\n /**\n * Updates existing record and saves the changes to the table.\n * @param {DataManager} dm\n * @param {string} keyField\n * @param {Object} value\n * @param {string} tableName\n */\n CacheAdaptor.prototype.update = function (dm, keyField, value, tableName) {\n this.isCrudAction = true;\n return this.cacheAdaptor.update(dm, keyField, value, tableName);\n };\n /**\n * Prepare and returns request body which is used to insert a new record in the table.\n * @param {DataManager} dm\n * @param {Object} data\n * @param {string} tableName?\n */\n CacheAdaptor.prototype.insert = function (dm, data, tableName) {\n this.isInsertAction = true;\n return this.cacheAdaptor.insert(dm, data, tableName);\n };\n /**\n * Prepare and return request body which is used to remove record from the table.\n * @param {DataManager} dm\n * @param {string} keyField\n * @param {Object} value\n * @param {string} tableName?\n */\n CacheAdaptor.prototype.remove = function (dm, keyField, value, tableName) {\n this.isCrudAction = true;\n return this.cacheAdaptor.remove(dm, keyField, value, tableName);\n };\n /**\n * Prepare the request body based on the newly added, removed and updated records.\n * The result is used by the batch request.\n * @param {DataManager} dm\n * @param {CrudOptions} changes\n * @param {RemoteArgs} e\n */\n CacheAdaptor.prototype.batchRequest = function (dm, changes, e) {\n return this.cacheAdaptor.batchRequest(dm, changes, e);\n };\n return CacheAdaptor;\n}(UrlAdaptor));\nexport { CacheAdaptor };\n","import { Ajax } from '@syncfusion/ej2-base';\nimport { extend, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { DataUtil } from './util';\nimport { Query } from './query';\nimport { ODataAdaptor, JsonAdaptor, CacheAdaptor, RemoteSaveAdaptor, CustomDataAdaptor } from './adaptors';\n/**\n * DataManager is used to manage and manipulate relational data.\n */\nvar DataManager = /** @class */ (function () {\n /**\n * Constructor for DataManager class\n * @param {DataOptions|JSON[]} dataSource?\n * @param {Query} query?\n * @param {AdaptorOptions|string} adaptor?\n * @hidden\n */\n function DataManager(dataSource, query, adaptor) {\n var _this = this;\n /** @hidden */\n this.dateParse = true;\n /** @hidden */\n this.timeZoneHandling = true;\n this.requests = [];\n if (!dataSource && !this.dataSource) {\n dataSource = [];\n }\n adaptor = adaptor || dataSource.adaptor;\n if (dataSource && dataSource.timeZoneHandling === false) {\n this.timeZoneHandling = dataSource.timeZoneHandling;\n }\n var data;\n if (dataSource instanceof Array) {\n data = {\n json: dataSource,\n offline: true\n };\n }\n else if (typeof dataSource === 'object') {\n if (!dataSource.json) {\n dataSource.json = [];\n }\n data = {\n url: dataSource.url,\n insertUrl: dataSource.insertUrl,\n removeUrl: dataSource.removeUrl,\n updateUrl: dataSource.updateUrl,\n crudUrl: dataSource.crudUrl,\n batchUrl: dataSource.batchUrl,\n json: dataSource.json,\n headers: dataSource.headers,\n accept: dataSource.accept,\n data: dataSource.data,\n timeTillExpiration: dataSource.timeTillExpiration,\n cachingPageSize: dataSource.cachingPageSize,\n enableCaching: dataSource.enableCaching,\n requestType: dataSource.requestType,\n key: dataSource.key,\n crossDomain: dataSource.crossDomain,\n jsonp: dataSource.jsonp,\n dataType: dataSource.dataType,\n offline: dataSource.offline !== undefined ? dataSource.offline\n : dataSource.adaptor instanceof RemoteSaveAdaptor || dataSource.adaptor instanceof CustomDataAdaptor ?\n false : dataSource.url ? false : true,\n requiresFormat: dataSource.requiresFormat\n };\n }\n else {\n DataUtil.throwError('DataManager: Invalid arguments');\n }\n if (data.requiresFormat === undefined && !DataUtil.isCors()) {\n data.requiresFormat = isNullOrUndefined(data.crossDomain) ? true : data.crossDomain;\n }\n if (data.dataType === undefined) {\n data.dataType = 'json';\n }\n this.dataSource = data;\n this.defaultQuery = query;\n if (data.url && data.offline && !data.json.length) {\n this.isDataAvailable = false;\n this.adaptor = adaptor || new ODataAdaptor();\n this.dataSource.offline = false;\n this.ready = this.executeQuery(query || new Query());\n this.ready.then(function (e) {\n _this.dataSource.offline = true;\n _this.isDataAvailable = true;\n data.json = e.result;\n _this.adaptor = new JsonAdaptor();\n });\n }\n else {\n this.adaptor = data.offline ? new JsonAdaptor() : new ODataAdaptor();\n }\n if (!data.jsonp && this.adaptor instanceof ODataAdaptor) {\n data.jsonp = 'callback';\n }\n this.adaptor = adaptor || this.adaptor;\n if (data.enableCaching) {\n this.adaptor = new CacheAdaptor(this.adaptor, data.timeTillExpiration, data.cachingPageSize);\n }\n return this;\n }\n /**\n * Overrides DataManager's default query with given query.\n * @param {Query} query - Defines the new default query.\n */\n DataManager.prototype.setDefaultQuery = function (query) {\n this.defaultQuery = query;\n return this;\n };\n /**\n * Executes the given query with local data source.\n * @param {Query} query - Defines the query to retrieve data.\n */\n DataManager.prototype.executeLocal = function (query) {\n if (!this.defaultQuery && !(query instanceof Query)) {\n DataUtil.throwError('DataManager - executeLocal() : A query is required to execute');\n }\n if (!this.dataSource.json) {\n DataUtil.throwError('DataManager - executeLocal() : Json data is required to execute');\n }\n query = query || this.defaultQuery;\n var result = this.adaptor.processQuery(this, query);\n if (query.subQuery) {\n var from = query.subQuery.fromTable;\n var lookup = query.subQuery.lookups;\n var res = query.isCountRequired ? result.result :\n result;\n if (lookup && lookup instanceof Array) {\n DataUtil.buildHierarchy(query.subQuery.fKey, from, res, lookup, query.subQuery.key);\n }\n for (var j = 0; j < res.length; j++) {\n if (res[j][from] instanceof Array) {\n res[j] = extend({}, {}, res[j]);\n res[j][from] = this.adaptor.processResponse(query.subQuery.using(new DataManager(res[j][from].slice(0))).executeLocal(), this, query);\n }\n }\n }\n return this.adaptor.processResponse(result, this, query);\n };\n /**\n * Executes the given query with either local or remote data source.\n * It will be executed as asynchronously and returns Promise object which will be resolved or rejected after action completed.\n * @param {Query|Function} query - Defines the query to retrieve data.\n * @param {Function} done - Defines the callback function and triggers when the Promise is resolved.\n * @param {Function} fail - Defines the callback function and triggers when the Promise is rejected.\n * @param {Function} always - Defines the callback function and triggers when the Promise is resolved or rejected.\n */\n DataManager.prototype.executeQuery = function (query, done, fail, always) {\n var _this = this;\n var makeRequest = 'makeRequest';\n if (typeof query === 'function') {\n always = fail;\n fail = done;\n done = query;\n query = null;\n }\n if (!query) {\n query = this.defaultQuery;\n }\n if (!(query instanceof Query)) {\n DataUtil.throwError('DataManager - executeQuery() : A query is required to execute');\n }\n var deffered = new Deferred();\n var args = { query: query };\n if (!this.dataSource.offline && (this.dataSource.url !== undefined && this.dataSource.url !== '')\n || (!isNullOrUndefined(this.adaptor[makeRequest])) || this.isCustomDataAdaptor(this.adaptor)) {\n var result = this.adaptor.processQuery(this, query);\n if (!isNullOrUndefined(this.adaptor[makeRequest])) {\n this.adaptor[makeRequest](result, deffered, args, query);\n }\n else if (!isNullOrUndefined(result.url) || this.isCustomDataAdaptor(this.adaptor)) {\n this.requests = [];\n this.makeRequest(result, deffered, args, query);\n }\n else {\n args = DataManager.getDeferedArgs(query, result, args);\n deffered.resolve(args);\n }\n }\n else {\n DataManager.nextTick(function () {\n var res = _this.executeLocal(query);\n args = DataManager.getDeferedArgs(query, res, args);\n deffered.resolve(args);\n });\n }\n if (done || fail) {\n deffered.promise.then(done, fail);\n }\n if (always) {\n deffered.promise.then(always, always);\n }\n return deffered.promise;\n };\n DataManager.getDeferedArgs = function (query, result, args) {\n if (query.isCountRequired) {\n args.result = result.result;\n args.count = result.count;\n args.aggregates = result.aggregates;\n }\n else {\n args.result = result;\n }\n return args;\n };\n DataManager.nextTick = function (fn) {\n (window.setImmediate || window.setTimeout)(fn, 0);\n };\n DataManager.prototype.extendRequest = function (url, fnSuccess, fnFail) {\n return extend({}, {\n type: 'GET',\n dataType: this.dataSource.dataType,\n crossDomain: this.dataSource.crossDomain,\n jsonp: this.dataSource.jsonp,\n cache: true,\n processData: false,\n onSuccess: fnSuccess,\n onFailure: fnFail\n }, url);\n };\n // tslint:disable-next-line:max-func-body-length\n DataManager.prototype.makeRequest = function (url, deffered, args, query) {\n var _this = this;\n var isSelector = !!query.subQuerySelector;\n var fnFail = function (e) {\n args.error = e;\n deffered.reject(args);\n };\n var process = function (data, count, xhr, request, actual, aggregates, virtualSelectRecords) {\n args.xhr = xhr;\n args.count = count ? parseInt(count.toString(), 10) : 0;\n args.result = data;\n args.request = request;\n args.aggregates = aggregates;\n args.actual = actual;\n args.virtualSelectRecords = virtualSelectRecords;\n deffered.resolve(args);\n };\n var fnQueryChild = function (data, selector) {\n var subDeffer = new Deferred();\n var childArgs = { parent: args };\n query.subQuery.isChild = true;\n var subUrl = _this.adaptor.processQuery(_this, query.subQuery, data ? _this.adaptor.processResponse(data) : selector);\n var childReq = _this.makeRequest(subUrl, subDeffer, childArgs, query.subQuery);\n if (!isSelector) {\n subDeffer.then(function (subData) {\n if (data) {\n DataUtil.buildHierarchy(query.subQuery.fKey, query.subQuery.fromTable, data, subData, query.subQuery.key);\n process(data, subData.count, subData.xhr);\n }\n }, fnFail);\n }\n return childReq;\n };\n var fnSuccess = function (data, request) {\n if (_this.isGraphQLAdaptor(_this.adaptor)) {\n if (!isNullOrUndefined(data['errors'])) {\n return fnFail(data['errors'], request);\n }\n }\n if (_this.isCustomDataAdaptor(_this.adaptor)) {\n request = extend({}, _this.ajaxReqOption, request);\n }\n if (request.httpRequest.getResponseHeader('Content-Type').indexOf('xml') === -1 && _this.dateParse) {\n data = DataUtil.parse.parseJson(data);\n }\n var result = _this.adaptor.processResponse(data, _this, query, request.httpRequest, request);\n var count = 0;\n var aggregates = null;\n var virtualSelectRecords = 'virtualSelectRecords';\n var virtualRecords = data[virtualSelectRecords];\n if (query.isCountRequired) {\n count = result.count;\n aggregates = result.aggregates;\n result = result.result;\n }\n if (!query.subQuery) {\n process(result, count, request.httpRequest, request.type, data, aggregates, virtualRecords);\n return;\n }\n if (!isSelector) {\n fnQueryChild(result, request);\n }\n };\n var req = this.extendRequest(url, fnSuccess, fnFail);\n if (!this.isCustomDataAdaptor(this.adaptor)) {\n var ajax_1 = new Ajax(req);\n ajax_1.beforeSend = function () {\n _this.beforeSend(ajax_1.httpRequest, ajax_1);\n };\n req = ajax_1.send();\n req.catch(function (e) { return true; }); // to handle failure remote requests. \n this.requests.push(ajax_1);\n }\n else {\n this.ajaxReqOption = req;\n var request = req;\n this.adaptor.options.getData({\n data: request.data,\n onSuccess: request.onSuccess, onFailure: request.onFailure\n });\n }\n if (isSelector) {\n var promise = void 0;\n var res = query.subQuerySelector.call(this, { query: query.subQuery, parent: query });\n if (res && res.length) {\n promise = Promise.all([req, fnQueryChild(null, res)]);\n promise.then(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var result = args[0];\n var pResult = _this.adaptor.processResponse(result[0], _this, query, _this.requests[0].httpRequest, _this.requests[0]);\n var count = 0;\n if (query.isCountRequired) {\n count = pResult.count;\n pResult = pResult.result;\n }\n var cResult = _this.adaptor.processResponse(result[1], _this, query.subQuery, _this.requests[1].httpRequest, _this.requests[1]);\n count = 0;\n if (query.subQuery.isCountRequired) {\n count = cResult.count;\n cResult = cResult.result;\n }\n DataUtil.buildHierarchy(query.subQuery.fKey, query.subQuery.fromTable, pResult, cResult, query.subQuery.key);\n isSelector = false;\n process(pResult, count, _this.requests[0].httpRequest);\n });\n }\n else {\n isSelector = false;\n }\n }\n return req;\n };\n DataManager.prototype.beforeSend = function (request, settings) {\n this.adaptor.beforeSend(this, request, settings);\n var headers = this.dataSource.headers;\n var props;\n for (var i = 0; headers && i < headers.length; i++) {\n props = [];\n var keys = Object.keys(headers[i]);\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var prop = keys_1[_i];\n props.push(prop);\n request.setRequestHeader(prop, headers[i][prop]);\n }\n }\n };\n /**\n * Save bulk changes to the given table name.\n * User can add a new record, edit an existing record, and delete a record at the same time.\n * If the datasource from remote, then updated in a single post.\n * @param {Object} changes - Defines the CrudOptions.\n * @param {string} key - Defines the column field.\n * @param {string|Query} tableName - Defines the table name.\n * @param {Query} query - Sets default query for the DataManager.\n */\n DataManager.prototype.saveChanges = function (changes, key, tableName, query, original) {\n var _this = this;\n if (tableName instanceof Query) {\n query = tableName;\n tableName = null;\n }\n var args = {\n url: tableName,\n key: key || this.dataSource.key\n };\n var req = this.adaptor.batchRequest(this, changes, args, query || new Query(), original);\n var doAjaxRequest = 'doAjaxRequest';\n if (this.dataSource.offline) {\n return req;\n }\n if (!isNullOrUndefined(this.adaptor[doAjaxRequest])) {\n return this.adaptor[doAjaxRequest](req);\n }\n else if (!this.isCustomDataAdaptor(this.adaptor)) {\n var deff_1 = new Deferred();\n var ajax_2 = new Ajax(req);\n ajax_2.beforeSend = function () {\n _this.beforeSend(ajax_2.httpRequest, ajax_2);\n };\n ajax_2.onSuccess = function (data, request) {\n if (_this.isGraphQLAdaptor(_this.adaptor)) {\n if (!isNullOrUndefined(data['errors'])) {\n ajax_2.onFailure(JSON.stringify(data['errors']));\n }\n }\n deff_1.resolve(_this.adaptor.processResponse(data, _this, null, request.httpRequest, request, changes, args));\n };\n ajax_2.onFailure = function (e) {\n deff_1.reject([{ error: e }]);\n };\n ajax_2.send().catch(function (e) { return true; }); // to handle the failure requests. \n return deff_1.promise;\n }\n else {\n return this.doAjaxRequest(req, this.adaptor.options.batchUpdate);\n }\n };\n /**\n * Inserts new record in the given table.\n * @param {Object} data - Defines the data to insert.\n * @param {string|Query} tableName - Defines the table name.\n * @param {Query} query - Sets default query for the DataManager.\n */\n DataManager.prototype.insert = function (data, tableName, query, position) {\n if (tableName instanceof Query) {\n query = tableName;\n tableName = null;\n }\n var req = this.adaptor.insert(this, data, tableName, query, position);\n var doAjaxRequest = 'doAjaxRequest';\n if (this.dataSource.offline) {\n return req;\n }\n if (!isNullOrUndefined(this.adaptor[doAjaxRequest])) {\n return this.adaptor[doAjaxRequest](req);\n }\n else {\n return this.doAjaxRequest(req, this.adaptor.options.addRecord);\n }\n };\n /**\n * Removes data from the table with the given key.\n * @param {string} keyField - Defines the column field.\n * @param {Object} value - Defines the value to find the data in the specified column.\n * @param {string|Query} tableName - Defines the table name\n * @param {Query} query - Sets default query for the DataManager.\n */\n DataManager.prototype.remove = function (keyField, value, tableName, query) {\n if (typeof value === 'object') {\n value = DataUtil.getObject(keyField, value);\n }\n if (tableName instanceof Query) {\n query = tableName;\n tableName = null;\n }\n var res = this.adaptor.remove(this, keyField, value, tableName, query);\n var doAjaxRequest = 'doAjaxRequest';\n if (this.dataSource.offline) {\n return res;\n }\n if (!isNullOrUndefined(this.adaptor[doAjaxRequest])) {\n return this.adaptor[doAjaxRequest](res);\n }\n else {\n var remove = this.adaptor.options.deleteRecord;\n return this.doAjaxRequest(res, remove);\n }\n };\n /**\n * Updates existing record in the given table.\n * @param {string} keyField - Defines the column field.\n * @param {Object} value - Defines the value to find the data in the specified column.\n * @param {string|Query} tableName - Defines the table name\n * @param {Query} query - Sets default query for the DataManager.\n */\n DataManager.prototype.update = function (keyField, value, tableName, query, original) {\n if (tableName instanceof Query) {\n query = tableName;\n tableName = null;\n }\n var res = this.adaptor.update(this, keyField, value, tableName, query, original);\n var doAjaxRequest = 'doAjaxRequest';\n if (this.dataSource.offline) {\n return res;\n }\n if (!isNullOrUndefined(this.adaptor[doAjaxRequest])) {\n return this.adaptor[doAjaxRequest](res);\n }\n else {\n var update = this.adaptor.options.updateRecord;\n return this.doAjaxRequest(res, update);\n }\n };\n DataManager.prototype.isCustomDataAdaptor = function (dataSource) {\n return this.adaptor.getModuleName &&\n this.adaptor.getModuleName() === 'CustomDataAdaptor';\n };\n DataManager.prototype.isGraphQLAdaptor = function (dataSource) {\n return this.adaptor.getModuleName &&\n this.adaptor.getModuleName() === 'GraphQLAdaptor';\n };\n DataManager.prototype.successFunc = function (record, request) {\n if (this.isGraphQLAdaptor(this.adaptor)) {\n var data = JSON.parse(record);\n if (!isNullOrUndefined(data['errors'])) {\n this.failureFunc(JSON.stringify(data['errors']));\n }\n }\n if (this.isCustomDataAdaptor(this.adaptor)) {\n request = extend({}, this.ajaxReqOption, request);\n }\n try {\n DataUtil.parse.parseJson(record);\n }\n catch (e) {\n record = [];\n }\n record = this.adaptor.processResponse(DataUtil.parse.parseJson(record), this, null, request.httpRequest, request);\n this.ajaxDeffered.resolve(record);\n };\n ;\n DataManager.prototype.failureFunc = function (e) {\n this.ajaxDeffered.reject([{ error: e }]);\n };\n ;\n DataManager.prototype.doAjaxRequest = function (res, ajaxFunc) {\n var _this = this;\n res = extend({}, {\n type: 'POST',\n contentType: 'application/json; charset=utf-8',\n processData: false\n }, res);\n this.ajaxDeffered = new Deferred();\n if (!this.isCustomDataAdaptor(this.adaptor)) {\n var ajax_3 = new Ajax(res);\n ajax_3.beforeSend = function () {\n _this.beforeSend(ajax_3.httpRequest, ajax_3);\n };\n ajax_3.onSuccess = this.successFunc.bind(this);\n ajax_3.onFailure = this.failureFunc.bind(this);\n ajax_3.send().catch(function (e) { return true; }); // to handle the failure requests.\n }\n else {\n this.ajaxReqOption = res;\n ajaxFunc.call(this, {\n data: res.data, onSuccess: this.successFunc.bind(this),\n onFailure: this.failureFunc.bind(this)\n });\n }\n return this.ajaxDeffered.promise;\n };\n return DataManager;\n}());\nexport { DataManager };\n/**\n * Deferred is used to handle asynchronous operation.\n */\nvar Deferred = /** @class */ (function () {\n function Deferred() {\n var _this = this;\n /**\n * Promise is an object that represents a value that may not be available yet, but will be resolved at some point in the future.\n */\n this.promise = new Promise(function (resolve, reject) {\n _this.resolve = resolve;\n _this.reject = reject;\n });\n /**\n * Defines the callback function triggers when the Deferred object is resolved.\n */\n this.then = this.promise.then.bind(this.promise);\n /**\n * Defines the callback function triggers when the Deferred object is rejected.\n */\n this.catch = this.promise.catch.bind(this.promise);\n }\n return Deferred;\n}());\nexport { Deferred };\n","import { isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { DataManager } from './manager';\nimport { Query, Predicate } from './query';\nvar consts = { GroupGuid: '{271bbba0-1ee7}' };\n/**\n * Data manager common utility methods.\n * @hidden\n */\nvar DataUtil = /** @class */ (function () {\n function DataUtil() {\n }\n /**\n * Returns the value by invoking the provided parameter function.\n * If the paramater is not of type function then it will be returned as it is.\n * @param {Function|string|string[]|number} value\n * @param {Object} inst?\n * @hidden\n */\n DataUtil.getValue = function (value, inst) {\n if (typeof value === 'function') {\n return value.call(inst || {});\n }\n return value;\n };\n /**\n * Returns true if the input string ends with given string.\n * @param {string} input\n * @param {string} substr\n */\n DataUtil.endsWith = function (input, substr) {\n return input.slice && input.slice(-substr.length) === substr;\n };\n /**\n * Returns true if the input string starts with given string.\n * @param {string} str\n * @param {string} startstr\n */\n DataUtil.startsWith = function (input, start) {\n return input.slice(0, start.length) === start;\n };\n /**\n * To return the sorting function based on the string.\n * @param {string} order\n * @hidden\n */\n DataUtil.fnSort = function (order) {\n order = order ? DataUtil.toLowerCase(order) : 'ascending';\n if (order === 'ascending') {\n return this.fnAscending;\n }\n return this.fnDescending;\n };\n /**\n * Comparer function which is used to sort the data in ascending order.\n * @param {string|number} x\n * @param {string|number} y\n * @returns number\n */\n DataUtil.fnAscending = function (x, y) {\n if (isNullOrUndefined(x) && isNullOrUndefined(y)) {\n return -1;\n }\n if (y === null || y === undefined) {\n return -1;\n }\n if (typeof x === 'string') {\n return x.localeCompare(y);\n }\n if (x === null || x === undefined) {\n return 1;\n }\n return x - y;\n };\n /**\n * Comparer function which is used to sort the data in descending order.\n * @param {string|number} x\n * @param {string|number} y\n * @returns number\n */\n DataUtil.fnDescending = function (x, y) {\n if (isNullOrUndefined(x) && isNullOrUndefined(y)) {\n return -1;\n }\n if (y === null || y === undefined) {\n return 1;\n }\n if (typeof x === 'string') {\n return x.localeCompare(y) * -1;\n }\n if (x === null || x === undefined) {\n return -1;\n }\n return y - x;\n };\n DataUtil.extractFields = function (obj, fields) {\n var newObj = {};\n for (var i = 0; i < fields.length; i++) {\n newObj = this.setValue(fields[i], this.getObject(fields[i], obj), newObj);\n }\n return newObj;\n };\n /**\n * Select objects by given fields from jsonArray.\n * @param {Object[]} jsonArray\n * @param {string[]} fields\n */\n DataUtil.select = function (jsonArray, fields) {\n var newData = [];\n for (var i = 0; i < jsonArray.length; i++) {\n newData.push(this.extractFields(jsonArray[i], fields));\n }\n return newData;\n };\n /**\n * Group the input data based on the field name.\n * It also performs aggregation of the grouped records based on the aggregates paramater.\n * @param {Object[]} jsonArray\n * @param {string} field?\n * @param {Object[]} agg?\n * @param {number} level?\n * @param {Object[]} groupDs?\n */\n DataUtil.group = function (jsonArray, field, aggregates, level, groupDs, format, isLazyLoad) {\n level = level || 1;\n var jsonData = jsonArray;\n var guid = 'GroupGuid';\n if (jsonData.GroupGuid === consts[guid]) {\n var _loop_1 = function (j) {\n if (!isNullOrUndefined(groupDs)) {\n var indx = -1;\n var temp = groupDs.filter(function (e) { return e.key === jsonData[j].key; });\n indx = groupDs.indexOf(temp[0]);\n jsonData[j].items = this_1.group(jsonData[j].items, field, aggregates, jsonData.level + 1, groupDs[indx].items, format, isLazyLoad);\n jsonData[j].count = groupDs[indx].count;\n }\n else {\n jsonData[j].items = this_1.group(jsonData[j].items, field, aggregates, jsonData.level + 1, null, format, isLazyLoad);\n jsonData[j].count = jsonData[j].items.length;\n }\n };\n var this_1 = this;\n for (var j = 0; j < jsonData.length; j++) {\n _loop_1(j);\n }\n jsonData.childLevels += 1;\n return jsonData;\n }\n var grouped = {};\n var groupedArray = [];\n groupedArray.GroupGuid = consts[guid];\n groupedArray.level = level;\n groupedArray.childLevels = 0;\n groupedArray.records = jsonData;\n var _loop_2 = function (i) {\n var val = this_2.getVal(jsonData, i, field);\n if (!isNullOrUndefined(format)) {\n val = format(val, field);\n }\n if (!grouped[val]) {\n grouped[val] = {\n key: val,\n count: 0,\n items: [],\n aggregates: {},\n field: field\n };\n groupedArray.push(grouped[val]);\n if (!isNullOrUndefined(groupDs)) {\n var tempObj = groupDs.filter(function (e) { return e.key === grouped[val].key; });\n grouped[val].count = tempObj[0].count;\n }\n }\n grouped[val].count = !isNullOrUndefined(groupDs) ? grouped[val].count : grouped[val].count += 1;\n if (!isLazyLoad || (isLazyLoad && aggregates.length)) {\n grouped[val].items.push(jsonData[i]);\n }\n };\n var this_2 = this;\n for (var i = 0; i < jsonData.length; i++) {\n _loop_2(i);\n }\n if (aggregates && aggregates.length) {\n var _loop_3 = function (i) {\n var res = {};\n var fn = void 0;\n var aggs = aggregates;\n for (var j = 0; j < aggregates.length; j++) {\n fn = DataUtil.aggregates[aggregates[j].type];\n if (!isNullOrUndefined(groupDs)) {\n var temp = groupDs.filter(function (e) { return e.key === groupedArray[i].key; });\n if (fn) {\n res[aggs[j].field + ' - ' + aggs[j].type] = fn(temp[0].items, aggs[j].field);\n }\n }\n else {\n if (fn) {\n res[aggs[j].field + ' - ' + aggs[j].type] = fn(groupedArray[i].items, aggs[j].field);\n }\n }\n }\n groupedArray[i].aggregates = res;\n };\n for (var i = 0; i < groupedArray.length; i++) {\n _loop_3(i);\n }\n }\n if (isLazyLoad && groupedArray.length && aggregates.length) {\n for (var i = 0; i < groupedArray.length; i++) {\n groupedArray[i].items = [];\n }\n }\n return jsonData.length && groupedArray || jsonData;\n };\n /**\n * It is used to categorize the multiple items based on a specific field in jsonArray.\n * The hierarchical queries are commonly required when you use foreign key binding.\n * @param {string} fKey\n * @param {string} from\n * @param {Object[]} source\n * @param {Group} lookup?\n * @param {string} pKey?\n * @hidden\n */\n DataUtil.buildHierarchy = function (fKey, from, source, lookup, pKey) {\n var i;\n var grp = {};\n var temp;\n if (lookup.result) {\n lookup = lookup.result;\n }\n if (lookup.GroupGuid) {\n this.throwError('DataManager: Do not have support Grouping in hierarchy');\n }\n for (i = 0; i < lookup.length; i++) {\n var fKeyData = this.getObject(fKey, lookup[i]);\n temp = grp[fKeyData] || (grp[fKeyData] = []);\n temp.push(lookup[i]);\n }\n for (i = 0; i < source.length; i++) {\n var fKeyData = this.getObject(pKey || fKey, source[i]);\n source[i][from] = grp[fKeyData];\n }\n };\n /**\n * The method used to get the field names which started with specified characters.\n * @param {Object} obj\n * @param {string[]} fields?\n * @param {string} prefix?\n * @hidden\n */\n DataUtil.getFieldList = function (obj, fields, prefix) {\n if (prefix === undefined) {\n prefix = '';\n }\n if (fields === undefined || fields === null) {\n return this.getFieldList(obj, [], prefix);\n }\n var copyObj = obj;\n var keys = Object.keys(obj);\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var prop = keys_1[_i];\n if (typeof copyObj[prop] === 'object' && !(copyObj[prop] instanceof Array)) {\n this.getFieldList(copyObj[prop], fields, prefix + prop + '.');\n }\n else {\n fields.push(prefix + prop);\n }\n }\n return fields;\n };\n /**\n * Gets the value of the property in the given object.\n * The complex object can be accessed by providing the field names concatenated with dot(.).\n * @param {string} nameSpace - The name of the property to be accessed.\n * @param {Object} from - Defines the source object.\n */\n DataUtil.getObject = function (nameSpace, from) {\n if (!nameSpace) {\n return from;\n }\n if (!from) {\n return undefined;\n }\n if (nameSpace.indexOf('.') === -1) {\n return from[nameSpace];\n }\n var value = from;\n var splits = nameSpace.split('.');\n for (var i = 0; i < splits.length; i++) {\n if (value == null) {\n break;\n }\n value = value[splits[i]];\n }\n return value;\n };\n /**\n * To set value for the nameSpace in desired object.\n * @param {string} nameSpace - String value to the get the inner object.\n * @param {Object} value - Value that you need to set.\n * @param {Object} obj - Object to get the inner object value.\n * @return { [key: string]: Object; } | Object\n * @hidden\n */\n DataUtil.setValue = function (nameSpace, value, obj) {\n var keys = nameSpace.toString().split('.');\n var start = obj || {};\n var fromObj = start;\n var i;\n var length = keys.length;\n var key;\n for (i = 0; i < length; i++) {\n key = keys[i];\n if (i + 1 === length) {\n fromObj[key] = value === undefined ? undefined : value;\n }\n else if (isNullOrUndefined(fromObj[key])) {\n fromObj[key] = {};\n }\n fromObj = fromObj[key];\n }\n return start;\n };\n /**\n * Sort the given data based on the field and comparer.\n * @param {Object[]} ds - Defines the input data.\n * @param {string} field - Defines the field to be sorted.\n * @param {Function} comparer - Defines the comparer function used to sort the records.\n */\n DataUtil.sort = function (ds, field, comparer) {\n if (ds.length <= 1) {\n return ds;\n }\n var middle = parseInt((ds.length / 2).toString(), 10);\n var left = ds.slice(0, middle);\n var right = ds.slice(middle);\n left = this.sort(left, field, comparer);\n right = this.sort(right, field, comparer);\n return this.merge(left, right, field, comparer);\n };\n DataUtil.ignoreDiacritics = function (value) {\n if (typeof value !== 'string') {\n return value;\n }\n var result = value.split('');\n var newValue = result.map(function (temp) { return temp in DataUtil.diacritics ? DataUtil.diacritics[temp] : temp; });\n return newValue.join('');\n };\n DataUtil.merge = function (left, right, fieldName, comparer) {\n var result = [];\n var current;\n while (left.length > 0 || right.length > 0) {\n if (left.length > 0 && right.length > 0) {\n if (comparer) {\n current = comparer(this.getVal(left, 0, fieldName), this.getVal(right, 0, fieldName), left[0], right[0]) <= 0 ? left : right;\n }\n else {\n current = left[0][fieldName] < left[0][fieldName] ? left : right;\n }\n }\n else {\n current = left.length > 0 ? left : right;\n }\n result.push(current.shift());\n }\n return result;\n };\n DataUtil.getVal = function (array, index, field) {\n return field ? this.getObject(field, array[index]) : array[index];\n };\n DataUtil.toLowerCase = function (val) {\n return val ? typeof val === 'string' ? val.toLowerCase() : val.toString() : (val === 0 || val === false) ? val.toString() : '';\n };\n /**\n * To perform the filter operation with specified adaptor and returns the result.\n * @param {Object} adaptor\n * @param {string} fnName\n * @param {Object} param1?\n * @param {Object} param2?\n * @hidden\n */\n DataUtil.callAdaptorFunction = function (adaptor, fnName, param1, param2) {\n if (fnName in adaptor) {\n var res = adaptor[fnName](param1, param2);\n if (!isNullOrUndefined(res)) {\n param1 = res;\n }\n }\n return param1;\n };\n DataUtil.getAddParams = function (adp, dm, query) {\n var req = {};\n DataUtil.callAdaptorFunction(adp, 'addParams', {\n dm: dm,\n query: query,\n params: query.params,\n reqParams: req\n });\n return req;\n };\n /**\n * Checks wheather the given input is a plain object or not.\n * @param {Object|Object[]} obj\n */\n DataUtil.isPlainObject = function (obj) {\n return (!!obj) && (obj.constructor === Object);\n };\n /**\n * Returns true when the browser cross origin request.\n */\n DataUtil.isCors = function () {\n var xhr = null;\n var request = 'XMLHttpRequest';\n try {\n xhr = new window[request]();\n }\n catch (e) {\n // No exception handling\n }\n return !!xhr && ('withCredentials' in xhr);\n };\n /**\n * Generate random GUID value which will be prefixed with the given value.\n * @param {string} prefix\n */\n DataUtil.getGuid = function (prefix) {\n var hexs = '0123456789abcdef';\n var rand;\n return (prefix || '') + '00000000-0000-4000-0000-000000000000'.replace(/0/g, function (val, i) {\n if ('crypto' in window && 'getRandomValues' in crypto) {\n var arr = new Uint8Array(1);\n window.crypto.getRandomValues(arr);\n rand = arr[0] % 16 | 0;\n }\n else {\n rand = Math.random() * 16 | 0;\n }\n return hexs[i === 19 ? rand & 0x3 | 0x8 : rand];\n });\n };\n /**\n * Checks wheather the given value is null or not.\n * @param {string|Object} val\n * @returns boolean\n */\n DataUtil.isNull = function (val) {\n return val === undefined || val === null;\n };\n /**\n * To get the required items from collection of objects.\n * @param {Object[]} array\n * @param {string} field\n * @param {Function} comparer\n * @returns Object\n * @hidden\n */\n DataUtil.getItemFromComparer = function (array, field, comparer) {\n var keyVal;\n var current;\n var key;\n var i = 0;\n var castRequired = typeof DataUtil.getVal(array, 0, field) === 'string';\n if (array.length) {\n while (isNullOrUndefined(keyVal) && i < array.length) {\n keyVal = DataUtil.getVal(array, i, field);\n key = array[i++];\n }\n }\n for (; i < array.length; i++) {\n current = DataUtil.getVal(array, i, field);\n if (isNullOrUndefined(current)) {\n continue;\n }\n if (castRequired) {\n keyVal = +keyVal;\n current = +current;\n }\n if (comparer(keyVal, current) > 0) {\n keyVal = current;\n key = array[i];\n }\n }\n return key;\n };\n /**\n * To get distinct values of Array or Array of Objects.\n * @param {Object[]} json\n * @param {string} field\n * @param {boolean} requiresCompleteRecord\n * @returns Object[]\n * * distinct array of objects is return when requiresCompleteRecord set as true.\n * @hidden\n */\n DataUtil.distinct = function (json, fieldName, requiresCompleteRecord) {\n requiresCompleteRecord = isNullOrUndefined(requiresCompleteRecord) ? false : requiresCompleteRecord;\n var result = [];\n var val;\n var tmp = {};\n json.forEach(function (data, index) {\n val = typeof (json[index]) === 'object' ? DataUtil.getVal(json, index, fieldName) : json[index];\n if (!(val in tmp)) {\n result.push(!requiresCompleteRecord ? val : json[index]);\n tmp[val] = 1;\n }\n });\n return result;\n };\n /**\n * Process the given records based on the datamanager string.\n * @param {string} datamanager\n * @param {Object[]} records\n */\n DataUtil.processData = function (dm, records) {\n var query = this.prepareQuery(dm);\n var sampledata = new DataManager(records);\n if (dm.requiresCounts) {\n query.requiresCount();\n }\n var result = sampledata.executeLocal(query);\n var returnValue = {\n result: dm.requiresCounts ? result.result : result,\n count: result.count,\n aggregates: JSON.stringify(result.aggregates)\n };\n return dm.requiresCounts ? returnValue : result;\n };\n DataUtil.prepareQuery = function (dm) {\n var _this = this;\n var query = new Query();\n if (dm.select) {\n query.select(dm.select);\n }\n if (dm.where) {\n var where = DataUtil.parse.parseJson(dm.where);\n where.filter(function (pred) {\n if (isNullOrUndefined(pred.condition)) {\n query.where(pred.field, pred.operator, pred.value, pred.ignoreCase, pred.ignoreAccent);\n }\n else {\n var predicateList = [];\n if (pred.field) {\n predicateList.push(new Predicate(pred.field, pred.operator, pred.value, pred.ignoreCase, pred.ignoreAccent));\n }\n else {\n predicateList = predicateList.concat(_this.getPredicate(pred.predicates));\n }\n if (pred.condition == 'or') {\n query.where(Predicate.or(predicateList));\n }\n else if (pred.condition == 'and') {\n query.where(Predicate.and(predicateList));\n }\n }\n });\n }\n if (dm.search) {\n var search = DataUtil.parse.parseJson(dm.search);\n search.filter(function (e) { return query.search(e.key, e.fields, e['operator'], e['ignoreCase'], e['ignoreAccent']); });\n }\n if (dm.aggregates) {\n dm.aggregates.filter(function (e) { return query.aggregate(e.type, e.field); });\n }\n if (dm.sorted) {\n dm.sorted.filter(function (e) { return query.sortBy(e.name, e.direction); });\n }\n if (dm.skip) {\n query.skip(dm.skip);\n }\n if (dm.take) {\n query.take(dm.take);\n }\n if (dm.group) {\n dm.group.filter(function (grp) { return query.group(grp); });\n }\n return query;\n };\n DataUtil.getPredicate = function (pred) {\n var mainPred = [];\n for (var i = 0; i < pred.length; i++) {\n var e = pred[i];\n if (e.field) {\n mainPred.push(new Predicate(e.field, e.operator, e.value, e.ignoreCase, e.ignoreAccent));\n }\n else {\n var childPred = [];\n var cpre = this.getPredicate(e.predicates);\n for (var _i = 0, _a = Object.keys(cpre); _i < _a.length; _i++) {\n var prop = _a[_i];\n childPred.push(cpre[prop]);\n }\n mainPred.push(e.condition == 'or' ? Predicate.or(childPred) : Predicate.and(childPred));\n }\n }\n return mainPred;\n };\n /**\n * Specifies the value which will be used to adjust the date value to server timezone.\n * @default null\n */\n DataUtil.serverTimezoneOffset = null;\n /**\n * Species whether are not to be parsed with serverTimezoneOffset value.\n * @hidden\n */\n DataUtil.timeZoneHandling = true;\n /**\n * Throw error with the given string as message.\n * @param {string} er\n */\n DataUtil.throwError = function (error) {\n try {\n throw new Error(error);\n }\n catch (e) {\n throw e.message + '\\n' + e.stack;\n }\n };\n DataUtil.aggregates = {\n /**\n * Calculate sum of the given field in the data.\n * @param {Object[]} ds\n * @param {string} field\n */\n sum: function (ds, field) {\n var result = 0;\n var val;\n var castRequired = typeof DataUtil.getVal(ds, 0, field) !== 'number';\n for (var i = 0; i < ds.length; i++) {\n val = DataUtil.getVal(ds, i, field);\n if (!isNaN(val) && val !== null) {\n if (castRequired) {\n val = +val;\n }\n result += val;\n }\n }\n return result;\n },\n /**\n * Calculate average value of the given field in the data.\n * @param {Object[]} ds\n * @param {string} field\n */\n average: function (ds, field) {\n return DataUtil.aggregates.sum(ds, field) / ds.length;\n },\n /**\n * Returns the min value of the data based on the field.\n * @param {Object[]} ds\n * @param {string|Function} field\n */\n min: function (ds, field) {\n var comparer;\n if (typeof field === 'function') {\n comparer = field;\n field = null;\n }\n return DataUtil.getObject(field, DataUtil.getItemFromComparer(ds, field, comparer || DataUtil.fnAscending));\n },\n /**\n * Returns the max value of the data based on the field.\n * @param {Object[]} ds\n * @param {string} field\n * @returns number\n */\n max: function (ds, field) {\n var comparer;\n if (typeof field === 'function') {\n comparer = field;\n field = null;\n }\n return DataUtil.getObject(field, DataUtil.getItemFromComparer(ds, field, comparer || DataUtil.fnDescending));\n },\n /**\n * Returns the total number of true value present in the data based on the given boolean field name.\n * @param {Object[]} ds\n * @param {string} field\n */\n truecount: function (ds, field) {\n return new DataManager(ds).executeLocal(new Query().where(field, 'equal', true, true)).length;\n },\n /**\n * Returns the total number of false value present in the data based on the given boolean field name.\n * @param {Object[]} ds\n * @param {string} field\n */\n falsecount: function (ds, field) {\n return new DataManager(ds).executeLocal(new Query().where(field, 'equal', false, true)).length;\n },\n /**\n * Returns the length of the given data.\n * @param {Object[]} ds\n * @param {string} field?\n * @returns number\n */\n count: function (ds, field) {\n return ds.length;\n }\n };\n /**\n * Specifies the Object with filter operators.\n */\n DataUtil.operatorSymbols = {\n '<': 'lessthan',\n '>': 'greaterthan',\n '<=': 'lessthanorequal',\n '>=': 'greaterthanorequal',\n '==': 'equal',\n '!=': 'notequal',\n '*=': 'contains',\n '$=': 'endswith',\n '^=': 'startswith'\n };\n /**\n * Specifies the Object with filter operators which will be used for OData filter query generation.\n * * It will be used for date/number type filter query.\n */\n DataUtil.odBiOperator = {\n '<': ' lt ',\n '>': ' gt ',\n '<=': ' le ',\n '>=': ' ge ',\n '==': ' eq ',\n '!=': ' ne ',\n 'lessthan': ' lt ',\n 'lessthanorequal': ' le ',\n 'greaterthan': ' gt ',\n 'greaterthanorequal': ' ge ',\n 'equal': ' eq ',\n 'notequal': ' ne '\n };\n /**\n * Specifies the Object with filter operators which will be used for OData filter query generation.\n * It will be used for string type filter query.\n */\n DataUtil.odUniOperator = {\n '$=': 'endswith',\n '^=': 'startswith',\n '*=': 'substringof',\n 'endswith': 'endswith',\n 'startswith': 'startswith',\n 'contains': 'substringof'\n };\n /**\n * Specifies the Object with filter operators which will be used for ODataV4 filter query generation.\n * It will be used for string type filter query.\n */\n DataUtil.odv4UniOperator = {\n '$=': 'endswith',\n '^=': 'startswith',\n '*=': 'contains',\n 'endswith': 'endswith',\n 'startswith': 'startswith',\n 'contains': 'contains'\n };\n DataUtil.diacritics = {\n '\\u24B6': 'A',\n '\\uFF21': 'A',\n '\\u00C0': 'A',\n '\\u00C1': 'A',\n '\\u00C2': 'A',\n '\\u1EA6': 'A',\n '\\u1EA4': 'A',\n '\\u1EAA': 'A',\n '\\u1EA8': 'A',\n '\\u00C3': 'A',\n '\\u0100': 'A',\n '\\u0102': 'A',\n '\\u1EB0': 'A',\n '\\u1EAE': 'A',\n '\\u1EB4': 'A',\n '\\u1EB2': 'A',\n '\\u0226': 'A',\n '\\u01E0': 'A',\n '\\u00C4': 'A',\n '\\u01DE': 'A',\n '\\u1EA2': 'A',\n '\\u00C5': 'A',\n '\\u01FA': 'A',\n '\\u01CD': 'A',\n '\\u0200': 'A',\n '\\u0202': 'A',\n '\\u1EA0': 'A',\n '\\u1EAC': 'A',\n '\\u1EB6': 'A',\n '\\u1E00': 'A',\n '\\u0104': 'A',\n '\\u023A': 'A',\n '\\u2C6F': 'A',\n '\\uA732': 'AA',\n '\\u00C6': 'AE',\n '\\u01FC': 'AE',\n '\\u01E2': 'AE',\n '\\uA734': 'AO',\n '\\uA736': 'AU',\n '\\uA738': 'AV',\n '\\uA73A': 'AV',\n '\\uA73C': 'AY',\n '\\u24B7': 'B',\n '\\uFF22': 'B',\n '\\u1E02': 'B',\n '\\u1E04': 'B',\n '\\u1E06': 'B',\n '\\u0243': 'B',\n '\\u0182': 'B',\n '\\u0181': 'B',\n '\\u24B8': 'C',\n '\\uFF23': 'C',\n '\\u0106': 'C',\n '\\u0108': 'C',\n '\\u010A': 'C',\n '\\u010C': 'C',\n '\\u00C7': 'C',\n '\\u1E08': 'C',\n '\\u0187': 'C',\n '\\u023B': 'C',\n '\\uA73E': 'C',\n '\\u24B9': 'D',\n '\\uFF24': 'D',\n '\\u1E0A': 'D',\n '\\u010E': 'D',\n '\\u1E0C': 'D',\n '\\u1E10': 'D',\n '\\u1E12': 'D',\n '\\u1E0E': 'D',\n '\\u0110': 'D',\n '\\u018B': 'D',\n '\\u018A': 'D',\n '\\u0189': 'D',\n '\\uA779': 'D',\n '\\u01F1': 'DZ',\n '\\u01C4': 'DZ',\n '\\u01F2': 'Dz',\n '\\u01C5': 'Dz',\n '\\u24BA': 'E',\n '\\uFF25': 'E',\n '\\u00C8': 'E',\n '\\u00C9': 'E',\n '\\u00CA': 'E',\n '\\u1EC0': 'E',\n '\\u1EBE': 'E',\n '\\u1EC4': 'E',\n '\\u1EC2': 'E',\n '\\u1EBC': 'E',\n '\\u0112': 'E',\n '\\u1E14': 'E',\n '\\u1E16': 'E',\n '\\u0114': 'E',\n '\\u0116': 'E',\n '\\u00CB': 'E',\n '\\u1EBA': 'E',\n '\\u011A': 'E',\n '\\u0204': 'E',\n '\\u0206': 'E',\n '\\u1EB8': 'E',\n '\\u1EC6': 'E',\n '\\u0228': 'E',\n '\\u1E1C': 'E',\n '\\u0118': 'E',\n '\\u1E18': 'E',\n '\\u1E1A': 'E',\n '\\u0190': 'E',\n '\\u018E': 'E',\n '\\u24BB': 'F',\n '\\uFF26': 'F',\n '\\u1E1E': 'F',\n '\\u0191': 'F',\n '\\uA77B': 'F',\n '\\u24BC': 'G',\n '\\uFF27': 'G',\n '\\u01F4': 'G',\n '\\u011C': 'G',\n '\\u1E20': 'G',\n '\\u011E': 'G',\n '\\u0120': 'G',\n '\\u01E6': 'G',\n '\\u0122': 'G',\n '\\u01E4': 'G',\n '\\u0193': 'G',\n '\\uA7A0': 'G',\n '\\uA77D': 'G',\n '\\uA77E': 'G',\n '\\u24BD': 'H',\n '\\uFF28': 'H',\n '\\u0124': 'H',\n '\\u1E22': 'H',\n '\\u1E26': 'H',\n '\\u021E': 'H',\n '\\u1E24': 'H',\n '\\u1E28': 'H',\n '\\u1E2A': 'H',\n '\\u0126': 'H',\n '\\u2C67': 'H',\n '\\u2C75': 'H',\n '\\uA78D': 'H',\n '\\u24BE': 'I',\n '\\uFF29': 'I',\n '\\u00CC': 'I',\n '\\u00CD': 'I',\n '\\u00CE': 'I',\n '\\u0128': 'I',\n '\\u012A': 'I',\n '\\u012C': 'I',\n '\\u0130': 'I',\n '\\u00CF': 'I',\n '\\u1E2E': 'I',\n '\\u1EC8': 'I',\n '\\u01CF': 'I',\n '\\u0208': 'I',\n '\\u020A': 'I',\n '\\u1ECA': 'I',\n '\\u012E': 'I',\n '\\u1E2C': 'I',\n '\\u0197': 'I',\n '\\u24BF': 'J',\n '\\uFF2A': 'J',\n '\\u0134': 'J',\n '\\u0248': 'J',\n '\\u24C0': 'K',\n '\\uFF2B': 'K',\n '\\u1E30': 'K',\n '\\u01E8': 'K',\n '\\u1E32': 'K',\n '\\u0136': 'K',\n '\\u1E34': 'K',\n '\\u0198': 'K',\n '\\u2C69': 'K',\n '\\uA740': 'K',\n '\\uA742': 'K',\n '\\uA744': 'K',\n '\\uA7A2': 'K',\n '\\u24C1': 'L',\n '\\uFF2C': 'L',\n '\\u013F': 'L',\n '\\u0139': 'L',\n '\\u013D': 'L',\n '\\u1E36': 'L',\n '\\u1E38': 'L',\n '\\u013B': 'L',\n '\\u1E3C': 'L',\n '\\u1E3A': 'L',\n '\\u0141': 'L',\n '\\u023D': 'L',\n '\\u2C62': 'L',\n '\\u2C60': 'L',\n '\\uA748': 'L',\n '\\uA746': 'L',\n '\\uA780': 'L',\n '\\u01C7': 'LJ',\n '\\u01C8': 'Lj',\n '\\u24C2': 'M',\n '\\uFF2D': 'M',\n '\\u1E3E': 'M',\n '\\u1E40': 'M',\n '\\u1E42': 'M',\n '\\u2C6E': 'M',\n '\\u019C': 'M',\n '\\u24C3': 'N',\n '\\uFF2E': 'N',\n '\\u01F8': 'N',\n '\\u0143': 'N',\n '\\u00D1': 'N',\n '\\u1E44': 'N',\n '\\u0147': 'N',\n '\\u1E46': 'N',\n '\\u0145': 'N',\n '\\u1E4A': 'N',\n '\\u1E48': 'N',\n '\\u0220': 'N',\n '\\u019D': 'N',\n '\\uA790': 'N',\n '\\uA7A4': 'N',\n '\\u01CA': 'NJ',\n '\\u01CB': 'Nj',\n '\\u24C4': 'O',\n '\\uFF2F': 'O',\n '\\u00D2': 'O',\n '\\u00D3': 'O',\n '\\u00D4': 'O',\n '\\u1ED2': 'O',\n '\\u1ED0': 'O',\n '\\u1ED6': 'O',\n '\\u1ED4': 'O',\n '\\u00D5': 'O',\n '\\u1E4C': 'O',\n '\\u022C': 'O',\n '\\u1E4E': 'O',\n '\\u014C': 'O',\n '\\u1E50': 'O',\n '\\u1E52': 'O',\n '\\u014E': 'O',\n '\\u022E': 'O',\n '\\u0230': 'O',\n '\\u00D6': 'O',\n '\\u022A': 'O',\n '\\u1ECE': 'O',\n '\\u0150': 'O',\n '\\u01D1': 'O',\n '\\u020C': 'O',\n '\\u020E': 'O',\n '\\u01A0': 'O',\n '\\u1EDC': 'O',\n '\\u1EDA': 'O',\n '\\u1EE0': 'O',\n '\\u1EDE': 'O',\n '\\u1EE2': 'O',\n '\\u1ECC': 'O',\n '\\u1ED8': 'O',\n '\\u01EA': 'O',\n '\\u01EC': 'O',\n '\\u00D8': 'O',\n '\\u01FE': 'O',\n '\\u0186': 'O',\n '\\u019F': 'O',\n '\\uA74A': 'O',\n '\\uA74C': 'O',\n '\\u01A2': 'OI',\n '\\uA74E': 'OO',\n '\\u0222': 'OU',\n '\\u24C5': 'P',\n '\\uFF30': 'P',\n '\\u1E54': 'P',\n '\\u1E56': 'P',\n '\\u01A4': 'P',\n '\\u2C63': 'P',\n '\\uA750': 'P',\n '\\uA752': 'P',\n '\\uA754': 'P',\n '\\u24C6': 'Q',\n '\\uFF31': 'Q',\n '\\uA756': 'Q',\n '\\uA758': 'Q',\n '\\u024A': 'Q',\n '\\u24C7': 'R',\n '\\uFF32': 'R',\n '\\u0154': 'R',\n '\\u1E58': 'R',\n '\\u0158': 'R',\n '\\u0210': 'R',\n '\\u0212': 'R',\n '\\u1E5A': 'R',\n '\\u1E5C': 'R',\n '\\u0156': 'R',\n '\\u1E5E': 'R',\n '\\u024C': 'R',\n '\\u2C64': 'R',\n '\\uA75A': 'R',\n '\\uA7A6': 'R',\n '\\uA782': 'R',\n '\\u24C8': 'S',\n '\\uFF33': 'S',\n '\\u1E9E': 'S',\n '\\u015A': 'S',\n '\\u1E64': 'S',\n '\\u015C': 'S',\n '\\u1E60': 'S',\n '\\u0160': 'S',\n '\\u1E66': 'S',\n '\\u1E62': 'S',\n '\\u1E68': 'S',\n '\\u0218': 'S',\n '\\u015E': 'S',\n '\\u2C7E': 'S',\n '\\uA7A8': 'S',\n '\\uA784': 'S',\n '\\u24C9': 'T',\n '\\uFF34': 'T',\n '\\u1E6A': 'T',\n '\\u0164': 'T',\n '\\u1E6C': 'T',\n '\\u021A': 'T',\n '\\u0162': 'T',\n '\\u1E70': 'T',\n '\\u1E6E': 'T',\n '\\u0166': 'T',\n '\\u01AC': 'T',\n '\\u01AE': 'T',\n '\\u023E': 'T',\n '\\uA786': 'T',\n '\\uA728': 'TZ',\n '\\u24CA': 'U',\n '\\uFF35': 'U',\n '\\u00D9': 'U',\n '\\u00DA': 'U',\n '\\u00DB': 'U',\n '\\u0168': 'U',\n '\\u1E78': 'U',\n '\\u016A': 'U',\n '\\u1E7A': 'U',\n '\\u016C': 'U',\n '\\u00DC': 'U',\n '\\u01DB': 'U',\n '\\u01D7': 'U',\n '\\u01D5': 'U',\n '\\u01D9': 'U',\n '\\u1EE6': 'U',\n '\\u016E': 'U',\n '\\u0170': 'U',\n '\\u01D3': 'U',\n '\\u0214': 'U',\n '\\u0216': 'U',\n '\\u01AF': 'U',\n '\\u1EEA': 'U',\n '\\u1EE8': 'U',\n '\\u1EEE': 'U',\n '\\u1EEC': 'U',\n '\\u1EF0': 'U',\n '\\u1EE4': 'U',\n '\\u1E72': 'U',\n '\\u0172': 'U',\n '\\u1E76': 'U',\n '\\u1E74': 'U',\n '\\u0244': 'U',\n '\\u24CB': 'V',\n '\\uFF36': 'V',\n '\\u1E7C': 'V',\n '\\u1E7E': 'V',\n '\\u01B2': 'V',\n '\\uA75E': 'V',\n '\\u0245': 'V',\n '\\uA760': 'VY',\n '\\u24CC': 'W',\n '\\uFF37': 'W',\n '\\u1E80': 'W',\n '\\u1E82': 'W',\n '\\u0174': 'W',\n '\\u1E86': 'W',\n '\\u1E84': 'W',\n '\\u1E88': 'W',\n '\\u2C72': 'W',\n '\\u24CD': 'X',\n '\\uFF38': 'X',\n '\\u1E8A': 'X',\n '\\u1E8C': 'X',\n '\\u24CE': 'Y',\n '\\uFF39': 'Y',\n '\\u1EF2': 'Y',\n '\\u00DD': 'Y',\n '\\u0176': 'Y',\n '\\u1EF8': 'Y',\n '\\u0232': 'Y',\n '\\u1E8E': 'Y',\n '\\u0178': 'Y',\n '\\u1EF6': 'Y',\n '\\u1EF4': 'Y',\n '\\u01B3': 'Y',\n '\\u024E': 'Y',\n '\\u1EFE': 'Y',\n '\\u24CF': 'Z',\n '\\uFF3A': 'Z',\n '\\u0179': 'Z',\n '\\u1E90': 'Z',\n '\\u017B': 'Z',\n '\\u017D': 'Z',\n '\\u1E92': 'Z',\n '\\u1E94': 'Z',\n '\\u01B5': 'Z',\n '\\u0224': 'Z',\n '\\u2C7F': 'Z',\n '\\u2C6B': 'Z',\n '\\uA762': 'Z',\n '\\u24D0': 'a',\n '\\uFF41': 'a',\n '\\u1E9A': 'a',\n '\\u00E0': 'a',\n '\\u00E1': 'a',\n '\\u00E2': 'a',\n '\\u1EA7': 'a',\n '\\u1EA5': 'a',\n '\\u1EAB': 'a',\n '\\u1EA9': 'a',\n '\\u00E3': 'a',\n '\\u0101': 'a',\n '\\u0103': 'a',\n '\\u1EB1': 'a',\n '\\u1EAF': 'a',\n '\\u1EB5': 'a',\n '\\u1EB3': 'a',\n '\\u0227': 'a',\n '\\u01E1': 'a',\n '\\u00E4': 'a',\n '\\u01DF': 'a',\n '\\u1EA3': 'a',\n '\\u00E5': 'a',\n '\\u01FB': 'a',\n '\\u01CE': 'a',\n '\\u0201': 'a',\n '\\u0203': 'a',\n '\\u1EA1': 'a',\n '\\u1EAD': 'a',\n '\\u1EB7': 'a',\n '\\u1E01': 'a',\n '\\u0105': 'a',\n '\\u2C65': 'a',\n '\\u0250': 'a',\n '\\uA733': 'aa',\n '\\u00E6': 'ae',\n '\\u01FD': 'ae',\n '\\u01E3': 'ae',\n '\\uA735': 'ao',\n '\\uA737': 'au',\n '\\uA739': 'av',\n '\\uA73B': 'av',\n '\\uA73D': 'ay',\n '\\u24D1': 'b',\n '\\uFF42': 'b',\n '\\u1E03': 'b',\n '\\u1E05': 'b',\n '\\u1E07': 'b',\n '\\u0180': 'b',\n '\\u0183': 'b',\n '\\u0253': 'b',\n '\\u24D2': 'c',\n '\\uFF43': 'c',\n '\\u0107': 'c',\n '\\u0109': 'c',\n '\\u010B': 'c',\n '\\u010D': 'c',\n '\\u00E7': 'c',\n '\\u1E09': 'c',\n '\\u0188': 'c',\n '\\u023C': 'c',\n '\\uA73F': 'c',\n '\\u2184': 'c',\n '\\u24D3': 'd',\n '\\uFF44': 'd',\n '\\u1E0B': 'd',\n '\\u010F': 'd',\n '\\u1E0D': 'd',\n '\\u1E11': 'd',\n '\\u1E13': 'd',\n '\\u1E0F': 'd',\n '\\u0111': 'd',\n '\\u018C': 'd',\n '\\u0256': 'd',\n '\\u0257': 'd',\n '\\uA77A': 'd',\n '\\u01F3': 'dz',\n '\\u01C6': 'dz',\n '\\u24D4': 'e',\n '\\uFF45': 'e',\n '\\u00E8': 'e',\n '\\u00E9': 'e',\n '\\u00EA': 'e',\n '\\u1EC1': 'e',\n '\\u1EBF': 'e',\n '\\u1EC5': 'e',\n '\\u1EC3': 'e',\n '\\u1EBD': 'e',\n '\\u0113': 'e',\n '\\u1E15': 'e',\n '\\u1E17': 'e',\n '\\u0115': 'e',\n '\\u0117': 'e',\n '\\u00EB': 'e',\n '\\u1EBB': 'e',\n '\\u011B': 'e',\n '\\u0205': 'e',\n '\\u0207': 'e',\n '\\u1EB9': 'e',\n '\\u1EC7': 'e',\n '\\u0229': 'e',\n '\\u1E1D': 'e',\n '\\u0119': 'e',\n '\\u1E19': 'e',\n '\\u1E1B': 'e',\n '\\u0247': 'e',\n '\\u025B': 'e',\n '\\u01DD': 'e',\n '\\u24D5': 'f',\n '\\uFF46': 'f',\n '\\u1E1F': 'f',\n '\\u0192': 'f',\n '\\uA77C': 'f',\n '\\u24D6': 'g',\n '\\uFF47': 'g',\n '\\u01F5': 'g',\n '\\u011D': 'g',\n '\\u1E21': 'g',\n '\\u011F': 'g',\n '\\u0121': 'g',\n '\\u01E7': 'g',\n '\\u0123': 'g',\n '\\u01E5': 'g',\n '\\u0260': 'g',\n '\\uA7A1': 'g',\n '\\u1D79': 'g',\n '\\uA77F': 'g',\n '\\u24D7': 'h',\n '\\uFF48': 'h',\n '\\u0125': 'h',\n '\\u1E23': 'h',\n '\\u1E27': 'h',\n '\\u021F': 'h',\n '\\u1E25': 'h',\n '\\u1E29': 'h',\n '\\u1E2B': 'h',\n '\\u1E96': 'h',\n '\\u0127': 'h',\n '\\u2C68': 'h',\n '\\u2C76': 'h',\n '\\u0265': 'h',\n '\\u0195': 'hv',\n '\\u24D8': 'i',\n '\\uFF49': 'i',\n '\\u00EC': 'i',\n '\\u00ED': 'i',\n '\\u00EE': 'i',\n '\\u0129': 'i',\n '\\u012B': 'i',\n '\\u012D': 'i',\n '\\u00EF': 'i',\n '\\u1E2F': 'i',\n '\\u1EC9': 'i',\n '\\u01D0': 'i',\n '\\u0209': 'i',\n '\\u020B': 'i',\n '\\u1ECB': 'i',\n '\\u012F': 'i',\n '\\u1E2D': 'i',\n '\\u0268': 'i',\n '\\u0131': 'i',\n '\\u24D9': 'j',\n '\\uFF4A': 'j',\n '\\u0135': 'j',\n '\\u01F0': 'j',\n '\\u0249': 'j',\n '\\u24DA': 'k',\n '\\uFF4B': 'k',\n '\\u1E31': 'k',\n '\\u01E9': 'k',\n '\\u1E33': 'k',\n '\\u0137': 'k',\n '\\u1E35': 'k',\n '\\u0199': 'k',\n '\\u2C6A': 'k',\n '\\uA741': 'k',\n '\\uA743': 'k',\n '\\uA745': 'k',\n '\\uA7A3': 'k',\n '\\u24DB': 'l',\n '\\uFF4C': 'l',\n '\\u0140': 'l',\n '\\u013A': 'l',\n '\\u013E': 'l',\n '\\u1E37': 'l',\n '\\u1E39': 'l',\n '\\u013C': 'l',\n '\\u1E3D': 'l',\n '\\u1E3B': 'l',\n '\\u017F': 'l',\n '\\u0142': 'l',\n '\\u019A': 'l',\n '\\u026B': 'l',\n '\\u2C61': 'l',\n '\\uA749': 'l',\n '\\uA781': 'l',\n '\\uA747': 'l',\n '\\u01C9': 'lj',\n '\\u24DC': 'm',\n '\\uFF4D': 'm',\n '\\u1E3F': 'm',\n '\\u1E41': 'm',\n '\\u1E43': 'm',\n '\\u0271': 'm',\n '\\u026F': 'm',\n '\\u24DD': 'n',\n '\\uFF4E': 'n',\n '\\u01F9': 'n',\n '\\u0144': 'n',\n '\\u00F1': 'n',\n '\\u1E45': 'n',\n '\\u0148': 'n',\n '\\u1E47': 'n',\n '\\u0146': 'n',\n '\\u1E4B': 'n',\n '\\u1E49': 'n',\n '\\u019E': 'n',\n '\\u0272': 'n',\n '\\u0149': 'n',\n '\\uA791': 'n',\n '\\uA7A5': 'n',\n '\\u01CC': 'nj',\n '\\u24DE': 'o',\n '\\uFF4F': 'o',\n '\\u00F2': 'o',\n '\\u00F3': 'o',\n '\\u00F4': 'o',\n '\\u1ED3': 'o',\n '\\u1ED1': 'o',\n '\\u1ED7': 'o',\n '\\u1ED5': 'o',\n '\\u00F5': 'o',\n '\\u1E4D': 'o',\n '\\u022D': 'o',\n '\\u1E4F': 'o',\n '\\u014D': 'o',\n '\\u1E51': 'o',\n '\\u1E53': 'o',\n '\\u014F': 'o',\n '\\u022F': 'o',\n '\\u0231': 'o',\n '\\u00F6': 'o',\n '\\u022B': 'o',\n '\\u1ECF': 'o',\n '\\u0151': 'o',\n '\\u01D2': 'o',\n '\\u020D': 'o',\n '\\u020F': 'o',\n '\\u01A1': 'o',\n '\\u1EDD': 'o',\n '\\u1EDB': 'o',\n '\\u1EE1': 'o',\n '\\u1EDF': 'o',\n '\\u1EE3': 'o',\n '\\u1ECD': 'o',\n '\\u1ED9': 'o',\n '\\u01EB': 'o',\n '\\u01ED': 'o',\n '\\u00F8': 'o',\n '\\u01FF': 'o',\n '\\u0254': 'o',\n '\\uA74B': 'o',\n '\\uA74D': 'o',\n '\\u0275': 'o',\n '\\u01A3': 'oi',\n '\\u0223': 'ou',\n '\\uA74F': 'oo',\n '\\u24DF': 'p',\n '\\uFF50': 'p',\n '\\u1E55': 'p',\n '\\u1E57': 'p',\n '\\u01A5': 'p',\n '\\u1D7D': 'p',\n '\\uA751': 'p',\n '\\uA753': 'p',\n '\\uA755': 'p',\n '\\u24E0': 'q',\n '\\uFF51': 'q',\n '\\u024B': 'q',\n '\\uA757': 'q',\n '\\uA759': 'q',\n '\\u24E1': 'r',\n '\\uFF52': 'r',\n '\\u0155': 'r',\n '\\u1E59': 'r',\n '\\u0159': 'r',\n '\\u0211': 'r',\n '\\u0213': 'r',\n '\\u1E5B': 'r',\n '\\u1E5D': 'r',\n '\\u0157': 'r',\n '\\u1E5F': 'r',\n '\\u024D': 'r',\n '\\u027D': 'r',\n '\\uA75B': 'r',\n '\\uA7A7': 'r',\n '\\uA783': 'r',\n '\\u24E2': 's',\n '\\uFF53': 's',\n '\\u00DF': 's',\n '\\u015B': 's',\n '\\u1E65': 's',\n '\\u015D': 's',\n '\\u1E61': 's',\n '\\u0161': 's',\n '\\u1E67': 's',\n '\\u1E63': 's',\n '\\u1E69': 's',\n '\\u0219': 's',\n '\\u015F': 's',\n '\\u023F': 's',\n '\\uA7A9': 's',\n '\\uA785': 's',\n '\\u1E9B': 's',\n '\\u24E3': 't',\n '\\uFF54': 't',\n '\\u1E6B': 't',\n '\\u1E97': 't',\n '\\u0165': 't',\n '\\u1E6D': 't',\n '\\u021B': 't',\n '\\u0163': 't',\n '\\u1E71': 't',\n '\\u1E6F': 't',\n '\\u0167': 't',\n '\\u01AD': 't',\n '\\u0288': 't',\n '\\u2C66': 't',\n '\\uA787': 't',\n '\\uA729': 'tz',\n '\\u24E4': 'u',\n '\\uFF55': 'u',\n '\\u00F9': 'u',\n '\\u00FA': 'u',\n '\\u00FB': 'u',\n '\\u0169': 'u',\n '\\u1E79': 'u',\n '\\u016B': 'u',\n '\\u1E7B': 'u',\n '\\u016D': 'u',\n '\\u00FC': 'u',\n '\\u01DC': 'u',\n '\\u01D8': 'u',\n '\\u01D6': 'u',\n '\\u01DA': 'u',\n '\\u1EE7': 'u',\n '\\u016F': 'u',\n '\\u0171': 'u',\n '\\u01D4': 'u',\n '\\u0215': 'u',\n '\\u0217': 'u',\n '\\u01B0': 'u',\n '\\u1EEB': 'u',\n '\\u1EE9': 'u',\n '\\u1EEF': 'u',\n '\\u1EED': 'u',\n '\\u1EF1': 'u',\n '\\u1EE5': 'u',\n '\\u1E73': 'u',\n '\\u0173': 'u',\n '\\u1E77': 'u',\n '\\u1E75': 'u',\n '\\u0289': 'u',\n '\\u24E5': 'v',\n '\\uFF56': 'v',\n '\\u1E7D': 'v',\n '\\u1E7F': 'v',\n '\\u028B': 'v',\n '\\uA75F': 'v',\n '\\u028C': 'v',\n '\\uA761': 'vy',\n '\\u24E6': 'w',\n '\\uFF57': 'w',\n '\\u1E81': 'w',\n '\\u1E83': 'w',\n '\\u0175': 'w',\n '\\u1E87': 'w',\n '\\u1E85': 'w',\n '\\u1E98': 'w',\n '\\u1E89': 'w',\n '\\u2C73': 'w',\n '\\u24E7': 'x',\n '\\uFF58': 'x',\n '\\u1E8B': 'x',\n '\\u1E8D': 'x',\n '\\u24E8': 'y',\n '\\uFF59': 'y',\n '\\u1EF3': 'y',\n '\\u00FD': 'y',\n '\\u0177': 'y',\n '\\u1EF9': 'y',\n '\\u0233': 'y',\n '\\u1E8F': 'y',\n '\\u00FF': 'y',\n '\\u1EF7': 'y',\n '\\u1E99': 'y',\n '\\u1EF5': 'y',\n '\\u01B4': 'y',\n '\\u024F': 'y',\n '\\u1EFF': 'y',\n '\\u24E9': 'z',\n '\\uFF5A': 'z',\n '\\u017A': 'z',\n '\\u1E91': 'z',\n '\\u017C': 'z',\n '\\u017E': 'z',\n '\\u1E93': 'z',\n '\\u1E95': 'z',\n '\\u01B6': 'z',\n '\\u0225': 'z',\n '\\u0240': 'z',\n '\\u2C6C': 'z',\n '\\uA763': 'z',\n '\\u0386': '\\u0391',\n '\\u0388': '\\u0395',\n '\\u0389': '\\u0397',\n '\\u038A': '\\u0399',\n '\\u03AA': '\\u0399',\n '\\u038C': '\\u039F',\n '\\u038E': '\\u03A5',\n '\\u03AB': '\\u03A5',\n '\\u038F': '\\u03A9',\n '\\u03AC': '\\u03B1',\n '\\u03AD': '\\u03B5',\n '\\u03AE': '\\u03B7',\n '\\u03AF': '\\u03B9',\n '\\u03CA': '\\u03B9',\n '\\u0390': '\\u03B9',\n '\\u03CC': '\\u03BF',\n '\\u03CD': '\\u03C5',\n '\\u03CB': '\\u03C5',\n '\\u03B0': '\\u03C5',\n '\\u03C9': '\\u03C9',\n '\\u03C2': '\\u03C3'\n };\n DataUtil.fnOperators = {\n /**\n * Returns true when the actual input is equal to the given input.\n * @param {string|number|boolean} actual\n * @param {string|number|boolean} expected\n * @param {boolean} ignoreCase?\n * @param {boolean} ignoreAccent?\n */\n equal: function (actual, expected, ignoreCase, ignoreAccent) {\n if (ignoreAccent) {\n actual = DataUtil.ignoreDiacritics(actual);\n expected = DataUtil.ignoreDiacritics(expected);\n }\n if (ignoreCase) {\n return DataUtil.toLowerCase(actual) === DataUtil.toLowerCase(expected);\n }\n return actual === expected;\n },\n /**\n * Returns true when the actual input is not equal to the given input.\n * @param {string|number|boolean} actual\n * @param {string|number|boolean} expected\n * @param {boolean} ignoreCase?\n */\n notequal: function (actual, expected, ignoreCase, ignoreAccent) {\n if (ignoreAccent) {\n actual = DataUtil.ignoreDiacritics(actual);\n expected = DataUtil.ignoreDiacritics(expected);\n }\n return !DataUtil.fnOperators.equal(actual, expected, ignoreCase);\n },\n /**\n * Returns true when the actual input is less than to the given input.\n * @param {string|number|boolean} actual\n * @param {string|number|boolean} expected\n * @param {boolean} ignoreCase?\n */\n lessthan: function (actual, expected, ignoreCase) {\n if (ignoreCase) {\n return DataUtil.toLowerCase(actual) < DataUtil.toLowerCase(expected);\n }\n if (isNullOrUndefined(actual)) {\n actual = undefined;\n }\n return actual < expected;\n },\n /**\n * Returns true when the actual input is greater than to the given input.\n * @param {string|number|boolean} actual\n * @param {string|number|boolean} expected\n * @param {boolean} ignoreCase?\n */\n greaterthan: function (actual, expected, ignoreCase) {\n if (ignoreCase) {\n return DataUtil.toLowerCase(actual) > DataUtil.toLowerCase(expected);\n }\n return actual > expected;\n },\n /**\n * Returns true when the actual input is less than or equal to the given input.\n * @param {string|number|boolean} actual\n * @param {string|number|boolean} expected\n * @param {boolean} ignoreCase?\n */\n lessthanorequal: function (actual, expected, ignoreCase) {\n if (ignoreCase) {\n return DataUtil.toLowerCase(actual) <= DataUtil.toLowerCase(expected);\n }\n if (isNullOrUndefined(actual)) {\n actual = undefined;\n }\n return actual <= expected;\n },\n /**\n * Returns true when the actual input is greater than or equal to the given input.\n * @param {string|number|boolean} actual\n * @param {string|number|boolean} expected\n * @param {boolean} ignoreCase?\n */\n greaterthanorequal: function (actual, expected, ignoreCase) {\n if (ignoreCase) {\n return DataUtil.toLowerCase(actual) >= DataUtil.toLowerCase(expected);\n }\n return actual >= expected;\n },\n /**\n * Returns true when the actual input contains the given string.\n * @param {string|number} actual\n * @param {string|number} expected\n * @param {boolean} ignoreCase?\n */\n contains: function (actual, expected, ignoreCase, ignoreAccent) {\n if (ignoreAccent) {\n actual = DataUtil.ignoreDiacritics(actual);\n expected = DataUtil.ignoreDiacritics(expected);\n }\n if (ignoreCase) {\n return !isNullOrUndefined(actual) && !isNullOrUndefined(expected) &&\n DataUtil.toLowerCase(actual).indexOf(DataUtil.toLowerCase(expected)) !== -1;\n }\n return !isNullOrUndefined(actual) && !isNullOrUndefined(expected) &&\n actual.toString().indexOf(expected) !== -1;\n },\n /**\n * Returns true when the given input value is not null.\n * @param {string|number} actual\n * @returns boolean\n */\n notnull: function (actual) {\n return actual !== null;\n },\n /**\n * Returns true when the given input value is null.\n * @param {string|number} actual\n * @returns boolean\n */\n isnull: function (actual) {\n return actual === null;\n },\n /**\n * Returns true when the actual input starts with the given string\n * @param {string} actual\n * @param {string} expected\n * @param {boolean} ignoreCase?\n */\n startswith: function (actual, expected, ignoreCase, ignoreAccent) {\n if (ignoreAccent) {\n actual = DataUtil.ignoreDiacritics(actual);\n expected = DataUtil.ignoreDiacritics(expected);\n }\n if (ignoreCase) {\n return actual && expected && DataUtil.startsWith(DataUtil.toLowerCase(actual), DataUtil.toLowerCase(expected));\n }\n return actual && expected && DataUtil.startsWith(actual, expected);\n },\n /**\n * Returns true when the actual input ends with the given string.\n * @param {string} actual\n * @param {string} expected\n * @param {boolean} ignoreCase?\n */\n endswith: function (actual, expected, ignoreCase, ignoreAccent) {\n if (ignoreAccent) {\n actual = DataUtil.ignoreDiacritics(actual);\n expected = DataUtil.ignoreDiacritics(expected);\n }\n if (ignoreCase) {\n return actual && expected && DataUtil.endsWith(DataUtil.toLowerCase(actual), DataUtil.toLowerCase(expected));\n }\n return actual && expected && DataUtil.endsWith(actual, expected);\n },\n /**\n * It will return the filter operator based on the filter symbol.\n * @param {string} operator\n * @hidden\n */\n processSymbols: function (operator) {\n var fnName = DataUtil.operatorSymbols[operator];\n if (fnName) {\n var fn = DataUtil.fnOperators[fnName];\n return fn;\n }\n return DataUtil.throwError('Query - Process Operator : Invalid operator');\n },\n /**\n * It will return the valid filter operator based on the specified operators.\n * @param {string} operator\n * @hidden\n */\n processOperator: function (operator) {\n var fn = DataUtil.fnOperators[operator];\n if (fn) {\n return fn;\n }\n return DataUtil.fnOperators.processSymbols(operator);\n }\n };\n /**\n * To perform the parse operation on JSON data, like convert to string from JSON or convert to JSON from string.\n */\n DataUtil.parse = {\n /**\n * Parse the given string to the plain JavaScript object.\n * @param {string|Object|Object[]} jsonText\n */\n parseJson: function (jsonText) {\n if (typeof jsonText === 'string') {\n jsonText = JSON.parse(jsonText, DataUtil.parse.jsonReviver);\n }\n else if (jsonText instanceof Array) {\n DataUtil.parse.iterateAndReviveArray(jsonText);\n }\n else if (typeof jsonText === 'object' && jsonText !== null) {\n DataUtil.parse.iterateAndReviveJson(jsonText);\n }\n return jsonText;\n },\n /**\n * It will perform on array of values.\n * @param {string[]|Object[]} array\n * @hidden\n */\n iterateAndReviveArray: function (array) {\n for (var i = 0; i < array.length; i++) {\n if (typeof array[i] === 'object' && array[i] !== null) {\n DataUtil.parse.iterateAndReviveJson(array[i]);\n }\n else if (typeof array[i] === 'string' && !/^[\\s]*\\[|^[\\s]*\\{(.)+:|\\\"/g.test(array[i])) {\n array[i] = DataUtil.parse.jsonReviver('', array[i]);\n }\n else {\n array[i] = DataUtil.parse.parseJson(array[i]);\n }\n }\n },\n /**\n * It will perform on JSON values\n * @param {JSON} json\n * @hidden\n */\n iterateAndReviveJson: function (json) {\n var value;\n var keys = Object.keys(json);\n for (var _i = 0, keys_2 = keys; _i < keys_2.length; _i++) {\n var prop = keys_2[_i];\n if (DataUtil.startsWith(prop, '__')) {\n continue;\n }\n value = json[prop];\n if (typeof value === 'object') {\n if (value instanceof Array) {\n DataUtil.parse.iterateAndReviveArray(value);\n }\n else if (value) {\n DataUtil.parse.iterateAndReviveJson(value);\n }\n }\n else {\n json[prop] = DataUtil.parse.jsonReviver(json[prop], value);\n }\n }\n },\n /**\n * It will perform on JSON values\n * @param {string} field\n * @param {string|Date} value\n * @hidden\n */\n jsonReviver: function (field, value) {\n if (typeof value === 'string') {\n var ms = /^\\/Date\\(([+-]?[0-9]+)([+-][0-9]{4})?\\)\\/$/.exec(value);\n var offSet = DataUtil.timeZoneHandling ? DataUtil.serverTimezoneOffset : null;\n if (ms) {\n return DataUtil.dateParse.toTimeZone(new Date(parseInt(ms[1], 10)), offSet, true);\n }\n else if (/^(\\d{4}\\-\\d\\d\\-\\d\\d([tT][\\d:\\.]*){1})([zZ]|([+\\-])(\\d\\d):?(\\d\\d))?$/.test(value)) {\n var isUTC = value.indexOf('Z') > -1 || value.indexOf('z') > -1;\n var arr = value.split(/[^0-9.]/);\n if (isUTC) {\n if (arr[5].indexOf('.') > -1) {\n var secondsMs = arr[5].split('.');\n arr[5] = secondsMs[0];\n arr[6] = new Date(value).getUTCMilliseconds().toString();\n }\n else {\n arr[6] = '00';\n }\n value = DataUtil.dateParse\n .toTimeZone(new Date(parseInt(arr[0], 10), parseInt(arr[1], 10) - 1, parseInt(arr[2], 10), parseInt(arr[3], 10), parseInt(arr[4], 10), parseInt(arr[5], 10), parseInt(arr[6], 10)), DataUtil.serverTimezoneOffset, false);\n }\n else {\n var utcFormat = new Date(parseInt(arr[0], 10), parseInt(arr[1], 10) - 1, parseInt(arr[2], 10), parseInt(arr[3], 10), parseInt(arr[4], 10), parseInt(arr[5], 10));\n var hrs = parseInt(arr[6], 10);\n var mins = parseInt(arr[7], 10);\n if (isNaN(hrs) && isNaN(mins)) {\n return utcFormat;\n }\n if (value.indexOf('+') > -1) {\n utcFormat.setHours(utcFormat.getHours() - hrs, utcFormat.getMinutes() - mins);\n }\n else {\n utcFormat.setHours(utcFormat.getHours() + hrs, utcFormat.getMinutes() + mins);\n }\n value = DataUtil.dateParse\n .toTimeZone(utcFormat, DataUtil.serverTimezoneOffset, false);\n }\n if (DataUtil.serverTimezoneOffset == null) {\n value = DataUtil.dateParse.addSelfOffset(value);\n }\n }\n }\n return value;\n },\n /**\n * Check wheather the given value is JSON or not.\n * @param {Object[]} jsonData\n */\n isJson: function (jsonData) {\n if (typeof jsonData[0] === 'string') {\n return jsonData;\n }\n return DataUtil.parse.parseJson(jsonData);\n },\n /**\n * Checks wheather the given value is GUID or not.\n * @param {string} value\n */\n isGuid: function (value) {\n var regex = /[A-Fa-f0-9]{8}(?:-[A-Fa-f0-9]{4}){3}-[A-Fa-f0-9]{12}/i;\n var match = regex.exec(value);\n return match != null;\n },\n /**\n * The method used to replace the value based on the type.\n * @param {Object} value\n * @param {boolean} stringify\n * @hidden\n */\n replacer: function (value, stringify) {\n if (DataUtil.isPlainObject(value)) {\n return DataUtil.parse.jsonReplacer(value, stringify);\n }\n if (value instanceof Array) {\n return DataUtil.parse.arrayReplacer(value);\n }\n if (value instanceof Date) {\n return DataUtil.parse.jsonReplacer({ val: value }, stringify).val;\n }\n return value;\n },\n /**\n * It will replace the JSON value.\n * @param {string} key\n * @param {Object} val\n * @hidden\n */\n jsonReplacer: function (val, stringify) {\n var value;\n var keys = Object.keys(val);\n for (var _i = 0, keys_3 = keys; _i < keys_3.length; _i++) {\n var prop = keys_3[_i];\n value = val[prop];\n if (!(value instanceof Date)) {\n continue;\n }\n var d = value;\n if (DataUtil.serverTimezoneOffset == null) {\n val[prop] = DataUtil.dateParse.toTimeZone(d, null).toJSON();\n }\n else {\n d = new Date(+d + DataUtil.serverTimezoneOffset * 3600000);\n val[prop] = DataUtil.dateParse.toTimeZone(DataUtil.dateParse.addSelfOffset(d), null).toJSON();\n }\n }\n return val;\n },\n /**\n * It will replace the Array of value.\n * @param {string} key\n * @param {Object[]} val\n * @hidden\n */\n arrayReplacer: function (val) {\n for (var i = 0; i < val.length; i++) {\n if (DataUtil.isPlainObject(val[i])) {\n val[i] = DataUtil.parse.jsonReplacer(val[i]);\n }\n else if (val[i] instanceof Date) {\n val[i] = DataUtil.parse.jsonReplacer({ date: val[i] }).date;\n }\n }\n return val;\n },\n /**\n * It will replace the Date object with respective to UTC format value.\n * @param {string} key\n * @param {any} value\n * @hidden\n */\n /* tslint:disable-next-line:no-any */\n jsonDateReplacer: function (key, value) {\n if (key === 'value' && value) {\n if (typeof value === 'string') {\n var ms = /^\\/Date\\(([+-]?[0-9]+)([+-][0-9]{4})?\\)\\/$/.exec(value);\n if (ms) {\n value = DataUtil.dateParse.toTimeZone(new Date(parseInt(ms[1], 10)), null, true);\n }\n else if (/^(\\d{4}\\-\\d\\d\\-\\d\\d([tT][\\d:\\.]*){1})([zZ]|([+\\-])(\\d\\d):?(\\d\\d))?$/.test(value)) {\n var arr = value.split(/[^0-9]/);\n value = DataUtil.dateParse\n .toTimeZone(new Date(parseInt(arr[0], 10), parseInt(arr[1], 10) - 1, parseInt(arr[2], 10), parseInt(arr[3], 10), parseInt(arr[4], 10), parseInt(arr[5], 10)), null, true);\n }\n }\n if (value instanceof Date) {\n value = DataUtil.dateParse.addSelfOffset(value);\n if (DataUtil.serverTimezoneOffset === null) {\n return DataUtil.dateParse.toTimeZone(DataUtil.dateParse.addSelfOffset(value), null).toJSON();\n }\n else {\n value = DataUtil.dateParse.toTimeZone(value, (((value.getTimezoneOffset() / 60) * 2)\n - DataUtil.serverTimezoneOffset), false);\n return value.toJSON();\n }\n }\n }\n return value;\n }\n };\n /**\n * @hidden\n */\n DataUtil.dateParse = {\n addSelfOffset: function (input) {\n return new Date(+input - (input.getTimezoneOffset() * 60000));\n },\n toUTC: function (input) {\n return new Date(+input + (input.getTimezoneOffset() * 60000));\n },\n toTimeZone: function (input, offset, utc) {\n if (offset === null) {\n return input;\n }\n var unix = utc ? DataUtil.dateParse.toUTC(input) : input;\n return new Date(+unix - (offset * 3600000));\n },\n toLocalTime: function (input) {\n var datefn = input;\n var timeZone = -datefn.getTimezoneOffset();\n var differenceString = timeZone >= 0 ? '+' : '-';\n var localtimefn = function (num) {\n var norm = Math.floor(Math.abs(num));\n return (norm < 10 ? '0' : '') + norm;\n };\n var val = datefn.getFullYear() + '-' + localtimefn(datefn.getMonth() + 1) + '-' + localtimefn(datefn.getDate()) +\n 'T' + localtimefn(datefn.getHours()) +\n ':' + localtimefn(datefn.getMinutes()) +\n ':' + localtimefn(datefn.getSeconds()) +\n differenceString + localtimefn(timeZone / 60) +\n ':' + localtimefn(timeZone % 60);\n return val;\n }\n };\n return DataUtil;\n}());\nexport { DataUtil };\n","import { DataUtil } from './util';\nimport { isNullOrUndefined } from '@syncfusion/ej2-base';\n/**\n * Query class is used to build query which is used by the DataManager to communicate with datasource.\n */\nvar Query = /** @class */ (function () {\n /**\n * Constructor for Query class.\n * @param {string|string[]} from?\n * @hidden\n */\n function Query(from) {\n /** @hidden */\n this.subQuery = null;\n /** @hidden */\n this.isChild = false;\n /** @hidden */\n this.distincts = [];\n this.queries = [];\n this.key = '';\n this.fKey = '';\n if (typeof from === 'string') {\n this.fromTable = from;\n }\n else if (from && from instanceof Array) {\n this.lookups = from;\n }\n this.expands = [];\n this.sortedColumns = [];\n this.groupedColumns = [];\n this.subQuery = null;\n this.isChild = false;\n this.params = [];\n this.lazyLoad = [];\n return this;\n }\n /**\n * Sets the primary key.\n * @param {string} field - Defines the column field.\n */\n Query.prototype.setKey = function (field) {\n this.key = field;\n return this;\n };\n /**\n * Sets default DataManager to execute query.\n * @param {DataManager} dataManager - Defines the DataManager.\n */\n Query.prototype.using = function (dataManager) {\n this.dataManager = dataManager;\n return this;\n };\n /**\n * Executes query with the given DataManager.\n * @param {DataManager} dataManager - Defines the DataManager.\n * @param {Function} done - Defines the success callback.\n * @param {Function} fail - Defines the failure callback.\n * @param {Function} always - Defines the callback which will be invoked on either success or failure.\n *\n *
\n     * let dataManager: DataManager = new DataManager([{ ID: '10' }, { ID: '2' }, { ID: '1' }, { ID: '20' }]);\n     * let query: Query = new Query();\n     * query.sortBy('ID', (x: string, y: string): number => { return parseInt(x, 10) - parseInt(y, 10) });\n     * let promise: Promise< Object > = query.execute(dataManager);\n     * promise.then((e: { result: Object }) => { });\n     * 
\n */\n Query.prototype.execute = function (dataManager, done, fail, always) {\n dataManager = dataManager || this.dataManager;\n if (dataManager) {\n return dataManager.executeQuery(this, done, fail, always);\n }\n return DataUtil.throwError('Query - execute() : dataManager needs to be is set using \"using\" function or should be passed as argument');\n };\n /**\n * Executes query with the local datasource.\n * @param {DataManager} dataManager - Defines the DataManager.\n */\n Query.prototype.executeLocal = function (dataManager) {\n dataManager = dataManager || this.dataManager;\n if (dataManager) {\n return dataManager.executeLocal(this);\n }\n return DataUtil.throwError('Query - executeLocal() : dataManager needs to be is set using \"using\" function or should be passed as argument');\n };\n /**\n * Creates deep copy of the Query object.\n */\n Query.prototype.clone = function () {\n var cloned = new Query();\n cloned.queries = this.queries.slice(0);\n cloned.key = this.key;\n cloned.isChild = this.isChild;\n cloned.dataManager = this.dataManager;\n cloned.fromTable = this.fromTable;\n cloned.params = this.params.slice(0);\n cloned.expands = this.expands.slice(0);\n cloned.sortedColumns = this.sortedColumns.slice(0);\n cloned.groupedColumns = this.groupedColumns.slice(0);\n cloned.subQuerySelector = this.subQuerySelector;\n cloned.subQuery = this.subQuery;\n cloned.fKey = this.fKey;\n cloned.isCountRequired = this.isCountRequired;\n cloned.distincts = this.distincts.slice(0);\n cloned.lazyLoad = this.lazyLoad.slice(0);\n return cloned;\n };\n /**\n * Specifies the name of table to retrieve data in query execution.\n * @param {string} tableName - Defines the table name.\n */\n Query.prototype.from = function (tableName) {\n this.fromTable = tableName;\n return this;\n };\n /**\n * Adds additional parameter which will be sent along with the request which will be generated while DataManager execute.\n * @param {string} key - Defines the key of additional parameter.\n * @param {Function|string} value - Defines the value for the key.\n */\n Query.prototype.addParams = function (key, value) {\n if (typeof value === 'function') {\n this.params.push({ key: key, fn: value });\n }\n else {\n this.params.push({ key: key, value: value });\n }\n return this;\n };\n /**\n * @hidden\n */\n Query.prototype.distinct = function (fields) {\n if (typeof fields === 'string') {\n this.distincts = [].slice.call([fields], 0);\n }\n else {\n this.distincts = fields.slice(0);\n }\n return this;\n };\n /**\n * Expands the related table.\n * @param {string|Object[]} tables\n */\n Query.prototype.expand = function (tables) {\n if (typeof tables === 'string') {\n this.expands = [].slice.call([tables], 0);\n }\n else {\n this.expands = tables.slice(0);\n }\n return this;\n };\n /**\n * Filter data with given filter criteria.\n * @param {string|Predicate} fieldName - Defines the column field or Predicate.\n * @param {string} operator - Defines the operator how to filter data.\n * @param {string|number|boolean} value - Defines the values to match with data.\n * @param {boolean} ignoreCase - If ignore case set to false, then filter data with exact match or else\n * filter data with case insensitive.\n */\n Query.prototype.where = function (fieldName, operator, value, ignoreCase, ignoreAccent, matchCase) {\n operator = operator ? (operator).toLowerCase() : null;\n var predicate = null;\n if (typeof fieldName === 'string') {\n predicate = new Predicate(fieldName, operator, value, ignoreCase, ignoreAccent, matchCase);\n }\n else if (fieldName instanceof Predicate) {\n predicate = fieldName;\n }\n this.queries.push({\n fn: 'onWhere',\n e: predicate\n });\n return this;\n };\n /**\n * Search data with given search criteria.\n * @param {string|number|boolean} searchKey - Defines the search key.\n * @param {string|string[]} fieldNames - Defines the collection of column fields.\n * @param {string} operator - Defines the operator how to search data.\n * @param {boolean} ignoreCase - If ignore case set to false, then filter data with exact match or else\n * filter data with case insensitive.\n */\n Query.prototype.search = function (searchKey, fieldNames, operator, ignoreCase, ignoreAccent) {\n if (typeof fieldNames === 'string') {\n fieldNames = [fieldNames];\n }\n if (!operator || operator === 'none') {\n operator = 'contains';\n }\n var comparer = DataUtil.fnOperators[operator];\n this.queries.push({\n fn: 'onSearch',\n e: {\n fieldNames: fieldNames,\n operator: operator,\n searchKey: searchKey,\n ignoreCase: ignoreCase,\n ignoreAccent: ignoreAccent,\n comparer: comparer\n }\n });\n return this;\n };\n /**\n * Sort the data with given sort criteria.\n * By default, sort direction is ascending.\n * @param {string|string[]} fieldName - Defines the single or collection of column fields.\n * @param {string|Function} comparer - Defines the sort direction or custom sort comparer function.\n */\n Query.prototype.sortBy = function (fieldName, comparer, isFromGroup) {\n return this.sortByForeignKey(fieldName, comparer, isFromGroup);\n };\n /**\n * Sort the data with given sort criteria.\n * By default, sort direction is ascending.\n * @param {string|string[]} fieldName - Defines the single or collection of column fields.\n * @param {string|Function} comparer - Defines the sort direction or custom sort comparer function.\n * @param {string} direction - Defines the sort direction .\n */\n Query.prototype.sortByForeignKey = function (fieldName, comparer, isFromGroup, direction) {\n var order = !isNullOrUndefined(direction) ? direction : 'ascending';\n var sorts;\n var temp;\n if (typeof fieldName === 'string' && DataUtil.endsWith(fieldName.toLowerCase(), ' desc')) {\n fieldName = fieldName.replace(/ desc$/i, '');\n comparer = 'descending';\n }\n if (!comparer || typeof comparer === 'string') {\n order = comparer ? comparer.toLowerCase() : 'ascending';\n comparer = DataUtil.fnSort(comparer);\n }\n if (isFromGroup) {\n sorts = Query.filterQueries(this.queries, 'onSortBy');\n for (var i = 0; i < sorts.length; i++) {\n temp = sorts[i].e.fieldName;\n if (typeof temp === 'string') {\n if (temp === fieldName) {\n return this;\n }\n }\n else if (temp instanceof Array) {\n for (var j = 0; j < temp.length; j++) {\n if (temp[j] === fieldName || fieldName.toLowerCase() === temp[j] + ' desc') {\n return this;\n }\n }\n }\n }\n }\n this.queries.push({\n fn: 'onSortBy',\n e: {\n fieldName: fieldName,\n comparer: comparer,\n direction: order\n }\n });\n return this;\n };\n /**\n * Sorts data in descending order.\n * @param {string} fieldName - Defines the column field.\n */\n Query.prototype.sortByDesc = function (fieldName) {\n return this.sortBy(fieldName, 'descending');\n };\n /**\n * Groups data with the given field name.\n * @param {string} fieldName - Defines the column field.\n */\n Query.prototype.group = function (fieldName, fn, format) {\n this.sortBy(fieldName, null, true);\n this.queries.push({\n fn: 'onGroup',\n e: {\n fieldName: fieldName,\n comparer: fn ? fn : null,\n format: format ? format : null\n }\n });\n return this;\n };\n /**\n * Gets data based on the given page index and size.\n * @param {number} pageIndex - Defines the current page index.\n * @param {number} pageSize - Defines the no of records per page.\n */\n Query.prototype.page = function (pageIndex, pageSize) {\n this.queries.push({\n fn: 'onPage',\n e: {\n pageIndex: pageIndex,\n pageSize: pageSize\n }\n });\n return this;\n };\n /**\n * Gets data based on the given start and end index.\n * @param {number} start - Defines the start index of the datasource.\n * @param {number} end - Defines the end index of the datasource.\n */\n Query.prototype.range = function (start, end) {\n this.queries.push({\n fn: 'onRange',\n e: {\n start: start,\n end: end\n }\n });\n return this;\n };\n /**\n * Gets data from the top of the data source based on given number of records count.\n * @param {number} nos - Defines the no of records to retrieve from datasource.\n */\n Query.prototype.take = function (nos) {\n this.queries.push({\n fn: 'onTake',\n e: {\n nos: nos\n }\n });\n return this;\n };\n /**\n * Skips data with given number of records count from the top of the data source.\n * @param {number} nos - Defines the no of records skip in the datasource.\n */\n Query.prototype.skip = function (nos) {\n this.queries.push({\n fn: 'onSkip',\n e: { nos: nos }\n });\n return this;\n };\n /**\n * Selects specified columns from the data source.\n * @param {string|string[]} fieldNames - Defines the collection of column fields.\n */\n Query.prototype.select = function (fieldNames) {\n if (typeof fieldNames === 'string') {\n fieldNames = [].slice.call([fieldNames], 0);\n }\n this.queries.push({\n fn: 'onSelect',\n e: { fieldNames: fieldNames }\n });\n return this;\n };\n /**\n * Gets the records in hierarchical relationship from two tables. It requires the foreign key to relate two tables.\n * @param {Query} query - Defines the query to relate two tables.\n * @param {Function} selectorFn - Defines the custom function to select records.\n */\n Query.prototype.hierarchy = function (query, selectorFn) {\n this.subQuerySelector = selectorFn;\n this.subQuery = query;\n return this;\n };\n /**\n * Sets the foreign key which is used to get data from the related table.\n * @param {string} key - Defines the foreign key.\n */\n Query.prototype.foreignKey = function (key) {\n this.fKey = key;\n return this;\n };\n /**\n * It is used to get total number of records in the DataManager execution result.\n */\n Query.prototype.requiresCount = function () {\n this.isCountRequired = true;\n return this;\n };\n //type - sum, avg, min, max\n /**\n * Aggregate the data with given type and field name.\n * @param {string} type - Defines the aggregate type.\n * @param {string} field - Defines the column field to aggregate.\n */\n Query.prototype.aggregate = function (type, field) {\n this.queries.push({\n fn: 'onAggregates',\n e: { field: field, type: type }\n });\n return this;\n };\n /**\n * Pass array of filterColumn query for performing filter operation.\n * @param {QueryOptions[]} queries\n * @param {string} name\n * @hidden\n */\n Query.filterQueries = function (queries, name) {\n return queries.filter(function (q) {\n return q.fn === name;\n });\n };\n /**\n * To get the list of queries which is already filtered in current data source.\n * @param {Object[]} queries\n * @param {string[]} singles\n * @hidden\n */\n Query.filterQueryLists = function (queries, singles) {\n var filtered = queries.filter(function (q) {\n return singles.indexOf(q.fn) !== -1;\n });\n var res = {};\n for (var i = 0; i < filtered.length; i++) {\n if (!res[filtered[i].fn]) {\n res[filtered[i].fn] = filtered[i].e;\n }\n }\n return res;\n };\n return Query;\n}());\nexport { Query };\n/**\n * Predicate class is used to generate complex filter criteria.\n * This will be used by DataManager to perform multiple filtering operation.\n */\nvar Predicate = /** @class */ (function () {\n /**\n * Constructor for Predicate class.\n * @param {string|Predicate} field\n * @param {string} operator\n * @param {string|number|boolean|Predicate|Predicate[]} value\n * @param {boolean=false} ignoreCase\n * @param {boolean} matchCase\n * @hidden\n */\n function Predicate(field, operator, value, ignoreCase, ignoreAccent, matchCase) {\n if (ignoreCase === void 0) { ignoreCase = false; }\n /** @hidden */\n this.ignoreAccent = false;\n /** @hidden */\n this.isComplex = false;\n if (typeof field === 'string') {\n this.field = field;\n this.operator = operator.toLowerCase();\n this.value = value;\n this.matchCase = matchCase;\n this.ignoreCase = ignoreCase;\n this.ignoreAccent = ignoreAccent;\n this.isComplex = false;\n this.comparer = DataUtil.fnOperators.processOperator(this.operator);\n }\n else if (field instanceof Predicate && value instanceof Predicate || value instanceof Array) {\n this.isComplex = true;\n this.condition = operator.toLowerCase();\n this.predicates = [field];\n this.matchCase = field.matchCase;\n this.ignoreCase = field.ignoreCase;\n this.ignoreAccent = field.ignoreAccent;\n if (value instanceof Array) {\n [].push.apply(this.predicates, value);\n }\n else {\n this.predicates.push(value);\n }\n }\n return this;\n }\n /**\n * Adds n-number of new predicates on existing predicate with “and” condition.\n * @param {Object[]} args - Defines the collection of predicates.\n */\n Predicate.and = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return Predicate.combinePredicates([].slice.call(args, 0), 'and');\n };\n /**\n * Adds new predicate on existing predicate with “and” condition.\n * @param {string} field - Defines the column field.\n * @param {string} operator - Defines the operator how to filter data.\n * @param {string} value - Defines the values to match with data.\n * @param {boolean} ignoreCase? - If ignore case set to false, then filter data with exact match or else\n * filter data with case insensitive.\n */\n Predicate.prototype.and = function (field, operator, value, ignoreCase, ignoreAccent) {\n return Predicate.combine(this, field, operator, value, 'and', ignoreCase, ignoreAccent);\n };\n /**\n * Adds n-number of new predicates on existing predicate with “or” condition.\n * @param {Object[]} args - Defines the collection of predicates.\n */\n Predicate.or = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return Predicate.combinePredicates([].slice.call(args, 0), 'or');\n };\n /**\n * Adds new predicate on existing predicate with “or” condition.\n * @param {string} field - Defines the column field.\n * @param {string} operator - Defines the operator how to filter data.\n * @param {string} value - Defines the values to match with data.\n * @param {boolean} ignoreCase? - If ignore case set to false, then filter data with exact match or else\n * filter data with case insensitive.\n */\n Predicate.prototype.or = function (field, operator, value, ignoreCase, ignoreAccent) {\n return Predicate.combine(this, field, operator, value, 'or', ignoreCase, ignoreAccent);\n };\n /**\n * Converts plain JavaScript object to Predicate object.\n * @param {Predicate[]|Predicate} json - Defines single or collection of Predicate.\n */\n Predicate.fromJson = function (json) {\n if (json instanceof Array) {\n var res = [];\n for (var i = 0, len = json.length; i < len; i++) {\n res.push(this.fromJSONData(json[i]));\n }\n return res;\n }\n var pred = json;\n return this.fromJSONData(pred);\n };\n /**\n * Validate the record based on the predicates.\n * @param {Object} record - Defines the datasource record.\n */\n Predicate.prototype.validate = function (record) {\n var predicate = this.predicates ? this.predicates : [];\n var isAnd;\n var ret;\n if (!this.isComplex && this.comparer) {\n return this.comparer.call(this, DataUtil.getObject(this.field, record), this.value, this.ignoreCase, this.ignoreAccent);\n }\n isAnd = this.condition === 'and';\n for (var i = 0; i < predicate.length; i++) {\n ret = predicate[i].validate(record);\n if (isAnd) {\n if (!ret) {\n return false;\n }\n }\n else {\n if (ret) {\n return true;\n }\n }\n }\n return isAnd;\n };\n /**\n * Converts predicates to plain JavaScript.\n * This method is uses Json stringify when serializing Predicate object.\n */\n Predicate.prototype.toJson = function () {\n var predicates;\n var p;\n if (this.isComplex) {\n predicates = [];\n p = this.predicates;\n for (var i = 0; i < p.length; i++) {\n predicates.push(p[i].toJson());\n }\n }\n return {\n isComplex: this.isComplex,\n field: this.field,\n operator: this.operator,\n value: this.value,\n ignoreCase: this.ignoreCase,\n ignoreAccent: this.ignoreAccent,\n condition: this.condition,\n predicates: predicates,\n matchCase: this.matchCase\n };\n };\n Predicate.combinePredicates = function (predicates, operator) {\n if (predicates.length === 1) {\n if (!(predicates[0] instanceof Array)) {\n return predicates[0];\n }\n predicates = predicates[0];\n }\n return new Predicate(predicates[0], operator, predicates.slice(1));\n };\n Predicate.combine = function (pred, field, operator, value, condition, ignoreCase, ignoreAccent) {\n if (field instanceof Predicate) {\n return Predicate[condition](pred, field);\n }\n if (typeof field === 'string') {\n return Predicate[condition](pred, new Predicate(field, operator, value, ignoreCase, ignoreAccent));\n }\n return DataUtil.throwError('Predicate - ' + condition + ' : invalid arguments');\n };\n Predicate.fromJSONData = function (json) {\n var preds = json.predicates || [];\n var len = preds.length;\n var predicates = [];\n var result;\n for (var i = 0; i < len; i++) {\n predicates.push(this.fromJSONData(preds[i]));\n }\n if (!json.isComplex) {\n result = new Predicate(json.field, json.operator, json.value, json.ignoreCase, json.ignoreAccent);\n }\n else {\n result = new Predicate(predicates[0], json.condition, predicates.slice(1));\n }\n return result;\n };\n return Predicate;\n}());\nexport { Predicate };\n","import { select, detach } from '@syncfusion/ej2-base';\nimport { VScroll } from './v-scroll';\nimport { HScroll } from './h-scroll';\n/**\n * Used to add scroll in menu.\n *\n * @param {createElementType} createElement - Specifies the create element model\n * @param {HTMLElement} container - Specifies the element container\n * @param {HTMLElement} content - Specifies the content element\n * @param {string} scrollType - Specifies the scroll type\n * @param {boolean} enableRtl - Specifies the enable RTL property\n * @param {boolean} offset - Specifies the offset value\n * @returns {HTMLElement} - Element\n * @hidden\n */\nexport function addScrolling(createElement, container, content, scrollType, enableRtl, offset) {\n var containerOffset;\n var contentOffset;\n var parentElem = container.parentElement;\n if (scrollType === 'vscroll') {\n containerOffset = offset || container.getBoundingClientRect().height;\n contentOffset = content.getBoundingClientRect().height;\n }\n else {\n containerOffset = container.getBoundingClientRect().width;\n contentOffset = content.getBoundingClientRect().width;\n }\n if (containerOffset < contentOffset) {\n return createScrollbar(createElement, container, content, scrollType, enableRtl, offset);\n }\n else if (parentElem) {\n var width = parentElem.getBoundingClientRect().width;\n if (width < containerOffset && scrollType === 'hscroll') {\n contentOffset = width;\n container.style.maxWidth = width + 'px';\n return createScrollbar(createElement, container, content, scrollType, enableRtl, offset);\n }\n return content;\n }\n else {\n return content;\n }\n}\n/**\n * Used to create scroll bar in menu.\n *\n * @param {createElementType} createElement - Specifies the create element model\n * @param {HTMLElement} container - Specifies the element container\n * @param {HTMLElement} content - Specifies the content element\n * @param {string} scrollType - Specifies the scroll type\n * @param {boolean} enableRtl - Specifies the enable RTL property\n * @param {boolean} offset - Specifies the offset value\n * @returns {HTMLElement} - Element\n * @hidden\n */\nfunction createScrollbar(createElement, container, content, scrollType, enableRtl, offset) {\n var scrollEle = createElement('div', { className: 'e-menu-' + scrollType });\n container.appendChild(scrollEle);\n scrollEle.appendChild(content);\n if (offset) {\n scrollEle.style.overflow = 'hidden';\n scrollEle.style.height = offset + 'px';\n }\n else {\n scrollEle.style.maxHeight = container.style.maxHeight;\n container.style.overflow = 'hidden';\n }\n var scrollObj;\n if (scrollType === 'vscroll') {\n scrollObj = new VScroll({ enableRtl: enableRtl }, scrollEle);\n scrollObj.scrollStep = select('.e-' + scrollType + '-bar', container).offsetHeight / 2;\n }\n else {\n scrollObj = new HScroll({ enableRtl: enableRtl }, scrollEle);\n scrollObj.scrollStep = select('.e-' + scrollType + '-bar', container).offsetWidth;\n }\n return scrollEle;\n}\n/**\n * Used to destroy the scroll option.\n *\n * @param {VScroll | HScroll} scrollObj - Specifies the scroller object\n * @param {Element} element - Specifies the element\n * @param {HTMLElement} skipEle - Specifies the skip element\n * @returns {void}\n * @hidden\n */\nexport function destroyScroll(scrollObj, element, skipEle) {\n if (scrollObj) {\n var menu = select('.e-menu-parent', element);\n if (menu) {\n if (!skipEle || skipEle === menu) {\n scrollObj.destroy();\n element.parentElement.appendChild(menu);\n detach(element);\n }\n }\n else {\n scrollObj.destroy();\n detach(element);\n }\n }\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Component, Property, ChildProperty, NotifyPropertyChanges, isBlazor } from '@syncfusion/ej2-base';\nimport { Event, EventHandler, KeyboardEvents, Touch } from '@syncfusion/ej2-base';\nimport { Animation } from '@syncfusion/ej2-base';\nimport { Browser, Collection, setValue, getValue, getUniqueID, getInstance, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { select, selectAll, closest, detach, append, rippleEffect, isVisible, Complex, addClass, removeClass } from '@syncfusion/ej2-base';\nimport { ListBase } from '@syncfusion/ej2-lists';\nimport { getZindexPartial, calculatePosition, isCollide, fit, Popup } from '@syncfusion/ej2-popups';\nimport { SanitizeHtmlHelper } from '@syncfusion/ej2-base';\nimport { getScrollableParent } from '@syncfusion/ej2-popups';\nimport { HScroll } from '../common/h-scroll';\nimport { VScroll } from '../common/v-scroll';\nimport { addScrolling, destroyScroll } from '../common/menu-scroll';\nvar ENTER = 'enter';\nvar ESCAPE = 'escape';\nvar FOCUSED = 'e-focused';\nvar HEADER = 'e-menu-header';\nvar SELECTED = 'e-selected';\nvar SEPARATOR = 'e-separator';\nvar UPARROW = 'uparrow';\nvar DOWNARROW = 'downarrow';\nvar LEFTARROW = 'leftarrow';\nvar RIGHTARROW = 'rightarrow';\nvar HOME = 'home';\nvar END = 'end';\nvar TAB = 'tab';\nvar CARET = 'e-caret';\nvar ITEM = 'e-menu-item';\nvar DISABLED = 'e-disabled';\nvar HIDE = 'e-menu-hide';\nvar ICONS = 'e-icons';\nvar RTL = 'e-rtl';\nvar POPUP = 'e-menu-popup';\nvar TEMPLATE_PROPERTY = 'Template';\n/**\n * Configures the field options of the Menu.\n */\nvar FieldSettings = /** @class */ (function (_super) {\n __extends(FieldSettings, _super);\n function FieldSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('id')\n ], FieldSettings.prototype, \"itemId\", void 0);\n __decorate([\n Property('parentId')\n ], FieldSettings.prototype, \"parentId\", void 0);\n __decorate([\n Property('text')\n ], FieldSettings.prototype, \"text\", void 0);\n __decorate([\n Property('iconCss')\n ], FieldSettings.prototype, \"iconCss\", void 0);\n __decorate([\n Property('url')\n ], FieldSettings.prototype, \"url\", void 0);\n __decorate([\n Property('separator')\n ], FieldSettings.prototype, \"separator\", void 0);\n __decorate([\n Property('items')\n ], FieldSettings.prototype, \"children\", void 0);\n return FieldSettings;\n}(ChildProperty));\nexport { FieldSettings };\n/**\n * Specifies menu items.\n */\nvar MenuItem = /** @class */ (function (_super) {\n __extends(MenuItem, _super);\n function MenuItem() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(null)\n ], MenuItem.prototype, \"iconCss\", void 0);\n __decorate([\n Property('')\n ], MenuItem.prototype, \"id\", void 0);\n __decorate([\n Property(false)\n ], MenuItem.prototype, \"separator\", void 0);\n __decorate([\n Collection([], MenuItem)\n ], MenuItem.prototype, \"items\", void 0);\n __decorate([\n Property('')\n ], MenuItem.prototype, \"text\", void 0);\n __decorate([\n Property('')\n ], MenuItem.prototype, \"url\", void 0);\n return MenuItem;\n}(ChildProperty));\nexport { MenuItem };\n/**\n * Animation configuration settings.\n */\nvar MenuAnimationSettings = /** @class */ (function (_super) {\n __extends(MenuAnimationSettings, _super);\n function MenuAnimationSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('SlideDown')\n ], MenuAnimationSettings.prototype, \"effect\", void 0);\n __decorate([\n Property(400)\n ], MenuAnimationSettings.prototype, \"duration\", void 0);\n __decorate([\n Property('ease')\n ], MenuAnimationSettings.prototype, \"easing\", void 0);\n return MenuAnimationSettings;\n}(ChildProperty));\nexport { MenuAnimationSettings };\n/**\n * Base class for Menu and ContextMenu components.\n *\n * @private\n */\nvar MenuBase = /** @class */ (function (_super) {\n __extends(MenuBase, _super);\n /**\n * Constructor for creating the widget.\n *\n * @private\n * @param {MenuBaseModel} options - Specifies the menu base model\n * @param {string | HTMLUListElement} element - Specifies the element\n */\n function MenuBase(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.navIdx = [];\n _this.animation = new Animation({});\n _this.isTapHold = false;\n _this.tempItem = [];\n _this.showSubMenuOn = 'Auto';\n return _this;\n }\n /**\n * Initialized third party configuration settings.\n *\n * @private\n * @returns {void}\n */\n MenuBase.prototype.preRender = function () {\n if (!this.isMenu) {\n var ul = void 0;\n if (this.element.tagName === 'EJS-CONTEXTMENU') {\n ul = this.createElement('ul', {\n id: getUniqueID(this.getModuleName()), className: 'e-control e-lib e-' + this.getModuleName()\n });\n var ejInst = getValue('ej2_instances', this.element);\n removeClass([this.element], ['e-control', 'e-lib', 'e-' + this.getModuleName()]);\n this.clonedElement = this.element;\n this.element = ul;\n setValue('ej2_instances', ejInst, this.element);\n }\n else {\n ul = this.createElement('ul', { id: getUniqueID(this.getModuleName()) });\n append([].slice.call(this.element.cloneNode(true).children), ul);\n var refEle = this.element.nextElementSibling;\n if (refEle) {\n this.element.parentElement.insertBefore(ul, refEle);\n }\n else {\n this.element.parentElement.appendChild(ul);\n }\n this.clonedElement = ul;\n }\n this.clonedElement.style.display = 'none';\n }\n if (this.element.tagName === 'EJS-MENU') {\n var ele = this.element;\n var ejInstance = getValue('ej2_instances', ele);\n var ul = this.createElement('ul');\n var wrapper = this.createElement('EJS-MENU', { className: 'e-' + this.getModuleName() + '-wrapper' });\n for (var idx = 0, len = ele.attributes.length; idx < len; idx++) {\n ul.setAttribute(ele.attributes[idx].nodeName, ele.attributes[idx].nodeValue);\n }\n ele.parentNode.insertBefore(wrapper, ele);\n detach(ele);\n ele = ul;\n wrapper.appendChild(ele);\n setValue('ej2_instances', ejInstance, ele);\n this.clonedElement = wrapper;\n this.element = ele;\n if (!this.element.id) {\n this.element.id = getUniqueID(this.getModuleName());\n }\n }\n };\n /**\n * Initialize the control rendering.\n *\n * @private\n * @returns {void}\n */\n MenuBase.prototype.render = function () {\n var _this = this;\n this.initialize();\n this.renderItems();\n this.wireEvents();\n this.renderComplete();\n var wrapper = this.getWrapper();\n // eslint-disable-next-line\n if (this.template && this.enableScrolling && (this.isReact || this.isAngular)) {\n requestAnimationFrame(function () {\n addScrolling(_this.createElement, wrapper, _this.element, 'hscroll', _this.enableRtl);\n });\n }\n };\n MenuBase.prototype.initialize = function () {\n var wrapper = this.getWrapper();\n if (!wrapper) {\n wrapper = this.createElement('div', { className: 'e-' + this.getModuleName() + '-wrapper' });\n if (this.isMenu) {\n this.element.parentElement.insertBefore(wrapper, this.element);\n }\n else {\n document.body.appendChild(wrapper);\n }\n }\n if (this.cssClass) {\n addClass([wrapper], this.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n if (this.enableRtl) {\n wrapper.classList.add(RTL);\n }\n wrapper.appendChild(this.element);\n if (this.isMenu && this.hamburgerMode) {\n if (!this.target) {\n this.createHeaderContainer(wrapper);\n }\n }\n this.defaultOption = this.showItemOnClick;\n };\n MenuBase.prototype.renderItems = function () {\n if (!this.items.length) {\n var items = ListBase.createJsonFromElement(this.element, { fields: { child: 'items' } });\n this.setProperties({ items: items }, true);\n if (isBlazor() && !this.isMenu) {\n this.element = this.removeChildElement(this.element);\n }\n else {\n this.element.innerHTML = '';\n }\n }\n var ul = this.createItems(this.items);\n append(Array.prototype.slice.call(ul.children), this.element);\n this.element.classList.add('e-menu-parent');\n if (this.isMenu) {\n if (!this.hamburgerMode && this.element.classList.contains('e-vertical')) {\n this.setBlankIconStyle(this.element);\n }\n if (this.enableScrolling) {\n var wrapper = this.getWrapper();\n if (this.element.classList.contains('e-vertical')) {\n addScrolling(this.createElement, wrapper, this.element, 'vscroll', this.enableRtl);\n }\n else {\n addScrolling(this.createElement, wrapper, this.element, 'hscroll', this.enableRtl);\n }\n }\n }\n };\n MenuBase.prototype.wireEvents = function () {\n var wrapper = this.getWrapper();\n if (this.target) {\n var target = void 0;\n var targetElems = selectAll(this.target);\n for (var i = 0, len = targetElems.length; i < len; i++) {\n target = targetElems[i];\n if (this.isMenu) {\n EventHandler.add(target, 'click', this.menuHeaderClickHandler, this);\n }\n else {\n if (Browser.isIos) {\n new Touch(target, { tapHold: this.touchHandler.bind(this) });\n }\n else {\n EventHandler.add(target, 'contextmenu', this.cmenuHandler, this);\n }\n }\n }\n this.targetElement = target;\n if (!this.isMenu) {\n EventHandler.add(this.targetElement, 'scroll', this.scrollHandler, this);\n for (var _i = 0, _a = getScrollableParent(this.targetElement); _i < _a.length; _i++) {\n var parent_1 = _a[_i];\n EventHandler.add(parent_1, 'scroll', this.scrollHandler, this);\n }\n }\n }\n if (!Browser.isDevice) {\n this.delegateMoverHandler = this.moverHandler.bind(this);\n this.delegateMouseDownHandler = this.mouseDownHandler.bind(this);\n EventHandler.add(this.isMenu ? document : wrapper, 'mouseover', this.delegateMoverHandler, this);\n EventHandler.add(document, 'mousedown', this.delegateMouseDownHandler, this);\n }\n this.delegateClickHandler = this.clickHandler.bind(this);\n EventHandler.add(document, 'click', this.delegateClickHandler, this);\n this.wireKeyboardEvent(wrapper);\n this.rippleFn = rippleEffect(wrapper, { selector: '.' + ITEM });\n };\n MenuBase.prototype.wireKeyboardEvent = function (element) {\n var keyConfigs = {\n downarrow: DOWNARROW,\n uparrow: UPARROW,\n enter: ENTER,\n leftarrow: LEFTARROW,\n rightarrow: RIGHTARROW,\n escape: ESCAPE\n };\n if (this.isMenu) {\n keyConfigs.home = HOME;\n keyConfigs.end = END;\n keyConfigs.tab = TAB;\n }\n new KeyboardEvents(element, {\n keyAction: this.keyBoardHandler.bind(this),\n keyConfigs: keyConfigs\n });\n };\n MenuBase.prototype.mouseDownHandler = function (e) {\n if (closest(e.target, '.e-' + this.getModuleName() + '-wrapper') !== this.getWrapper()\n && (!closest(e.target, '.e-' + this.getModuleName() + '-popup'))) {\n this.closeMenu(this.isMenu ? null : this.navIdx.length, e);\n }\n };\n MenuBase.prototype.keyBoardHandler = function (e) {\n var actionName = '';\n var trgt = e.target;\n var actionNeeded = this.isMenu && !this.hamburgerMode && !this.element.classList.contains('e-vertical')\n && this.navIdx.length < 1;\n e.preventDefault();\n if (this.enableScrolling && e.keyCode === 13 && trgt.classList.contains('e-scroll-nav')) {\n this.removeLIStateByClass([FOCUSED, SELECTED], [closest(trgt, '.e-' + this.getModuleName() + '-wrapper')]);\n }\n if (actionNeeded) {\n switch (e.action) {\n case RIGHTARROW:\n actionName = RIGHTARROW;\n e.action = DOWNARROW;\n break;\n case LEFTARROW:\n actionName = LEFTARROW;\n e.action = UPARROW;\n break;\n case DOWNARROW:\n actionName = DOWNARROW;\n e.action = RIGHTARROW;\n break;\n case UPARROW:\n actionName = UPARROW;\n e.action = '';\n break;\n }\n }\n else if (this.enableRtl) {\n switch (e.action) {\n case LEFTARROW:\n actionNeeded = true;\n actionName = LEFTARROW;\n e.action = RIGHTARROW;\n break;\n case RIGHTARROW:\n actionNeeded = true;\n actionName = RIGHTARROW;\n e.action = LEFTARROW;\n break;\n }\n }\n switch (e.action) {\n case DOWNARROW:\n case UPARROW:\n case END:\n case HOME:\n case TAB:\n this.upDownKeyHandler(e);\n break;\n case RIGHTARROW:\n this.rightEnterKeyHandler(e);\n break;\n case LEFTARROW:\n this.leftEscKeyHandler(e);\n break;\n case ENTER:\n if (this.hamburgerMode && trgt.tagName === 'SPAN' && trgt.classList.contains('e-menu-icon')) {\n this.menuHeaderClickHandler(e);\n }\n else {\n this.rightEnterKeyHandler(e);\n }\n break;\n case ESCAPE:\n this.leftEscKeyHandler(e);\n break;\n }\n if (actionNeeded) {\n e.action = actionName;\n }\n };\n MenuBase.prototype.upDownKeyHandler = function (e) {\n var cul = this.getUlByNavIdx();\n var defaultIdx = (e.action === DOWNARROW || e.action === HOME || e.action === TAB) ? 0 : cul.childElementCount - 1;\n var fliIdx = defaultIdx;\n var fli = this.getLIByClass(cul, FOCUSED);\n if (fli) {\n if (e.action !== END && e.action !== HOME) {\n fliIdx = this.getIdx(cul, fli);\n }\n fli.classList.remove(FOCUSED);\n if (e.action !== END && e.action !== HOME) {\n if (e.action === DOWNARROW) {\n fliIdx++;\n }\n else {\n fliIdx--;\n }\n if (fliIdx === (e.action === DOWNARROW ? cul.childElementCount : -1)) {\n fliIdx = defaultIdx;\n }\n }\n }\n var cli = cul.children[fliIdx];\n fliIdx = this.isValidLI(cli, fliIdx, e.action);\n cul.children[fliIdx].classList.add(FOCUSED);\n cul.children[fliIdx].focus();\n };\n MenuBase.prototype.isValidLI = function (cli, index, action) {\n var cul = this.getUlByNavIdx();\n var defaultIdx = (action === DOWNARROW || action === HOME || action === TAB) ? 0 : cul.childElementCount - 1;\n if (cli.classList.contains(SEPARATOR) || cli.classList.contains(DISABLED) || cli.classList.contains(HIDE)) {\n if (action === DOWNARROW && index === cul.childElementCount - 1) {\n index = defaultIdx;\n }\n else if (action === UPARROW && index === 0) {\n index = defaultIdx;\n }\n else if ((action === DOWNARROW) || (action === RIGHTARROW)) {\n index++;\n }\n else {\n index--;\n }\n }\n cli = cul.children[index];\n if (cli.classList.contains(SEPARATOR) || cli.classList.contains(DISABLED) || cli.classList.contains(HIDE)) {\n index = this.isValidLI(cli, index, action);\n }\n return index;\n };\n MenuBase.prototype.getUlByNavIdx = function (navIdxLen) {\n if (navIdxLen === void 0) { navIdxLen = this.navIdx.length; }\n if (this.isMenu) {\n var popup = [this.getWrapper()].concat([].slice.call(selectAll('.' + POPUP)))[navIdxLen];\n return isNullOrUndefined(popup) ? null : select('.e-menu-parent', popup);\n }\n else {\n return this.getWrapper().children[navIdxLen];\n }\n };\n MenuBase.prototype.rightEnterKeyHandler = function (e) {\n var eventArgs;\n var cul = this.getUlByNavIdx();\n var fli = this.getLIByClass(cul, FOCUSED);\n if (fli) {\n var fliIdx = this.getIdx(cul, fli);\n var navIdx = this.navIdx.concat(fliIdx);\n var item = this.getItem(navIdx);\n if (item.items.length) {\n this.navIdx.push(fliIdx);\n this.keyType = 'right';\n this.action = e.action;\n this.openMenu(fli, item, -1, -1, e);\n }\n else {\n if (e.action === ENTER) {\n if (this.isMenu && this.navIdx.length === 0) {\n this.removeLIStateByClass([SELECTED], [this.getWrapper()]);\n }\n else {\n fli.classList.remove(FOCUSED);\n }\n fli.classList.add(SELECTED);\n eventArgs = { element: fli, item: item, event: e };\n this.trigger('select', eventArgs);\n this.closeMenu(null, e);\n }\n }\n }\n };\n MenuBase.prototype.leftEscKeyHandler = function (e) {\n if (this.navIdx.length) {\n this.keyType = 'left';\n this.closeMenu(this.navIdx.length, e);\n }\n else {\n if (e.action === ESCAPE) {\n this.closeMenu(null, e);\n }\n }\n };\n MenuBase.prototype.scrollHandler = function (e) {\n this.closeMenu(null, e);\n };\n MenuBase.prototype.touchHandler = function (e) {\n this.isTapHold = true;\n this.cmenuHandler(e.originalEvent);\n };\n MenuBase.prototype.cmenuHandler = function (e) {\n e.preventDefault();\n this.currentTarget = e.target;\n this.isCMenu = true;\n this.pageX = e.changedTouches ? e.changedTouches[0].pageX + 1 : e.pageX + 1;\n this.pageY = e.changedTouches ? e.changedTouches[0].pageY + 1 : e.pageY + 1;\n this.closeMenu(null, e);\n if (this.isCMenu) {\n if (this.canOpen(e.target)) {\n this.openMenu(null, null, this.pageY, this.pageX, e);\n }\n this.isCMenu = false;\n }\n };\n // eslint:disable-next-line:max-func-body-length\n MenuBase.prototype.closeMenu = function (ulIndex, e, isIterated) {\n var _this = this;\n if (ulIndex === void 0) { ulIndex = 0; }\n if (e === void 0) { e = null; }\n if (this.isMenuVisible()) {\n var sli = void 0;\n var item_1;\n var wrapper_1 = this.getWrapper();\n var beforeCloseArgs = void 0;\n var items_1;\n var popups = this.getPopups();\n var isClose = false;\n var cnt = this.isMenu ? popups.length + 1 : wrapper_1.childElementCount;\n var ul_1 = this.isMenu && cnt !== 1 ? select('.e-ul', popups[cnt - 2])\n : selectAll('.e-menu-parent', wrapper_1)[cnt - 1];\n if (this.isMenu && ul_1.classList.contains('e-menu')) {\n sli = this.getLIByClass(ul_1, SELECTED);\n if (sli) {\n sli.classList.remove(SELECTED);\n }\n isClose = true;\n }\n if (!isClose) {\n var liElem_1 = e && e.target && this.getLI(e.target);\n if (liElem_1) {\n this.cli = liElem_1;\n }\n else {\n this.cli = ul_1.children[0];\n }\n item_1 = this.navIdx.length ? this.getItem(this.navIdx) : null;\n items_1 = item_1 ? item_1.items : this.items;\n beforeCloseArgs = { element: ul_1, parentItem: item_1, items: items_1, event: e, cancel: false, isFocused: true };\n this.trigger('beforeClose', beforeCloseArgs, function (observedCloseArgs) {\n var popupEle;\n var closeArgs;\n var popupId = '';\n var popupObj;\n var isOpen = !observedCloseArgs.cancel;\n if (isOpen || _this.isCMenu) {\n if (_this.isMenu) {\n popupEle = closest(ul_1, '.' + POPUP);\n if (_this.hamburgerMode) {\n popupEle.parentElement.style.minHeight = '';\n closest(ul_1, '.e-menu-item').setAttribute('aria-expanded', 'false');\n }\n _this.unWireKeyboardEvent(popupEle);\n destroyScroll(getInstance(popupEle.children[0], VScroll), popupEle.children[0]);\n popupObj = getInstance(popupEle, Popup);\n popupObj.hide();\n popupId = popupEle.id;\n popupObj.destroy();\n detach(popupEle);\n }\n else {\n _this.toggleAnimation(ul_1, false);\n }\n closeArgs = { element: ul_1, parentItem: item_1, items: items_1 };\n _this.trigger('onClose', closeArgs);\n _this.navIdx.pop();\n }\n _this.updateReactTemplate();\n var trgtliId;\n var closedLi;\n var trgtLi;\n var trgtpopUp = _this.getWrapper() && _this.getUlByNavIdx();\n if (_this.isCMenu) {\n if (_this.canOpen(e.target)) {\n _this.openMenu(null, null, _this.pageY, _this.pageX, e);\n }\n _this.isCMenu = false;\n }\n if (_this.isMenu && trgtpopUp && popupId.length) {\n // eslint-disable-next-line\n trgtliId = new RegExp('(.*)-ej2menu-' + _this.element.id + '-popup').exec(popupId)[1];\n closedLi = trgtpopUp.querySelector('[id=\"' + trgtliId + '\"]');\n trgtLi = (liElem_1 && trgtpopUp.querySelector('[id=\"' + liElem_1.id + '\"]'));\n }\n else if (trgtpopUp) {\n closedLi = trgtpopUp.querySelector('.e-menu-item.e-selected');\n trgtLi = (liElem_1 && trgtpopUp.querySelector('[id=\"' + liElem_1.id + '\"]'));\n }\n var submenus = liElem_1 && liElem_1.querySelectorAll('.e-menu-item');\n if (isOpen && _this.hamburgerMode && ulIndex && !(submenus.length)) {\n _this.afterCloseMenu(e);\n }\n else if (isOpen && !_this.hamburgerMode && closedLi && !trgtLi && _this.keyType !== 'left' && (_this.navIdx.length || !_this.isMenu && _this.navIdx.length === 0)) {\n var ele = (e && e.target.classList.contains('e-vscroll'))\n ? closest(e.target, '.e-menu-wrapper') : null;\n if (ele) {\n ele = ele.querySelector('.e-menu-item');\n if (_this.showItemOnClick || (ele && _this.getIndex(ele.id, true).length <= _this.navIdx.length)) {\n _this.closeMenu(_this.navIdx[_this.navIdx.length - 1], e, true);\n }\n }\n else {\n _this.closeMenu(_this.navIdx[_this.navIdx.length - 1], e);\n }\n }\n else if (isOpen && !isIterated && !ulIndex && ((_this.hamburgerMode && _this.navIdx.length) ||\n _this.navIdx.length === 1 && liElem_1 && trgtpopUp !== liElem_1.parentElement)) {\n _this.closeMenu(null, e);\n }\n else if (isOpen && isNullOrUndefined(ulIndex) && _this.navIdx.length) {\n _this.closeMenu(null, e);\n }\n else if (isOpen && !_this.isMenu && !ulIndex && _this.navIdx.length === 0 && !_this.isMenusClosed) {\n _this.isMenusClosed = true;\n _this.closeMenu(0, e);\n }\n else if (isOpen && _this.isMenu && e && e.target &&\n _this.navIdx.length !== 0 && closest(e.target, '.e-menu-parent.e-control')) {\n _this.closeMenu(0, e);\n }\n else if (isOpen && !_this.isMenu && selectAll('.e-menu-parent', wrapper_1)[ulIndex - 1] && e.which === 3) {\n _this.closeMenu(null, e);\n }\n else {\n if (isOpen && (_this.keyType === 'right' || _this.keyType === 'click')) {\n _this.afterCloseMenu(e);\n }\n else {\n var cul = _this.getUlByNavIdx();\n var sli_1 = _this.getLIByClass(cul, SELECTED);\n if (sli_1) {\n sli_1.setAttribute('aria-expanded', 'false');\n sli_1.classList.remove(SELECTED);\n if (observedCloseArgs.isFocused && liElem_1 || _this.keyType === 'left') {\n sli_1.classList.add(FOCUSED);\n sli_1.focus();\n }\n }\n if (!isOpen && _this.hamburgerMode && liElem_1 && liElem_1.getAttribute('aria-expanded') === 'false' &&\n liElem_1.getAttribute('aria-haspopup') === 'true') {\n if (closest(liElem_1, '.e-menu-parent.e-control')) {\n _this.navIdx = [];\n }\n else {\n _this.navIdx.pop();\n }\n _this.navIdx.push(_this.cliIdx);\n var item_2 = _this.getItem(_this.navIdx);\n liElem_1.setAttribute('aria-expanded', 'true');\n _this.openMenu(liElem_1, item_2, -1, -1, e);\n }\n }\n if (_this.navIdx.length < 1) {\n if (_this.showSubMenuOn === 'Hover' || _this.showSubMenuOn === 'Click') {\n _this.showItemOnClick = _this.defaultOption;\n _this.showSubMenuOn = 'Auto';\n }\n }\n }\n _this.removeStateWrapper();\n });\n }\n }\n };\n MenuBase.prototype.updateReactTemplate = function () {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact && this.template && this.navIdx.length === 0) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var portals = this.portals.splice(0, this.items.length);\n this.clearTemplate(['template']);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.portals = portals;\n this.renderReactTemplates();\n }\n };\n MenuBase.prototype.getMenuItemModel = function (item, level) {\n if (isNullOrUndefined(item)) {\n return null;\n }\n if (isNullOrUndefined(level)) {\n level = 0;\n }\n var fields = this.getFields(level);\n return { text: item[fields.text], id: item[fields.id], items: item[fields.child], separator: item[fields.separator],\n iconCss: item[fields.iconCss], url: item[fields.url] };\n };\n MenuBase.prototype.getPopups = function () {\n var _this = this;\n var popups = [];\n [].slice.call(document.querySelectorAll('.' + POPUP)).forEach(function (elem) {\n if (!isNullOrUndefined(elem.querySelector('.' + ITEM)) && _this.getIndex(elem.querySelector('.' + ITEM).id, true).length) {\n popups.push(elem);\n }\n });\n return popups;\n };\n MenuBase.prototype.isMenuVisible = function () {\n return (this.navIdx.length > 0 || (this.element.classList.contains('e-contextmenu') && isVisible(this.element).valueOf()));\n };\n MenuBase.prototype.canOpen = function (target) {\n var canOpen = true;\n if (this.filter) {\n canOpen = false;\n var filter = this.filter.split(' ');\n for (var i = 0, len = filter.length; i < len; i++) {\n if (closest(target, '.' + filter[i])) {\n canOpen = true;\n break;\n }\n }\n }\n return canOpen;\n };\n MenuBase.prototype.openMenu = function (li, item, top, left, e, target) {\n var _this = this;\n if (top === void 0) { top = 0; }\n if (left === void 0) { left = 0; }\n if (e === void 0) { e = null; }\n if (target === void 0) { target = this.targetElement; }\n var wrapper = this.getWrapper();\n this.lItem = li;\n var elemId = this.element.id !== '' ? this.element.id : 'menu';\n this.isMenusClosed = false;\n if (isNullOrUndefined(top)) {\n top = -1;\n }\n if (isNullOrUndefined(left)) {\n left = -1;\n }\n if (li) {\n this.uList = this.createItems(item[this.getField('children', this.navIdx.length - 1)]);\n if (!this.isMenu && Browser.isDevice) {\n wrapper.lastChild.style.display = 'none';\n var data = {\n text: item[this.getField('text')].toString(), iconCss: ICONS + ' e-previous'\n };\n var hdata = new MenuItem(this.items[0], 'items', data, true);\n var hli = this.createItems([hdata]).children[0];\n hli.classList.add(HEADER);\n this.uList.insertBefore(hli, this.uList.children[0]);\n }\n if (this.isMenu) {\n this.popupWrapper = this.createElement('div', {\n className: 'e-' + this.getModuleName() + '-wrapper ' + POPUP, id: li.id + '-ej2menu-' + elemId + '-popup'\n });\n if (this.hamburgerMode) {\n top = li.offsetHeight;\n li.appendChild(this.popupWrapper);\n }\n else {\n document.body.appendChild(this.popupWrapper);\n }\n this.isNestedOrVertical = this.element.classList.contains('e-vertical') || this.navIdx.length !== 1;\n this.popupObj = this.generatePopup(this.popupWrapper, this.uList, li, this.isNestedOrVertical);\n if (this.template) {\n this.renderReactTemplates();\n }\n if (this.hamburgerMode) {\n this.calculateIndentSize(this.uList, li);\n }\n else {\n if (this.cssClass) {\n addClass([this.popupWrapper], this.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n this.popupObj.hide();\n }\n if (!this.hamburgerMode && !this.showItemOnClick && this.hoverDelay) {\n window.clearInterval(this.timer);\n this.timer = window.setTimeout(function () { _this.triggerBeforeOpen(li, _this.uList, item, e, 0, 0, 'menu'); }, this.hoverDelay);\n }\n else {\n this.triggerBeforeOpen(li, this.uList, item, e, 0, 0, 'menu');\n }\n }\n else {\n this.uList.style.zIndex = this.element.style.zIndex;\n wrapper.appendChild(this.uList);\n if (!this.showItemOnClick && this.hoverDelay) {\n window.clearInterval(this.timer);\n this.timer = window.setTimeout(function () { _this.triggerBeforeOpen(li, _this.uList, item, e, top, left, 'none'); }, this.hoverDelay);\n }\n else {\n this.triggerBeforeOpen(li, this.uList, item, e, top, left, 'none');\n }\n }\n }\n else {\n this.uList = this.element;\n this.uList.style.zIndex = getZindexPartial(target ? target : this.element).toString();\n this.triggerBeforeOpen(li, this.uList, item, e, top, left, 'none');\n }\n };\n MenuBase.prototype.calculateIndentSize = function (ul, li) {\n var liStyle = getComputedStyle(li);\n var liIndent = parseInt(liStyle.textIndent, 10);\n if (this.navIdx.length < 2 && !li.classList.contains('e-blankicon')) {\n liIndent *= 2;\n }\n else {\n liIndent += (liIndent / 4);\n }\n ul.style.textIndent = liIndent + 'px';\n var blankIconElem = ul.querySelectorAll('.e-blankicon');\n if (blankIconElem && blankIconElem.length) {\n var menuIconElem = ul.querySelector('.e-menu-icon');\n var menuIconElemStyle = getComputedStyle(menuIconElem);\n var blankIconIndent = (parseInt(menuIconElemStyle.marginRight, 10) + menuIconElem.offsetWidth + liIndent);\n for (var i = 0; i < blankIconElem.length; i++) {\n blankIconElem[i].style.textIndent = blankIconIndent + 'px';\n }\n }\n };\n MenuBase.prototype.generatePopup = function (popupWrapper, ul, li, isNestedOrVertical) {\n var _this = this;\n var popupObj = new Popup(popupWrapper, {\n actionOnScroll: this.hamburgerMode ? 'none' : 'reposition',\n relateTo: li,\n collision: this.hamburgerMode ? { X: 'none', Y: 'none' } : { X: isNestedOrVertical ||\n this.enableRtl ? 'none' : 'flip', Y: 'fit' },\n position: (isNestedOrVertical && !this.hamburgerMode) ? { X: 'right', Y: 'top' } : { X: 'left', Y: 'bottom' },\n targetType: 'relative',\n enableRtl: this.enableRtl,\n content: ul,\n open: function () {\n var scrollEle = select('.e-menu-vscroll', popupObj.element);\n if (scrollEle) {\n scrollEle.style.height = 'inherit';\n scrollEle.style.maxHeight = '';\n }\n var ul = select('.e-ul', popupObj.element);\n popupObj.element.style.maxHeight = '';\n ul.focus();\n _this.triggerOpen(ul);\n }\n });\n return popupObj;\n };\n MenuBase.prototype.createHeaderContainer = function (wrapper) {\n wrapper = wrapper || this.getWrapper();\n var spanElem = this.createElement('span', { className: 'e-' + this.getModuleName() + '-header' });\n var tempTitle = (this.enableHtmlSanitizer) ? SanitizeHtmlHelper.sanitize(this.title) : this.title;\n var spanTitle = this.createElement('span', {\n className: 'e-' + this.getModuleName() + '-title', innerHTML: tempTitle\n });\n var spanIcon = this.createElement('span', {\n className: 'e-icons e-' + this.getModuleName() + '-icon', attrs: { 'tabindex': '0' }\n });\n spanElem.appendChild(spanTitle);\n spanElem.appendChild(spanIcon);\n wrapper.insertBefore(spanElem, this.element);\n };\n MenuBase.prototype.openHamburgerMenu = function (e) {\n if (this.hamburgerMode) {\n this.triggerBeforeOpen(null, this.element, null, e, 0, 0, 'hamburger');\n }\n };\n MenuBase.prototype.closeHamburgerMenu = function (e) {\n var _this = this;\n var beforeCloseArgs = { element: this.element, parentItem: null, event: e,\n items: this.items, cancel: false };\n this.trigger('beforeClose', beforeCloseArgs, function (observedHamburgerCloseArgs) {\n if (!observedHamburgerCloseArgs.cancel) {\n _this.closeMenu(null, e);\n _this.element.classList.add('e-hide-menu');\n _this.trigger('onClose', { element: _this.element, parentItem: null, items: _this.items });\n }\n });\n };\n MenuBase.prototype.callFit = function (element, x, y, top, left) {\n return fit(element, null, { X: x, Y: y }, { top: top, left: left });\n };\n MenuBase.prototype.triggerBeforeOpen = function (li, ul, item, e, top, left, type) {\n var _this = this;\n var items = li ? item[this.getField('children', this.navIdx.length - 1)] : this.items;\n var eventArgs = {\n element: ul, items: items, parentItem: item, event: e, cancel: false, top: top, left: left, showSubMenuOn: 'Auto'\n };\n var menuType = type;\n this.trigger('beforeOpen', eventArgs, function (observedOpenArgs) {\n switch (menuType) {\n case 'menu':\n if (!_this.hamburgerMode) {\n if (observedOpenArgs.showSubMenuOn !== 'Auto') {\n _this.showItemOnClick = !_this.defaultOption;\n _this.showSubMenuOn = observedOpenArgs.showSubMenuOn;\n }\n _this.top = observedOpenArgs.top;\n _this.left = observedOpenArgs.left;\n }\n _this.popupWrapper.style.display = 'block';\n if (!_this.hamburgerMode) {\n _this.popupWrapper.style.maxHeight = _this.popupWrapper.getBoundingClientRect().height + 'px';\n if (_this.enableScrolling) {\n addScrolling(_this.createElement, _this.popupWrapper, _this.uList, 'vscroll', _this.enableRtl);\n }\n _this.checkScrollOffset(e);\n }\n if (!_this.hamburgerMode && !_this.left && !_this.top) {\n _this.popupObj.refreshPosition(_this.lItem, true);\n _this.left = parseInt(_this.popupWrapper.style.left, 10);\n _this.top = parseInt(_this.popupWrapper.style.top, 10);\n if (_this.enableRtl) {\n _this.left =\n _this.isNestedOrVertical ? _this.left - _this.popupWrapper.offsetWidth - _this.lItem.parentElement.offsetWidth + 2\n : _this.left - _this.popupWrapper.offsetWidth + _this.lItem.offsetWidth;\n }\n // eslint-disable-next-line\n if (_this.template && (_this.isReact || _this.isAngular)) {\n requestAnimationFrame(function () {\n _this.collision();\n _this.popupWrapper.style.display = '';\n });\n }\n else {\n _this.collision();\n _this.popupWrapper.style.display = '';\n }\n }\n else {\n _this.popupObj.collision = { X: 'none', Y: 'none' };\n _this.popupWrapper.style.display = '';\n }\n break;\n case 'none':\n _this.top = observedOpenArgs.top;\n _this.left = observedOpenArgs.left;\n break;\n case 'hamburger':\n if (!observedOpenArgs.cancel) {\n _this.element.classList.remove('e-hide-menu');\n _this.triggerOpen(_this.element);\n }\n break;\n }\n if (menuType !== 'hamburger') {\n if (observedOpenArgs.cancel) {\n if (_this.isMenu) {\n _this.popupObj.destroy();\n detach(_this.popupWrapper);\n }\n else if (ul.className.indexOf('e-ul') > -1) {\n detach(ul);\n }\n _this.navIdx.pop();\n }\n else {\n if (_this.isMenu) {\n if (_this.hamburgerMode) {\n _this.popupWrapper.style.top = _this.top + 'px';\n _this.popupWrapper.style.left = 0 + 'px';\n _this.toggleAnimation(_this.popupWrapper);\n }\n else {\n _this.setBlankIconStyle(_this.popupWrapper);\n _this.wireKeyboardEvent(_this.popupWrapper);\n rippleEffect(_this.popupWrapper, { selector: '.' + ITEM });\n _this.popupWrapper.style.left = _this.left + 'px';\n _this.popupWrapper.style.top = _this.top + 'px';\n var animationOptions = _this.animationSettings.effect !== 'None' ? {\n name: _this.animationSettings.effect, duration: _this.animationSettings.duration,\n timingFunction: _this.animationSettings.easing\n } : null;\n _this.popupObj.show(animationOptions, _this.lItem);\n }\n }\n else {\n _this.setBlankIconStyle(_this.uList);\n _this.setPosition(_this.lItem, _this.uList, _this.top, _this.left);\n _this.toggleAnimation(_this.uList);\n }\n }\n }\n if (_this.keyType === 'right') {\n var cul = _this.getUlByNavIdx();\n li.classList.remove(FOCUSED);\n if (_this.isMenu && _this.navIdx.length === 1) {\n _this.removeLIStateByClass([SELECTED], [_this.getWrapper()]);\n }\n li.classList.add(SELECTED);\n if (_this.action === ENTER) {\n var eventArgs_1 = { element: li, item: item, event: e };\n _this.trigger('select', eventArgs_1);\n }\n li.focus();\n cul = _this.getUlByNavIdx();\n var index = _this.isValidLI(cul.children[0], 0, _this.action);\n cul.children[index].classList.add(FOCUSED);\n cul.children[index].focus();\n }\n });\n };\n MenuBase.prototype.collision = function () {\n var collide;\n collide = isCollide(this.popupWrapper, null, this.left, this.top);\n if ((this.isNestedOrVertical || this.enableRtl) && (collide.indexOf('right') > -1\n || collide.indexOf('left') > -1)) {\n this.popupObj.collision.X = 'none';\n var offWidth = closest(this.lItem, '.e-' + this.getModuleName() + '-wrapper').offsetWidth;\n this.left =\n this.enableRtl ? calculatePosition(this.lItem, this.isNestedOrVertical ? 'right' : 'left', 'top').left\n : this.left - this.popupWrapper.offsetWidth - offWidth + 2;\n }\n collide = isCollide(this.popupWrapper, null, this.left, this.top);\n if (collide.indexOf('left') > -1 || collide.indexOf('right') > -1) {\n this.left = this.callFit(this.popupWrapper, true, false, this.top, this.left).left;\n }\n this.popupWrapper.style.left = this.left + 'px';\n };\n MenuBase.prototype.setBlankIconStyle = function (menu) {\n var blankIconList = [].slice.call(menu.getElementsByClassName('e-blankicon'));\n if (!blankIconList.length) {\n return;\n }\n var iconLi = menu.querySelector('.e-menu-item:not(.e-blankicon):not(.e-separator)');\n if (!iconLi) {\n return;\n }\n var icon = iconLi.querySelector('.e-menu-icon');\n if (!icon) {\n return;\n }\n var cssProp = this.enableRtl ? { padding: 'paddingRight', margin: 'marginLeft' } :\n { padding: 'paddingLeft', margin: 'marginRight' };\n var iconCssProps = getComputedStyle(icon);\n var iconSize = parseInt(iconCssProps.fontSize, 10);\n if (!!parseInt(iconCssProps.width, 10) && parseInt(iconCssProps.width, 10) > iconSize) {\n iconSize = parseInt(iconCssProps.width, 10);\n }\n // eslint:disable\n var size = iconSize + parseInt(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n iconCssProps[cssProp.margin], 10) + parseInt(getComputedStyle(iconLi)[cssProp.padding], 10) + \"px\";\n blankIconList.forEach(function (li) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n li.style[cssProp.padding] = size;\n });\n // eslint:enable\n };\n MenuBase.prototype.checkScrollOffset = function (e) {\n var wrapper = this.getWrapper();\n if (wrapper.children[0].classList.contains('e-menu-hscroll') && this.navIdx.length === 1) {\n var trgt = isNullOrUndefined(e) ? this.element : closest(e.target, '.' + ITEM);\n var offsetEle = select('.e-hscroll-bar', wrapper);\n if (offsetEle.scrollLeft > trgt.offsetLeft) {\n offsetEle.scrollLeft -= (offsetEle.scrollLeft - trgt.offsetLeft);\n }\n var offsetLeft = offsetEle.scrollLeft + offsetEle.offsetWidth;\n var offsetRight = trgt.offsetLeft + trgt.offsetWidth;\n if (offsetLeft < offsetRight) {\n offsetEle.scrollLeft += (offsetRight - offsetLeft);\n }\n }\n };\n MenuBase.prototype.setPosition = function (li, ul, top, left) {\n var px = 'px';\n this.toggleVisiblity(ul);\n if (ul === this.element || (left > -1 && top > -1)) {\n var collide = isCollide(ul, null, left, top);\n if (collide.indexOf('right') > -1) {\n left = left - ul.offsetWidth;\n }\n if (collide.indexOf('bottom') > -1) {\n var offset = this.callFit(ul, false, true, top, left);\n top = offset.top - 20;\n if (top < 0) {\n var newTop = (pageYOffset + document.documentElement.clientHeight) - ul.getBoundingClientRect().height;\n if (newTop > -1) {\n top = newTop;\n }\n }\n }\n collide = isCollide(ul, null, left, top);\n if (collide.indexOf('left') > -1) {\n var offset = this.callFit(ul, true, false, top, left);\n left = offset.left;\n }\n }\n else {\n if (Browser.isDevice) {\n top = Number(this.element.style.top.replace(px, ''));\n left = Number(this.element.style.left.replace(px, ''));\n }\n else {\n var x = this.enableRtl ? 'left' : 'right';\n var offset = calculatePosition(li, x, 'top');\n top = offset.top;\n left = offset.left;\n var collide = isCollide(ul, null, this.enableRtl ? left - ul.offsetWidth : left, top);\n var xCollision = collide.indexOf('left') > -1 || collide.indexOf('right') > -1;\n if (xCollision) {\n offset = calculatePosition(li, this.enableRtl ? 'right' : 'left', 'top');\n left = offset.left;\n }\n if (this.enableRtl || xCollision) {\n left = (this.enableRtl && xCollision) ? left : left - ul.offsetWidth;\n }\n if (collide.indexOf('bottom') > -1) {\n offset = this.callFit(ul, false, true, top, left);\n top = offset.top;\n }\n }\n }\n this.toggleVisiblity(ul, false);\n ul.style.top = top + px;\n ul.style.left = left + px;\n };\n MenuBase.prototype.toggleVisiblity = function (ul, isVisible) {\n if (isVisible === void 0) { isVisible = true; }\n ul.style.visibility = isVisible ? 'hidden' : '';\n ul.style.display = isVisible ? 'block' : 'none';\n };\n MenuBase.prototype.createItems = function (items) {\n var _this = this;\n var level = this.navIdx ? this.navIdx.length : 0;\n var fields = this.getFields(level);\n var showIcon = this.hasField(items, this.getField('iconCss', level));\n var listBaseOptions = {\n showIcon: showIcon,\n moduleName: 'menu',\n fields: fields,\n template: this.template,\n itemNavigable: true,\n itemCreating: function (args) {\n if (!args.curData[args.fields[fields.id]]) {\n args.curData[args.fields[fields.id]] = getUniqueID('menuitem');\n }\n args.curData.htmlAttributes = {\n role: 'menuitem',\n tabindex: '-1'\n };\n if (_this.isMenu && !args.curData[_this.getField('separator', level)]) {\n args.curData.htmlAttributes['aria-label'] = args.curData[args.fields.text] ?\n args.curData[args.fields.text] : args.curData[args.fields.id];\n }\n if (args.curData[args.fields[fields.iconCss]] === '') {\n args.curData[args.fields[fields.iconCss]] = null;\n }\n },\n itemCreated: function (args) {\n if (args.curData[_this.getField('separator', level)]) {\n args.item.classList.add(SEPARATOR);\n args.item.setAttribute('role', 'separator');\n }\n if (showIcon && !args.curData[args.fields.iconCss]\n && !args.curData[_this.getField('separator', level)]) {\n args.item.classList.add('e-blankicon');\n }\n if (args.curData[args.fields.child]\n && args.curData[args.fields.child].length) {\n var span = _this.createElement('span', { className: ICONS + ' ' + CARET });\n args.item.appendChild(span);\n args.item.setAttribute('aria-haspopup', 'true');\n args.item.setAttribute('aria-expanded', 'false');\n args.item.classList.add('e-menu-caret-icon');\n }\n if (_this.isMenu && _this.template) {\n args.item.setAttribute('id', args.curData[args.fields.id].toString());\n args.item.removeAttribute('data-uid');\n if (args.item.classList.contains('e-level-1')) {\n args.item.classList.remove('e-level-1');\n }\n if (args.item.classList.contains('e-has-child')) {\n args.item.classList.remove('e-has-child');\n }\n args.item.removeAttribute('aria-level');\n }\n var eventArgs = { item: args.curData, element: args.item };\n _this.trigger('beforeItemRender', eventArgs);\n }\n };\n this.setProperties({ 'items': this.items }, true);\n if (this.isMenu) {\n listBaseOptions.templateID = this.element.id + TEMPLATE_PROPERTY;\n }\n var ul = ListBase.createList(this.createElement, items, listBaseOptions, !this.template, this);\n ul.setAttribute('tabindex', '0');\n if (this.isMenu) {\n ul.setAttribute('role', 'menu');\n }\n else {\n ul.setAttribute('role', 'menubar');\n }\n return ul;\n };\n MenuBase.prototype.moverHandler = function (e) {\n var trgt = e.target;\n this.liTrgt = trgt;\n var cli = this.getLI(trgt);\n var wrapper = cli ? closest(cli, '.e-' + this.getModuleName() + '-wrapper') : this.getWrapper();\n var hdrWrapper = this.getWrapper();\n var regex = new RegExp('-ej2menu-(.*)-popup');\n var ulId;\n var isDifferentElem = false;\n if (!wrapper) {\n return;\n }\n if (wrapper.id !== '') {\n ulId = regex.exec(wrapper.id)[1];\n }\n else {\n ulId = wrapper.querySelector('ul').id;\n }\n if (ulId !== this.element.id) {\n this.removeLIStateByClass([FOCUSED, SELECTED], [this.getWrapper()]);\n if (this.navIdx.length) {\n isDifferentElem = true;\n }\n else {\n return;\n }\n }\n if (cli && closest(cli, '.e-' + this.getModuleName() + '-wrapper') && !isDifferentElem) {\n this.removeLIStateByClass([FOCUSED], this.isMenu ? [wrapper].concat(this.getPopups()) : [wrapper]);\n this.removeLIStateByClass([FOCUSED], this.isMenu ? [hdrWrapper].concat(this.getPopups()) : [hdrWrapper]);\n cli.classList.add(FOCUSED);\n if (!this.showItemOnClick) {\n this.clickHandler(e);\n }\n }\n else if (this.isMenu && this.showItemOnClick && !isDifferentElem) {\n this.removeLIStateByClass([FOCUSED], [wrapper].concat(this.getPopups()));\n }\n if (this.isMenu) {\n if (!this.showItemOnClick && (trgt.parentElement !== wrapper && !closest(trgt, '.e-' + this.getModuleName() + '-popup'))\n && (!cli || (cli && !this.getIndex(cli.id, true).length)) && this.showSubMenuOn !== 'Hover') {\n this.removeLIStateByClass([FOCUSED], [wrapper]);\n if (this.navIdx.length) {\n this.isClosed = true;\n this.closeMenu(null, e);\n }\n }\n else if (isDifferentElem && !this.showItemOnClick) {\n if (this.navIdx.length) {\n this.isClosed = true;\n this.closeMenu(null, e);\n }\n }\n if (!this.isClosed) {\n this.removeStateWrapper();\n }\n this.isClosed = false;\n }\n };\n MenuBase.prototype.removeStateWrapper = function () {\n if (this.liTrgt) {\n var wrapper = closest(this.liTrgt, '.e-menu-vscroll');\n if (this.liTrgt.tagName === 'DIV' && wrapper) {\n this.removeLIStateByClass([FOCUSED, SELECTED], [wrapper]);\n }\n }\n };\n MenuBase.prototype.removeLIStateByClass = function (classList, element) {\n var li;\n var _loop_1 = function (i) {\n classList.forEach(function (className) {\n li = select('.' + className, element[i]);\n if (li) {\n li.classList.remove(className);\n }\n });\n };\n for (var i = 0; i < element.length; i++) {\n _loop_1(i);\n }\n };\n MenuBase.prototype.getField = function (propName, level) {\n if (level === void 0) { level = 0; }\n var fieldName = this.fields[\"\" + propName];\n return typeof fieldName === 'string' ? fieldName :\n (!fieldName[level] ? fieldName[fieldName.length - 1].toString()\n : fieldName[level].toString());\n };\n MenuBase.prototype.getFields = function (level) {\n if (level === void 0) { level = 0; }\n return {\n id: this.getField('itemId', level),\n iconCss: this.getField('iconCss', level),\n text: this.getField('text', level),\n url: this.getField('url', level),\n child: this.getField('children', level),\n separator: this.getField('separator', level)\n };\n };\n MenuBase.prototype.hasField = function (items, field) {\n for (var i = 0, len = items.length; i < len; i++) {\n if (items[i][\"\" + field]) {\n return true;\n }\n }\n return false;\n };\n MenuBase.prototype.menuHeaderClickHandler = function (e) {\n if (closest(e.target, '.e-menu-wrapper').querySelector('ul.e-menu-parent').id !== this.element.id) {\n return;\n }\n if (this.element.className.indexOf('e-hide-menu') > -1) {\n this.openHamburgerMenu(e);\n }\n else {\n this.closeHamburgerMenu(e);\n }\n };\n MenuBase.prototype.clickHandler = function (e) {\n if (this.isTapHold) {\n this.isTapHold = false;\n }\n else {\n var wrapper = this.getWrapper();\n var trgt = e.target;\n var cli = this.cli = this.getLI(trgt);\n var regex = new RegExp('-ej2menu-(.*)-popup');\n var cliWrapper = cli ? closest(cli, '.e-' + this.getModuleName() + '-wrapper') : null;\n var isInstLI = cli && cliWrapper && (this.isMenu ? this.getIndex(cli.id, true).length > 0\n : wrapper.firstElementChild.id === cliWrapper.firstElementChild.id);\n if (Browser.isDevice && this.isMenu) {\n this.removeLIStateByClass([FOCUSED], [wrapper].concat(this.getPopups()));\n this.mouseDownHandler(e);\n }\n if (cli && cliWrapper && this.isMenu) {\n var cliWrapperId = cliWrapper.id ? regex.exec(cliWrapper.id)[1] : cliWrapper.querySelector('.e-menu-parent').id;\n if (this.element.id !== cliWrapperId) {\n return;\n }\n }\n if (isInstLI && e.type === 'click' && !cli.classList.contains(HEADER)) {\n this.setLISelected(cli);\n var navIdx = this.getIndex(cli.id, true);\n var item = this.getItem(navIdx);\n var eventArgs = { element: cli, item: item, event: e };\n this.trigger('select', eventArgs);\n }\n if (isInstLI && (e.type === 'mouseover' || Browser.isDevice || this.showItemOnClick)) {\n var ul = void 0;\n if (cli.classList.contains(HEADER)) {\n ul = wrapper.children[this.navIdx.length - 1];\n this.toggleAnimation(ul);\n var sli = this.getLIByClass(ul, SELECTED);\n if (sli) {\n sli.classList.remove(SELECTED);\n }\n detach(cli.parentNode);\n this.navIdx.pop();\n }\n else {\n if (!cli.classList.contains(SEPARATOR)) {\n this.showSubMenu = true;\n var cul = cli.parentNode;\n this.cliIdx = this.getIdx(cul, cli);\n if (this.isMenu || !Browser.isDevice) {\n var culIdx = this.isMenu ? Array.prototype.indexOf.call([wrapper].concat(this.getPopups()), closest(cul, '.' + 'e-' + this.getModuleName() + '-wrapper'))\n : this.getIdx(wrapper, cul);\n if (this.navIdx[culIdx] === this.cliIdx) {\n this.showSubMenu = false;\n }\n if (culIdx !== this.navIdx.length && (e.type !== 'mouseover' || this.showSubMenu)) {\n var sli = this.getLIByClass(cul, SELECTED);\n if (sli) {\n sli.classList.remove(SELECTED);\n }\n this.isClosed = true;\n this.keyType = 'click';\n if (this.showItemOnClick) {\n this.setLISelected(cli);\n }\n this.closeMenu(culIdx + 1, e);\n if (this.showItemOnClick) {\n this.setLISelected(cli);\n }\n }\n }\n if (!this.isClosed) {\n this.afterCloseMenu(e);\n }\n this.isClosed = false;\n }\n }\n }\n else {\n if (this.isMenu && trgt.tagName === 'DIV' && this.navIdx.length && closest(trgt, '.e-menu-vscroll')) {\n var popupEle = closest(trgt, '.' + POPUP);\n var cIdx = Array.prototype.indexOf.call(this.getPopups(), popupEle) + 1;\n if (cIdx < this.navIdx.length) {\n this.closeMenu(cIdx + 1, e);\n if (popupEle) {\n this.removeLIStateByClass([FOCUSED, SELECTED], [popupEle]);\n }\n }\n }\n else if (this.isMenu && this.hamburgerMode && trgt.tagName === 'SPAN'\n && trgt.classList.contains('e-menu-icon')) {\n this.menuHeaderClickHandler(e);\n }\n else {\n if (trgt.tagName !== 'UL' || (this.isMenu ? trgt.parentElement.classList.contains('e-menu-wrapper') &&\n !this.getIndex(trgt.querySelector('.' + ITEM).id, true).length : trgt.parentElement !== wrapper)) {\n if (!cli) {\n this.removeLIStateByClass([SELECTED], [wrapper]);\n }\n if (!cli || !cli.querySelector('.' + CARET)) {\n this.closeMenu(null, e);\n }\n }\n }\n }\n }\n };\n MenuBase.prototype.afterCloseMenu = function (e) {\n var isHeader;\n if (this.showSubMenu) {\n if (this.showItemOnClick && this.navIdx.length === 0) {\n isHeader = closest(e.target, '.e-menu-parent.e-control');\n }\n else {\n isHeader = closest(this.element, '.e-menu-parent.e-control');\n }\n var idx = this.navIdx.concat(this.cliIdx);\n var item = this.getItem(idx);\n if (item && item[this.getField('children', idx.length - 1)] &&\n item[this.getField('children', idx.length - 1)].length) {\n if (e.type === 'mouseover' || (Browser.isDevice && this.isMenu)) {\n this.setLISelected(this.cli);\n }\n if ((!this.hamburgerMode && isHeader) || (this.hamburgerMode && this.cli.getAttribute('aria-expanded') === 'false')) {\n this.cli.setAttribute('aria-expanded', 'true');\n this.navIdx.push(this.cliIdx);\n this.openMenu(this.cli, item, null, null, e);\n }\n }\n else {\n if (e.type !== 'mouseover') {\n this.closeMenu(null, e);\n }\n }\n if (!isHeader) {\n var cul = this.getUlByNavIdx();\n var sli = this.getLIByClass(cul, SELECTED);\n if (sli) {\n sli.setAttribute('aria-expanded', 'false');\n sli.classList.remove(SELECTED);\n }\n }\n }\n this.keyType = '';\n };\n MenuBase.prototype.setLISelected = function (li) {\n var sli = this.getLIByClass(li.parentElement, SELECTED);\n if (sli) {\n sli.classList.remove(SELECTED);\n }\n if (!this.isMenu) {\n li.classList.remove(FOCUSED);\n }\n li.classList.add(SELECTED);\n };\n MenuBase.prototype.getLIByClass = function (ul, classname) {\n for (var i = 0, len = ul.children.length; i < len; i++) {\n if (ul.children[i].classList.contains(classname)) {\n return ul.children[i];\n }\n }\n return null;\n };\n /**\n * This method is used to get the index of the menu item in the Menu based on the argument.\n *\n * @param {MenuItem | string} item - item be passed to get the index | id to be passed to get the item index.\n * @param {boolean} isUniqueId - Set `true` if it is a unique id.\n * @returns {void}\n */\n MenuBase.prototype.getItemIndex = function (item, isUniqueId) {\n var idx;\n if (typeof item === 'string') {\n idx = item;\n }\n else {\n idx = item.id;\n }\n var isText = (isUniqueId === false) ? false : true;\n var navIdx = this.getIndex(idx, isText);\n return navIdx;\n };\n /**\n * This method is used to set the menu item in the Menu based on the argument.\n *\n * @param {MenuItem} item - item need to be updated.\n * @param {string} id - id / text to be passed to update the item.\n * @param {boolean} isUniqueId - Set `true` if it is a unique id.\n * @returns {void}\n */\n MenuBase.prototype.setItem = function (item, id, isUniqueId) {\n var idx;\n if (isUniqueId) {\n idx = id ? id : item.id;\n }\n else {\n idx = id ? id : item.text;\n }\n var navIdx = this.getIndex(idx, isUniqueId);\n var newItem = this.getItem(navIdx);\n Object.assign(newItem, item);\n };\n MenuBase.prototype.getItem = function (navIdx) {\n navIdx = navIdx.slice();\n var idx = navIdx.pop();\n var items = this.getItems(navIdx);\n return items[idx];\n };\n MenuBase.prototype.getItems = function (navIdx) {\n var items = this.items;\n for (var i = 0; i < navIdx.length; i++) {\n items = items[navIdx[i]][this.getField('children', i)];\n }\n return items;\n };\n MenuBase.prototype.setItems = function (newItems, navIdx) {\n var items = this.getItems(navIdx);\n items.splice(0, items.length);\n for (var i = 0; i < newItems.length; i++) {\n items.splice(i, 0, newItems[i]);\n }\n };\n MenuBase.prototype.getIdx = function (ul, li, skipHdr) {\n if (skipHdr === void 0) { skipHdr = true; }\n var idx = Array.prototype.indexOf.call(ul.children, li);\n if (skipHdr && ul.children[0].classList.contains(HEADER)) {\n idx--;\n }\n return idx;\n };\n MenuBase.prototype.getLI = function (elem) {\n if (elem.tagName === 'LI' && elem.classList.contains('e-menu-item')) {\n return elem;\n }\n return closest(elem, 'li.e-menu-item');\n };\n MenuBase.prototype.updateItemsByNavIdx = function () {\n var items = this.items;\n var count = 0;\n for (var index = 0; index < this.navIdx.length; index++) {\n items = items[index].items;\n if (!items) {\n break;\n }\n count++;\n var ul = this.getUlByNavIdx(count);\n if (!ul) {\n break;\n }\n this.updateItem(ul, items);\n }\n };\n MenuBase.prototype.removeChildElement = function (elem) {\n while (elem.firstElementChild) {\n elem.removeChild(elem.firstElementChild);\n }\n return elem;\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @private\n * @param {MenuBaseModel} newProp - Specifies the new properties\n * @param {MenuBaseModel} oldProp - Specifies the old properties\n * @returns {void}\n */\n MenuBase.prototype.onPropertyChanged = function (newProp, oldProp) {\n var _this = this;\n var wrapper = this.getWrapper();\n var _loop_2 = function (prop) {\n switch (prop) {\n case 'cssClass':\n if (oldProp.cssClass) {\n removeClass([wrapper], oldProp.cssClass.split(' '));\n }\n if (newProp.cssClass) {\n addClass([wrapper], newProp.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n break;\n case 'enableRtl':\n wrapper.classList.toggle(RTL);\n break;\n case 'showItemOnClick':\n this_1.unWireEvents();\n this_1.showItemOnClick = newProp.showItemOnClick;\n this_1.wireEvents();\n break;\n case 'enableScrolling':\n if (newProp.enableScrolling) {\n var ul_2;\n if (this_1.element.classList.contains('e-vertical')) {\n addScrolling(this_1.createElement, wrapper, this_1.element, 'vscroll', this_1.enableRtl);\n }\n else {\n addScrolling(this_1.createElement, wrapper, this_1.element, 'hscroll', this_1.enableRtl);\n }\n this_1.getPopups().forEach(function (wrapper) {\n ul_2 = select('.e-ul', wrapper);\n addScrolling(_this.createElement, wrapper, ul_2, 'vscroll', _this.enableRtl);\n });\n }\n else {\n var ul_3 = wrapper.children[0];\n if (this_1.element.classList.contains('e-vertical')) {\n destroyScroll(getInstance(ul_3, VScroll), ul_3);\n }\n else {\n destroyScroll(getInstance(ul_3, HScroll), ul_3);\n }\n wrapper.style.overflow = '';\n wrapper.appendChild(this_1.element);\n this_1.getPopups().forEach(function (wrapper) {\n ul_3 = wrapper.children[0];\n destroyScroll(getInstance(ul_3, VScroll), ul_3);\n wrapper.style.overflow = '';\n });\n }\n break;\n case 'items': {\n var idx = void 0;\n var navIdx = void 0;\n var item = void 0;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this_1.isReact && this_1.template) {\n this_1.clearTemplate(['template']);\n }\n if (!Object.keys(oldProp.items).length) {\n this_1.updateItem(this_1.element, this_1.items);\n if (this_1.enableScrolling && this_1.element.parentElement.classList.contains('e-custom-scroll')) {\n if (this_1.element.classList.contains('e-vertical')) {\n addScrolling(this_1.createElement, wrapper, this_1.element, 'vscroll', this_1.enableRtl);\n }\n else {\n addScrolling(this_1.createElement, wrapper, this_1.element, 'hscroll', this_1.enableRtl);\n }\n }\n if (!this_1.hamburgerMode) {\n for (var i = 1, count = wrapper.childElementCount; i < count; i++) {\n detach(wrapper.lastElementChild);\n }\n }\n this_1.navIdx = [];\n }\n else {\n var keys = Object.keys(newProp.items);\n for (var i = 0; i < keys.length; i++) {\n navIdx = this_1.getChangedItemIndex(newProp, [], Number(keys[i]));\n if (navIdx.length <= this_1.getWrapper().children.length) {\n idx = navIdx.pop();\n item = this_1.getItems(navIdx);\n this_1.insertAfter([item[idx]], item[idx].text);\n this_1.removeItem(item, navIdx, idx);\n this_1.setItems(item, navIdx);\n }\n navIdx.length = 0;\n }\n }\n break;\n }\n }\n };\n var this_1 = this;\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n _loop_2(prop);\n }\n };\n MenuBase.prototype.updateItem = function (ul, items) {\n if (isBlazor() && !this.isMenu) {\n ul = this.removeChildElement(ul);\n }\n else {\n if (this.enableScrolling) {\n var wrapper1 = this.getWrapper();\n var ul1 = wrapper1.children[0];\n if (this.element.classList.contains('e-vertical')) {\n destroyScroll(getInstance(ul1, VScroll), ul1);\n }\n else {\n destroyScroll(getInstance(ul1, HScroll), ul1);\n }\n }\n ul.innerHTML = '';\n }\n var lis = [].slice.call(this.createItems(items).children);\n lis.forEach(function (li) {\n ul.appendChild(li);\n });\n };\n MenuBase.prototype.getChangedItemIndex = function (newProp, index, idx) {\n index.push(idx);\n var key = Object.keys(newProp.items[idx]).pop();\n if (key === 'items') {\n var item = newProp.items[idx];\n var popStr = Object.keys(item.items).pop();\n if (popStr) {\n this.getChangedItemIndex(item, index, Number(popStr));\n }\n }\n else {\n if (key === 'isParentArray' && index.length > 1) {\n index.pop();\n }\n }\n return index;\n };\n MenuBase.prototype.removeItem = function (item, navIdx, idx) {\n item.splice(idx, 1);\n var uls = this.getWrapper().children;\n if (navIdx.length < uls.length) {\n detach(uls[navIdx.length].children[idx]);\n }\n };\n /**\n * Used to unwire the bind events.\n *\n * @private\n * @param {string} targetSelctor - Specifies the target selector\n * @returns {void}\n */\n MenuBase.prototype.unWireEvents = function (targetSelctor) {\n if (targetSelctor === void 0) { targetSelctor = this.target; }\n var wrapper = this.getWrapper();\n if (targetSelctor) {\n var target = void 0;\n var touchModule = void 0;\n var targetElems = selectAll(targetSelctor);\n for (var i = 0, len = targetElems.length; i < len; i++) {\n target = targetElems[i];\n if (this.isMenu) {\n EventHandler.remove(target, 'click', this.menuHeaderClickHandler);\n }\n else {\n if (Browser.isIos) {\n touchModule = getInstance(target, Touch);\n if (touchModule) {\n touchModule.destroy();\n }\n }\n else {\n EventHandler.remove(target, 'contextmenu', this.cmenuHandler);\n }\n }\n }\n if (!this.isMenu) {\n EventHandler.remove(this.targetElement, 'scroll', this.scrollHandler);\n for (var _i = 0, _a = getScrollableParent(this.targetElement); _i < _a.length; _i++) {\n var parent_2 = _a[_i];\n EventHandler.remove(parent_2, 'scroll', this.scrollHandler);\n }\n }\n }\n if (!Browser.isDevice) {\n EventHandler.remove(this.isMenu ? document : wrapper, 'mouseover', this.delegateMoverHandler);\n EventHandler.remove(document, 'mousedown', this.delegateMouseDownHandler);\n }\n EventHandler.remove(document, 'click', this.delegateClickHandler);\n this.unWireKeyboardEvent(wrapper);\n this.rippleFn();\n };\n MenuBase.prototype.unWireKeyboardEvent = function (element) {\n var keyboardModule = getInstance(element, KeyboardEvents);\n if (keyboardModule) {\n keyboardModule.destroy();\n }\n };\n MenuBase.prototype.toggleAnimation = function (ul, isMenuOpen) {\n var _this = this;\n if (isMenuOpen === void 0) { isMenuOpen = true; }\n var pUlHeight;\n var pElement;\n if (this.animationSettings.effect === 'None' || !isMenuOpen) {\n this.end(ul, isMenuOpen);\n }\n else {\n this.animation.animate(ul, {\n name: this.animationSettings.effect,\n duration: this.animationSettings.duration,\n timingFunction: this.animationSettings.easing,\n begin: function (options) {\n if (_this.hamburgerMode) {\n pElement = options.element.parentElement;\n options.element.style.position = 'absolute';\n pUlHeight = pElement.offsetHeight;\n options.element.style.maxHeight = options.element.offsetHeight + 'px';\n pElement.style.maxHeight = '';\n }\n else {\n options.element.style.display = 'block';\n options.element.style.maxHeight = options.element.getBoundingClientRect().height + 'px';\n }\n },\n progress: function (options) {\n if (_this.hamburgerMode) {\n pElement.style.minHeight = (pUlHeight + options.element.offsetHeight) + 'px';\n }\n },\n end: function (options) {\n if (_this.hamburgerMode) {\n options.element.style.position = '';\n options.element.style.maxHeight = '';\n pElement.style.minHeight = '';\n options.element.style.top = 0 + 'px';\n options.element.children[0].focus();\n _this.triggerOpen(options.element.children[0]);\n }\n else {\n _this.end(options.element, isMenuOpen);\n }\n }\n });\n }\n };\n MenuBase.prototype.triggerOpen = function (ul) {\n var item = this.navIdx.length ? this.getItem(this.navIdx) : null;\n var eventArgs = {\n element: ul, parentItem: item, items: item ? item.items : this.items\n };\n this.trigger('onOpen', eventArgs);\n };\n MenuBase.prototype.end = function (ul, isMenuOpen) {\n if (isMenuOpen) {\n ul.style.display = 'block';\n ul.style.maxHeight = '';\n this.triggerOpen(ul);\n if (ul.querySelector('.' + FOCUSED)) {\n ul.querySelector('.' + FOCUSED).focus();\n }\n else {\n var ele = this.getWrapper().children[this.getIdx(this.getWrapper(), ul) - 1];\n if (this.currentTarget) {\n if (!(this.currentTarget.classList.contains('e-numerictextbox') || this.currentTarget.classList.contains('e-textbox') || this.currentTarget.tagName === 'INPUT')) {\n if (ele) {\n ele.querySelector('.' + SELECTED).focus();\n }\n else {\n this.element.focus();\n }\n }\n }\n else {\n if (ele) {\n ele.querySelector('.' + SELECTED).focus();\n }\n else {\n this.element.focus();\n }\n }\n }\n }\n else {\n if (ul === this.element) {\n var fli = this.getLIByClass(this.element, FOCUSED);\n if (fli) {\n fli.classList.remove(FOCUSED);\n }\n var sli = this.getLIByClass(this.element, SELECTED);\n if (sli) {\n sli.classList.remove(SELECTED);\n }\n ul.style.display = 'none';\n }\n else {\n detach(ul);\n }\n }\n };\n /**\n * Get the properties to be maintained in the persisted state.\n *\n * @returns {string} - Persist data\n */\n MenuBase.prototype.getPersistData = function () {\n return '';\n };\n /**\n * Get wrapper element.\n *\n * @returns {Element} - Wrapper element\n * @private\n */\n MenuBase.prototype.getWrapper = function () {\n return closest(this.element, '.e-' + this.getModuleName() + '-wrapper');\n };\n MenuBase.prototype.getIndex = function (data, isUniqueId, items, nIndex, isCallBack, level) {\n if (items === void 0) { items = this.items; }\n if (nIndex === void 0) { nIndex = []; }\n if (isCallBack === void 0) { isCallBack = false; }\n if (level === void 0) { level = 0; }\n var item;\n level = isCallBack ? level + 1 : 0;\n for (var i = 0, len = items.length; i < len; i++) {\n item = items[i];\n if ((isUniqueId ? item[this.getField('itemId', level)] : item[this.getField('text', level)]) === data) {\n nIndex.push(i);\n break;\n }\n else if (item[this.getField('children', level)]\n && item[this.getField('children', level)].length) {\n nIndex = this.getIndex(data, isUniqueId, item[this.getField('children', level)], nIndex, true, level);\n if (nIndex[nIndex.length - 1] === -1) {\n if (i !== len - 1) {\n nIndex.pop();\n }\n }\n else {\n nIndex.unshift(i);\n break;\n }\n }\n else {\n if (i === len - 1) {\n nIndex.push(-1);\n }\n }\n }\n return (!isCallBack && nIndex[0] === -1) ? [] : nIndex;\n };\n /**\n * This method is used to enable or disable the menu items in the Menu based on the items and enable argument.\n *\n * @param {string[]} items - Text items that needs to be enabled/disabled.\n * @param {boolean} enable - Set `true`/`false` to enable/disable the list items.\n * @param {boolean} isUniqueId - Set `true` if it is a unique id.\n * @returns {void}\n */\n MenuBase.prototype.enableItems = function (items, enable, isUniqueId) {\n if (enable === void 0) { enable = true; }\n var ul;\n var idx;\n var navIdx;\n var disabled = DISABLED;\n var skipItem;\n for (var i = 0; i < items.length; i++) {\n navIdx = this.getIndex(items[i], isUniqueId);\n if (this.navIdx.length) {\n if (navIdx.length !== 1) {\n skipItem = false;\n for (var i_1 = 0, len = navIdx.length - 1; i_1 < len; i_1++) {\n if (navIdx[i_1] !== this.navIdx[i_1]) {\n skipItem = true;\n break;\n }\n }\n if (skipItem) {\n continue;\n }\n }\n }\n else {\n if (navIdx.length !== 1) {\n continue;\n }\n }\n idx = navIdx.pop();\n ul = this.getUlByNavIdx(navIdx.length);\n if (ul) {\n if (enable) {\n if (this.isMenu) {\n ul.children[idx].classList.remove(disabled);\n ul.children[idx].removeAttribute('aria-disabled');\n }\n else {\n if (Browser.isDevice && !ul.classList.contains('e-contextmenu')) {\n ul.children[idx + 1].classList.remove(disabled);\n }\n else {\n ul.children[idx].classList.remove(disabled);\n }\n }\n }\n else {\n if (this.isMenu) {\n ul.children[idx].classList.add(disabled);\n ul.children[idx].setAttribute('aria-disabled', 'true');\n }\n else {\n if (Browser.isDevice && !ul.classList.contains('e-contextmenu')) {\n ul.children[idx + 1].classList.add(disabled);\n }\n else {\n ul.children[idx].classList.add(disabled);\n }\n }\n }\n }\n }\n };\n /**\n * This method is used to show the menu items in the Menu based on the items text.\n *\n * @param {string[]} items - Text items that needs to be shown.\n * @param {boolean} isUniqueId - Set `true` if it is a unique id.\n * @returns {void}\n */\n MenuBase.prototype.showItems = function (items, isUniqueId) {\n this.showHideItems(items, false, isUniqueId);\n };\n /**\n * This method is used to hide the menu items in the Menu based on the items text.\n *\n * @param {string[]} items - Text items that needs to be hidden.\n * @param {boolean} isUniqueId - Set `true` if it is a unique id.\n * @returns {void}\n */\n MenuBase.prototype.hideItems = function (items, isUniqueId) {\n this.showHideItems(items, true, isUniqueId);\n };\n MenuBase.prototype.showHideItems = function (items, ishide, isUniqueId) {\n var ul;\n var index;\n var navIdx;\n for (var i = 0; i < items.length; i++) {\n navIdx = this.getIndex(items[i], isUniqueId);\n index = navIdx.pop();\n ul = this.getUlByNavIdx(navIdx.length);\n if (ul) {\n if (ishide) {\n if (Browser.isDevice && !ul.classList.contains('e-contextmenu')) {\n ul.children[index + 1].classList.add(HIDE);\n }\n else {\n ul.children[index].classList.add(HIDE);\n }\n }\n else {\n if (Browser.isDevice && !ul.classList.contains('e-contextmenu')) {\n ul.children[index + 1].classList.remove(HIDE);\n }\n else {\n ul.children[index].classList.remove(HIDE);\n }\n }\n }\n }\n };\n /**\n * It is used to remove the menu items from the Menu based on the items text.\n *\n * @param {string[]} items Text items that needs to be removed.\n * @param {boolean} isUniqueId - Set `true` if it is a unique id.\n * @returns {void}\n */\n MenuBase.prototype.removeItems = function (items, isUniqueId) {\n var idx;\n var navIdx;\n var iitems;\n for (var i = 0; i < items.length; i++) {\n navIdx = this.getIndex(items[i], isUniqueId);\n idx = navIdx.pop();\n iitems = this.getItems(navIdx);\n if (!isNullOrUndefined(idx)) {\n this.removeItem(iitems, navIdx, idx);\n }\n }\n };\n /**\n * It is used to insert the menu items after the specified menu item text.\n *\n * @param {MenuItemModel[]} items - Items that needs to be inserted.\n * @param {string} text - Text item after that the element to be inserted.\n * @param {boolean} isUniqueId - Set `true` if it is a unique id.\n * @returns {void}\n */\n MenuBase.prototype.insertAfter = function (items, text, isUniqueId) {\n this.insertItems(items, text, isUniqueId);\n };\n /**\n * It is used to insert the menu items before the specified menu item text.\n *\n * @param {MenuItemModel[]} items - Items that needs to be inserted.\n * @param {string} text - Text item before that the element to be inserted.\n * @param {boolean} isUniqueId - Set `true` if it is a unique id.\n * @returns {void}\n */\n MenuBase.prototype.insertBefore = function (items, text, isUniqueId) {\n this.insertItems(items, text, isUniqueId, false);\n };\n MenuBase.prototype.insertItems = function (items, text, isUniqueId, isAfter) {\n if (isAfter === void 0) { isAfter = true; }\n var li;\n var idx;\n var navIdx;\n var iitems;\n var menuitem;\n for (var i = 0; i < items.length; i++) {\n navIdx = this.getIndex(text, isUniqueId);\n idx = navIdx.pop();\n iitems = this.getItems(navIdx);\n menuitem = new MenuItem(iitems[0], 'items', items[i], true);\n iitems.splice(isAfter ? idx + 1 : idx, 0, menuitem);\n var uls = this.isMenu ? [this.getWrapper()].concat(this.getPopups()) : [].slice.call(this.getWrapper().children);\n if (!isNullOrUndefined(idx) && navIdx.length < uls.length) {\n idx = isAfter ? idx + 1 : idx;\n li = this.createItems(iitems).children[idx];\n var ul = this.isMenu ? select('.e-menu-parent', uls[navIdx.length]) : uls[navIdx.length];\n ul.insertBefore(li, ul.children[idx]);\n }\n }\n };\n MenuBase.prototype.removeAttributes = function () {\n var _this = this;\n ['top', 'left', 'display', 'z-index'].forEach(function (key) {\n _this.element.style.removeProperty(key);\n });\n ['role', 'tabindex', 'class', 'style'].forEach(function (key) {\n if (key === 'class' && _this.element.classList.contains('e-menu-parent')) {\n _this.element.classList.remove('e-menu-parent');\n }\n if (['class', 'style'].indexOf(key) === -1 || !_this.element.getAttribute(key)) {\n _this.element.removeAttribute(key);\n }\n if (_this.isMenu && key === 'class' && _this.element.classList.contains('e-vertical')) {\n _this.element.classList.remove('e-vertical');\n }\n });\n };\n /**\n * Destroys the widget.\n *\n * @returns {void}\n */\n MenuBase.prototype.destroy = function () {\n var wrapper = this.getWrapper();\n if (wrapper) {\n this.unWireEvents();\n if (!this.isMenu) {\n this.clonedElement.style.display = '';\n if (this.clonedElement.tagName === 'EJS-CONTEXTMENU') {\n addClass([this.clonedElement], ['e-control', 'e-lib', 'e-' + this.getModuleName()]);\n this.element = this.clonedElement;\n }\n else {\n if (this.refreshing && this.clonedElement.childElementCount && this.clonedElement.children[0].tagName === 'LI') {\n this.setProperties({ 'items': [] }, true);\n }\n if (document.getElementById(this.clonedElement.id)) {\n var refEle = this.clonedElement.nextElementSibling;\n if (refEle && refEle !== wrapper) {\n this.clonedElement.parentElement.insertBefore(this.element, refEle);\n }\n else {\n this.clonedElement.parentElement.appendChild(this.element);\n }\n if (isBlazor() && !this.isMenu) {\n this.element = this.removeChildElement(this.element);\n }\n else {\n this.element.innerHTML = '';\n }\n append([].slice.call(this.clonedElement.children), this.element);\n detach(this.clonedElement);\n this.removeAttributes();\n }\n }\n this.clonedElement = null;\n }\n else {\n this.closeMenu();\n if (isBlazor() && !this.isMenu) {\n this.element = this.removeChildElement(this.element);\n }\n else {\n this.element.innerHTML = '';\n }\n this.removeAttributes();\n wrapper.parentNode.insertBefore(this.element, wrapper);\n this.clonedElement = null;\n }\n if (this.isMenu && this.clonedElement) {\n detach(this.element);\n wrapper.style.display = '';\n wrapper.classList.remove('e-' + this.getModuleName() + '-wrapper');\n wrapper.removeAttribute('data-ripple');\n }\n else {\n detach(wrapper);\n }\n _super.prototype.destroy.call(this);\n if (this.template) {\n this.clearTemplate(['template']);\n }\n }\n this.rippleFn = null;\n };\n __decorate([\n Event()\n ], MenuBase.prototype, \"beforeItemRender\", void 0);\n __decorate([\n Event()\n ], MenuBase.prototype, \"beforeOpen\", void 0);\n __decorate([\n Event()\n ], MenuBase.prototype, \"onOpen\", void 0);\n __decorate([\n Event()\n ], MenuBase.prototype, \"beforeClose\", void 0);\n __decorate([\n Event()\n ], MenuBase.prototype, \"onClose\", void 0);\n __decorate([\n Event()\n ], MenuBase.prototype, \"select\", void 0);\n __decorate([\n Event()\n ], MenuBase.prototype, \"created\", void 0);\n __decorate([\n Property('')\n ], MenuBase.prototype, \"cssClass\", void 0);\n __decorate([\n Property(0)\n ], MenuBase.prototype, \"hoverDelay\", void 0);\n __decorate([\n Property(false)\n ], MenuBase.prototype, \"showItemOnClick\", void 0);\n __decorate([\n Property('')\n ], MenuBase.prototype, \"target\", void 0);\n __decorate([\n Property('')\n ], MenuBase.prototype, \"filter\", void 0);\n __decorate([\n Property(null)\n ], MenuBase.prototype, \"template\", void 0);\n __decorate([\n Property(false)\n ], MenuBase.prototype, \"enableScrolling\", void 0);\n __decorate([\n Property(false)\n ], MenuBase.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Complex({ itemId: 'id', text: 'text', parentId: 'parentId', iconCss: 'iconCss', url: 'url', separator: 'separator', children: 'items' }, FieldSettings)\n ], MenuBase.prototype, \"fields\", void 0);\n __decorate([\n Collection([], MenuItem)\n ], MenuBase.prototype, \"items\", void 0);\n __decorate([\n Complex({ duration: 400, easing: 'ease', effect: 'SlideDown' }, MenuAnimationSettings)\n ], MenuBase.prototype, \"animationSettings\", void 0);\n MenuBase = __decorate([\n NotifyPropertyChanges\n ], MenuBase);\n return MenuBase;\n}(Component));\nexport { MenuBase };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Component, Property, ChildProperty, NotifyPropertyChanges, Animation, createElement } from '@syncfusion/ej2-base';\nimport { Browser, isNullOrUndefined as isNOU, getUniqueID, formatUnit, EventHandler } from '@syncfusion/ej2-base';\nimport { Collection, Complex, setStyleAttribute, Event, detach, L10n } from '@syncfusion/ej2-base';\nimport { attributes, extend, closest, compile as templateCompiler, classList, isUndefined } from '@syncfusion/ej2-base';\nimport { Touch, isBlazor, SanitizeHtmlHelper, removeClass } from '@syncfusion/ej2-base';\nimport { Button } from '@syncfusion/ej2-buttons';\nimport { getZindexPartial } from '@syncfusion/ej2-popups';\nvar ROOT = 'e-toast';\nvar CONTAINER = 'e-toast-container';\nvar TITLE = 'e-toast-title';\nvar WIDTHFULL = 'e-toast-full-width';\nvar CONTENT = 'e-toast-content';\nvar MESSAGE = 'e-toast-message';\nvar ICON = 'e-toast-icon';\nvar PROGRESS = 'e-toast-progress';\nvar ACTIOBUTTONS = 'e-toast-actions';\nvar CLOSEBTN = 'e-toast-close-icon';\nvar RTL = 'e-rtl';\n// eslint-disable-next-line\nvar TOAST_REF_ELEMENT = 'e-toast-ref-element';\nvar TOAST_BLAZOR_HIDDEN = 'e-blazor-toast-hidden';\n/**\n * An object that is used to configure the Toast X Y positions.\n */\nvar ToastPosition = /** @class */ (function (_super) {\n __extends(ToastPosition, _super);\n function ToastPosition() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('Left')\n ], ToastPosition.prototype, \"X\", void 0);\n __decorate([\n Property('Top')\n ], ToastPosition.prototype, \"Y\", void 0);\n return ToastPosition;\n}(ChildProperty));\nexport { ToastPosition };\n/**\n * An object that is used to configure the action button model properties and event.\n */\nvar ButtonModelProps = /** @class */ (function (_super) {\n __extends(ButtonModelProps, _super);\n function ButtonModelProps() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(null)\n ], ButtonModelProps.prototype, \"model\", void 0);\n __decorate([\n Property(null)\n ], ButtonModelProps.prototype, \"click\", void 0);\n return ButtonModelProps;\n}(ChildProperty));\nexport { ButtonModelProps };\n/**\n * An object that is used to configure the animation object of Toast.\n */\nvar ToastAnimations = /** @class */ (function (_super) {\n __extends(ToastAnimations, _super);\n function ToastAnimations() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('FadeIn')\n ], ToastAnimations.prototype, \"effect\", void 0);\n __decorate([\n Property(600)\n ], ToastAnimations.prototype, \"duration\", void 0);\n __decorate([\n Property('ease')\n ], ToastAnimations.prototype, \"easing\", void 0);\n return ToastAnimations;\n}(ChildProperty));\nexport { ToastAnimations };\n/**\n * An object that is used to configure the show/hide animation settings of Toast.\n */\nvar ToastAnimationSettings = /** @class */ (function (_super) {\n __extends(ToastAnimationSettings, _super);\n function ToastAnimationSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Complex({ effect: 'FadeIn', duration: 600, easing: 'ease' }, ToastAnimations)\n ], ToastAnimationSettings.prototype, \"show\", void 0);\n __decorate([\n Complex({ effect: 'FadeOut', duration: 600, easing: 'ease' }, ToastAnimations)\n ], ToastAnimationSettings.prototype, \"hide\", void 0);\n return ToastAnimationSettings;\n}(ChildProperty));\nexport { ToastAnimationSettings };\n/**\n * The Toast is a notification pop-up that showing on desired position which can provide an information to the user.\n * ```html\n *
\n * \n * ```\n */\nvar Toast = /** @class */ (function (_super) {\n __extends(Toast, _super);\n /**\n * Initializes a new instance of the Toast class.\n *\n * @param {ToastModel} options - Specifies Toast model properties as options.\n * @param {HTMLElement} element - Specifies the element that is rendered as a Toast.\n */\n function Toast(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.toastCollection = [];\n _this.needsID = true;\n return _this;\n }\n /**\n * Gets the Component module name.\n *\n * @returns {string} - returns the string\n * @private\n */\n Toast.prototype.getModuleName = function () {\n return 'toast';\n };\n /**\n * Gets the persisted state properties of the Component.\n *\n * @returns {string} - returns the string\n */\n Toast.prototype.getPersistData = function () {\n return this.addOnPersist([]);\n };\n /**\n * Removes the component from the DOM and detaches all its related event handlers, attributes and classes.\n *\n * @returns {void}\n */\n Toast.prototype.destroy = function () {\n this.hide('All');\n this.element.classList.remove(CONTAINER);\n setStyleAttribute(this.element, { 'position': '', 'z-index': '' });\n if (!isNOU(this.refElement) && !isNOU(this.refElement.parentElement)) {\n this.refElement.parentElement.insertBefore(this.element, this.refElement);\n detach(this.refElement);\n this.refElement = undefined;\n }\n if (!this.isBlazorServer()) {\n _super.prototype.destroy.call(this);\n }\n };\n /**\n * Initialize the event handler\n *\n * @returns {void}\n * @private\n */\n Toast.prototype.preRender = function () {\n //There is no event handler\n this.isDevice = Browser.isDevice;\n if (this.width === '300px') {\n this.width = (this.isDevice && screen.width < 768) ? '100%' : '300px';\n }\n if (isNOU(this.target)) {\n this.target = document.body;\n }\n if (this.enableRtl && !this.isBlazorServer()) {\n this.element.classList.add(RTL);\n }\n };\n /**\n * Initialize the component rendering\n *\n * @returns {void}\n * @private\n */\n Toast.prototype.render = function () {\n this.progressObj = [];\n this.intervalId = [];\n this.contentTemplate = null;\n this.toastTemplate = null;\n this.renderComplete();\n this.initRenderClass = this.element.className;\n };\n /**\n * To show Toast element on a document with the relative position.\n *\n * @param {ToastModel} toastObj - To show Toast element on screen.\n * @returns {void}\n\n */\n Toast.prototype.show = function (toastObj) {\n var collectionObj;\n if (!isNOU(toastObj)) {\n this.templateChanges(toastObj);\n collectionObj = JSON.parse(JSON.stringify(toastObj));\n extend(this, this, toastObj);\n }\n if (isNOU(this.toastContainer)) {\n this.toastContainer = this.getContainer();\n var target = typeof (this.target) === 'string' ? document.querySelector(this.target) :\n (typeof (this.target) === 'object' ? this.target : document.body);\n if (isNOU(target)) {\n return;\n }\n if (target.tagName === 'BODY') {\n this.toastContainer.style.position = 'fixed';\n }\n else {\n this.toastContainer.style.position = 'absolute';\n target.style.position = 'relative';\n }\n this.setPositioning(this.position);\n target.appendChild(this.toastContainer);\n }\n if (this.isBlazorServer() && this.element.classList.contains('e-control')) {\n this.isToastModel(toastObj);\n return;\n }\n this.toastEle = this.createElement('div', { className: ROOT, id: getUniqueID('toast') });\n this.setWidthHeight();\n this.setCSSClass(this.cssClass);\n // eslint-disable-next-line\n (isNOU(this.template) || this.template === '') ? this.personalizeToast() : this.templateRendering();\n this.setProgress();\n this.setCloseButton();\n this.setAria();\n this.appendToTarget(toastObj);\n if (this.isDevice && screen.width < 768) {\n new Touch(this.toastEle, { swipe: this.swipeHandler.bind(this) });\n }\n if (!isNOU(collectionObj)) {\n extend(collectionObj, { element: [this.toastEle] }, true);\n this.toastCollection.push(collectionObj);\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact) {\n this.renderReactTemplates();\n }\n };\n /**\n * @param {string} id - specifies the id\n * @param {ToastModel} toastObj - specifies the model\n * @returns {void}\n * @hidden\n\n * This method applicable for blazor alone.\n */\n Toast.prototype.showToast = function (id, toastObj) {\n this.toastEle = this.element.querySelector('#' + id);\n this.show(toastObj);\n };\n Toast.prototype.isToastModel = function (toastObj) {\n this.toastContainer = this.element;\n this.setPositioning(this.position);\n // eslint-disable-next-line\n var proxy = this;\n if (!isNOU(proxy.element.lastElementChild)) {\n this.setProgress();\n }\n this.setAria();\n this.appendToTarget(toastObj);\n };\n Toast.prototype.swipeHandler = function (e) {\n var toastEle = closest(e.originalEvent.target, '.' + ROOT + ':not(.' + CONTAINER + ')');\n var hideAnimation = this.animation.hide.effect;\n if (!isNOU(toastEle)) {\n if (e.swipeDirection === 'Right') {\n this.animation.hide.effect = 'SlideRightOut';\n this.hideToast('swipe', toastEle);\n }\n else if (e.swipeDirection === 'Left') {\n this.animation.hide.effect = 'SlideLeftOut';\n this.hideToast('swipe', toastEle);\n }\n this.animation.hide.effect = hideAnimation;\n }\n };\n Toast.prototype.templateChanges = function (toastObj) {\n if (!isUndefined(toastObj.content) && !isNOU(this.contentTemplate) && this.content !== toastObj.content) {\n this.clearContentTemplate();\n }\n if (!isUndefined(toastObj.template) && !isNOU(this.toastTemplate) && this.template !== toastObj.template) {\n this.clearToastTemplate();\n }\n };\n Toast.prototype.setCSSClass = function (cssClass) {\n if (cssClass) {\n var split = cssClass.indexOf(',') !== -1 ? ',' : ' ';\n classList(this.toastEle, cssClass.split(split), []);\n if (this.toastContainer) {\n classList(this.toastContainer, cssClass.split(split), []);\n }\n }\n };\n Toast.prototype.setWidthHeight = function () {\n if (this.width === '300px') {\n this.toastEle.style.width = formatUnit(this.width);\n }\n else if (this.width === '100%') {\n this.toastContainer.classList.add(WIDTHFULL);\n }\n else {\n this.toastEle.style.width = formatUnit(this.width);\n this.toastContainer.classList.remove(WIDTHFULL);\n }\n this.toastEle.style.height = formatUnit(this.height);\n };\n Toast.prototype.templateRendering = function () {\n this.fetchEle(this.toastEle, this.template, 'template');\n };\n /**\n * @param {string} value - specifies the string value.\n * @returns {string} - returns the string\n * @hidden\n */\n Toast.prototype.sanitizeHelper = function (value) {\n if (this.enableHtmlSanitizer) {\n var item = SanitizeHtmlHelper.beforeSanitize();\n var beforeEvent = {\n cancel: false,\n helper: null\n };\n extend(item, item, beforeEvent);\n this.trigger('beforeSanitizeHtml', item);\n if (item.cancel && !isNOU(item.helper)) {\n value = item.helper(value);\n }\n else if (!item.cancel) {\n value = SanitizeHtmlHelper.serializeValue(item, value);\n }\n }\n return value;\n };\n /**\n * To Hide Toast element on a document.\n * To Hide all toast element when passing 'All'.\n *\n * @param {HTMLElement} element - To Hide Toast element on screen.\n * @returns {void}\n */\n Toast.prototype.hide = function (element) {\n this.hideToast('', element);\n };\n Toast.prototype.hideToast = function (interactionType, element) {\n if (isNOU(this.toastContainer) || this.toastContainer.childElementCount === 0) {\n return;\n }\n if (typeof element === 'string' && element === 'All') {\n for (var i = 0; i < this.toastContainer.childElementCount; i++) {\n this.destroyToast(this.toastContainer.children[i], interactionType);\n }\n return;\n }\n if (isNOU(element)) {\n element = (this.newestOnTop ? this.toastContainer.lastElementChild : this.toastContainer.firstElementChild);\n }\n this.destroyToast(element, interactionType);\n };\n Toast.prototype.fetchEle = function (ele, value, prob) {\n value = typeof (value) === 'string' ? this.sanitizeHelper(value) : value;\n // eslint-disable-next-line\n var templateFn;\n var tempVar;\n var tmpArray;\n var templateProps;\n if (ele.classList.contains(TITLE)) {\n templateProps = this.element.id + 'title';\n }\n else if (ele.classList.contains(CONTENT)) {\n templateProps = this.element.id + 'content';\n }\n else {\n templateProps = this.element.id + 'template';\n }\n // eslint-disable-next-line\n prob === 'content' ? tempVar = this.contentTemplate : tempVar = this.toastTemplate;\n if (!isNOU(tempVar)) {\n ele.appendChild(tempVar.cloneNode(true));\n return ele;\n }\n try {\n if (document.querySelectorAll(value).length > 0) {\n var elem = null;\n if (prob !== 'title') {\n elem = document.querySelector(value);\n ele.appendChild(elem);\n elem.style.display = '';\n }\n var clo = isNOU(elem) ? tempVar : elem.cloneNode(true);\n // eslint-disable-next-line\n prob === 'content' ? this.contentTemplate = clo : this.toastTemplate = clo;\n }\n else {\n templateFn = templateCompiler(value);\n }\n }\n catch (e) {\n templateFn = templateCompiler(value);\n // eslint-disable-next-line\n var templateValue = value;\n }\n if (!isNOU(templateFn)) {\n if (!this.isBlazorServer()) {\n tmpArray = templateFn({}, this, prob, null, true);\n }\n else {\n var isString = true;\n tmpArray = templateFn({}, this, prob, templateProps, isString);\n }\n }\n if (!isNOU(tmpArray) && tmpArray.length > 0 && !(isNOU(tmpArray[0].tagName) && tmpArray.length === 1)) {\n [].slice.call(tmpArray).forEach(function (el) {\n if (!isNOU(el.tagName)) {\n el.style.display = '';\n }\n ele.appendChild(el);\n });\n }\n else if (ele.childElementCount === 0) {\n ele.innerHTML = value;\n }\n return ele;\n };\n Toast.prototype.clearProgress = function (intervalId) {\n if (!isNOU(this.intervalId[intervalId])) {\n clearInterval(this.intervalId[intervalId]);\n delete this.intervalId[intervalId];\n }\n if (!isNOU(this.progressObj[intervalId])) {\n clearInterval(this.progressObj[intervalId].intervalId);\n delete this.progressObj[intervalId];\n }\n };\n Toast.prototype.removeToastContainer = function (isClosed) {\n if (isClosed && this.toastContainer.classList.contains('e-toast-util')) {\n detach(this.toastContainer);\n }\n };\n Toast.prototype.clearContainerPos = function (isClosed) {\n var _this = this;\n if (this.isBlazorServer()) {\n this.toastContainer = null;\n return;\n }\n if (this.customPosition) {\n setStyleAttribute(this.toastContainer, { 'left': '', 'top': '' });\n this.removeToastContainer(isClosed);\n this.toastContainer = null;\n this.customPosition = false;\n }\n else {\n [ROOT + '-top-left',\n ROOT + '-top-right',\n ROOT + '-bottom-left',\n ROOT + '-bottom-right',\n ROOT + '-bottom-center',\n ROOT + '-top-center',\n ROOT + '-full-width'].forEach(function (pos) {\n if (!isNOU(_this.toastContainer) && _this.toastContainer.classList.contains(pos)) {\n _this.toastContainer.classList.remove(pos);\n }\n });\n this.removeToastContainer(isClosed);\n this.toastContainer = null;\n }\n if (!isNOU(this.contentTemplate)) {\n this.clearContentTemplate();\n }\n if (!isNOU(this.toastTemplate)) {\n this.clearToastTemplate();\n }\n };\n Toast.prototype.clearContentTemplate = function () {\n this.contentTemplate.style.display = 'none';\n document.body.appendChild(this.contentTemplate);\n this.contentTemplate = null;\n };\n Toast.prototype.clearToastTemplate = function () {\n this.toastTemplate.style.display = 'none';\n document.body.appendChild(this.toastTemplate);\n this.toastTemplate = null;\n };\n Toast.prototype.isBlazorServer = function () {\n return (isBlazor() && this.isServerRendered);\n };\n Toast.prototype.destroyToast = function (toastEle, interactionType) {\n var _this = this;\n var toastObj;\n for (var i = 0; i < this.toastCollection.length; i++) {\n if (this.toastCollection[i].element[0] === toastEle) {\n toastObj = this.toastCollection[i];\n this.toastCollection.splice(i, 1);\n }\n }\n var toastBeforeClose = {\n options: this,\n cancel: false,\n type: interactionType,\n element: toastEle,\n toastContainer: this.toastContainer\n };\n var hideAnimate = this.animation.hide;\n var animate = {\n duration: hideAnimate.duration, name: hideAnimate.effect, timingFunction: hideAnimate.easing\n };\n var intervalId = parseInt(toastEle.id.split('toast_')[1], 10);\n var toastClose = this.isBlazorServer() ? {\n options: toastObj,\n toastContainer: this.toastContainer\n } : {\n options: toastObj,\n toastContainer: this.toastContainer,\n toastObj: this\n };\n this.trigger('beforeClose', toastBeforeClose, function (toastBeforeCloseArgs) {\n if (!toastBeforeCloseArgs.cancel) {\n if (!isNOU(_this.progressObj[intervalId]) && !isNOU(toastEle.querySelector('.' + PROGRESS))) {\n _this.progressObj[intervalId].progressEle.style.width = '0%';\n }\n animate.end = function () {\n _this.clearProgress(intervalId);\n if (!_this.isBlazorServer() || isNOU(toastObj)) {\n detach(toastEle);\n }\n _this.trigger('close', toastClose);\n if (_this.toastContainer.childElementCount === 0) {\n _this.clearContainerPos(true);\n }\n hideAnimate = null;\n animate = null;\n };\n new Animation(animate).animate(toastEle);\n }\n });\n };\n Toast.prototype.personalizeToast = function () {\n this.setIcon();\n this.setTitle();\n this.setContent();\n this.actionButtons();\n };\n Toast.prototype.setAria = function () {\n attributes(this.toastEle, { 'role': 'alert' });\n };\n Toast.prototype.setPositioning = function (pos) {\n if (this.isBlazorServer()) {\n return;\n }\n if (!isNaN(parseFloat(pos.X)) || !isNaN(parseFloat(pos.Y))) {\n this.customPosition = true;\n setStyleAttribute(this.toastContainer, { 'left': formatUnit(pos.X), 'top': formatUnit(pos.Y) });\n }\n else {\n this.toastContainer.classList.add(ROOT + '-' + pos.Y.toString().toLowerCase() + '-' + pos.X.toString().toLowerCase());\n }\n };\n Toast.prototype.setCloseButton = function () {\n if (!this.showCloseButton) {\n return;\n }\n // eslint-disable-next-line\n var localeText = { close: 'Close' };\n this.l10n = new L10n('toast', localeText, this.locale);\n this.l10n.setLocale(this.locale);\n var closeIconTitle = this.l10n.getConstant('close');\n var closeBtn = this.createElement('div', { className: CLOSEBTN + ' e-icons ', attrs: { tabindex: '0', 'aria-label': closeIconTitle, 'role': 'button' } });\n this.toastEle.classList.add('e-toast-header-close-icon');\n this.toastEle.appendChild(closeBtn);\n };\n Toast.prototype.setProgress = function () {\n if (this.timeOut > 0) {\n var id = parseInt(this.toastEle.id.split('toast_')[1], 10);\n this.intervalId[id] = window.setTimeout(this.destroyToast.bind(this, this.toastEle), this.timeOut);\n this.progressObj[id] = { hideEta: null, intervalId: null, maxHideTime: null,\n element: null, timeOutId: null, progressEle: null };\n this.progressObj[id].maxHideTime = parseFloat(this.timeOut + '');\n this.progressObj[id].hideEta = new Date().getTime() + this.progressObj[id].maxHideTime;\n this.progressObj[id].element = this.toastEle;\n if (this.extendedTimeout > 0) {\n EventHandler.add(this.toastEle, 'mouseover', this.toastHoverAction.bind(this, id));\n EventHandler.add(this.toastEle, 'mouseleave', this.delayedToastProgress.bind(this, id));\n this.progressObj[id].timeOutId = this.intervalId[id];\n }\n if (this.showProgressBar) {\n this.progressBarEle = this.createElement('div', { className: PROGRESS });\n this.toastEle.insertBefore(this.progressBarEle, this.toastEle.children[0]);\n // eslint-disable-next-line max-len\n this.progressObj[id].intervalId = setInterval(this.updateProgressBar.bind(this, this.progressObj[id]), 10);\n this.progressObj[id].progressEle = this.progressBarEle;\n }\n }\n };\n Toast.prototype.toastHoverAction = function (id) {\n clearTimeout(this.progressObj[id].timeOutId);\n clearInterval(this.progressObj[id].intervalId);\n this.progressObj[id].hideEta = 0;\n var toastEle = this.progressObj[id].element;\n if (!isNOU(toastEle.querySelector('.' + PROGRESS))) {\n this.progressObj[id].progressEle.style.width = '0%';\n }\n };\n Toast.prototype.delayedToastProgress = function (id) {\n var progress = this.progressObj[id];\n var toastEle = progress.element;\n progress.timeOutId = window.setTimeout(this.destroyToast.bind(this, toastEle), this.extendedTimeout);\n progress.maxHideTime = parseFloat(this.extendedTimeout + '');\n progress.hideEta = new Date().getTime() + progress.maxHideTime;\n if (!isNOU(toastEle.querySelector('.' + PROGRESS))) {\n progress.intervalId = setInterval(this.updateProgressBar.bind(this, progress), 10);\n }\n };\n Toast.prototype.updateProgressBar = function (progressObj) {\n var percentage = ((progressObj.hideEta - (new Date().getTime())) / progressObj.maxHideTime) * 100;\n percentage = this.progressDirection === 'Ltr' ? 100 - percentage : percentage;\n progressObj.progressEle.style.width = percentage + '%';\n };\n Toast.prototype.setIcon = function () {\n if (isNOU(this.icon) || this.icon.length === 0) {\n return;\n }\n var iconEle = this.createElement('div', { className: ICON + ' e-icons ' + this.icon });\n this.toastEle.classList.add('e-toast-header-icon');\n this.toastEle.appendChild(iconEle);\n };\n Toast.prototype.setTitle = function () {\n if (isNOU(this.title)) {\n return;\n }\n var titleEle = this.createElement('div', { className: TITLE });\n titleEle = this.fetchEle(titleEle, this.title, 'title');\n var msgContainer = this.createElement('div', { className: MESSAGE });\n msgContainer.appendChild(titleEle);\n this.toastEle.appendChild(msgContainer);\n };\n Toast.prototype.setContent = function () {\n var contentEle = this.createElement('div', { className: CONTENT });\n var ele = this.element;\n if (isNOU(this.content) || this.content === '') {\n var isContent = this.element.innerHTML.replace(/\\s/g, '') !== '';\n if ((ele.children.length > 0 || isContent) && !(ele.firstElementChild && ele.firstElementChild.classList.contains(ROOT))) {\n this.innerEle = document.createDocumentFragment();\n var tempEle_1 = this.createElement('div');\n while (ele.childNodes.length !== 0) {\n this.innerEle.appendChild(this.element.childNodes[0]);\n }\n contentEle.appendChild(this.innerEle);\n [].slice.call(contentEle.children).forEach(function (ele) {\n tempEle_1.appendChild(ele.cloneNode(true));\n });\n this.content = tempEle_1;\n this.appendMessageContainer(contentEle);\n }\n }\n else {\n if (typeof (this.content) === 'object' && !isNOU(this.content.tagName)) {\n contentEle.appendChild(this.content);\n this.content = this.content.cloneNode(true);\n this.appendMessageContainer(contentEle);\n }\n else {\n contentEle = this.fetchEle(contentEle, this.content, 'content');\n this.appendMessageContainer(contentEle);\n }\n }\n };\n Toast.prototype.appendMessageContainer = function (element) {\n if (this.toastEle.querySelectorAll('.' + MESSAGE).length > 0) {\n this.toastEle.querySelector('.' + MESSAGE).appendChild(element);\n }\n else {\n var msgContainer = this.createElement('div', { className: MESSAGE });\n msgContainer.appendChild(element);\n this.toastEle.appendChild(msgContainer);\n }\n };\n Toast.prototype.actionButtons = function () {\n var _this = this;\n var actionBtnContainer = this.createElement('div', { className: ACTIOBUTTONS });\n [].slice.call(this.buttons).forEach(function (actionBtn) {\n if (isNOU(actionBtn.model)) {\n return;\n }\n var btnDom = _this.createElement('button');\n btnDom.setAttribute('type', 'button');\n if (isNOU(actionBtn.model.cssClass) || actionBtn.model.cssClass.length === 0) {\n actionBtn.model.cssClass = 'e-primary' + ' ' + _this.cssClass;\n }\n btnDom.classList.add('e-small');\n new Button(actionBtn.model, btnDom);\n if (!isNOU(actionBtn.click) && typeof (actionBtn.click) === 'function') {\n EventHandler.add(btnDom, 'click', actionBtn.click);\n }\n actionBtnContainer.appendChild(btnDom);\n });\n if (actionBtnContainer.childElementCount > 0) {\n this.appendMessageContainer(actionBtnContainer);\n }\n };\n Toast.prototype.appendToTarget = function (toastObj) {\n var _this = this;\n var toastBeforeOpen = this.isBlazorServer() ? {\n options: toastObj,\n element: this.toastEle,\n cancel: false\n } : {\n options: toastObj,\n toastObj: this,\n element: this.toastEle,\n cancel: false\n };\n this.trigger('beforeOpen', toastBeforeOpen, function (toastBeforeOpenArgs) {\n if (!toastBeforeOpenArgs.cancel) {\n if (!_this.isBlazorServer()) {\n _this.toastEle.style.display = 'none';\n }\n if (_this.newestOnTop && _this.toastContainer.childElementCount !== 0) {\n _this.toastContainer.insertBefore(_this.toastEle, _this.toastContainer.children[0]);\n }\n else if (!_this.isBlazorServer()) {\n _this.toastContainer.appendChild(_this.toastEle);\n }\n removeClass([_this.toastEle], TOAST_BLAZOR_HIDDEN);\n EventHandler.add(_this.toastEle, 'click', _this.clickHandler, _this);\n EventHandler.add(_this.toastEle, 'keydown', _this.keyDownHandler, _this);\n _this.toastContainer.style.zIndex = getZindexPartial(_this.toastContainer) + '';\n _this.displayToast(_this.toastEle, toastObj);\n }\n else if (_this.isBlazorServer()) {\n var intervalId = parseInt(_this.toastEle.id.split('toast_')[1], 10);\n _this.clearProgress(intervalId);\n detach(_this.toastEle);\n if (_this.toastContainer.childElementCount === 0) {\n _this.clearContainerPos();\n }\n }\n });\n };\n Toast.prototype.clickHandler = function (e) {\n var _this = this;\n if (!this.isBlazorServer()) {\n e.stopPropagation();\n }\n var target = e.target;\n var toastEle = closest(target, '.' + ROOT);\n var clickArgs = this.isBlazorServer() ? {\n element: toastEle, cancel: false, clickToClose: false, originalEvent: e\n } : {\n element: toastEle, cancel: false, clickToClose: false, originalEvent: e, toastObj: this\n };\n var isCloseIcon = target.classList.contains(CLOSEBTN);\n this.trigger('click', clickArgs, function (toastClickArgs) {\n if ((isCloseIcon && !toastClickArgs.cancel) || toastClickArgs.clickToClose) {\n _this.destroyToast(toastEle, 'click');\n }\n });\n };\n Toast.prototype.keyDownHandler = function (e) {\n if (e.target.classList.contains(CLOSEBTN) &&\n (e.keyCode === 13 || e.keyCode === 32)) {\n var target = e.target;\n var toastEle = closest(target, '.' + ROOT);\n this.destroyToast(toastEle, 'key');\n }\n };\n Toast.prototype.displayToast = function (toastEle, toastObj) {\n var _this = this;\n var showAnimate = this.animation.show;\n var animate = {\n duration: showAnimate.duration, name: showAnimate.effect, timingFunction: showAnimate.easing\n };\n var toastOpen = this.isBlazorServer() ? {\n options: toastObj,\n element: this.toastEle\n } : {\n options: toastObj,\n toastObj: this,\n element: this.toastEle\n };\n animate.begin = function () {\n toastEle.style.display = '';\n };\n animate.end = function () {\n _this.trigger('open', toastOpen);\n };\n new Animation(animate).animate(toastEle);\n };\n Toast.prototype.getContainer = function () {\n this.element.classList.add(CONTAINER);\n return this.element;\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {ToastModel} newProp - specifies the new property\n * @param {ToastModel} oldProp - specifies the old property\n * @returns {void}\n * @private\n */\n // eslint-disable-next-line\n Toast.prototype.onPropertyChanged = function (newProp, oldProp) {\n var container = this.element;\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'enableRtl':\n // eslint-disable-next-line\n newProp.enableRtl ? container.classList.add(RTL) : container.classList.remove(RTL);\n break;\n }\n }\n };\n __decorate([\n Property('300px')\n ], Toast.prototype, \"width\", void 0);\n __decorate([\n Property('auto')\n ], Toast.prototype, \"height\", void 0);\n __decorate([\n Property(null)\n ], Toast.prototype, \"title\", void 0);\n __decorate([\n Property(null)\n ], Toast.prototype, \"content\", void 0);\n __decorate([\n Property(true)\n ], Toast.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Property(null)\n ], Toast.prototype, \"icon\", void 0);\n __decorate([\n Property(null)\n ], Toast.prototype, \"cssClass\", void 0);\n __decorate([\n Property(null)\n ], Toast.prototype, \"template\", void 0);\n __decorate([\n Property(true)\n ], Toast.prototype, \"newestOnTop\", void 0);\n __decorate([\n Property(false)\n ], Toast.prototype, \"showCloseButton\", void 0);\n __decorate([\n Property(false)\n ], Toast.prototype, \"showProgressBar\", void 0);\n __decorate([\n Property(5000)\n ], Toast.prototype, \"timeOut\", void 0);\n __decorate([\n Property('Rtl')\n ], Toast.prototype, \"progressDirection\", void 0);\n __decorate([\n Property(1000)\n ], Toast.prototype, \"extendedTimeout\", void 0);\n __decorate([\n Complex({}, ToastAnimationSettings)\n ], Toast.prototype, \"animation\", void 0);\n __decorate([\n Complex({}, ToastPosition)\n ], Toast.prototype, \"position\", void 0);\n __decorate([\n Collection([{}], ButtonModelProps)\n ], Toast.prototype, \"buttons\", void 0);\n __decorate([\n Property(null)\n ], Toast.prototype, \"target\", void 0);\n __decorate([\n Event()\n ], Toast.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], Toast.prototype, \"beforeSanitizeHtml\", void 0);\n __decorate([\n Event()\n ], Toast.prototype, \"destroyed\", void 0);\n __decorate([\n Event()\n ], Toast.prototype, \"open\", void 0);\n __decorate([\n Event()\n ], Toast.prototype, \"beforeOpen\", void 0);\n __decorate([\n Event()\n ], Toast.prototype, \"beforeClose\", void 0);\n __decorate([\n Event()\n ], Toast.prototype, \"close\", void 0);\n __decorate([\n Event()\n ], Toast.prototype, \"click\", void 0);\n Toast = __decorate([\n NotifyPropertyChanges\n ], Toast);\n return Toast;\n}(Component));\nexport { Toast };\n/**\n * Base for creating Toast through utility method.\n */\n// eslint-disable-next-line\nexport var ToastUtility;\n(function (ToastUtility) {\n /**\n * To display a simple toast using the 'ToastUtility' with 'ToastModal' or\n * as string with toast content, type, timeOut.\n * ```\n * Eg : ToastUtility.show('Toast Content Message', 'Information', 7000);\n *\n * ```\n */\n /* istanbul ignore next */\n /**\n *\n * @param { ToastModel | string } content - Specifies the toast modal or the content of the Toast.\n * @param {string} type - Specifies the type of toast.\n * @param { number } timeOut - Specifies the timeOut of the toast.\n * @returns {Toast} - returns the element\n */\n function show(content, type, timeOut) {\n var toastContainerElement;\n if (document.querySelector('.' + CONTAINER)) {\n toastContainerElement = document.querySelector('.' + CONTAINER);\n }\n else {\n toastContainerElement = createElement('div', { 'className': ROOT + ' ' + CONTAINER + ' e-toast-util' });\n document.body.appendChild(toastContainerElement);\n }\n var toastObj;\n var untilToastsModel;\n if (typeof (content) === 'string') {\n var cssClass = void 0;\n var icon = void 0;\n if (!isNOU(type)) {\n switch (type) {\n case 'Warning':\n cssClass = 'e-toast-warning';\n icon = 'e-toast-warning-icon';\n break;\n case 'Success':\n cssClass = 'e-toast-success';\n icon = 'e-toast-success-icon';\n break;\n case 'Error':\n cssClass = 'e-toast-danger';\n icon = 'e-toast-error-icon';\n break;\n case 'Information':\n cssClass = 'e-toast-info';\n icon = 'e-toast-info-icon';\n break;\n }\n }\n else {\n cssClass = '';\n icon = '';\n }\n untilToastsModel = {\n content: content,\n cssClass: cssClass,\n icon: icon,\n timeOut: !isNOU(timeOut) ? timeOut : 5000\n };\n }\n else {\n untilToastsModel = content;\n }\n toastObj = new Toast(untilToastsModel);\n toastObj.appendTo(toastContainerElement);\n toastObj.show();\n return toastObj;\n }\n ToastUtility.show = show;\n})(ToastUtility || (ToastUtility = {}));\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/* eslint-disable @typescript-eslint/triple-slash-reference */\n/// \nimport { attributes, getUniqueID, Collection, NotifyPropertyChanges, Property } from '@syncfusion/ej2-base';\nimport { getZindexPartial } from '@syncfusion/ej2-popups';\nimport { MenuBase, MenuItem } from '../common/menu-base';\n/**\n * The ContextMenu is a graphical user interface that appears on the user right click/touch hold operation.\n * ```html\n *
\n *
    \n * ```\n * ```typescript\n * \n * ```\n */\nvar ContextMenu = /** @class */ (function (_super) {\n __extends(ContextMenu, _super);\n /**\n * Constructor for creating the widget.\n *\n * @private\n * @param {ContextMenuModel} options - Specifies the context menu model\n * @param {string} element - Specifies the element\n */\n function ContextMenu(options, element) {\n return _super.call(this, options, element) || this;\n }\n /**\n * For internal use only - prerender processing.\n *\n * @private\n * @returns {void}\n */\n ContextMenu.prototype.preRender = function () {\n this.isMenu = false;\n this.element.id = this.element.id || getUniqueID('ej2-contextmenu');\n _super.prototype.preRender.call(this);\n };\n ContextMenu.prototype.initialize = function () {\n _super.prototype.initialize.call(this);\n attributes(this.element, { 'role': 'menubar', 'tabindex': '0' });\n this.element.style.zIndex = getZindexPartial(this.element).toString();\n };\n /**\n * This method is used to open the ContextMenu in specified position.\n *\n * @param {number} top - To specify ContextMenu vertical positioning.\n * @param {number} left - To specify ContextMenu horizontal positioning.\n * @param {HTMLElement} target - To calculate z-index for ContextMenu based upon the specified target.\n * @function open\n * @returns {void}\n */\n ContextMenu.prototype.open = function (top, left, target) {\n _super.prototype.openMenu.call(this, null, null, top, left, null, target);\n };\n /**\n * Closes the ContextMenu if it is opened.\n *\n * @function close\n * @returns {void}\n */\n ContextMenu.prototype.close = function () {\n _super.prototype.closeMenu.call(this);\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @private\n * @param {ContextMenuModel} newProp - Specifies new properties\n * @param {ContextMenuModel} oldProp - Specifies old properties\n * @returns {void}\n */\n ContextMenu.prototype.onPropertyChanged = function (newProp, oldProp) {\n _super.prototype.onPropertyChanged.call(this, newProp, oldProp);\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'filter':\n this.close();\n this.filter = newProp.filter;\n break;\n case 'target':\n this.unWireEvents(oldProp.target);\n this.wireEvents();\n break;\n }\n }\n };\n /**\n * Get module name.\n *\n * @returns {string} - Module Name\n * @private\n */\n ContextMenu.prototype.getModuleName = function () {\n return 'contextmenu';\n };\n __decorate([\n Property('')\n ], ContextMenu.prototype, \"target\", void 0);\n __decorate([\n Property('')\n ], ContextMenu.prototype, \"filter\", void 0);\n __decorate([\n Collection([], MenuItem)\n ], ContextMenu.prototype, \"items\", void 0);\n ContextMenu = __decorate([\n NotifyPropertyChanges\n ], ContextMenu);\n return ContextMenu;\n}(MenuBase));\nexport { ContextMenu };\n","import { createElement, Browser, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { ContextMenu as Context } from '@syncfusion/ej2-navigations';\nimport { ContextMenuItem } from './types';\n/**\n * ContextMenu module is used to handle the context menus used in the control.\n *\n * @hidden\n */\nvar ContextMenu = /** @class */ (function () {\n /**\n * Initialize the constructor of ontextmenu\n *\n * @param { PdfViewer } pdfViewer - Specified PdfViewer class.\n * @param { PdfViewerBase } pdfViewerBase - The pdfViewerBase.\n */\n function ContextMenu(pdfViewer, pdfViewerBase) {\n this.copyContextMenu = [];\n this.contextMenuList = [];\n this.pdfViewer = pdfViewer;\n this.pdfViewerBase = pdfViewerBase;\n this.copyContextMenu = [{ text: this.pdfViewer.localeObj.getConstant('Cut'), iconCss: 'e-pv-cut-icon' },\n { text: this.pdfViewer.localeObj.getConstant('Copy'), iconCss: 'e-pv-copy-icon' },\n { text: this.pdfViewer.localeObj.getConstant('Highlight context'), iconCss: 'e-pv-highlight-icon' },\n { text: this.pdfViewer.localeObj.getConstant('Underline context'), iconCss: 'e-pv-underline-icon' },\n { text: this.pdfViewer.localeObj.getConstant('Strikethrough context'), iconCss: 'e-pv-strikethrough-icon' },\n { text: this.pdfViewer.localeObj.getConstant('Paste'), iconCss: 'e-pv-paste-icon' },\n { text: this.pdfViewer.localeObj.getConstant('Delete Context'), iconCss: 'e-pv-delete-icon' },\n { text: this.pdfViewer.localeObj.getConstant('Scale Ratio'), iconCss: 'e-pv-scale-ratio-icon' },\n { separator: true, id: pdfViewer.element.id + '_context_menu_comment_separator' },\n { text: this.pdfViewer.localeObj.getConstant('Comment'), iconCss: 'e-pv-comment-icon' },\n { separator: true, id: pdfViewer.element.id + '_context_menu_separator' },\n { text: this.pdfViewer.localeObj.getConstant('Properties'), iconCss: 'e-pv-property-icon' }\n ];\n }\n /**\n * @private\n * @returns {void}\n */\n ContextMenu.prototype.createContextMenu = function () {\n this.contextMenuElement = createElement('ul', { id: this.pdfViewer.element.id + '_context_menu', className: 'e-pv-context-menu' });\n this.pdfViewer.element.appendChild(this.contextMenuElement);\n this.contextMenuObj = new Context({\n target: '#' + this.pdfViewerBase.viewerContainer.id, items: this.copyContextMenu,\n beforeOpen: this.contextMenuOnBeforeOpen.bind(this), select: this.onMenuItemSelect.bind(this),\n created: this.contextMenuOnCreated.bind(this)\n });\n if (this.pdfViewer.enableRtl) {\n this.contextMenuObj.enableRtl = true;\n }\n this.contextMenuObj.appendTo(this.contextMenuElement);\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n this.contextMenuObj.animationSettings.effect = 'ZoomIn';\n }\n else {\n this.contextMenuObj.animationSettings.effect = 'SlideDown';\n }\n };\n ContextMenu.prototype.contextMenuOnCreated = function (args) {\n // eslint-disable-next-line max-len\n var items = [this.pdfViewer.localeObj.getConstant('Highlight context'), this.pdfViewer.localeObj.getConstant('Underline context'),\n this.pdfViewer.localeObj.getConstant('Strikethrough context')];\n if (this.pdfViewer.annotationModule) {\n if (!this.pdfViewer.annotationModule.textMarkupAnnotationModule) {\n this.contextMenuObj.enableItems(items, false);\n }\n }\n else {\n this.contextMenuObj.enableItems(items, false);\n }\n };\n ContextMenu.prototype.setTarget = function (args) {\n var target = null;\n if (args.event && args.event.target) {\n target = args.event.target;\n this.currentTarget = target;\n }\n return target;\n };\n ContextMenu.prototype.contextMenuOnBeforeOpen = function (args) {\n if (this.pdfViewerBase.preventContextmenu) {\n args.cancel = true;\n }\n var target = this.setTarget(args);\n var currentAnnotSettings = this.pdfViewer.selectedItems.annotations.length !== 0 ? this.pdfViewer.selectedItems.annotations[0].annotationSettings : null;\n // eslint-disable-next-line max-len\n if (this.pdfViewer.annotationModule && this.pdfViewer.annotationModule.freeTextAnnotationModule && this.pdfViewer.annotationModule.freeTextAnnotationModule.isInuptBoxInFocus && target && target.className === 'free-text-input' && target.tagName === 'TEXTAREA') {\n this.pdfViewerBase.isFreeTextContextMenu = true;\n }\n // eslint-disable-next-line max-len\n this.contextMenuObj.showItems([this.pdfViewer.localeObj.getConstant('Cut'), this.pdfViewer.localeObj.getConstant('Copy'), this.pdfViewer.localeObj.getConstant('Paste'),\n // eslint-disable-next-line max-len\n this.pdfViewer.localeObj.getConstant('Highlight context'), this.pdfViewer.localeObj.getConstant('Underline context'), this.pdfViewer.localeObj.getConstant('Strikethrough context'),\n // eslint-disable-next-line max-len\n this.pdfViewer.localeObj.getConstant('Delete Context'), this.pdfViewer.localeObj.getConstant('Scale Ratio'), this.pdfViewer.localeObj.getConstant('Comment'), this.pdfViewer.localeObj.getConstant('Properties')]);\n this.pdfViewerBase.getElement('_context_menu_separator').classList.remove('e-menu-hide');\n this.pdfViewerBase.getElement('_context_menu_comment_separator').classList.remove('e-menu-hide');\n // eslint-disable-next-line max-len\n this.contextMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Cut'), this.pdfViewer.localeObj.getConstant('Copy'), this.pdfViewer.localeObj.getConstant('Paste'), this.pdfViewer.localeObj.getConstant('Delete Context')], true);\n if (this.pdfViewer.annotationModule) {\n this.pdfViewer.annotationModule.checkContextMenuDeleteItem(this.contextMenuObj);\n }\n if (this.pdfViewer.textSelectionModule || this.pdfViewerBase.isShapeBasedAnnotationsEnabled()) {\n if (args.event || this.pdfViewerBase.isTouchDesignerMode) {\n var isClickWithinSelectionBounds = this.pdfViewerBase.isClickWithinSelectionBounds(args.event);\n // eslint-disable-next-line max-len\n if (this.pdfViewerBase.isFreeTextContextMenu) {\n this.contextMenuObj.hideItems([this.pdfViewer.localeObj.getConstant('Highlight context'), this.pdfViewer.localeObj.getConstant('Underline context'), this.pdfViewer.localeObj.getConstant('Strikethrough context'), this.pdfViewer.localeObj.getConstant('Properties'), this.pdfViewer.localeObj.getConstant('Comment'),\n this.pdfViewer.localeObj.getConstant('Scale Ratio'), this.pdfViewer.localeObj.getConstant('Delete Context')]);\n this.pdfViewerBase.getElement('_context_menu_separator').classList.add('e-menu-hide');\n this.pdfViewerBase.getElement('_context_menu_comment_separator').classList.add('e-menu-hide');\n // eslint-disable-next-line max-len\n if (this.pdfViewer.annotation.freeTextAnnotationModule && this.pdfViewer.annotation.freeTextAnnotationModule.isTextSelected) {\n this.contextMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Copy')], true);\n this.contextMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Cut')], true);\n }\n else {\n this.contextMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Copy')], false);\n this.contextMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Cut')], false);\n window.getSelection().removeAllRanges();\n }\n // eslint-disable-next-line max-len\n if (this.pdfViewer.annotation.freeTextAnnotationModule && this.pdfViewer.annotation.freeTextAnnotationModule.selectedText !== '') {\n this.contextMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Paste')], true);\n }\n else {\n this.contextMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Paste')], false);\n }\n }\n else if (isClickWithinSelectionBounds && this.pdfViewer.textSelectionModule) {\n // eslint-disable-next-line max-len\n if ((!args.event.target.classList.contains('e-pv-maintaincontent') && args.event.target.classList.contains('e-pv-text') || args.event.target.classList.contains('e-pv-text-layer'))) {\n if (this.pdfViewerBase.checkIsNormalText()) {\n args.cancel = true;\n }\n // eslint-disable-next-line max-len\n }\n else if ((Browser.isIE || Browser.info.name === 'edge') && args.event.target.classList.contains('e-pv-page-container')) {\n args.cancel = true;\n }\n // eslint-disable-next-line max-len\n this.contextMenuObj.hideItems([this.pdfViewer.localeObj.getConstant('Cut'), this.pdfViewer.localeObj.getConstant('Paste'), this.pdfViewer.localeObj.getConstant('Delete Context'), this.pdfViewer.localeObj.getConstant('Scale Ratio'), this.pdfViewer.localeObj.getConstant('Comment'), this.pdfViewer.localeObj.getConstant('Properties')]);\n this.pdfViewerBase.getElement('_context_menu_separator').classList.add('e-menu-hide');\n this.pdfViewerBase.getElement('_context_menu_comment_separator').classList.add('e-menu-hide');\n // eslint-disable-next-line max-len\n }\n else if (this.pdfViewer.selectedItems.annotations.length !== 0 && (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'HandWrittenSignature' || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'SignatureText' || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'SignatureImage' || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Path')) {\n this.onOpeningForShape(false, true);\n // eslint-disable-next-line max-len\n }\n else if (this.pdfViewer.selectedItems.annotations.length !== 0 && this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType !== 'Path' && !currentAnnotSettings.isLock) {\n this.onOpeningForShape(true);\n // eslint-disable-next-line max-len\n }\n else if (this.pdfViewer.selectedItems.formFields.length !== 0 && this.pdfViewer.selectedItems.formFields[0].formFieldAnnotationType && this.pdfViewer.designerMode) {\n this.onOpeningForShape(true);\n // eslint-disable-next-line max-len\n if (!isNullOrUndefined(this.pdfViewer.toolbar) && !isNullOrUndefined(this.pdfViewer.toolbar.formDesignerToolbarModule)) {\n this.pdfViewer.toolbar.formDesignerToolbarModule.showHideDeleteIcon(true);\n }\n }\n else {\n // eslint-disable-next-line\n var target_1 = this.pdfViewerBase.designerModetarget;\n var annotationModule = this.pdfViewer.annotationModule;\n if (args.event && args.event.target) {\n target_1 = args.event.target;\n }\n // eslint-disable-next-line max-len\n if (this.pdfViewer.annotation && this.pdfViewer.annotation.isShapeCopied && ((target_1).classList.contains('e-pv-text-layer') ||\n (target_1).classList.contains('e-pv-text')) && !this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation) {\n this.onOpeningForShape(false);\n // eslint-disable-next-line max-len\n }\n else if (this.pdfViewer.formDesigner && this.pdfViewer.formDesigner.isShapeCopied && ((target_1).classList.contains('e-pv-text-layer') ||\n (target_1).classList.contains('e-pv-text'))) {\n this.onOpeningForShape(false);\n // eslint-disable-next-line max-len\n }\n else if (this.pdfViewerBase.isCalibrateAnnotationModule() && this.pdfViewer.annotationModule.measureAnnotationModule.currentAnnotationMode && !currentAnnotSettings) {\n // eslint-disable-next-line max-len\n this.contextMenuObj.hideItems([this.pdfViewer.localeObj.getConstant('Highlight context'), this.pdfViewer.localeObj.getConstant('Underline context'), this.pdfViewer.localeObj.getConstant('Strikethrough context'), this.pdfViewer.localeObj.getConstant('Properties')]);\n this.pdfViewerBase.getElement('_context_menu_separator').classList.add('e-menu-hide');\n this.pdfViewerBase.getElement('_context_menu_comment_separator').classList.remove('e-menu-hide');\n // eslint-disable-next-line max-len\n this.contextMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Cut'), this.pdfViewer.localeObj.getConstant('Copy'), this.pdfViewer.localeObj.getConstant('Paste'), this.pdfViewer.localeObj.getConstant('Delete Context'), this.pdfViewer.localeObj.getConstant('Comment')], false);\n // eslint-disable-next-line max-len\n }\n else if (annotationModule && annotationModule.textMarkupAnnotationModule && annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation && !annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation.annotationSettings.isLock) {\n // eslint-disable-next-line max-len\n this.contextMenuObj.hideItems([this.pdfViewer.localeObj.getConstant('Highlight context'), this.pdfViewer.localeObj.getConstant('Underline context'), this.pdfViewer.localeObj.getConstant('Strikethrough context'), this.pdfViewer.localeObj.getConstant('Properties'), this.pdfViewer.localeObj.getConstant('Cut'),\n this.pdfViewer.localeObj.getConstant('Copy'), this.pdfViewer.localeObj.getConstant('Paste'), this.pdfViewer.localeObj.getConstant('Scale Ratio')]);\n this.pdfViewerBase.getElement('_context_menu_separator').classList.add('e-menu-hide');\n this.pdfViewerBase.getElement('_context_menu_comment_separator').classList.remove('e-menu-hide');\n // eslint-disable-next-line max-len\n this.contextMenuObj.showItems([this.pdfViewer.localeObj.getConstant('Delete Context'), this.pdfViewer.localeObj.getConstant('Comment')], false);\n }\n else {\n args.cancel = true;\n }\n }\n }\n else if (this.pdfViewer.textSelectionModule && (this.pdfViewer.contextMenuOption === 'MouseUp')) {\n // eslint-disable-next-line max-len\n this.contextMenuObj.hideItems([this.pdfViewer.localeObj.getConstant('Cut'), this.pdfViewer.localeObj.getConstant('Paste'), this.pdfViewer.localeObj.getConstant('Delete Context'), this.pdfViewer.localeObj.getConstant('Scale Ratio'), this.pdfViewer.localeObj.getConstant('Comment'), this.pdfViewer.localeObj.getConstant('Properties')]);\n this.pdfViewerBase.getElement('_context_menu_separator').classList.add('e-menu-hide');\n this.pdfViewerBase.getElement('_context_menu_comment_separator').classList.add('e-menu-hide');\n }\n else {\n this.hideContextItems();\n }\n this.enableCommentPanelItem();\n }\n else {\n args.cancel = true;\n }\n if (this.pdfViewer.contextMenuOption === 'None') {\n args.cancel = true;\n }\n else {\n this.contextMenuItems(args);\n }\n if (this.pdfViewer.annotationModule && this.pdfViewer.annotationModule.restrictContextMenu()) {\n args.cancel = true;\n }\n this.pdfViewerBase.isTouchDesignerMode = false;\n };\n ContextMenu.prototype.contextMenuItems = function (args) {\n if (this.pdfViewer.contextMenuSettings.contextMenuItems.length) {\n var hideMenuItems = [];\n var contextMenuList = this.contextMenuCollection();\n var ul = this.contextMenuObj.getRootElement();\n for (var j = 0; j < this.pdfViewer.contextMenuSettings.contextMenuItems.length; j++) {\n for (var i = 0; i < this.contextMenuList.length; i++) {\n var menuItem = this.contextMenuList[parseInt(i.toString(), 10)].text;\n switch (menuItem) {\n case 'Highlight':\n menuItem = 'Highlight context';\n break;\n case 'Underline':\n menuItem = 'Underline context';\n break;\n case 'Strikethrough':\n menuItem = 'Strikethrough context';\n break;\n case 'Delete':\n menuItem = 'Delete Context';\n break;\n case 'Scale Ratio':\n menuItem = 'Scale Ratio';\n break;\n case 'Comment':\n this.pdfViewerBase.getElement('_context_menu_comment_separator').classList.add('e-menu-hide');\n break;\n case 'Properties':\n this.pdfViewerBase.getElement('_context_menu_separator').classList.add('e-menu-hide');\n break;\n }\n var menuName = this.contextMenuList[parseInt(i.toString(), 10)].text;\n if (j === 0 && menuName !== ContextMenuItem[this.pdfViewer.contextMenuSettings.contextMenuItems[parseInt(j.toString(), 10)]]) {\n hideMenuItems.push(menuName);\n }\n if (j > 0 && menuName === ContextMenuItem[this.pdfViewer.contextMenuSettings.contextMenuItems[parseInt(j.toString(), 10)]]) {\n for (var k = 0; k < hideMenuItems.length; k++) {\n if (hideMenuItems[parseInt(k.toString(), 10)] === menuName) {\n if (this.pdfViewer.disableContextMenuItems && this.pdfViewer.disableContextMenuItems.length > 0) {\n var isDisabled = false;\n for (var l = 0; l < this.pdfViewer.disableContextMenuItems.length; l++) {\n if (hideMenuItems[parseInt(k.toString(), 10)] === ContextMenuItem[this.pdfViewer.disableContextMenuItems[parseInt(l.toString(), 10)]]) {\n isDisabled = true;\n }\n }\n if (!isDisabled) {\n hideMenuItems.splice(k, 1);\n }\n }\n else {\n hideMenuItems.splice(k, 1);\n }\n }\n }\n }\n }\n }\n var hideLocaleItem = this.processLocaleContent(hideMenuItems);\n this.contextMenuObj.hideItems(hideLocaleItem);\n if (this.getEnabledItemCount(ul) === 0) {\n args.cancel = true;\n }\n }\n };\n ContextMenu.prototype.processLocaleContent = function (hideMenuItems) {\n var contextMenuLocaleContent = [];\n if (hideMenuItems.length > 0) {\n for (var i = 0; i < hideMenuItems.length; i++) {\n var menuItem = hideMenuItems[parseInt(i.toString(), 10)];\n switch (menuItem) {\n case 'Highlight':\n menuItem = 'Highlight context';\n break;\n case 'Underline':\n menuItem = 'Underline context';\n break;\n case 'Strikethrough':\n menuItem = 'Strikethrough context';\n break;\n case 'Delete':\n menuItem = 'Delete Context';\n break;\n case 'ScaleRatio':\n menuItem = 'Scale Ratio';\n break;\n }\n contextMenuLocaleContent.push(this.pdfViewer.localeObj.getConstant(menuItem));\n }\n }\n return contextMenuLocaleContent;\n };\n ContextMenu.prototype.contextMenuCollection = function () {\n return this.contextMenuList = [{ text: 'Cut' }, { text: 'Copy' }, { text: 'Highlight' }, { text: 'Underline' }, { text: 'Strikethrough' },\n { text: 'Paste' }, { text: 'Delete' }, { text: 'ScaleRatio' }, { text: 'Comment' }, { text: 'Properties' }];\n };\n ContextMenu.prototype.getEnabledItemCount = function (ul) {\n var enabledItemCount = this.copyContextMenu.length;\n var liCollection = ul.children;\n for (var i = 0; i < liCollection.length; i++) {\n // eslint-disable-next-line\n var li = liCollection[i];\n if (li.classList.contains('e-menu-hide') || li.classList.contains('e-disabled')) {\n enabledItemCount = enabledItemCount - 1;\n }\n }\n return enabledItemCount;\n };\n ContextMenu.prototype.hideContextItems = function () {\n if (this.pdfViewer.selectedItems.annotations.length === 0) {\n // eslint-disable-next-line max-len\n this.contextMenuObj.hideItems([this.pdfViewer.localeObj.getConstant('Cut'), this.pdfViewer.localeObj.getConstant('Paste'), this.pdfViewer.localeObj.getConstant('Delete Context'), this.pdfViewer.localeObj.getConstant('Scale Ratio'), this.pdfViewer.localeObj.getConstant('Properties')]);\n this.pdfViewerBase.getElement('_context_menu_separator').classList.add('e-menu-hide');\n }\n };\n ContextMenu.prototype.enableCommentPanelItem = function () {\n if (this.pdfViewer.enableCommentPanel) {\n this.contextMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Comment')], true);\n }\n else {\n this.contextMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Comment')], false);\n }\n if (this.pdfViewer.selectedItems.formFields.length !== 0) {\n this.contextMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Comment')], false);\n }\n };\n ContextMenu.prototype.onOpeningForShape = function (isProp, isSignature) {\n if (this.pdfViewer.annotation && this.pdfViewer.annotation.isShapeCopied) {\n this.contextMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Paste')], true);\n }\n else if (this.pdfViewer.formDesigner && this.pdfViewer.formDesigner.isShapeCopied) {\n this.contextMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Paste')], true);\n }\n else {\n this.contextMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Paste')], false);\n }\n // eslint-disable-next-line max-len\n this.contextMenuObj.hideItems([this.pdfViewer.localeObj.getConstant('Highlight context'), this.pdfViewer.localeObj.getConstant('Underline context'), this.pdfViewer.localeObj.getConstant('Strikethrough context'), this.pdfViewer.localeObj.getConstant('Scale Ratio')]);\n if (isProp) {\n // eslint-disable-next-line max-len\n if (this.pdfViewer.selectedItems.annotations.length !== 0 && (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Line' || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'LineWidthArrowHead' ||\n this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Distance')) {\n this.contextMenuObj.showItems([this.pdfViewer.localeObj.getConstant('Properties')]);\n // eslint-disable-next-line max-len\n }\n else if (this.pdfViewer.selectedItems.formFields.length !== 0 && this.pdfViewer.selectedItems.formFields[0].formFieldAnnotationType) {\n this.contextMenuObj.hideItems([this.pdfViewer.localeObj.getConstant('Comment')]);\n this.pdfViewerBase.getElement('_context_menu_separator').classList.add('e-menu-hide');\n this.contextMenuObj.showItems([this.pdfViewer.localeObj.getConstant('Properties')]);\n }\n else if (isNullOrUndefined(isSignature) && this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === \"Image\" && !this.pdfViewer.selectedItems.annotations[0].id.startsWith(\"stamp\")) {\n this.contextMenuObj.hideItems([this.pdfViewer.localeObj.getConstant('Properties'), this.pdfViewer.localeObj.getConstant('Comment'), this.pdfViewer.localeObj.getConstant('Cut'), this.pdfViewer.localeObj.getConstant('Copy'), this.pdfViewer.localeObj.getConstant('Paste')]);\n this.pdfViewerBase.getElement('_context_menu_separator').classList.add('e-menu-hide');\n this.pdfViewerBase.getElement('_context_menu_comment_separator').classList.add('e-menu-hide');\n }\n else {\n this.contextMenuObj.hideItems([this.pdfViewer.localeObj.getConstant('Properties')]);\n this.pdfViewerBase.getElement('_context_menu_separator').classList.add('e-menu-hide');\n }\n }\n else if (isSignature) {\n if ((this.pdfViewer.selectedItems.annotations[0].annotName === \"SignatureField\" || this.pdfViewer.selectedItems.annotations[0].annotName === \"InitialField\" || this.pdfViewer.selectedItems.annotations[0].annotName === \"SignatureText\")) {\n this.contextMenuObj.hideItems([this.pdfViewer.localeObj.getConstant('Properties'), this.pdfViewer.localeObj.getConstant('Comment'), this.pdfViewer.localeObj.getConstant('Cut'), this.pdfViewer.localeObj.getConstant('Copy'), this.pdfViewer.localeObj.getConstant('Paste')]);\n this.pdfViewerBase.getElement('_context_menu_separator').classList.add('e-menu-hide');\n this.pdfViewerBase.getElement('_context_menu_comment_separator').classList.add('e-menu-hide');\n }\n else {\n this.contextMenuObj.hideItems([this.pdfViewer.localeObj.getConstant('Properties'), this.pdfViewer.localeObj.getConstant('Comment')]);\n this.pdfViewerBase.getElement('_context_menu_separator').classList.add('e-menu-hide');\n this.pdfViewerBase.getElement('_context_menu_comment_separator').classList.add('e-menu-hide');\n }\n }\n else {\n this.contextMenuObj.hideItems([this.pdfViewer.localeObj.getConstant('Cut'), this.pdfViewer.localeObj.getConstant('Copy'),\n // eslint-disable-next-line max-len\n this.pdfViewer.localeObj.getConstant('Delete Context'), this.pdfViewer.localeObj.getConstant('Properties'), this.pdfViewer.localeObj.getConstant('Comment')]);\n this.pdfViewerBase.getElement('_context_menu_separator').classList.add('e-menu-hide');\n this.pdfViewerBase.getElement('_context_menu_comment_separator').classList.add('e-menu-hide');\n }\n };\n ContextMenu.prototype.OnItemSelected = function (selectedMenu) {\n this.pdfViewerBase.OnItemSelected(selectedMenu);\n };\n ContextMenu.prototype.onMenuItemSelect = function (args) {\n this.pdfViewerBase.OnItemSelected(args.item.text);\n };\n /**\n * @private\n * @returns {void}\n */\n ContextMenu.prototype.destroy = function () {\n if (this.contextMenuObj) {\n this.previousAction = '';\n this.contextMenuObj.destroy();\n }\n };\n /**\n * @private\n * @returns {void}\n */\n ContextMenu.prototype.close = function () {\n this.contextMenuObj.close();\n };\n /**\n * open the context menu.\n * @param {number} top - The top.\n * @param {number} left - The left.\n * @param {HTMLElement} target - The target.\n * @returns {void}\n */\n ContextMenu.prototype.open = function (top, left, target) {\n /* eslint-disable-next-line security/detect-non-literal-fs-filename */\n this.contextMenuObj.open(top, left, target);\n };\n return ContextMenu;\n}());\nexport { ContextMenu };\n","/**\n * Size defines and processes the size(width/height) of the objects\n */\nvar Size = /** @class */ (function () {\n function Size(width, height) {\n this.width = width;\n this.height = height;\n }\n // /** @private */\n // public isEmpty(): boolean {\n // return this.height === 0 && this.width === 0;\n // }\n /** @private */\n Size.prototype.clone = function () {\n return new Size(this.width, this.height);\n };\n return Size;\n}());\nexport { Size };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { ChildProperty, Property, Complex } from '@syncfusion/ej2-base';\nimport { Point } from '@syncfusion/ej2-drawings';\nimport { Size } from '@syncfusion/ej2-drawings';\n/**\n * The `PdfBounds` is base for annotation bounds.\n *\n * @hidden\n */\nvar PdfBounds = /** @class */ (function (_super) {\n __extends(PdfBounds, _super);\n function PdfBounds() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(0)\n ], PdfBounds.prototype, \"x\", void 0);\n __decorate([\n Property(0)\n ], PdfBounds.prototype, \"y\", void 0);\n __decorate([\n Property(0)\n ], PdfBounds.prototype, \"width\", void 0);\n __decorate([\n Property(0)\n ], PdfBounds.prototype, \"height\", void 0);\n __decorate([\n Property(0)\n ], PdfBounds.prototype, \"left\", void 0);\n __decorate([\n Property(0)\n ], PdfBounds.prototype, \"top\", void 0);\n __decorate([\n Property(0)\n ], PdfBounds.prototype, \"right\", void 0);\n __decorate([\n Property(0)\n ], PdfBounds.prototype, \"bottom\", void 0);\n __decorate([\n Complex({ x: 0, y: 0 }, Point)\n ], PdfBounds.prototype, \"location\", void 0);\n __decorate([\n Complex(new Size(0, 0), Size)\n ], PdfBounds.prototype, \"size\", void 0);\n return PdfBounds;\n}(ChildProperty));\nexport { PdfBounds };\n/**\n * The `PdfFont` is base for annotation Text styles.\n *\n * @hidden\n */\nvar PdfFont = /** @class */ (function (_super) {\n __extends(PdfFont, _super);\n function PdfFont() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(false)\n ], PdfFont.prototype, \"isBold\", void 0);\n __decorate([\n Property(false)\n ], PdfFont.prototype, \"isItalic\", void 0);\n __decorate([\n Property(false)\n ], PdfFont.prototype, \"isUnderline\", void 0);\n __decorate([\n Property(false)\n ], PdfFont.prototype, \"isStrikeout\", void 0);\n return PdfFont;\n}(ChildProperty));\nexport { PdfFont };\n/**\n * Defines the common behavior of PdfAnnotationBase\n *\n * @hidden\n */\nvar PdfAnnotationBase = /** @class */ (function (_super) {\n __extends(PdfAnnotationBase, _super);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function PdfAnnotationBase(parent, propName, defaultValue, isArray) {\n return _super.call(this, parent, propName, defaultValue, isArray) || this;\n }\n __decorate([\n Property('')\n ], PdfAnnotationBase.prototype, \"id\", void 0);\n __decorate([\n Property('Rectangle')\n ], PdfAnnotationBase.prototype, \"shapeAnnotationType\", void 0);\n __decorate([\n Property(null)\n ], PdfAnnotationBase.prototype, \"formFieldAnnotationType\", void 0);\n __decorate([\n Property('')\n ], PdfAnnotationBase.prototype, \"measureType\", void 0);\n __decorate([\n Property('')\n ], PdfAnnotationBase.prototype, \"author\", void 0);\n __decorate([\n Property('')\n ], PdfAnnotationBase.prototype, \"modifiedDate\", void 0);\n __decorate([\n Property('')\n ], PdfAnnotationBase.prototype, \"subject\", void 0);\n __decorate([\n Property('')\n ], PdfAnnotationBase.prototype, \"notes\", void 0);\n __decorate([\n Property(false)\n ], PdfAnnotationBase.prototype, \"isCommentLock\", void 0);\n __decorate([\n Property('black')\n ], PdfAnnotationBase.prototype, \"strokeColor\", void 0);\n __decorate([\n Property('#ffffff00')\n ], PdfAnnotationBase.prototype, \"fillColor\", void 0);\n __decorate([\n Property('#ffffff00')\n ], PdfAnnotationBase.prototype, \"stampFillColor\", void 0);\n __decorate([\n Property('black')\n ], PdfAnnotationBase.prototype, \"stampStrokeColor\", void 0);\n __decorate([\n Property('')\n ], PdfAnnotationBase.prototype, \"data\", void 0);\n __decorate([\n Property(1)\n ], PdfAnnotationBase.prototype, \"opacity\", void 0);\n __decorate([\n Property(1)\n ], PdfAnnotationBase.prototype, \"thickness\", void 0);\n __decorate([\n Property('')\n ], PdfAnnotationBase.prototype, \"borderStyle\", void 0);\n __decorate([\n Property('')\n ], PdfAnnotationBase.prototype, \"borderDashArray\", void 0);\n __decorate([\n Property(0)\n ], PdfAnnotationBase.prototype, \"rotateAngle\", void 0);\n __decorate([\n Property(false)\n ], PdfAnnotationBase.prototype, \"isCloudShape\", void 0);\n __decorate([\n Property(0)\n ], PdfAnnotationBase.prototype, \"cloudIntensity\", void 0);\n __decorate([\n Property(40)\n ], PdfAnnotationBase.prototype, \"leaderHeight\", void 0);\n __decorate([\n Property(null)\n ], PdfAnnotationBase.prototype, \"lineHeadStart\", void 0);\n __decorate([\n Property(null)\n ], PdfAnnotationBase.prototype, \"lineHeadEnd\", void 0);\n __decorate([\n Property([])\n ], PdfAnnotationBase.prototype, \"vertexPoints\", void 0);\n __decorate([\n Property(null)\n ], PdfAnnotationBase.prototype, \"sourcePoint\", void 0);\n __decorate([\n Property('None')\n ], PdfAnnotationBase.prototype, \"sourceDecoraterShapes\", void 0);\n __decorate([\n Property('None')\n ], PdfAnnotationBase.prototype, \"taregetDecoraterShapes\", void 0);\n __decorate([\n Property(null)\n ], PdfAnnotationBase.prototype, \"targetPoint\", void 0);\n __decorate([\n Property([])\n ], PdfAnnotationBase.prototype, \"segments\", void 0);\n __decorate([\n Complex({ x: 0, y: 0 }, PdfBounds)\n ], PdfAnnotationBase.prototype, \"bounds\", void 0);\n __decorate([\n Property(0)\n ], PdfAnnotationBase.prototype, \"pageIndex\", void 0);\n __decorate([\n Property(-1)\n ], PdfAnnotationBase.prototype, \"zIndex\", void 0);\n __decorate([\n Property(null)\n ], PdfAnnotationBase.prototype, \"wrapper\", void 0);\n __decorate([\n Property(false)\n ], PdfAnnotationBase.prototype, \"isDynamicStamp\", void 0);\n __decorate([\n Property('')\n ], PdfAnnotationBase.prototype, \"dynamicText\", void 0);\n __decorate([\n Property('')\n ], PdfAnnotationBase.prototype, \"annotName\", void 0);\n __decorate([\n Property({})\n ], PdfAnnotationBase.prototype, \"review\", void 0);\n __decorate([\n Property([])\n ], PdfAnnotationBase.prototype, \"comments\", void 0);\n __decorate([\n Property('#000')\n ], PdfAnnotationBase.prototype, \"fontColor\", void 0);\n __decorate([\n Property(16)\n ], PdfAnnotationBase.prototype, \"fontSize\", void 0);\n __decorate([\n Property('Helvetica')\n ], PdfAnnotationBase.prototype, \"fontFamily\", void 0);\n __decorate([\n Property('None')\n ], PdfAnnotationBase.prototype, \"fontStyle\", void 0);\n __decorate([\n Property(false)\n ], PdfAnnotationBase.prototype, \"enableShapeLabel\", void 0);\n __decorate([\n Property('label')\n ], PdfAnnotationBase.prototype, \"labelContent\", void 0);\n __decorate([\n Property('#ffffff00')\n ], PdfAnnotationBase.prototype, \"labelFillColor\", void 0);\n __decorate([\n Property(15)\n ], PdfAnnotationBase.prototype, \"labelMaxLength\", void 0);\n __decorate([\n Property(1)\n ], PdfAnnotationBase.prototype, \"labelOpacity\", void 0);\n __decorate([\n Property('')\n ], PdfAnnotationBase.prototype, \"annotationSelectorSettings\", void 0);\n __decorate([\n Property('#ffffff00')\n ], PdfAnnotationBase.prototype, \"labelBorderColor\", void 0);\n __decorate([\n Property('left')\n ], PdfAnnotationBase.prototype, \"textAlign\", void 0);\n __decorate([\n Property('')\n ], PdfAnnotationBase.prototype, \"signatureName\", void 0);\n __decorate([\n Property(0)\n ], PdfAnnotationBase.prototype, \"minHeight\", void 0);\n __decorate([\n Property(0)\n ], PdfAnnotationBase.prototype, \"minWidth\", void 0);\n __decorate([\n Property(0)\n ], PdfAnnotationBase.prototype, \"maxHeight\", void 0);\n __decorate([\n Property(0)\n ], PdfAnnotationBase.prototype, \"maxWidth\", void 0);\n __decorate([\n Property(false)\n ], PdfAnnotationBase.prototype, \"isLock\", void 0);\n __decorate([\n Property('UI Drawn Annotation')\n ], PdfAnnotationBase.prototype, \"annotationAddMode\", void 0);\n __decorate([\n Property('')\n ], PdfAnnotationBase.prototype, \"annotationSettings\", void 0);\n __decorate([\n Property(16)\n ], PdfAnnotationBase.prototype, \"previousFontSize\", void 0);\n __decorate([\n Complex({ isBold: false, isItalic: false, isStrikeout: false, isUnderline: false }, PdfFont)\n ], PdfAnnotationBase.prototype, \"font\", void 0);\n __decorate([\n Complex({ x: 0, y: 0 }, PdfBounds)\n ], PdfAnnotationBase.prototype, \"labelBounds\", void 0);\n __decorate([\n Property(null)\n ], PdfAnnotationBase.prototype, \"customData\", void 0);\n __decorate([\n Property(['None'])\n ], PdfAnnotationBase.prototype, \"allowedInteractions\", void 0);\n __decorate([\n Property(true)\n ], PdfAnnotationBase.prototype, \"isPrint\", void 0);\n __decorate([\n Property(false)\n ], PdfAnnotationBase.prototype, \"isReadonly\", void 0);\n __decorate([\n Property(0)\n ], PdfAnnotationBase.prototype, \"pageRotation\", void 0);\n __decorate([\n Property(false)\n ], PdfAnnotationBase.prototype, \"isAddAnnotationProgrammatically\", void 0);\n return PdfAnnotationBase;\n}(ChildProperty));\nexport { PdfAnnotationBase };\n/**\n * Defines the common behavior of PdfFormFieldBase\n *\n * @hidden\n */\nvar PdfFormFieldBase = /** @class */ (function (_super) {\n __extends(PdfFormFieldBase, _super);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function PdfFormFieldBase(parent, propName, defaultValue, isArray) {\n return _super.call(this, parent, propName, defaultValue, isArray) || this;\n }\n __decorate([\n Property('')\n ], PdfFormFieldBase.prototype, \"id\", void 0);\n __decorate([\n Property('')\n ], PdfFormFieldBase.prototype, \"signatureType\", void 0);\n __decorate([\n Property('')\n ], PdfFormFieldBase.prototype, \"name\", void 0);\n __decorate([\n Property('')\n ], PdfFormFieldBase.prototype, \"value\", void 0);\n __decorate([\n Property(null)\n ], PdfFormFieldBase.prototype, \"formFieldAnnotationType\", void 0);\n __decorate([\n Property('#daeaf7ff')\n ], PdfFormFieldBase.prototype, \"backgroundColor\", void 0);\n __decorate([\n Property('black')\n ], PdfFormFieldBase.prototype, \"color\", void 0);\n __decorate([\n Property('#303030')\n ], PdfFormFieldBase.prototype, \"borderColor\", void 0);\n __decorate([\n Property('')\n ], PdfFormFieldBase.prototype, \"tooltip\", void 0);\n __decorate([\n Property(1)\n ], PdfFormFieldBase.prototype, \"opacity\", void 0);\n __decorate([\n Property(1)\n ], PdfFormFieldBase.prototype, \"thickness\", void 0);\n __decorate([\n Property(0)\n ], PdfFormFieldBase.prototype, \"rotateAngle\", void 0);\n __decorate([\n Complex({ x: 0, y: 0 }, PdfBounds)\n ], PdfFormFieldBase.prototype, \"bounds\", void 0);\n __decorate([\n Property(0)\n ], PdfFormFieldBase.prototype, \"pageIndex\", void 0);\n __decorate([\n Property(1)\n ], PdfFormFieldBase.prototype, \"pageNumber\", void 0);\n __decorate([\n Property(-1)\n ], PdfFormFieldBase.prototype, \"zIndex\", void 0);\n __decorate([\n Property(null)\n ], PdfFormFieldBase.prototype, \"wrapper\", void 0);\n __decorate([\n Property(16)\n ], PdfFormFieldBase.prototype, \"fontSize\", void 0);\n __decorate([\n Property('Helvetica')\n ], PdfFormFieldBase.prototype, \"fontFamily\", void 0);\n __decorate([\n Property('None')\n ], PdfFormFieldBase.prototype, \"fontStyle\", void 0);\n __decorate([\n Property('left')\n ], PdfFormFieldBase.prototype, \"alignment\", void 0);\n __decorate([\n Property(0)\n ], PdfFormFieldBase.prototype, \"minHeight\", void 0);\n __decorate([\n Property(0)\n ], PdfFormFieldBase.prototype, \"minWidth\", void 0);\n __decorate([\n Property(0)\n ], PdfFormFieldBase.prototype, \"maxHeight\", void 0);\n __decorate([\n Property(0)\n ], PdfFormFieldBase.prototype, \"maxWidth\", void 0);\n __decorate([\n Property(0)\n ], PdfFormFieldBase.prototype, \"maxLength\", void 0);\n __decorate([\n Property('visible')\n ], PdfFormFieldBase.prototype, \"visibility\", void 0);\n __decorate([\n Property(true)\n ], PdfFormFieldBase.prototype, \"isPrint\", void 0);\n __decorate([\n Property(false)\n ], PdfFormFieldBase.prototype, \"isReadonly\", void 0);\n __decorate([\n Property(false)\n ], PdfFormFieldBase.prototype, \"isChecked\", void 0);\n __decorate([\n Property(false)\n ], PdfFormFieldBase.prototype, \"isSelected\", void 0);\n __decorate([\n Property(false)\n ], PdfFormFieldBase.prototype, \"isRequired\", void 0);\n __decorate([\n Property(false)\n ], PdfFormFieldBase.prototype, \"isMultiline\", void 0);\n __decorate([\n Property(false)\n ], PdfFormFieldBase.prototype, \"isTransparent\", void 0);\n __decorate([\n Property(false)\n ], PdfFormFieldBase.prototype, \"insertSpaces\", void 0);\n __decorate([\n Property('')\n ], PdfFormFieldBase.prototype, \"options\", void 0);\n __decorate([\n Property()\n ], PdfFormFieldBase.prototype, \"signatureIndicatorSettings\", void 0);\n __decorate([\n Complex({ isBold: false, isItalic: false, isStrikeout: false, isUnderline: false }, PdfFont)\n ], PdfFormFieldBase.prototype, \"font\", void 0);\n __decorate([\n Property()\n ], PdfFormFieldBase.prototype, \"selectedIndex\", void 0);\n return PdfFormFieldBase;\n}(ChildProperty));\nexport { PdfFormFieldBase };\n/**\n * @hidden\n */\nvar ZOrderPageTable = /** @class */ (function () {\n function ZOrderPageTable() {\n this.pageIdTemp = 0;\n this.zIndexTemp = -1;\n this.childNodesTemp = [];\n this.objects = [];\n this.zIndexTemp = -1;\n this.pageIdTemp = 0;\n }\n Object.defineProperty(ZOrderPageTable.prototype, \"pageId\", {\n /**\n * @private\n * @returns {number} - Returns the page Id.\n */\n get: function () {\n return this.pageIdTemp;\n },\n /**\n * @private\n * @param {number} offset - The page offset value.\n */\n set: function (offset) {\n this.pageIdTemp = offset;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ZOrderPageTable.prototype, \"zIndex\", {\n /**\n * @private\n * @returns {number} - Returns the z-index value.\n */\n get: function () {\n return this.zIndexTemp;\n },\n /**\n * @private\n * @param {number} offset - The page offset value.\n */\n set: function (offset) {\n this.zIndexTemp = offset;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ZOrderPageTable.prototype, \"objects\", {\n /**\n * @private\n * @returns {PdfAnnotationBaseModel[]} - Returns the annotation childNodes.\n */\n get: function () {\n return this.childNodesTemp;\n },\n /**\n * @private\n * @param {PdfAnnotationBaseModel[]} childNodes - Specified the annotation child nodes.\n */\n set: function (childNodes) {\n this.childNodesTemp = childNodes;\n },\n enumerable: true,\n configurable: true\n });\n return ZOrderPageTable;\n}());\nexport { ZOrderPageTable };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Component, Property, ChildProperty, Event, append, compile } from '@syncfusion/ej2-base';\nimport { EventHandler, Touch, Browser, Animation as PopupAnimation } from '@syncfusion/ej2-base';\nimport { isNullOrUndefined, getUniqueID, formatUnit, select, selectAll } from '@syncfusion/ej2-base';\nimport { attributes, closest, removeClass, addClass, remove } from '@syncfusion/ej2-base';\nimport { NotifyPropertyChanges, Complex, SanitizeHtmlHelper } from '@syncfusion/ej2-base';\nimport { Popup } from '../popup/popup';\nimport { calculatePosition } from '../common/position';\nimport { isCollide, fit } from '../common/collision';\nvar TOUCHEND_HIDE_DELAY = 1500;\nvar TAPHOLD_THRESHOLD = 500;\nvar SHOW_POINTER_TIP_GAP = 0;\nvar HIDE_POINTER_TIP_GAP = 8;\nvar MOUSE_TRAIL_GAP = 2;\nvar POINTER_ADJUST = 2;\nvar ROOT = 'e-tooltip';\nvar RTL = 'e-rtl';\nvar DEVICE = 'e-bigger';\nvar ICON = 'e-icons';\nvar CLOSE = 'e-tooltip-close';\nvar TOOLTIP_WRAP = 'e-tooltip-wrap';\nvar CONTENT = 'e-tip-content';\nvar ARROW_TIP = 'e-arrow-tip';\nvar ARROW_TIP_OUTER = 'e-arrow-tip-outer';\nvar ARROW_TIP_INNER = 'e-arrow-tip-inner';\nvar TIP_BOTTOM = 'e-tip-bottom';\nvar TIP_TOP = 'e-tip-top';\nvar TIP_LEFT = 'e-tip-left';\nvar TIP_RIGHT = 'e-tip-right';\nvar POPUP_ROOT = 'e-popup';\nvar POPUP_OPEN = 'e-popup-open';\nvar POPUP_CLOSE = 'e-popup-close';\nvar POPUP_LIB = 'e-lib';\nvar HIDE_POPUP = 'e-hidden';\nvar POPUP_CONTAINER = 'e-tooltip-popup-container';\nvar Animation = /** @class */ (function (_super) {\n __extends(Animation, _super);\n function Animation() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ effect: 'FadeIn', duration: 150, delay: 0 })\n ], Animation.prototype, \"open\", void 0);\n __decorate([\n Property({ effect: 'FadeOut', duration: 150, delay: 0 })\n ], Animation.prototype, \"close\", void 0);\n return Animation;\n}(ChildProperty));\nexport { Animation };\n/**\n * Represents the Tooltip component that displays a piece of information about the target element on mouse hover.\n * ```html\n *
    Show Tooltip
    \n * ```\n * ```typescript\n * \n * ```\n */\nvar Tooltip = /** @class */ (function (_super) {\n __extends(Tooltip, _super);\n /* eslint-enable */\n /**\n * Constructor for creating the Tooltip Component\n *\n * @param {TooltipModel} options - specifies the options for the constructor\n * @param {string| HTMLElement} element - specifies the element for the constructor\n *\n */\n function Tooltip(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.mouseMoveEvent = null;\n _this.mouseMoveTarget = null;\n _this.containerElement = null;\n _this.isBodyContainer = true;\n return _this;\n }\n Tooltip.prototype.initialize = function () {\n this.formatPosition();\n addClass([this.element], ROOT);\n this.element.setAttribute('tabindex', '0');\n };\n Tooltip.prototype.formatPosition = function () {\n var _a, _b;\n if (this.position.indexOf('Top') === 0 || this.position.indexOf('Bottom') === 0) {\n _a = this.position.split(/(?=[A-Z])/), this.tooltipPositionY = _a[0], this.tooltipPositionX = _a[1];\n }\n else {\n _b = this.position.split(/(?=[A-Z])/), this.tooltipPositionX = _b[0], this.tooltipPositionY = _b[1];\n }\n };\n Tooltip.prototype.renderArrow = function () {\n this.setTipClass(this.position);\n var tip = this.createElement('div', { className: ARROW_TIP + ' ' + this.tipClass });\n tip.appendChild(this.createElement('div', { className: ARROW_TIP_OUTER + ' ' + this.tipClass }));\n tip.appendChild(this.createElement('div', { className: ARROW_TIP_INNER + ' ' + this.tipClass }));\n this.tooltipEle.appendChild(tip);\n };\n Tooltip.prototype.setTipClass = function (position) {\n if (position.indexOf('Right') === 0) {\n this.tipClass = TIP_LEFT;\n }\n else if (position.indexOf('Bottom') === 0) {\n this.tipClass = TIP_TOP;\n }\n else if (position.indexOf('Left') === 0) {\n this.tipClass = TIP_RIGHT;\n }\n else {\n this.tipClass = TIP_BOTTOM;\n }\n };\n Tooltip.prototype.renderPopup = function (target) {\n var elePos = this.mouseTrail ? { top: 0, left: 0 } : this.getTooltipPosition(target);\n this.tooltipEle.classList.remove(POPUP_LIB);\n this.popupObj = new Popup(this.tooltipEle, {\n height: this.height,\n width: this.width,\n position: { X: elePos.left, Y: elePos.top },\n enableRtl: this.enableRtl,\n open: this.openPopupHandler.bind(this),\n close: this.closePopupHandler.bind(this)\n });\n };\n Tooltip.prototype.getTooltipPosition = function (target) {\n this.tooltipEle.style.display = 'block';\n var pos = calculatePosition(target, this.tooltipPositionX, this.tooltipPositionY, !this.isBodyContainer, this.isBodyContainer ? null : this.containerElement.getBoundingClientRect());\n var offsetPos = this.calculateTooltipOffset(this.position);\n var collisionPosition = this.calculateElementPosition(pos, offsetPos);\n var collisionLeft = collisionPosition[0];\n var collisionTop = collisionPosition[1];\n var elePos = this.collisionFlipFit(target, collisionLeft, collisionTop);\n this.tooltipEle.style.display = '';\n return elePos;\n };\n Tooltip.prototype.windowResize = function () {\n this.reposition(this.findTarget());\n };\n Tooltip.prototype.reposition = function (target) {\n if (this.popupObj && target) {\n var elePos = this.getTooltipPosition(target);\n this.popupObj.position = { X: elePos.left, Y: elePos.top };\n this.popupObj.dataBind();\n }\n };\n Tooltip.prototype.openPopupHandler = function () {\n if (!this.mouseTrail && this.needTemplateReposition()) {\n this.reposition(this.findTarget());\n }\n this.trigger('afterOpen', this.tooltipEventArgs);\n this.tooltipEventArgs = null;\n };\n Tooltip.prototype.closePopupHandler = function () {\n if (this.isReact && !(this.opensOn === \"Click\" && typeof (this.content) === 'function')) {\n this.clearTemplate(['content']);\n }\n this.clear();\n this.trigger('afterClose', this.tooltipEventArgs);\n this.tooltipEventArgs = null;\n };\n Tooltip.prototype.calculateTooltipOffset = function (position) {\n var pos = { top: 0, left: 0 };\n var tooltipEleWidth = this.tooltipEle.offsetWidth;\n var tooltipEleHeight = this.tooltipEle.offsetHeight;\n var arrowEle = select('.' + ARROW_TIP, this.tooltipEle);\n var tipWidth = arrowEle ? arrowEle.offsetWidth : 0;\n var tipHeight = arrowEle ? arrowEle.offsetHeight : 0;\n var tipAdjust = (this.showTipPointer ? SHOW_POINTER_TIP_GAP : HIDE_POINTER_TIP_GAP);\n var tipHeightAdjust = (tipHeight / 2) + POINTER_ADJUST + (this.tooltipEle.offsetHeight - this.tooltipEle.clientHeight);\n var tipWidthAdjust = (tipWidth / 2) + POINTER_ADJUST + (this.tooltipEle.offsetWidth - this.tooltipEle.clientWidth);\n if (this.mouseTrail) {\n tipAdjust += MOUSE_TRAIL_GAP;\n }\n switch (position) {\n case 'RightTop':\n pos.left += tipWidth + tipAdjust;\n pos.top -= tooltipEleHeight - tipHeightAdjust;\n break;\n case 'RightCenter':\n pos.left += tipWidth + tipAdjust;\n pos.top -= (tooltipEleHeight / 2);\n break;\n case 'RightBottom':\n pos.left += tipWidth + tipAdjust;\n pos.top -= (tipHeightAdjust);\n break;\n case 'BottomRight':\n pos.top += (tipHeight + tipAdjust);\n pos.left -= (tipWidthAdjust);\n break;\n case 'BottomCenter':\n pos.top += (tipHeight + tipAdjust);\n pos.left -= (tooltipEleWidth / 2);\n break;\n case 'BottomLeft':\n pos.top += (tipHeight + tipAdjust);\n pos.left -= (tooltipEleWidth - tipWidthAdjust);\n break;\n case 'LeftBottom':\n pos.left -= (tipWidth + tooltipEleWidth + tipAdjust);\n pos.top -= (tipHeightAdjust);\n break;\n case 'LeftCenter':\n pos.left -= (tipWidth + tooltipEleWidth + tipAdjust);\n pos.top -= (tooltipEleHeight / 2);\n break;\n case 'LeftTop':\n pos.left -= (tipWidth + tooltipEleWidth + tipAdjust);\n pos.top -= (tooltipEleHeight - tipHeightAdjust);\n break;\n case 'TopLeft':\n pos.top -= (tooltipEleHeight + tipHeight + tipAdjust);\n pos.left -= (tooltipEleWidth - tipWidthAdjust);\n break;\n case 'TopRight':\n pos.top -= (tooltipEleHeight + tipHeight + tipAdjust);\n pos.left -= (tipWidthAdjust);\n break;\n default:\n pos.top -= (tooltipEleHeight + tipHeight + tipAdjust);\n pos.left -= (tooltipEleWidth / 2);\n break;\n }\n pos.left += this.offsetX;\n pos.top += this.offsetY;\n return pos;\n };\n Tooltip.prototype.updateTipPosition = function (position) {\n var selEle = selectAll('.' + ARROW_TIP + ',.' + ARROW_TIP_OUTER + ',.' + ARROW_TIP_INNER, this.tooltipEle);\n var removeList = [TIP_BOTTOM, TIP_TOP, TIP_LEFT, TIP_RIGHT];\n removeClass(selEle, removeList);\n this.setTipClass(position);\n addClass(selEle, this.tipClass);\n };\n Tooltip.prototype.adjustArrow = function (target, position, tooltipPositionX, tooltipPositionY) {\n if (this.showTipPointer === false) {\n return;\n }\n this.updateTipPosition(position);\n var leftValue;\n var topValue;\n this.tooltipEle.style.display = 'block';\n var tooltipWidth = this.tooltipEle.clientWidth;\n var tooltipHeight = this.tooltipEle.clientHeight;\n var arrowEle = select('.' + ARROW_TIP, this.tooltipEle);\n var arrowInnerELe = select('.' + ARROW_TIP_INNER, this.tooltipEle);\n var tipWidth = arrowEle.offsetWidth;\n var tipHeight = arrowEle.offsetHeight;\n this.tooltipEle.style.display = '';\n if (this.tipClass === TIP_BOTTOM || this.tipClass === TIP_TOP) {\n if (this.tipClass === TIP_BOTTOM) {\n topValue = '99.9%';\n // Arrow icon aligned -2px height from ArrowOuterTip div\n arrowInnerELe.style.top = '-' + (tipHeight - 2) + 'px';\n }\n else {\n topValue = -(tipHeight - 1) + 'px';\n // Arrow icon aligned -6px height from ArrowOuterTip div\n arrowInnerELe.style.top = '-' + (tipHeight - 6) + 'px';\n }\n if (target) {\n var tipPosExclude = tooltipPositionX !== 'Center' || (tooltipWidth > target.offsetWidth) || this.mouseTrail;\n if ((tipPosExclude && tooltipPositionX === 'Left') || (!tipPosExclude && this.tipPointerPosition === 'End')) {\n leftValue = (tooltipWidth - tipWidth - POINTER_ADJUST) + 'px';\n }\n else if ((tipPosExclude && tooltipPositionX === 'Right') || (!tipPosExclude && this.tipPointerPosition === 'Start')) {\n leftValue = POINTER_ADJUST + 'px';\n }\n else if ((tipPosExclude) && (this.tipPointerPosition === 'End' || this.tipPointerPosition === 'Start')) {\n leftValue = (this.tipPointerPosition === 'End') ? ((target.offsetWidth + ((this.tooltipEle.offsetWidth - target.offsetWidth) / 2)) - (tipWidth / 2)) - POINTER_ADJUST + 'px'\n : ((this.tooltipEle.offsetWidth - target.offsetWidth) / 2) - (tipWidth / 2) + POINTER_ADJUST + 'px';\n }\n else {\n leftValue = ((tooltipWidth / 2) - (tipWidth / 2)) + 'px';\n }\n }\n }\n else {\n if (this.tipClass === TIP_RIGHT) {\n leftValue = '99.9%';\n // Arrow icon aligned -2px left from ArrowOuterTip div\n arrowInnerELe.style.left = '-' + (tipWidth - 2) + 'px';\n }\n else {\n leftValue = -(tipWidth - 1) + 'px';\n // Arrow icon aligned -2px from ArrowOuterTip width\n arrowInnerELe.style.left = (-(tipWidth) + (tipWidth - 2)) + 'px';\n }\n var tipPosExclude = tooltipPositionY !== 'Center' || (tooltipHeight > target.offsetHeight) || this.mouseTrail;\n if ((tipPosExclude && tooltipPositionY === 'Top') || (!tipPosExclude && this.tipPointerPosition === 'End')) {\n topValue = (tooltipHeight - tipHeight - POINTER_ADJUST) + 'px';\n }\n else if ((tipPosExclude && tooltipPositionY === 'Bottom') || (!tipPosExclude && this.tipPointerPosition === 'Start')) {\n topValue = POINTER_ADJUST + 'px';\n }\n else {\n topValue = ((tooltipHeight / 2) - (tipHeight / 2)) + 'px';\n }\n }\n arrowEle.style.top = topValue;\n arrowEle.style.left = leftValue;\n };\n Tooltip.prototype.renderContent = function (target) {\n var tooltipContent = select('.' + CONTENT, this.tooltipEle);\n if (this.cssClass) {\n addClass([this.tooltipEle], this.cssClass.split(' '));\n }\n if (target && !isNullOrUndefined(target.getAttribute('title'))) {\n target.setAttribute('data-content', target.getAttribute('title'));\n target.removeAttribute('title');\n }\n if (!isNullOrUndefined(this.content)) {\n tooltipContent.innerHTML = '';\n if (this.content instanceof HTMLElement) {\n tooltipContent.appendChild(this.content);\n }\n else if (typeof this.content === 'string') {\n if (this.enableHtmlSanitizer) {\n this.setProperties({ content: SanitizeHtmlHelper.sanitize(this.content) }, true);\n }\n // eslint-disable-next-line\n var tempFunction = compile(this.content);\n var tempArr = tempFunction({}, this, 'content', this.element.id + 'content', undefined, undefined, tooltipContent);\n if (tempArr) {\n if (this.enableHtmlParse) {\n var nodeList = tempArr.length;\n for (var i = 0; i < nodeList; i++) {\n tooltipContent[append(tempArr, tooltipContent), 'innerHTML'] = this.content;\n }\n }\n else {\n tooltipContent['textContent'] = this.content;\n }\n }\n }\n else {\n // eslint-disable-next-line\n var templateFunction = compile(this.content);\n var tempArr = templateFunction({}, this, 'content', this.element.id + 'content', undefined, undefined, tooltipContent);\n if (tempArr) {\n append(tempArr, tooltipContent);\n }\n this.renderReactTemplates();\n }\n }\n else {\n if (target && !isNullOrUndefined(target.getAttribute('data-content'))) {\n tooltipContent.innerHTML = target.getAttribute('data-content');\n }\n }\n };\n Tooltip.prototype.renderCloseIcon = function () {\n if (!this.isSticky) {\n return;\n }\n var tipClose = this.createElement('div', { className: ICON + ' ' + CLOSE });\n this.tooltipEle.appendChild(tipClose);\n EventHandler.add(tipClose, Browser.touchStartEvent, this.onStickyClose, this);\n };\n Tooltip.prototype.addDescribedBy = function (target, id) {\n var describedby = (target.getAttribute('aria-describedby') || '').split(/\\s+/);\n if (describedby.indexOf(id) < 0) {\n describedby.push(id);\n }\n attributes(target, { 'aria-describedby': describedby.join(' ').trim(), 'data-tooltip-id': id });\n };\n Tooltip.prototype.removeDescribedBy = function (target) {\n var id = target.getAttribute('data-tooltip-id');\n var describedby = (target.getAttribute('aria-describedby') || '').split(/\\s+/);\n var index = describedby.indexOf(id);\n if (index !== -1) {\n describedby.splice(index, 1);\n }\n target.removeAttribute('data-tooltip-id');\n var orgdescribedby = describedby.join(' ').trim();\n if (orgdescribedby) {\n target.setAttribute('aria-describedby', orgdescribedby);\n }\n else {\n target.removeAttribute('aria-describedby');\n }\n };\n Tooltip.prototype.tapHoldHandler = function (evt) {\n clearTimeout(this.autoCloseTimer);\n this.targetHover(evt.originalEvent);\n };\n Tooltip.prototype.touchEndHandler = function (e) {\n var _this = this;\n if (this.isSticky) {\n return;\n }\n // eslint-disable-next-line\n var close = function () {\n _this.close();\n };\n this.autoCloseTimer = setTimeout(close, TOUCHEND_HIDE_DELAY);\n };\n Tooltip.prototype.targetClick = function (e) {\n var target;\n if (this.target) {\n target = closest(e.target, this.target);\n }\n else {\n target = this.element;\n }\n if (isNullOrUndefined(target)) {\n return;\n }\n if (target.getAttribute('data-tooltip-id') === null) {\n this.targetHover(e);\n }\n else if (!this.isSticky) {\n this.hideTooltip(this.animation.close, e, target);\n }\n };\n Tooltip.prototype.targetHover = function (e) {\n var target;\n if (this.target) {\n target = closest(e.target, this.target);\n }\n else {\n target = this.element;\n }\n if (isNullOrUndefined(target) || (target.getAttribute('data-tooltip-id') !== null && this.closeDelay === 0)) {\n return;\n }\n var targetList = [].slice.call(selectAll('[data-tooltip-id= \"' + this.ctrlId + '_content\"]', document));\n for (var _i = 0, targetList_1 = targetList; _i < targetList_1.length; _i++) {\n var target_1 = targetList_1[_i];\n this.restoreElement(target_1);\n }\n // eslint-disable-next-line security/detect-non-literal-fs-filename -- Safe as no value holds user input\n this.showTooltip(target, this.animation.open, e);\n };\n Tooltip.prototype.mouseMoveBeforeOpen = function (e) {\n this.mouseMoveEvent = e;\n };\n Tooltip.prototype.mouseMoveBeforeRemove = function () {\n if (this.mouseMoveTarget) {\n EventHandler.remove(this.mouseMoveTarget, 'mousemove touchstart', this.mouseMoveBeforeOpen);\n }\n };\n Tooltip.prototype.showTooltip = function (target, showAnimation, e) {\n var _this = this;\n clearTimeout(this.showTimer);\n clearTimeout(this.hideTimer);\n if (this.openDelay && this.mouseTrail) {\n this.mouseMoveBeforeRemove();\n this.mouseMoveTarget = target;\n EventHandler.add(this.mouseMoveTarget, 'mousemove touchstart', this.mouseMoveBeforeOpen, this);\n }\n this.tooltipEventArgs = {\n type: e ? e.type : null, cancel: false, target: target, event: e ? e : null,\n element: this.tooltipEle, isInteracted: !isNullOrUndefined(e)\n };\n // eslint-disable-next-line\n var observeCallback = function (beforeRenderArgs) {\n _this.beforeRenderCallback(beforeRenderArgs, target, e, showAnimation);\n };\n this.trigger('beforeRender', this.tooltipEventArgs, observeCallback.bind(this));\n };\n Tooltip.prototype.beforeRenderCallback = function (beforeRenderArgs, target, e, showAnimation) {\n if (beforeRenderArgs.cancel) {\n this.isHidden = true;\n this.clear();\n this.mouseMoveBeforeRemove();\n }\n else {\n this.isHidden = false;\n if (isNullOrUndefined(this.tooltipEle)) {\n this.ctrlId = this.element.getAttribute('id') ?\n getUniqueID(this.element.getAttribute('id')) : getUniqueID('tooltip');\n this.tooltipEle = this.createElement('div', {\n className: TOOLTIP_WRAP + ' ' + POPUP_ROOT + ' ' + POPUP_LIB, attrs: {\n role: 'tooltip', 'aria-hidden': 'false', 'id': this.ctrlId + '_content'\n }, styles: 'width:' +\n formatUnit(this.width) + ';height:' + formatUnit(this.height) + ';position:absolute;'\n });\n this.tooltipBeforeRender(target, this);\n this.tooltipAfterRender(target, e, showAnimation, this);\n }\n else {\n if (target) {\n this.adjustArrow(target, this.position, this.tooltipPositionX, this.tooltipPositionY);\n this.addDescribedBy(target, this.ctrlId + '_content');\n this.renderContent(target);\n PopupAnimation.stop(this.tooltipEle);\n this.reposition(target);\n this.tooltipAfterRender(target, e, showAnimation, this);\n }\n }\n }\n };\n Tooltip.prototype.appendContainer = function (ctrlObj) {\n if (typeof this.container == 'string') {\n if (this.container === 'body') {\n this.containerElement = document.body;\n }\n else {\n this.isBodyContainer = false;\n this.containerElement = select(this.container, document);\n }\n }\n else if (this.container instanceof HTMLElement) {\n this.containerElement = this.container;\n this.isBodyContainer = this.containerElement.tagName === 'BODY';\n }\n if (!this.isBodyContainer) {\n addClass([this.containerElement], POPUP_CONTAINER);\n }\n this.containerElement.appendChild(ctrlObj.tooltipEle);\n };\n Tooltip.prototype.tooltipBeforeRender = function (target, ctrlObj) {\n if (target) {\n if (Browser.isDevice) {\n addClass([ctrlObj.tooltipEle], DEVICE);\n }\n if (ctrlObj.width !== 'auto') {\n ctrlObj.tooltipEle.style.maxWidth = formatUnit(ctrlObj.width);\n }\n ctrlObj.tooltipEle.appendChild(ctrlObj.createElement('div', { className: CONTENT }));\n this.appendContainer(ctrlObj);\n removeClass([ctrlObj.tooltipEle], HIDE_POPUP);\n ctrlObj.addDescribedBy(target, ctrlObj.ctrlId + '_content');\n ctrlObj.renderContent(target);\n addClass([ctrlObj.tooltipEle], POPUP_OPEN);\n if (ctrlObj.showTipPointer) {\n ctrlObj.renderArrow();\n }\n ctrlObj.renderCloseIcon();\n ctrlObj.renderPopup(target);\n ctrlObj.adjustArrow(target, ctrlObj.position, ctrlObj.tooltipPositionX, ctrlObj.tooltipPositionY);\n PopupAnimation.stop(ctrlObj.tooltipEle);\n ctrlObj.reposition(target);\n }\n };\n Tooltip.prototype.tooltipAfterRender = function (target, e, showAnimation, ctrlObj) {\n if (target) {\n removeClass([ctrlObj.tooltipEle], POPUP_OPEN);\n addClass([ctrlObj.tooltipEle], POPUP_CLOSE);\n ctrlObj.tooltipEventArgs = {\n type: e ? e.type : null, cancel: false, target: target, event: e ? e : null,\n element: ctrlObj.tooltipEle, isInteracted: !isNullOrUndefined(e)\n };\n if (ctrlObj.needTemplateReposition() && !ctrlObj.mouseTrail) {\n ctrlObj.tooltipEle.style.display = 'none';\n }\n // eslint-disable-next-line\n var observeCallback = function (observedArgs) {\n ctrlObj.beforeOpenCallback(observedArgs, target, showAnimation, e);\n };\n ctrlObj.trigger('beforeOpen', ctrlObj.tooltipEventArgs, observeCallback.bind(ctrlObj));\n }\n };\n Tooltip.prototype.beforeOpenCallback = function (observedArgs, target, showAnimation, e) {\n var _this = this;\n if (observedArgs.cancel) {\n this.isHidden = true;\n this.clear();\n this.mouseMoveBeforeRemove();\n this.restoreElement(target);\n }\n else {\n // eslint-disable-next-line\n var openAnimation_1 = {\n name: showAnimation.effect,\n duration: showAnimation.duration,\n delay: showAnimation.delay,\n timingFunction: 'easeOut'\n };\n if (showAnimation.effect === 'None') {\n openAnimation_1 = undefined;\n }\n if (this.openDelay > 0) {\n // eslint-disable-next-line\n var show = function () {\n if (_this.mouseTrail) {\n EventHandler.add(target, 'mousemove touchstart mouseenter', _this.onMouseMove, _this);\n }\n if (_this.popupObj) {\n _this.popupObj.show(openAnimation_1, target);\n if (_this.mouseMoveEvent && _this.mouseTrail) {\n _this.onMouseMove(_this.mouseMoveEvent);\n }\n }\n };\n this.showTimer = setTimeout(show, this.openDelay);\n }\n else {\n if (this.popupObj) {\n this.popupObj.show(openAnimation_1, target);\n }\n }\n }\n if (e) {\n this.wireMouseEvents(e, target);\n }\n };\n Tooltip.prototype.needTemplateReposition = function () {\n // eslint-disable-next-line\n var tooltip = this;\n return !isNullOrUndefined(tooltip.viewContainerRef)\n && typeof tooltip.viewContainerRef !== 'string';\n };\n Tooltip.prototype.checkCollision = function (target, x, y) {\n var elePos = {\n left: x, top: y, position: this.position,\n horizontal: this.tooltipPositionX, vertical: this.tooltipPositionY\n };\n var affectedPos = isCollide(this.tooltipEle, this.checkCollideTarget(), x, y);\n if (affectedPos.length > 0) {\n elePos.horizontal = affectedPos.indexOf('left') >= 0 ? 'Right' : affectedPos.indexOf('right') >= 0 ? 'Left' :\n this.tooltipPositionX;\n elePos.vertical = affectedPos.indexOf('top') >= 0 ? 'Bottom' : affectedPos.indexOf('bottom') >= 0 ? 'Top' :\n this.tooltipPositionY;\n }\n return elePos;\n };\n Tooltip.prototype.calculateElementPosition = function (pos, offsetPos) {\n return [this.isBodyContainer ? pos.left + offsetPos.left :\n (pos.left - this.containerElement.offsetLeft) + offsetPos.left + window.pageXOffset + this.containerElement.scrollLeft,\n this.isBodyContainer ? pos.top + offsetPos.top :\n (pos.top - this.containerElement.offsetTop) + offsetPos.top + window.pageYOffset + this.containerElement.scrollTop];\n };\n Tooltip.prototype.collisionFlipFit = function (target, x, y) {\n var elePos = this.checkCollision(target, x, y);\n var newpos = elePos.position;\n if (this.tooltipPositionY !== elePos.vertical) {\n newpos = ((this.position.indexOf('Bottom') === 0 || this.position.indexOf('Top') === 0) ?\n elePos.vertical + this.tooltipPositionX : this.tooltipPositionX + elePos.vertical);\n }\n if (this.tooltipPositionX !== elePos.horizontal) {\n if (newpos.indexOf('Left') === 0) {\n elePos.vertical = (newpos === 'LeftTop' || newpos === 'LeftCenter') ? 'Top' : 'Bottom';\n newpos = (elePos.vertical + 'Left');\n }\n if (newpos.indexOf('Right') === 0) {\n elePos.vertical = (newpos === 'RightTop' || newpos === 'RightCenter') ? 'Top' : 'Bottom';\n newpos = (elePos.vertical + 'Right');\n }\n elePos.horizontal = this.tooltipPositionX;\n }\n this.tooltipEventArgs = {\n type: null, cancel: false, target: target, event: null,\n element: this.tooltipEle, collidedPosition: newpos\n };\n this.trigger('beforeCollision', this.tooltipEventArgs);\n var elePosVertical = elePos.vertical;\n var elePosHorizontal = elePos.horizontal;\n if (elePos.position !== newpos) {\n var pos = calculatePosition(target, elePosHorizontal, elePosVertical, !this.isBodyContainer, this.isBodyContainer ? null : this.containerElement.getBoundingClientRect());\n this.adjustArrow(target, newpos, elePosHorizontal, elePosVertical);\n var offsetPos = this.calculateTooltipOffset(newpos);\n offsetPos.top -= this.getOffSetPosition('TopBottom', newpos, this.offsetY);\n offsetPos.left -= this.getOffSetPosition('RightLeft', newpos, this.offsetX);\n elePos.position = newpos;\n var elePosition = this.calculateElementPosition(pos, offsetPos);\n elePos.left = elePosition[0];\n elePos.top = elePosition[1];\n }\n else {\n this.adjustArrow(target, newpos, elePosHorizontal, elePosVertical);\n }\n var eleOffset = { left: elePos.left, top: elePos.top };\n var left = this.isBodyContainer ?\n fit(this.tooltipEle, this.checkCollideTarget(), { X: true, Y: false }, eleOffset).left : eleOffset.left;\n this.tooltipEle.style.display = 'block';\n if (this.showTipPointer && (newpos.indexOf('Bottom') === 0 || newpos.indexOf('Top') === 0)) {\n var arrowEle = select('.' + ARROW_TIP, this.tooltipEle);\n var arrowleft = parseInt(arrowEle.style.left, 10) - (left - elePos.left);\n if (arrowleft < 0) {\n arrowleft = 0;\n }\n else if ((arrowleft + arrowEle.offsetWidth) > this.tooltipEle.clientWidth) {\n arrowleft = this.tooltipEle.clientWidth - arrowEle.offsetWidth;\n }\n arrowEle.style.left = arrowleft.toString() + 'px';\n }\n this.tooltipEle.style.display = '';\n eleOffset.left = left;\n return eleOffset;\n };\n Tooltip.prototype.getOffSetPosition = function (positionString, newPos, offsetType) {\n return ((positionString.indexOf(this.position.split(/(?=[A-Z])/)[0]) !== -1) &&\n (positionString.indexOf(newPos.split(/(?=[A-Z])/)[0]) !== -1)) ? (2 * offsetType) : 0;\n };\n Tooltip.prototype.checkCollideTarget = function () {\n return !this.windowCollision && this.target ? this.element : null;\n };\n Tooltip.prototype.hideTooltip = function (hideAnimation, e, targetElement) {\n var _this = this;\n if (this.closeDelay > 0) {\n clearTimeout(this.hideTimer);\n clearTimeout(this.showTimer);\n // eslint-disable-next-line\n var hide = function () {\n if (_this.closeDelay && _this.tooltipEle && _this.isTooltipOpen) {\n return;\n }\n _this.tooltipHide(hideAnimation, e, targetElement);\n };\n this.hideTimer = setTimeout(hide, this.closeDelay);\n }\n else {\n this.tooltipHide(hideAnimation, e, targetElement);\n }\n };\n Tooltip.prototype.tooltipHide = function (hideAnimation, e, targetElement) {\n var _this = this;\n var target;\n if (e) {\n target = this.target ? (targetElement || e.target) : this.element;\n }\n else {\n target = select('[data-tooltip-id= \"' + this.ctrlId + '_content\"]', document);\n }\n this.tooltipEventArgs = {\n type: e ? e.type : null, cancel: false, target: target, event: e ? e : null,\n element: this.tooltipEle, isInteracted: !isNullOrUndefined(e)\n };\n // this line commented for close the tooltip popup element even the target element destroyed in a page.\n //if (isNullOrUndefined(target)) { return; }\n this.trigger('beforeClose', this.tooltipEventArgs, function (observedArgs) {\n if (!observedArgs.cancel) {\n _this.mouseMoveBeforeRemove();\n _this.popupHide(hideAnimation, target);\n }\n else {\n _this.isHidden = false;\n }\n });\n this.tooltipEventArgs = null;\n };\n Tooltip.prototype.popupHide = function (hideAnimation, target) {\n if (target) {\n this.restoreElement(target);\n }\n this.isHidden = true;\n // eslint-disable-next-line\n var closeAnimation = {\n name: hideAnimation.effect,\n duration: hideAnimation.duration,\n delay: hideAnimation.delay,\n timingFunction: 'easeIn'\n };\n if (hideAnimation.effect === 'None') {\n closeAnimation = undefined;\n }\n if (this.popupObj) {\n this.popupObj.hide(closeAnimation);\n }\n };\n Tooltip.prototype.restoreElement = function (target) {\n this.unwireMouseEvents(target);\n if (!isNullOrUndefined(target.getAttribute('data-content'))) {\n target.setAttribute('title', target.getAttribute('data-content'));\n target.removeAttribute('data-content');\n }\n this.removeDescribedBy(target);\n };\n Tooltip.prototype.clear = function () {\n if (this.tooltipEle) {\n removeClass([this.tooltipEle], POPUP_CLOSE);\n addClass([this.tooltipEle], POPUP_OPEN);\n }\n if (this.isHidden) {\n if (this.popupObj) {\n this.popupObj.destroy();\n }\n if (this.tooltipEle) {\n remove(this.tooltipEle);\n }\n this.tooltipEle = null;\n this.popupObj = null;\n }\n };\n Tooltip.prototype.tooltipHover = function (e) {\n if (this.tooltipEle) {\n this.isTooltipOpen = true;\n }\n };\n Tooltip.prototype.tooltipMouseOut = function (e) {\n this.isTooltipOpen = false;\n this.hideTooltip(this.animation.close, e, this.findTarget());\n };\n Tooltip.prototype.onMouseOut = function (e) {\n var enteredElement = e.relatedTarget;\n // don't close the tooltip only if it is tooltip content element\n if (enteredElement && !this.mouseTrail) {\n var checkForTooltipElement = closest(enteredElement, \".\" + TOOLTIP_WRAP + \".\" + POPUP_LIB + \".\" + POPUP_ROOT);\n if (checkForTooltipElement) {\n EventHandler.add(checkForTooltipElement, 'mouseleave', this.tooltipElementMouseOut, this);\n }\n else {\n this.hideTooltip(this.animation.close, e, this.findTarget());\n if (this.closeDelay === 0) {\n this.clear();\n }\n }\n }\n else {\n this.hideTooltip(this.animation.close, e, this.findTarget());\n this.clear();\n }\n };\n Tooltip.prototype.tooltipElementMouseOut = function (e) {\n this.hideTooltip(this.animation.close, e, this.findTarget());\n EventHandler.remove(this.element, 'mouseleave', this.tooltipElementMouseOut);\n this.clear();\n };\n Tooltip.prototype.onStickyClose = function (e) {\n this.close();\n };\n Tooltip.prototype.onMouseMove = function (event) {\n var eventPageX = 0;\n var eventPageY = 0;\n if (event.type.indexOf('touch') > -1) {\n event.preventDefault();\n eventPageX = event.touches[0].pageX;\n eventPageY = event.touches[0].pageY;\n }\n else {\n eventPageX = event.pageX;\n eventPageY = event.pageY;\n }\n PopupAnimation.stop(this.tooltipEle);\n removeClass([this.tooltipEle], POPUP_CLOSE);\n addClass([this.tooltipEle], POPUP_OPEN);\n this.adjustArrow(event.target, this.position, this.tooltipPositionX, this.tooltipPositionY);\n var pos = this.calculateTooltipOffset(this.position);\n var x = eventPageX + pos.left + this.offsetX;\n var y = eventPageY + pos.top + this.offsetY;\n var elePos = this.checkCollision(event.target, x, y);\n if (this.tooltipPositionX !== elePos.horizontal || this.tooltipPositionY !== elePos.vertical) {\n var newpos = (this.position.indexOf('Bottom') === 0 || this.position.indexOf('Top') === 0) ?\n elePos.vertical + elePos.horizontal : elePos.horizontal + elePos.vertical;\n elePos.position = newpos;\n this.adjustArrow(event.target, elePos.position, elePos.horizontal, elePos.vertical);\n var colpos = this.calculateTooltipOffset(elePos.position);\n elePos.left = eventPageX + colpos.left - this.offsetX;\n elePos.top = eventPageY + colpos.top - this.offsetY;\n }\n this.tooltipEle.style.left = elePos.left + 'px';\n this.tooltipEle.style.top = elePos.top + 'px';\n };\n Tooltip.prototype.keyDown = function (event) {\n if (this.tooltipEle && event.keyCode === 27) {\n this.close();\n }\n };\n Tooltip.prototype.touchEnd = function (e) {\n if (this.tooltipEle && closest(e.target, '.' + ROOT) === null && !this.isSticky) {\n this.close();\n }\n };\n Tooltip.prototype.scrollHandler = function (e) {\n if (this.tooltipEle) {\n if (!(closest(e.target, \".\" + TOOLTIP_WRAP + \".\" + POPUP_LIB + \".\" + POPUP_ROOT))) {\n this.close();\n }\n }\n };\n /**\n * Core method that initializes the control rendering.\n *\n * @private\n * @returns {void}\n */\n Tooltip.prototype.render = function () {\n this.initialize();\n this.wireEvents(this.opensOn);\n this.renderComplete();\n };\n /**\n * Initializes the values of private members.\n *\n * @private\n * @returns {void}\n */\n Tooltip.prototype.preRender = function () {\n this.tipClass = TIP_BOTTOM;\n this.tooltipPositionX = 'Center';\n this.tooltipPositionY = 'Top';\n this.isHidden = true;\n };\n /**\n * Binding events to the Tooltip element.\n *\n * @hidden\n * @param {string} trigger - specify the trigger string to the function\n * @returns {void}\n *\n */\n Tooltip.prototype.wireEvents = function (trigger) {\n var triggerList = this.getTriggerList(trigger);\n for (var _i = 0, triggerList_1 = triggerList; _i < triggerList_1.length; _i++) {\n var opensOn = triggerList_1[_i];\n if (opensOn === 'Custom') {\n return;\n }\n if (opensOn === 'Focus') {\n this.wireFocusEvents();\n EventHandler.add(this.element, 'DOMNodeInserted', this.updateTarget, this);\n }\n if (opensOn === 'Click') {\n EventHandler.add(this.element, Browser.touchStartEvent, this.targetClick, this);\n }\n if (opensOn === 'Hover') {\n if (Browser.isDevice) {\n this.touchModule = new Touch(this.element, {\n tapHoldThreshold: TAPHOLD_THRESHOLD,\n tapHold: this.tapHoldHandler.bind(this)\n });\n EventHandler.add(this.element, Browser.touchEndEvent, this.touchEndHandler, this);\n }\n else {\n EventHandler.add(this.element, 'mouseover', this.targetHover, this);\n }\n }\n }\n EventHandler.add(document, 'touchend', this.touchEnd, this);\n EventHandler.add(document, 'scroll wheel', this.scrollHandler, this);\n EventHandler.add(window, 'resize', this.windowResize, this);\n EventHandler.add(document, 'keydown', this.keyDown, this);\n };\n Tooltip.prototype.updateTarget = function (e) {\n if (!isNullOrUndefined(this.targetsList) && !isNullOrUndefined(this.target)) {\n var target = [].slice.call(selectAll(this.target, this.element));\n if (target.length !== this.targetsList.length) {\n this.unwireEvents(this.opensOn);\n this.wireEvents(this.opensOn);\n }\n }\n };\n Tooltip.prototype.getTriggerList = function (trigger) {\n if (trigger === 'Auto') {\n trigger = (Browser.isDevice) ? 'Hover' : 'Hover Focus';\n }\n return trigger.split(' ');\n };\n Tooltip.prototype.wireFocusEvents = function () {\n if (!isNullOrUndefined(this.target)) {\n var targetList = [].slice.call(selectAll(this.target, this.element));\n this.targetsList = targetList;\n for (var _i = 0, targetList_2 = targetList; _i < targetList_2.length; _i++) {\n var target = targetList_2[_i];\n target.setAttribute('tabindex', '0');\n EventHandler.add(target, 'focus', this.targetHover, this);\n }\n }\n else {\n EventHandler.add(this.element, 'focus', this.targetHover, this);\n }\n };\n Tooltip.prototype.wireMouseEvents = function (e, target) {\n if (this.tooltipEle) {\n if (!this.isSticky) {\n if (e.type === 'focus') {\n EventHandler.add(target, 'blur', this.onMouseOut, this);\n }\n if (e.type === 'mouseover') {\n EventHandler.add(target, 'mouseleave', this.onMouseOut, this);\n }\n if (this.closeDelay) {\n EventHandler.add(this.tooltipEle, 'mouseenter', this.tooltipHover, this);\n EventHandler.add(this.tooltipEle, 'mouseleave', this.tooltipMouseOut, this);\n }\n }\n if (this.mouseTrail && this.openDelay === 0) {\n EventHandler.add(target, 'mousemove touchstart mouseenter', this.onMouseMove, this);\n }\n target.setAttribute(\"tabindex\", \"0\");\n }\n };\n /**\n * Unbinding events from the element on widget destroy.\n *\n * @hidden\n *\n * @param {string} trigger - specify the trigger string to the function\n * @returns {void}\n *\n */\n Tooltip.prototype.unwireEvents = function (trigger) {\n var triggerList = this.getTriggerList(trigger);\n for (var _i = 0, triggerList_2 = triggerList; _i < triggerList_2.length; _i++) {\n var opensOn = triggerList_2[_i];\n if (opensOn === 'Custom') {\n return;\n }\n if (opensOn === 'Focus') {\n this.unwireFocusEvents();\n EventHandler.remove(this.element, 'DOMNodeInserted', this.updateTarget);\n }\n if (opensOn === 'Click') {\n EventHandler.remove(this.element, Browser.touchStartEvent, this.targetClick);\n }\n if (opensOn === 'Hover') {\n if (Browser.isDevice) {\n if (this.touchModule) {\n this.touchModule.destroy();\n }\n EventHandler.remove(this.element, Browser.touchEndEvent, this.touchEndHandler);\n }\n else {\n EventHandler.remove(this.element, 'mouseover', this.targetHover);\n }\n }\n }\n EventHandler.remove(document, 'touchend', this.touchEnd);\n EventHandler.remove(document, 'scroll wheel', this.scrollHandler);\n EventHandler.remove(window, 'resize', this.windowResize);\n EventHandler.remove(document, 'keydown', this.keyDown);\n };\n Tooltip.prototype.unwireFocusEvents = function () {\n if (!isNullOrUndefined(this.target)) {\n var targetList = [].slice.call(selectAll(this.target, this.element));\n for (var _i = 0, targetList_3 = targetList; _i < targetList_3.length; _i++) {\n var target = targetList_3[_i];\n target.removeAttribute('tabindex');\n EventHandler.remove(target, 'focus', this.targetHover);\n }\n }\n else {\n EventHandler.remove(this.element, 'focus', this.targetHover);\n }\n };\n Tooltip.prototype.unwireMouseEvents = function (target) {\n if (!this.isSticky) {\n var triggerList = this.getTriggerList(this.opensOn);\n for (var _i = 0, triggerList_3 = triggerList; _i < triggerList_3.length; _i++) {\n var opensOn = triggerList_3[_i];\n if (opensOn === 'Focus') {\n EventHandler.remove(target, 'blur', this.onMouseOut);\n }\n if (opensOn === 'Hover' && !Browser.isDevice) {\n EventHandler.remove(target, 'mouseleave', this.onMouseOut);\n }\n }\n if (this.closeDelay) {\n EventHandler.remove(target, 'mouseenter', this.tooltipHover);\n EventHandler.remove(target, 'mouseleave', this.tooltipMouseOut);\n }\n }\n if (this.mouseTrail) {\n EventHandler.remove(target, 'mousemove touchstart mouseenter', this.onMouseMove);\n }\n };\n Tooltip.prototype.findTarget = function () {\n var target = select('[data-tooltip-id= \"' + this.ctrlId + '_content\"]', document);\n return target;\n };\n /**\n * Core method to return the component name.\n *\n * @private\n *\n * @returns {string} - this method returns module name.\n */\n Tooltip.prototype.getModuleName = function () {\n return 'tooltip';\n };\n /**\n * Returns the properties to be maintained in the persisted state.\n *\n * @private\n *\n * @returns {string} - this method returns persisted data.\n */\n Tooltip.prototype.getPersistData = function () {\n return this.addOnPersist([]);\n };\n /**\n * Called internally, if any of the property value changed.\n *\n * @private\n *\n * @param {TooltipModel} newProp - this param gives new property values to the method\n * @param {TooltipModel} oldProp - this param gives old property values to the method\n * @returns {void}\n *\n */\n Tooltip.prototype.onPropertyChanged = function (newProp, oldProp) {\n var targetElement = this.findTarget();\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'width':\n if (this.tooltipEle && targetElement) {\n this.tooltipEle.style.width = this.tooltipEle.style.maxWidth = formatUnit(newProp.width);\n this.reposition(targetElement);\n }\n break;\n case 'height':\n if (this.tooltipEle && targetElement) {\n this.tooltipEle.style.height = formatUnit(newProp.height);\n this.reposition(targetElement);\n }\n break;\n case 'content':\n if (this.tooltipEle) {\n this.renderContent();\n }\n break;\n case 'opensOn':\n this.unwireEvents(oldProp.opensOn);\n this.wireEvents(newProp.opensOn);\n break;\n case 'position':\n this.formatPosition();\n if (this.tooltipEle && targetElement) {\n var arrowInnerELe = select('.' + ARROW_TIP_INNER, this.tooltipEle);\n arrowInnerELe.style.top = arrowInnerELe.style.left = null;\n this.reposition(targetElement);\n }\n break;\n case 'tipPointerPosition':\n if (this.tooltipEle && targetElement) {\n this.reposition(targetElement);\n }\n break;\n case 'offsetX':\n if (this.tooltipEle) {\n var x = newProp.offsetX - oldProp.offsetX;\n this.tooltipEle.style.left = (parseInt(this.tooltipEle.style.left, 10) + (x)).toString() + 'px';\n }\n break;\n case 'offsetY':\n if (this.tooltipEle) {\n var y = newProp.offsetY - oldProp.offsetY;\n this.tooltipEle.style.top = (parseInt(this.tooltipEle.style.top, 10) + (y)).toString() + 'px';\n }\n break;\n case 'cssClass':\n if (this.tooltipEle) {\n if (oldProp.cssClass) {\n removeClass([this.tooltipEle], oldProp.cssClass.split(' '));\n }\n if (newProp.cssClass) {\n addClass([this.tooltipEle], newProp.cssClass.split(' '));\n }\n }\n break;\n case 'enableRtl':\n if (this.tooltipEle) {\n if (this.enableRtl) {\n addClass([this.tooltipEle], RTL);\n }\n else {\n removeClass([this.tooltipEle], RTL);\n }\n }\n break;\n case 'container':\n if (!isNullOrUndefined(this.containerElement)) {\n removeClass([this.containerElement], POPUP_CONTAINER);\n }\n this.container = newProp.container;\n if (this.tooltipEle && targetElement) {\n this.appendContainer(this);\n this.reposition(targetElement);\n }\n }\n }\n };\n /**\n * It is used to show the Tooltip on the specified target with specific animation settings.\n *\n * @param {HTMLElement} element - Target element where the Tooltip is to be displayed. (It is an optional parameter)\n * @param {TooltipAnimationSettings} animation - Sets the specific animation, while showing the Tooltip on the screen. (It is an optional parameter)\n * @returns {void}\n */\n Tooltip.prototype.open = function (element, animation) {\n if (isNullOrUndefined(animation)) {\n animation = this.animation.open;\n }\n if (isNullOrUndefined(element)) {\n element = this.element;\n }\n if (element.style.display === 'none') {\n return;\n }\n this.showTooltip(element, animation);\n };\n /**\n * It is used to hide the Tooltip with specific animation effect.\n *\n * @param {TooltipAnimationSettings} animation - Sets the specific animation when hiding Tooltip from the screen. (It is an optional parameter)\n * @returns {void}\n */\n Tooltip.prototype.close = function (animation) {\n if (!animation) {\n animation = this.animation.close;\n }\n this.hideTooltip(animation);\n };\n /**\n * It is used to refresh the Tooltip content and its position.\n *\n * @param {HTMLElement} target - Target element where the Tooltip content or position needs to be refreshed.\n * @returns {void}\n */\n Tooltip.prototype.refresh = function (target) {\n if (this.tooltipEle) {\n this.renderContent(target);\n }\n if (this.popupObj && target) {\n this.reposition(target);\n }\n };\n /**\n * It is used to destroy the Tooltip component.\n * @method destroy\n * @returns {void}\n * @memberof Tooltip\n */\n Tooltip.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n if (this.tooltipEle) {\n remove(this.tooltipEle);\n }\n if (this.popupObj) {\n this.popupObj.destroy();\n }\n removeClass([this.element], ROOT);\n this.unwireEvents(this.opensOn);\n this.unwireMouseEvents(this.element);\n this.tooltipEle = null;\n this.popupObj = null;\n };\n __decorate([\n Property('auto')\n ], Tooltip.prototype, \"width\", void 0);\n __decorate([\n Property('auto')\n ], Tooltip.prototype, \"height\", void 0);\n __decorate([\n Property()\n ], Tooltip.prototype, \"content\", void 0);\n __decorate([\n Property('body')\n ], Tooltip.prototype, \"container\", void 0);\n __decorate([\n Property()\n ], Tooltip.prototype, \"target\", void 0);\n __decorate([\n Property('TopCenter')\n ], Tooltip.prototype, \"position\", void 0);\n __decorate([\n Property(0)\n ], Tooltip.prototype, \"offsetX\", void 0);\n __decorate([\n Property(0)\n ], Tooltip.prototype, \"offsetY\", void 0);\n __decorate([\n Property(true)\n ], Tooltip.prototype, \"showTipPointer\", void 0);\n __decorate([\n Property(true)\n ], Tooltip.prototype, \"enableHtmlParse\", void 0);\n __decorate([\n Property(false)\n ], Tooltip.prototype, \"windowCollision\", void 0);\n __decorate([\n Property('Auto')\n ], Tooltip.prototype, \"tipPointerPosition\", void 0);\n __decorate([\n Property('Auto')\n ], Tooltip.prototype, \"opensOn\", void 0);\n __decorate([\n Property(false)\n ], Tooltip.prototype, \"mouseTrail\", void 0);\n __decorate([\n Property(false)\n ], Tooltip.prototype, \"isSticky\", void 0);\n __decorate([\n Complex({}, Animation)\n ], Tooltip.prototype, \"animation\", void 0);\n __decorate([\n Property(0)\n ], Tooltip.prototype, \"openDelay\", void 0);\n __decorate([\n Property(0)\n ], Tooltip.prototype, \"closeDelay\", void 0);\n __decorate([\n Property()\n ], Tooltip.prototype, \"cssClass\", void 0);\n __decorate([\n Property(false)\n ], Tooltip.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Event()\n ], Tooltip.prototype, \"beforeRender\", void 0);\n __decorate([\n Event()\n ], Tooltip.prototype, \"beforeOpen\", void 0);\n __decorate([\n Event()\n ], Tooltip.prototype, \"afterOpen\", void 0);\n __decorate([\n Event()\n ], Tooltip.prototype, \"beforeClose\", void 0);\n __decorate([\n Event()\n ], Tooltip.prototype, \"afterClose\", void 0);\n __decorate([\n Event()\n ], Tooltip.prototype, \"beforeCollision\", void 0);\n __decorate([\n Event()\n ], Tooltip.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], Tooltip.prototype, \"destroyed\", void 0);\n Tooltip = __decorate([\n NotifyPropertyChanges\n ], Tooltip);\n return Tooltip;\n}(Component));\nexport { Tooltip };\n","import { AnnotationDataFormat } from '../index';\nimport { createElement, Browser, isBlazor } from '@syncfusion/ej2-base';\nimport { Toolbar as Tool, ContextMenu as Context } from '@syncfusion/ej2-navigations';\nimport { Tooltip } from '@syncfusion/ej2-popups';\nimport { Toast } from '@syncfusion/ej2-notifications';\n/**\n * The `NavigationPane` module is used to handle navigation pane for thumbnail and bookmark navigation of PDF viewer.\n *\n * @hidden\n */\nvar NavigationPane = /** @class */ (function () {\n /**\n * Initialize the constructor of navigationPane.\n *\n * @param { PdfViewer } viewer - Specified PdfViewer class.\n * @param { PdfViewerBase } base - The pdfViewerBase.\n */\n function NavigationPane(viewer, base) {\n var _this = this;\n this.thumbnailWidthMin = 200;\n this.contentContainerScrollWidth = 33;\n this.closeButtonLeft = 170;\n this.isTooltipCreated = false;\n this.isThumbnail = false;\n this.annotationContextMenu = [];\n this.isCommentPanelShow = false;\n this.commentPanelWidthMin = 300;\n /**\n * @private\n */\n this.isNavigationToolbarVisible = false;\n /**\n * @private\n */\n this.isBookmarkListOpen = false;\n /**\n * @private\n */\n this.isNavigationPaneResized = false;\n /**\n * @private\n */\n this.isBookmarkOpen = false;\n /**\n * @private\n */\n this.isThumbnailOpen = false;\n /**\n * @private\n */\n this.restrictUpdateZoomValue = true;\n // eslint-disable-next-line\n this.loadImportAnnotation = function (args) {\n // eslint-disable-next-line\n var upoadedFiles = args.target.files;\n if (args.target.files[0] !== null) {\n var uploadedFile = upoadedFiles[0];\n if (uploadedFile) {\n _this.pdfViewer.fireImportStart(uploadedFile);\n // eslint-disable-next-line\n var uploadedFileType = uploadedFile.type;\n if (uploadedFile.name.split('.json').length > 1 && uploadedFileType.includes('json')) {\n var reader = new FileReader();\n reader.readAsDataURL(uploadedFile);\n // eslint-disable-next-line\n reader.onload = function (e) {\n if (e.currentTarget.result) {\n var importFile = e.currentTarget.result.split(',')[1];\n // eslint-disable-next-line\n var annotationData = atob(importFile);\n if (annotationData) {\n // eslint-disable-next-line\n var jsonData = JSON.parse(annotationData);\n _this.pdfViewerBase.importAnnotations(jsonData, AnnotationDataFormat.Json);\n }\n }\n };\n }\n else if (uploadedFile.name.split('.xfdf').length > 1 && (uploadedFileType.includes('xfdf') || args.target.accept.includes('xfdf'))) {\n var reader = new FileReader();\n reader.readAsDataURL(uploadedFile);\n // eslint-disable-next-line\n reader.onload = function (e) {\n if (e.currentTarget.result) {\n var importFile = e.currentTarget.result.split(',')[1];\n // eslint-disable-next-line\n var annotationData = atob(importFile);\n if (annotationData) {\n // eslint-disable-next-line max-len\n _this.pdfViewerBase.importAnnotations(importFile, AnnotationDataFormat.Xfdf, true);\n }\n }\n };\n }\n else {\n _this.pdfViewer.fireImportFailed(uploadedFile, _this.pdfViewer.localeObj.getConstant('Import Failed'));\n if (isBlazor()) {\n var promise = _this.pdfViewer._dotnetInstance.invokeMethodAsync('GetLocaleText', 'PdfViewer_ImportFailed');\n promise.then(function (value) {\n _this.pdfViewerBase.openImportExportNotificationPopup(value);\n });\n }\n else {\n _this.pdfViewerBase.openImportExportNotificationPopup(_this.pdfViewer.localeObj.getConstant('Import Failed'));\n }\n }\n }\n args.target.value = \"\";\n }\n };\n /**\n * @param {MouseEvent} event - The event.\n * @returns {void}\n */\n this.resizeIconMouseOver = function (event) {\n event.srcElement.style.cursor = 'e-resize';\n };\n /**\n * @param {MouseEvent} event - The event.\n * @returns {void}\n */\n this.resizePanelMouseDown = function (event) {\n var proxy = null;\n proxy = _this;\n proxy.offset = [\n proxy.sideBarResizer.offsetLeft - event.clientX,\n proxy.sideBarResizer.offsetTop - event.clientY,\n proxy.sideBarResizer.offsetParent.clientWidth\n ];\n _this.previousX = event.clientX;\n proxy.isDown = true;\n proxy.isNavigationPaneResized = true;\n proxy.pdfViewerBase.viewerContainer.style.cursor = 'e-resize';\n if (proxy.sideBarContentContainer) {\n proxy.sideBarContentContainer.style.cursor = 'e-resize';\n }\n };\n /**\n * @param {MouseEvent} event - The event.\n * @returns {void}\n */\n this.resizeViewerMouseLeave = function (event) {\n var proxy = null;\n proxy = _this;\n proxy.isDown = false;\n if (proxy.isNavigationPaneResized && proxy.sideBarContentContainer) {\n proxy.pdfViewerBase.viewerContainer.style.cursor = 'default';\n proxy.sideBarContentContainer.style.cursor = 'default';\n proxy.isNavigationPaneResized = false;\n }\n if (proxy.commentPanelContainer && proxy.isCommentPanelShow) {\n _this.commentPanelMouseLeave(event);\n proxy.isCommentPanelShow = false;\n }\n };\n /**\n * @param {MouseEvent} event - The event.\n * @returns {void}\n */\n this.resizePanelMouseMove = function (event) {\n var proxy = null;\n proxy = _this;\n if (!_this.pdfViewerBase.getPopupNoteVisibleStatus()) {\n var target = event.target;\n // eslint-disable-next-line max-len\n if (_this.pdfViewerBase.skipPreventDefault(target)) {\n event.preventDefault();\n }\n if (proxy.isDown && _this.sideBarContentContainer) {\n // prevent the sidebar from becoming too narrow, or from occupying more\n // than half of the available viewer width.\n if (_this.pdfViewer.enableRtl) {\n var currentWidth = _this.previousX - event.clientX;\n var width = currentWidth + proxy.offset[2];\n var maxWidth = Math.floor(_this.outerContainerWidth / 2);\n if (width > maxWidth) {\n width = maxWidth;\n }\n if (width < _this.thumbnailWidthMin) {\n width = _this.thumbnailWidthMin;\n }\n proxy.sideBarResizer.style.right = width + 'px';\n proxy.sideBarContentContainer.style.width = width + 'px';\n proxy.sideBarContent.style.width = width + 'px';\n proxy.sideBarContentSplitter.style.width = width + 'px';\n proxy.sideBarTitleContainer.style.width = width + 'px';\n // eslint-disable-next-line max-len\n proxy.pdfViewerBase.viewerContainer.style.right = proxy.getViewerContainerLeft() + 'px';\n proxy.pdfViewerBase.viewerContainer.style.left = proxy.getViewerContainerRight() + 'px';\n }\n else {\n var width = event.clientX + proxy.offset[0];\n var maxWidth = Math.floor(_this.outerContainerWidth / 2);\n if (width > maxWidth) {\n width = maxWidth;\n }\n if (width < _this.thumbnailWidthMin) {\n width = _this.thumbnailWidthMin;\n }\n proxy.sideBarResizer.style.left = width + 'px';\n proxy.closeDiv.style.left = width - proxy.contentContainerScrollWidth + 'px';\n proxy.sideBarContentContainer.style.width = width + 'px';\n proxy.sideBarContent.style.width = width + 'px';\n proxy.sideBarContentSplitter.style.width = width + 'px';\n proxy.sideBarTitleContainer.style.width = width + 'px';\n // eslint-disable-next-line max-len\n proxy.pdfViewerBase.viewerContainer.style.left = proxy.getViewerContainerLeft() + 'px';\n proxy.pdfViewerBase.viewerContainer.style.right = proxy.getViewerContainerRight() + 'px';\n }\n // eslint-disable-next-line max-len\n var viewerWidth = (proxy.pdfViewer.element.clientWidth - proxy.getViewerContainerLeft() - proxy.getViewerContainerRight());\n proxy.pdfViewerBase.viewerContainer.style.width = viewerWidth + 'px';\n proxy.pdfViewerBase.pageContainer.style.width = proxy.pdfViewerBase.viewerContainer.clientWidth + 'px';\n proxy.pdfViewer.thumbnailViewModule.gotoThumbnailImage(proxy.pdfViewerBase.currentPageNumber - 1);\n proxy.pdfViewerBase.updateZoomValue();\n if (!proxy.bookmarkButton.children[0].classList.contains('e-pv-bookmark-disable-icon')) {\n proxy.pdfViewer.bookmarkViewModule.setBookmarkContentHeight();\n }\n }\n else if (proxy.isCommentPanelShow && _this.commentPanelContainer) {\n _this.updateCommentPanelContainer(event);\n }\n }\n };\n /**\n * @param {MouseEvent} event - The event.\n * @returns {void}\n */\n this.sideToolbarOnClose = function (event) {\n var proxy = null;\n proxy = _this;\n proxy.removeThumbnailSelectionIconTheme();\n proxy.removeBookmarkSelectionIconTheme();\n proxy.updateViewerContainerOnClose();\n };\n /**\n * @param {MouseEvent} event - The event.\n * @returns {void}\n */\n this.sideToolbarOnClick = function (event) {\n _this.sideBarTitle.textContent = _this.pdfViewer.localeObj.getConstant('Page Thumbnails');\n _this.sideBarContent.setAttribute('aria-label', 'Thumbnail View Panel');\n var proxy = null;\n proxy = _this;\n var isblazor = isBlazor();\n // eslint-disable-next-line max-len\n var bookmarkPane = isblazor ? _this.pdfViewer.element.querySelector('.e-pv-bookmark-view') : document.getElementById(_this.pdfViewer.element.id + '_bookmark_view');\n if (bookmarkPane) {\n proxy.removeBookmarkSelectionIconTheme();\n bookmarkPane.style.display = 'none';\n }\n document.getElementById(_this.pdfViewer.element.id + '_thumbnail_view').style.display = 'flex';\n if (proxy.sideBarContentContainer) {\n if (proxy.sideBarContentContainer.style.display !== 'none') {\n if (proxy.isBookmarkOpen) {\n proxy.isThumbnailOpen = true;\n proxy.setThumbnailSelectionIconTheme();\n _this.updateViewerContainerOnExpand();\n }\n else {\n proxy.isThumbnailOpen = false;\n proxy.removeThumbnailSelectionIconTheme();\n _this.updateViewerContainerOnClose();\n }\n }\n else {\n _this.sideBarContent.focus();\n proxy.isThumbnailOpen = true;\n proxy.setThumbnailSelectionIconTheme();\n _this.updateViewerContainerOnExpand();\n }\n }\n proxy.isBookmarkOpen = false;\n if (_this.pdfViewer.annotationModule && _this.pdfViewer.annotationModule.inkAnnotationModule) {\n // eslint-disable-next-line\n var currentPageNumber = parseInt(_this.pdfViewer.annotationModule.inkAnnotationModule.currentPageNumber);\n _this.pdfViewer.annotationModule.inkAnnotationModule.drawInkAnnotation(currentPageNumber);\n }\n };\n /**\n * @private\n * @returns {void}\n */\n this.openThumbnailPane = function () {\n var proxy = null;\n proxy = _this;\n var sideBarContent = document.getElementById(_this.pdfViewer.element.id + '_sideBarContent');\n var sideBarContentContainer = document.getElementById(_this.pdfViewer.element.id + '_sideBarContentContainer');\n var viewerContainer = document.getElementById(_this.pdfViewer.element.id + '_viewerContainer');\n var pageContainer = document.getElementById(_this.pdfViewer.element.id + '_pageViewContainer');\n document.getElementById(_this.pdfViewer.element.id + '_thumbnail_view').style.display = 'block';\n document.getElementById(_this.pdfViewer.element.id + '_sideBarResizer').style.display = 'none';\n document.getElementById(_this.pdfViewer.element.id + '_sideBarTitleContainer').style.display = 'none';\n document.getElementById(_this.pdfViewer.element.id + '_sideBarContentSplitter').style.display = 'none';\n sideBarContent.classList.add('e-thumbnail');\n sideBarContentContainer.classList.add('e-thumbnail');\n if (sideBarContentContainer) {\n if (proxy.isThumbnail) {\n sideBarContentContainer.style.display = 'none';\n viewerContainer.style.width = proxy.pdfViewer.element.clientWidth + 'px';\n pageContainer.style.width = viewerContainer.clientWidth + 'px';\n viewerContainer.style.left = sideBarContentContainer.clientWidth + 'px';\n proxy.pdfViewerBase.updateZoomValue();\n proxy.isThumbnail = false;\n }\n else {\n sideBarContent.focus();\n sideBarContentContainer.style.display = 'block';\n // eslint-disable-next-line max-len\n viewerContainer.style.width = (proxy.pdfViewer.element.clientWidth - sideBarContentContainer.clientWidth) + 'px';\n pageContainer.style.width = viewerContainer.clientWidth + 'px';\n viewerContainer.style.left = (sideBarContentContainer.clientWidth) + 'px';\n proxy.pdfViewerBase.updateZoomValue();\n proxy.pdfViewer.thumbnailViewModule.gotoThumbnailImage(proxy.pdfViewerBase.currentPageNumber - 1);\n proxy.isThumbnail = true;\n }\n }\n if (_this.pdfViewer.annotationModule && _this.pdfViewer.annotationModule.inkAnnotationModule) {\n // eslint-disable-next-line\n var currentPageNumber = parseInt(_this.pdfViewer.annotationModule.inkAnnotationModule.currentPageNumber);\n _this.pdfViewer.annotationModule.inkAnnotationModule.drawInkAnnotation(currentPageNumber);\n }\n };\n /**\n * @param {MouseEvent} event - The event.\n * @returns {void}\n */\n this.bookmarkButtonOnClick = function (event) {\n _this.openBookmarkcontentInitially();\n };\n /**\n * @param {MouseEvent} event - The event.\n * @returns {void}\n */\n this.commentPanelMouseDown = function (event) {\n var proxy = null;\n proxy = _this;\n proxy.offset = [\n proxy.commentPanelResizer.offsetLeft - event.clientX,\n proxy.commentPanelResizer.offsetTop - event.clientY,\n proxy.getViewerContainerRight()\n ];\n _this.isCommentPanelShow = true;\n _this.previousX = event.clientX;\n proxy.pdfViewerBase.viewerContainer.style.cursor = 'e-resize';\n proxy.commentPanelResizer.style.cursor = 'e-resize';\n };\n /**\n * @param {MouseEvent} event - The event.\n * @returns {void}\n */\n this.updateCommentPanelContainer = function (event) {\n var proxy = null;\n proxy = _this;\n // prevent the commentPanel from becoming too narrow, or from occupying more\n // than half of the available viewer width.\n if (_this.pdfViewer.enableRtl) {\n var width = event.clientX + proxy.offset[0];\n var maxWidth = Math.floor(_this.outerContainerWidth / 2);\n if (width > maxWidth) {\n width = maxWidth;\n }\n if (width < _this.commentPanelWidthMin) {\n width = _this.commentPanelWidthMin;\n }\n proxy.commentPanelResizer.style.left = width + 'px';\n proxy.commentPanelContainer.style.width = width + 'px';\n // eslint-disable-next-line max-len\n proxy.pdfViewerBase.viewerContainer.style.left = proxy.getViewerContainerRight() + 'px';\n proxy.pdfViewerBase.viewerContainer.style.right = proxy.getViewerContainerLeft() + 'px';\n }\n else {\n var currentWidth = _this.previousX - event.clientX;\n var width = currentWidth + proxy.offset[2];\n var maxWidth = Math.floor(_this.outerContainerWidth / 2);\n if (width > maxWidth) {\n width = maxWidth;\n }\n if (width < _this.commentPanelWidthMin) {\n width = _this.commentPanelWidthMin;\n }\n proxy.commentPanelResizer.style.right = width + 'px';\n proxy.commentPanelContainer.style.width = width + 'px';\n // eslint-disable-next-line max-len\n proxy.pdfViewerBase.viewerContainer.style.right = proxy.getViewerContainerRight() + 'px';\n proxy.pdfViewerBase.viewerContainer.style.left = proxy.getViewerContainerLeft() + 'px';\n }\n _this.pdfViewer.annotation.stickyNotesAnnotationModule.updateCommentPanelTextTop();\n // eslint-disable-next-line max-len\n var viewerWidth = (proxy.pdfViewer.element.clientWidth - proxy.getViewerContainerLeft() - proxy.getViewerContainerRight());\n proxy.pdfViewerBase.viewerContainer.style.width = viewerWidth + 'px';\n proxy.pdfViewerBase.pageContainer.style.width = proxy.pdfViewerBase.viewerContainer.clientWidth + 'px';\n proxy.pdfViewerBase.updateZoomValue();\n };\n /**\n * @param {MouseEvent} event - The event.\n * @returns {void}\n */\n this.commentPanelMouseLeave = function (event) {\n var proxy = null;\n proxy = _this;\n if (proxy.commentPanelContainer) {\n proxy.pdfViewerBase.viewerContainer.style.cursor = 'default';\n proxy.commentPanelContainer.style.cursor = 'default';\n }\n };\n this.pdfViewer = viewer;\n this.pdfViewerBase = base;\n }\n /**\n * @private\n * @returns {void}\n */\n NavigationPane.prototype.initializeNavigationPane = function () {\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n this.createNavigationPane();\n }\n else {\n // eslint-disable-next-line max-len\n this.commentPanelContainer = createElement('div', { id: this.pdfViewer.element.id + '_commantPanel', className: 'e-pv-mobile-comments-container' });\n this.pdfViewerBase.mainContainer.appendChild(this.commentPanelContainer);\n if (this.pdfViewer.enableRtl) {\n this.commentPanelContainer.style.left = 0 + 'px';\n }\n else {\n this.commentPanelContainer.style.right = 0 + 'px';\n }\n this.commentPanelContainer.style.bottom = 0 + 'px';\n this.createCommentPanelTitleContainer();\n this.commentPanelContainer.style.display = 'none';\n // eslint-disable-next-line max-len\n this.commentsContentContainer = createElement('div', { id: this.pdfViewer.element.id + '_commentscontentcontainer', className: 'e-pv-comments-content-container' });\n this.commentPanelContainer.appendChild(this.commentsContentContainer);\n this.createFileElement(this.commentPanelContainer);\n this.createXFdfFileElement(this.commentPanelContainer);\n }\n };\n NavigationPane.prototype.createNavigationPane = function () {\n var isblazor = isBlazor();\n if (!isblazor) {\n // eslint-disable-next-line max-len\n this.sideBarToolbar = createElement('div', { id: this.pdfViewer.element.id + '_sideBarToolbar', className: 'e-pv-sidebar-toolbar', attrs: { 'role': 'toolbar', 'aria-orientation': 'vertical', 'tabindex': '-1', 'aria-label': 'Sidebar Toolbar' } });\n // eslint-disable-next-line max-len\n this.sideBarToolbarSplitter = createElement('div', { id: this.pdfViewer.element.id + '_sideBarToolbarSplitter', className: 'e-pv-sidebar-toolbar-splitter' });\n // eslint-disable-next-line max-len\n this.sideBarContentContainer = createElement('div', { id: this.pdfViewer.element.id + '_sideBarContentContainer', className: 'e-pv-sidebar-content-container' });\n // eslint-disable-next-line max-len\n this.sideBarContentSplitter = createElement('div', { id: this.pdfViewer.element.id + '_sideBarContentSplitter', className: 'e-pv-sidebar-content-splitter' });\n // eslint-disable-next-line max-len\n this.sideBarContent = createElement('div', { id: this.pdfViewer.element.id + '_sideBarContent', className: 'e-pv-sidebar-content', attrs: { 'tabindex': '0' } });\n // eslint-disable-next-line max-len\n this.sideBarTitleContainer = createElement('div', { id: this.pdfViewer.element.id + '_sideBarTitleContainer', className: 'e-pv-sidebar-title-container' });\n // eslint-disable-next-line max-len\n this.sideBarTitle = createElement('div', { id: this.pdfViewer.element.id + '_sideBarTitle', className: 'e-pv-sidebar-title', attrs: { 'tabindex': '-1' } });\n // eslint-disable-next-line max-len\n this.sideBarResizer = createElement('div', { id: this.pdfViewer.element.id + '_sideBarResizer', className: 'e-pv-sidebar-resizer' });\n }\n else {\n this.sideBarToolbar = this.pdfViewer.element.querySelector('.e-pv-sidebar-toolbar');\n this.sideBarToolbarSplitter = this.pdfViewer.element.querySelector('.e-pv-sidebar-toolbar-splitter');\n this.sideBarContentContainer = this.pdfViewer.element.querySelector('.e-pv-sidebar-content-container');\n this.sideBarContentSplitter = this.pdfViewer.element.querySelector('.e-pv-sidebar-content-splitter');\n this.sideBarContent = this.pdfViewer.element.querySelector('.e-pv-sidebar-content');\n this.sideBarTitleContainer = this.pdfViewer.element.querySelector('.e-pv-sidebar-title-container');\n this.sideBarTitle = this.pdfViewer.element.querySelector('.e-pv-sidebar-title');\n this.sideBarResizer = this.pdfViewer.element.querySelector('.e-pv-sidebar-resizer');\n }\n this.pdfViewerBase.mainContainer.appendChild(this.sideBarToolbar);\n if (this.pdfViewer.enableRtl) {\n this.sideBarToolbar.style.cssFloat = 'right';\n this.sideBarToolbar.style.right = 1 + 'px';\n this.sideBarToolbar.style.position = 'relative';\n }\n this.pdfViewerBase.mainContainer.appendChild(this.sideBarToolbarSplitter);\n if (this.pdfViewer.enableRtl) {\n this.sideBarToolbarSplitter.classList.add('e-right');\n }\n else {\n this.sideBarToolbarSplitter.classList.add('e-left');\n }\n if (this.pdfViewer.enableRtl) {\n this.sideBarContentContainer.classList.add('e-right');\n }\n else {\n this.sideBarContentContainer.classList.add('e-left');\n }\n this.pdfViewerBase.mainContainer.appendChild(this.sideBarContentContainer);\n if (this.pdfViewer.enableRtl) {\n this.sideBarContentSplitter.style.right = 0 + 'px';\n }\n this.sideBarContentContainer.appendChild(this.sideBarContentSplitter);\n if (this.pdfViewer.enableRtl) {\n this.sideBarContent.style.right = 0 + 'px';\n this.sideBarContent.style.direction = 'rtl';\n }\n this.sideBarContentContainer.appendChild(this.sideBarContent);\n if (this.pdfViewer.enableRtl) {\n this.sideBarTitleContainer.style.right = 0 + 'px';\n }\n if (this.pdfViewer.enableRtl) {\n this.sideBarTitle.classList.add('e-right');\n }\n else {\n this.sideBarTitle.classList.add('e-left');\n }\n this.sideBarTitleContainer.appendChild(this.sideBarTitle);\n this.sideBarContentContainer.appendChild(this.sideBarTitleContainer);\n this.sideBarResizer.addEventListener('mousedown', this.resizePanelMouseDown);\n this.pdfViewerBase.mainContainer.addEventListener('mousemove', this.resizePanelMouseMove);\n this.pdfViewerBase.mainContainer.addEventListener('mouseup', this.resizeViewerMouseLeave);\n if (this.pdfViewer.enableRtl) {\n this.sideBarResizer.classList.add('e-right');\n }\n else {\n this.sideBarResizer.classList.add('e-left');\n }\n this.sideBarContentContainer.appendChild(this.sideBarResizer);\n this.createCommentPanel();\n var controlLeft = this.getViewerContainerLeft();\n var controlRight = this.getViewerContainerRight();\n if (!this.pdfViewer.enableRtl) {\n this.pdfViewerBase.viewerContainer.style.left = controlLeft + 'px';\n this.pdfViewerBase.viewerContainer.style.right = controlRight + 'px';\n }\n // eslint-disable-next-line max-len\n this.pdfViewerBase.viewerContainer.style.width = (this.pdfViewer.element.clientWidth - controlLeft - this.commentPanelContainer.clientWidth) + 'px';\n this.sideBarContentContainer.style.display = 'none';\n this.createSidebarToolBar();\n this.createSidebarTitleCloseButton();\n this.createResizeIcon();\n this.sideBarToolbar.addEventListener('mouseup', this.sideToolbarOnMouseup.bind(this));\n this.sideBarContentContainer.addEventListener('mouseup', this.sideBarTitleOnMouseup.bind(this));\n };\n /**\n * @private\n * @returns {void}\n */\n NavigationPane.prototype.adjustPane = function () {\n if (isBlazor()) {\n var splitterElement = this.pdfViewer.element.querySelector('.e-pv-sidebar-toolbar-splitter');\n var sideToolbarElement = this.pdfViewer.element.querySelector('.e-pv-sidebar-toolbar');\n var sideToolbarContent = this.pdfViewer.element.querySelector('.e-pv-sidebar-content-container');\n var toolbarContainer = this.pdfViewer.element.querySelector('.e-pv-toolbar');\n var toolbarHeight = toolbarContainer.getBoundingClientRect().height;\n if (toolbarHeight === 0) {\n // eslint-disable-next-line\n toolbarHeight = parseFloat(window.getComputedStyle(toolbarContainer)['height']) + 1;\n }\n if (!this.pdfViewer.enableToolbar) {\n toolbarHeight = 0;\n }\n sideToolbarElement.style.top = toolbarHeight + 'px';\n sideToolbarContent.style.top = toolbarHeight + 'px';\n splitterElement.style.top = toolbarHeight + 'px';\n sideToolbarElement.style.height = this.getSideToolbarHeight(toolbarHeight);\n sideToolbarContent.style.height = this.getSideToolbarHeight(toolbarHeight);\n splitterElement.style.height = this.getSideToolbarHeight(toolbarHeight);\n this.pdfViewerBase.viewerContainer.style.height = this.getSideToolbarHeight(toolbarHeight);\n }\n else {\n var splitterElement = this.pdfViewerBase.getElement('_sideBarToolbarSplitter');\n var toolbarContainer = this.pdfViewerBase.getElement('_toolbarContainer');\n var toolbarHeight = toolbarContainer.getBoundingClientRect().height;\n if (toolbarHeight === 0) {\n // eslint-disable-next-line\n toolbarHeight = parseFloat(window.getComputedStyle(toolbarContainer)['height']) + 1;\n }\n // eslint-disable-next-line max-len\n this.sideBarToolbar.style.top = toolbarHeight + 'px';\n this.sideBarContentContainer.style.top = toolbarHeight + 'px';\n splitterElement.style.top = toolbarHeight + 'px';\n }\n };\n NavigationPane.prototype.getSideToolbarHeight = function (toolbarHeight) {\n var height = this.pdfViewer.element.getBoundingClientRect().height;\n return (height !== 0) ? height - toolbarHeight + 'px' : '';\n };\n NavigationPane.prototype.createCommentPanel = function () {\n // eslint-disable-next-line max-len\n this.commentPanelContainer = createElement('div', { id: this.pdfViewer.element.id + '_commantPanel', className: 'e-pv-comment-panel' });\n this.pdfViewerBase.mainContainer.appendChild(this.commentPanelContainer);\n if (this.pdfViewer.enableRtl) {\n this.commentPanelContainer.style.left = 0 + 'px';\n }\n else {\n this.commentPanelContainer.style.right = 0 + 'px';\n }\n this.commentPanelContainer.style.bottom = 0 + 'px';\n this.createCommentPanelTitleContainer();\n this.commentPanelContainer.style.display = 'none';\n // eslint-disable-next-line max-len\n this.commentsContentContainer = createElement('div', { id: this.pdfViewer.element.id + '_commentscontentcontainer', className: 'e-pv-comments-content-container' });\n this.commentPanelContainer.appendChild(this.commentsContentContainer);\n // eslint-disable-next-line max-len\n this.commentPanelResizer = createElement('div', { id: this.pdfViewer.element.id + '_commentPanelResizer', className: 'e-pv-comment-panel-resizer' });\n if (this.pdfViewer.enableRtl) {\n this.commentPanelResizer.classList.add('e-left');\n }\n else {\n this.commentPanelResizer.classList.add('e-right');\n }\n this.commentPanelResizer.style.display = 'none';\n this.commentPanelResizer.addEventListener('mousedown', this.commentPanelMouseDown);\n this.pdfViewerBase.mainContainer.appendChild(this.commentPanelResizer);\n this.createCommentPanelResizeIcon();\n this.createFileElement(this.commentPanelContainer);\n this.createXFdfFileElement(this.commentPanelContainer);\n };\n NavigationPane.prototype.createCommentPanelTitleContainer = function () {\n // eslint-disable-next-line max-len\n var commentPanelTitleContainer = createElement('div', { id: this.pdfViewer.element.id + '_commentPanelTitleContainer', className: 'e-pv-comment-panel-title-container' });\n // eslint-disable-next-line max-len\n var commentpanelTilte = createElement('div', { id: this.pdfViewer.element.id + '_commentPanelTitle', className: 'e-pv-comment-panel-title', attrs: { 'tabindex': '-1' } });\n if (isBlazor()) {\n var promise = this.pdfViewer._dotnetInstance.invokeMethodAsync('GetLocaleText', 'PdfViewer_Comments');\n promise.then(function (value) {\n commentpanelTilte.innerText = value;\n });\n }\n else {\n commentpanelTilte.innerText = this.pdfViewer.localeObj.getConstant('Comments');\n }\n var annotationButton = createElement('button', { id: this.pdfViewer.element.id + '_annotations_btn' });\n annotationButton.setAttribute('aria-label', 'annotation button');\n annotationButton.setAttribute('type', 'button');\n annotationButton.className = 'e-btn e-pv-tbar-btn e-pv-comment-panel-title-close-div e-btn';\n // eslint-disable-next-line max-len\n var moreOptionButtonSpan = createElement('span', { id: this.pdfViewer.element.id + '_annotation_more_icon', className: 'e-pv-more-icon e-pv-icon' });\n annotationButton.appendChild(moreOptionButtonSpan);\n if (Browser.isDevice && !isBlazor()) {\n var commentCloseIconDiv = createElement('button');\n commentCloseIconDiv.setAttribute('aria-label', 'annotation button');\n commentCloseIconDiv.setAttribute('type', 'button');\n commentCloseIconDiv.style.borderColor = 'transparent';\n commentCloseIconDiv.style.paddingTop = '11px';\n commentCloseIconDiv.style.paddingBottom = '11px';\n commentCloseIconDiv.style.backgroundColor = '#fafafa';\n commentCloseIconDiv.addEventListener('click', this.closeCommentPanelContainer.bind(this));\n commentpanelTilte.style.left = '37px';\n var commentCloseIcon = createElement('span', { className: 'e-pv-annotation-tools-close-icon e-pv-icon' });\n commentCloseIconDiv.appendChild(commentCloseIcon);\n commentPanelTitleContainer.appendChild(commentCloseIconDiv);\n }\n commentPanelTitleContainer.appendChild(commentpanelTilte);\n commentPanelTitleContainer.appendChild(annotationButton);\n this.commentPanelContainer.appendChild(commentPanelTitleContainer);\n this.createAnnotationContextMenu();\n annotationButton.addEventListener('click', this.openAnnotationContextMenu.bind(this));\n };\n NavigationPane.prototype.createCommentPanelResizeIcon = function () {\n // eslint-disable-next-line max-len\n this.commentPanelResizeIcon = createElement('div', { id: this.pdfViewer.element.id + '_commentPanel_resize', className: 'e-pv-resize-icon e-pv-icon' });\n this.setCommentPanelResizeIconTop();\n this.commentPanelResizeIcon.style.position = 'absolute';\n this.commentPanelResizer.appendChild(this.commentPanelResizeIcon);\n };\n // eslint-disable-next-line\n NavigationPane.prototype.openAnnotationContextMenu = function (event) {\n /* eslint-disable-next-line security/detect-non-literal-fs-filename */\n this.annotationMenuObj.open(event.clientY, event.clientX, event.currentTarget);\n };\n /**\n * @private\n * @returns {void}\n */\n NavigationPane.prototype.createAnnotationContextMenu = function () {\n // eslint-disable-next-line max-len\n this.annotationContextMenu = [\n { text: this.pdfViewer.localeObj.getConstant('Export Annotations') },\n { text: this.pdfViewer.localeObj.getConstant('Import Annotations') },\n { text: this.pdfViewer.localeObj.getConstant('Export XFDF') },\n { text: this.pdfViewer.localeObj.getConstant('Import XFDF') }\n ];\n var annotationMenuElement = createElement('ul', { id: this.pdfViewer.element.id + '_annotation_context_menu' });\n this.pdfViewer.element.appendChild(annotationMenuElement);\n this.annotationMenuObj = new Context({\n target: '#' + this.pdfViewer.element.id + '_annotations_btn', items: this.annotationContextMenu,\n select: this.annotationMenuItemSelect.bind(this)\n });\n if (this.pdfViewer.enableRtl) {\n this.annotationMenuObj.enableRtl = true;\n }\n this.annotationMenuObj.appendTo(annotationMenuElement);\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n this.annotationMenuObj.animationSettings.effect = 'ZoomIn';\n }\n else {\n this.annotationMenuObj.animationSettings.effect = 'SlideDown';\n }\n };\n // eslint-disable-next-line\n NavigationPane.prototype.annotationMenuItemSelect = function (args) {\n if (this.pdfViewer.annotationModule && this.pdfViewer.annotationModule.inkAnnotationModule) {\n // eslint-disable-next-line\n var currentPageNumber = parseInt(this.pdfViewer.annotationModule.inkAnnotationModule.currentPageNumber);\n this.pdfViewer.annotationModule.inkAnnotationModule.drawInkAnnotation(currentPageNumber);\n }\n if (args.item) {\n switch (args.item.text) {\n case this.pdfViewer.localeObj.getConstant('Export Annotations'):\n this.pdfViewerBase.exportAnnotations(AnnotationDataFormat.Json);\n break;\n case this.pdfViewer.localeObj.getConstant('Import Annotations'):\n this.importAnnotationIconClick(args);\n break;\n case this.pdfViewer.localeObj.getConstant('Export XFDF'):\n this.pdfViewerBase.exportAnnotations(AnnotationDataFormat.Xfdf);\n break;\n case this.pdfViewer.localeObj.getConstant('Import XFDF'):\n this.importXFdfAnnotationIconClick(args);\n break;\n default:\n break;\n }\n }\n };\n NavigationPane.prototype.createFileElement = function (toolbarElement) {\n // eslint-disable-next-line max-len\n this.annotationInputElement = createElement('input', { id: this.pdfViewer.element.id + '_annotationUploadElement', styles: 'position:fixed; left:-100em', attrs: { 'type': 'file', 'aria-label': 'upload elements' } });\n this.annotationInputElement.setAttribute('accept', '.json');\n toolbarElement.appendChild(this.annotationInputElement);\n this.annotationInputElement.addEventListener('change', this.loadImportAnnotation);\n };\n NavigationPane.prototype.createXFdfFileElement = function (toolbarElement) {\n // eslint-disable-next-line max-len\n this.annotationXFdfInputElement = createElement('input', { id: this.pdfViewer.element.id + '_annotationXFdfUploadElement', styles: 'position:fixed; left:-100em', attrs: { 'type': 'file', 'aria-label': 'upload elements' } });\n this.annotationXFdfInputElement.setAttribute('accept', '.xfdf');\n toolbarElement.appendChild(this.annotationXFdfInputElement);\n this.annotationXFdfInputElement.addEventListener('change', this.loadImportAnnotation);\n };\n NavigationPane.prototype.importAnnotationIconClick = function (args) {\n this.annotationInputElement.click();\n };\n NavigationPane.prototype.importXFdfAnnotationIconClick = function (args) {\n this.annotationXFdfInputElement.click();\n };\n /**\n * @private\n * @returns {void}\n */\n NavigationPane.prototype.closeCommentPanelContainer = function () {\n var proxy = null;\n proxy = this;\n var viewerContainer = document.getElementById(this.pdfViewer.element.id + '_viewerContainer');\n var pageContainer = document.getElementById(this.pdfViewer.element.id + '_pageViewContainer');\n var commentPanel = document.getElementById(this.pdfViewer.element.id + '_commantPanel');\n if (commentPanel) {\n commentPanel.style.display = 'none';\n if (proxy.commentPanelResizer) {\n proxy.commentPanelResizer.style.display = 'none';\n }\n if (viewerContainer) {\n if (this.pdfViewer.enableRtl) {\n viewerContainer.style.left = proxy.getViewerContainerRight() + 'px';\n }\n else {\n viewerContainer.style.right = proxy.getViewerContainerRight() + 'px';\n }\n // eslint-disable-next-line max-len\n viewerContainer.style.width = (proxy.pdfViewer.element.clientWidth - proxy.getViewerContainerLeft() - proxy.getViewerContainerRight()) + 'px';\n pageContainer.style.width = (proxy.pdfViewerBase.viewerContainer.offsetWidth - proxy.getViewerContainerScrollbarWidth()) + 'px';\n }\n if (proxy.pdfViewerBase) {\n proxy.pdfViewerBase.updateZoomValue();\n }\n if (this.pdfViewer.annotation && this.pdfViewer.annotation.textMarkupAnnotationModule) {\n this.pdfViewer.annotation.textMarkupAnnotationModule.showHideDropletDiv(true);\n }\n if (Browser.isDevice && !isBlazor()) {\n if (this.pdfViewer.toolbarModule.annotationToolbarModule.toolbar) {\n this.pdfViewer.toolbarModule.annotationToolbarModule.toolbar.element.style.display = 'block';\n if (this.pdfViewer.toolbarModule.annotationToolbarModule.propertyToolbar) {\n this.pdfViewer.toolbarModule.annotationToolbarModule.propertyToolbar.element.style.display = 'block';\n }\n }\n }\n }\n };\n /**\n * @private\n * @param {string} option - The option.\n * @returns {void}\n */\n NavigationPane.prototype.createNavigationPaneMobile = function (option) {\n var _this = this;\n this.isNavigationToolbarVisible = true;\n this.toolbarElement = createElement('div', { id: this.pdfViewer.element.id + '_navigationToolbar', className: 'e-pv-nav-toolbar' });\n this.pdfViewerBase.viewerMainContainer.insertBefore(this.toolbarElement, this.pdfViewerBase.viewerContainer);\n var items;\n if (option === 'search') {\n var searchTemplate = '
    ';\n items = [\n // eslint-disable-next-line max-len\n { prefixIcon: 'e-pv-backward-icon e-pv-icon', tooltipText: this.pdfViewer.localeObj.getConstant('Go Back'), id: this.pdfViewer.element.id + '_backward', click: this.goBackToToolbar.bind(this) },\n { template: searchTemplate },\n {\n prefixIcon: 'e-pv-search-icon e-pv-icon', id: this.pdfViewer.element.id + '_search_box-icon',\n click: function () {\n var iconElement = _this.pdfViewerBase.getElement('_search_box-icon').firstElementChild;\n if (iconElement.classList.contains('e-pv-search-close')) {\n _this.enableSearchItems(false);\n }\n _this.pdfViewer.textSearchModule.searchButtonClick(iconElement, _this.searchInput);\n }\n },\n {\n prefixIcon: 'e-pv-prev-search-icon e-pv-icon', id: this.pdfViewer.element.id + '_prev_occurrence',\n click: function (args) {\n _this.pdfViewer.textSearchModule.searchPrevious();\n }\n },\n {\n prefixIcon: 'e-pv-next-search-icon e-pv-icon', id: this.pdfViewer.element.id + '_next_occurrence',\n click: function (args) {\n _this.pdfViewer.textSearchModule.searchNext();\n }\n }\n ];\n }\n else {\n items = [\n // eslint-disable-next-line max-len\n { prefixIcon: 'e-pv-backward-icon e-pv-icon', id: this.pdfViewer.element.id + '_backward', click: this.goBackToToolbar.bind(this) },\n { text: this.pdfViewer.localeObj.getConstant('Bookmarks') }\n ];\n }\n this.toolbar = new Tool({ items: items, width: '', height: '', overflowMode: 'Popup' });\n if (this.pdfViewer.enableRtl) {\n this.toolbar.enableRtl = true;\n }\n this.toolbar.isStringTemplate = true;\n this.toolbar.appendTo(this.toolbarElement);\n if (option === 'search') {\n this.initiateSearchBox();\n }\n else {\n this.initiateBookmarks();\n }\n };\n NavigationPane.prototype.initiateSearchBox = function () {\n var _this = this;\n this.searchInput = this.pdfViewerBase.getElement('_search_input');\n this.pdfViewer.textSearchModule.searchBtn = this.pdfViewerBase.getElement('_search_box-icon').firstElementChild;\n this.searchInput.addEventListener('keyup', function (event) {\n _this.enableSearchItems(true);\n var searchString = _this.searchInput.value;\n if (event.which === 13) {\n _this.initiateTextSearch();\n }\n else {\n _this.pdfViewer.textSearchModule.resetVariables();\n }\n });\n this.pdfViewer.textSearchModule.searchInput = this.searchInput;\n this.setSearchInputWidth();\n this.enableSearchItems(false);\n this.searchInput.focus();\n };\n NavigationPane.prototype.enableSearchItems = function (isEnable) {\n if (!isBlazor()) {\n this.toolbar.enableItems(this.pdfViewerBase.getElement('_prev_occurrence').parentElement, isEnable);\n this.toolbar.enableItems(this.pdfViewerBase.getElement('_next_occurrence').parentElement, isEnable);\n }\n else {\n this.pdfViewer._dotnetInstance.invokeMethodAsync('EnableSearchItems', isEnable);\n }\n };\n NavigationPane.prototype.initiateBookmarks = function () {\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n this.pdfViewerBase.mobileScrollerContainer.style.display = 'none';\n // eslint-disable-next-line\n var mobileTool = document.querySelectorAll('.e-pv-mobile-annotation-toolbar');\n for (var i = 0; i < mobileTool.length; i++) {\n mobileTool[parseInt(i.toString(), 10)].style.display = 'none';\n }\n }\n // eslint-disable-next-line max-len\n var bookmarkContainer = createElement('div', { id: this.pdfViewer.element.id + '_bookmarks_container', className: 'e-pv-bookmark-container' });\n bookmarkContainer.style.width = '100%';\n bookmarkContainer.style.height = this.pdfViewerBase.viewerContainer.style.height;\n this.pdfViewerBase.getElement('_viewerMainContainer').appendChild(bookmarkContainer);\n this.pdfViewerBase.viewerContainer.style.display = 'none';\n this.isBookmarkListOpen = true;\n this.pdfViewer.bookmarkViewModule.renderBookmarkContentMobile();\n };\n NavigationPane.prototype.initiateTextSearch = function () {\n var inputString = this.searchInput.value;\n this.pdfViewer.textSearchModule.initiateSearch(inputString);\n };\n /**\n * @private\n * @returns {void}\n */\n NavigationPane.prototype.goBackToToolbar = function () {\n this.isNavigationToolbarVisible = false;\n if (isBlazor() && (!Browser.isDevice || this.pdfViewer.enableDesktopMode) || !isBlazor()) {\n this.pdfViewer.textSearchModule.cancelTextSearch();\n }\n this.searchInput = null;\n if (this.pdfViewer.bookmarkViewModule.childNavigateCount !== 0) {\n this.pdfViewer.bookmarkViewModule.bookmarkList.back();\n this.pdfViewer.bookmarkViewModule.childNavigateCount--;\n }\n else {\n if (this.toolbar != null) {\n this.toolbar.destroy();\n this.toolbar = null;\n }\n var bookmarkContainer = this.pdfViewerBase.getElement('_bookmarks_container');\n if (bookmarkContainer) {\n bookmarkContainer.parentElement.removeChild(bookmarkContainer);\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n this.pdfViewerBase.mobileScrollerContainer.style.display = '';\n }\n }\n if (this.toolbarElement && this.toolbarElement.parentElement != null) {\n this.toolbarElement.parentElement.removeChild(this.toolbarElement);\n }\n this.pdfViewerBase.viewerContainer.style.display = 'block';\n this.isBookmarkListOpen = false;\n if (!isBlazor()) {\n if (!this.pdfViewer.toolbar.annotationToolbarModule.isMobileAnnotEnabled) {\n this.pdfViewer.toolbarModule.showToolbar(true);\n }\n }\n else {\n this.pdfViewerBase.onWindowResize();\n }\n }\n };\n NavigationPane.prototype.setSearchInputWidth = function () {\n var searchInputParent = this.searchInput.parentElement;\n var padding = window.getComputedStyle(searchInputParent.parentElement, null).getPropertyValue('padding-left');\n if (isBlazor() && (Browser.isDevice && !this.pdfViewer.enableDesktopMode)) {\n this.toolbarElement = this.pdfViewerBase.getElement('_navigationToolbar');\n }\n // eslint-disable-next-line max-len\n var width = this.toolbarElement.clientWidth - this.getParentElementSearchBox('_backward').clientWidth\n - this.getParentElementSearchBox('_search_box-icon').clientWidth - this.getParentElementSearchBox('_prev_occurrence').clientWidth\n - this.getParentElementSearchBox('_next_occurrence').clientWidth - 6;\n if (padding !== '') {\n width = width - (parseFloat(padding) * 2);\n }\n searchInputParent.style.width = width + 'px';\n };\n NavigationPane.prototype.getParentElementSearchBox = function (idString) {\n return this.pdfViewerBase.getElement(idString).parentElement;\n };\n /**\n * @private\n * @param {string} text - The text.\n * @returns {void}\n */\n NavigationPane.prototype.createTooltipMobile = function (text) {\n if (!this.isTooltipCreated) {\n //boolean to prevent again toast creation.\n this.createMobileTooltip(text);\n }\n else {\n if (this.toastObject) {\n this.toastObject.title = text;\n var tooltipElement = this.pdfViewerBase.getElement('_container_tooltip');\n var tooltipChild = tooltipElement.firstElementChild;\n if (tooltipChild) {\n tooltipChild.style.width = 'auto';\n tooltipChild.firstElementChild.firstElementChild.textContent = text;\n }\n else {\n this.isTooltipCreated = false;\n var tooltipElement_1 = this.pdfViewerBase.getElement('_container_tooltip');\n if (this.toastObject) {\n this.toastObject.destroy();\n }\n tooltipElement_1.parentElement.removeChild(tooltipElement_1);\n this.toastObject = null;\n this.createMobileTooltip(text);\n }\n }\n }\n };\n NavigationPane.prototype.createMobileTooltip = function (text) {\n // eslint-disable-next-line max-len\n var tooltipDiv = createElement('div', { className: 'e-pv-container-tooltip', id: this.pdfViewer.element.id + '_container_tooltip' });\n this.pdfViewer.element.appendChild(tooltipDiv);\n // eslint-disable-next-line max-len\n this.toastObject = new Toast({ title: text, target: this.pdfViewer.element, close: this.onTooltipClose.bind(this), position: { X: 0, Y: 0 }, animation: { hide: { duration: 200, effect: 'FadeOut' } } });\n this.toastObject.appendTo(tooltipDiv);\n var y = this.pdfViewer.element.clientHeight * 0.65;\n var x = (this.pdfViewer.element.clientWidth - tooltipDiv.clientWidth) / 2;\n this.isTooltipCreated = true;\n this.toastObject.show({ position: { X: x, Y: y } });\n var tooltipChild = tooltipDiv.firstElementChild;\n if (tooltipChild) {\n tooltipChild.style.width = 'auto';\n }\n };\n NavigationPane.prototype.onTooltipClose = function (args) {\n if (this.pdfViewer.textSearchModule) {\n this.isTooltipCreated = false;\n var tooltipElement = this.pdfViewerBase.getElement('_container_tooltip');\n this.pdfViewer.textSearchModule.isMessagePopupOpened = false;\n if (this.toastObject) {\n this.toastObject.destroy();\n }\n tooltipElement.parentElement.removeChild(tooltipElement);\n this.toastObject = null;\n }\n };\n /**\n * @private\n * @returns {void}\n */\n NavigationPane.prototype.toolbarResize = function () {\n if (this.searchInput) {\n this.searchInput.style.width = 'auto';\n this.setSearchInputWidth();\n }\n };\n NavigationPane.prototype.createSidebarToolBar = function () {\n if (!isBlazor()) {\n // eslint-disable-next-line max-len\n this.thumbnailButton = createElement('button', { id: this.pdfViewer.element.id + '_thumbnail-view', attrs: { 'disabled': 'disabled', 'aria-label': 'Page Thumbnails', 'tabindex': '-1' } });\n this.thumbnailButton.className = 'e-pv-tbar-btn e-pv-thumbnail-view-button e-btn';\n this.thumbnailButton.setAttribute('type', 'button');\n // eslint-disable-next-line max-len\n var thumbnailButtonSpan = createElement('span', { id: this.pdfViewer.element.id + '_thumbnail-view' + '_icon', className: 'e-pv-thumbnail-view-disable-icon e-pv-icon' });\n this.thumbnailButton.appendChild(thumbnailButtonSpan);\n // eslint-disable-next-line max-len\n var thumbnailTooltip = new Tooltip({ content: this.pdfViewer.localeObj.getConstant('Page Thumbnails'), opensOn: 'Hover', beforeOpen: this.onTooltipBeforeOpen.bind(this) });\n thumbnailTooltip.appendTo(this.thumbnailButton);\n // eslint-disable-next-line max-len\n this.bookmarkButton = createElement('button', { id: this.pdfViewer.element.id + '_bookmark', attrs: { 'disabled': 'disabled', 'aria-label': 'Bookmarks', 'tabindex': '-1' } });\n this.bookmarkButton.setAttribute('type', 'button');\n this.bookmarkButton.className = 'e-pv-tbar-btn e-pv-bookmark-button e-btn';\n // eslint-disable-next-line max-len\n var buttonSpan = createElement('span', { id: this.pdfViewer.element.id + '_bookmark' + '_icon', className: 'e-pv-bookmark-disable-icon e-pv-icon' });\n this.bookmarkButton.appendChild(buttonSpan);\n // eslint-disable-next-line max-len\n var bookMarkTooltip = new Tooltip({ content: this.pdfViewer.localeObj.getConstant('Bookmarks'), opensOn: 'Hover', beforeOpen: this.onTooltipBeforeOpen.bind(this) });\n bookMarkTooltip.appendTo(this.bookmarkButton);\n this.sideBarToolbar.appendChild(this.thumbnailButton);\n this.sideBarToolbar.appendChild(this.bookmarkButton);\n }\n else {\n this.thumbnailButton = this.pdfViewer.element.querySelector('.e-pv-thumbnail-view-button');\n this.bookmarkButton = this.pdfViewer.element.querySelector('.e-pv-bookmark-button');\n }\n this.thumbnailButton.addEventListener('click', this.sideToolbarOnClick);\n this.bookmarkButton.addEventListener('click', this.bookmarkButtonOnClick);\n };\n NavigationPane.prototype.onTooltipBeforeOpen = function (args) {\n if (!this.pdfViewer.toolbarSettings.showTooltip) {\n args.cancel = true;\n }\n };\n /**\n * @private\n * @returns {void}\n */\n NavigationPane.prototype.enableThumbnailButton = function () {\n if (this.thumbnailButton) {\n this.thumbnailButton.removeAttribute('disabled');\n this.thumbnailButton.children[0].classList.remove('e-pv-thumbnail-view-disable-icon');\n this.thumbnailButton.children[0].classList.add('e-pv-thumbnail-view-icon');\n }\n };\n /**\n * @private\n * @returns {void}\n */\n NavigationPane.prototype.enableBookmarkButton = function () {\n if (this.bookmarkButton) {\n this.bookmarkButton.removeAttribute('disabled');\n this.bookmarkButton.children[0].classList.remove('e-pv-bookmark-disable-icon');\n this.bookmarkButton.children[0].classList.add('e-pv-bookmark-icon');\n }\n };\n NavigationPane.prototype.createSidebarTitleCloseButton = function () {\n this.closeDiv = createElement('button', { id: this.pdfViewer.element.id + '_close_btn' });\n this.closeDiv.setAttribute('aria-label', 'close button');\n this.closeDiv.setAttribute('type', 'button');\n this.closeDiv.className = 'e-btn e-pv-tbar-btn e-pv-title-close-div e-btn';\n if (this.pdfViewer.enableRtl) {\n this.closeDiv.style.left = 8 + 'px';\n }\n else {\n this.closeDiv.style.left = this.closeButtonLeft + 'px';\n }\n // eslint-disable-next-line max-len\n var buttonSpan = createElement('span', { id: this.pdfViewer.element.id + '_close' + '_icon', className: 'e-pv-title-close-icon e-pv-icon' });\n this.closeDiv.appendChild(buttonSpan);\n this.sideBarTitleContainer.appendChild(this.closeDiv);\n this.closeDiv.addEventListener('click', this.sideToolbarOnClose);\n };\n NavigationPane.prototype.createResizeIcon = function () {\n // eslint-disable-next-line max-len\n this.resizeIcon = createElement('div', { id: this.pdfViewer.element.id + '_resize', className: 'e-pv-resize-icon e-pv-icon' });\n this.setResizeIconTop();\n this.resizeIcon.style.position = 'absolute';\n this.resizeIcon.addEventListener('click', this.sideToolbarOnClose);\n this.resizeIcon.addEventListener('mouseover', this.resizeIconMouseOver);\n this.sideBarResizer.appendChild(this.resizeIcon);\n };\n /**\n * @private\n * @returns {void}\n */\n NavigationPane.prototype.setResizeIconTop = function () {\n // eslint-disable-next-line max-len\n if (this.sideBarToolbar && this.sideBarToolbar.clientHeight && this.resizeIcon.style.top === '') {\n this.resizeIcon.style.top = (this.sideBarToolbar.clientHeight) / 2 + 'px';\n }\n };\n /**\n * @private\n * @returns {void}\n */\n NavigationPane.prototype.setCommentPanelResizeIconTop = function () {\n // eslint-disable-next-line max-len\n if (this.commentPanelContainer && this.commentPanelContainer.clientHeight && this.commentPanelResizeIcon && this.commentPanelResizeIcon.style.top === '') {\n this.commentPanelResizeIcon.style.top = (this.commentPanelContainer.clientHeight) / 2 + 'px';\n }\n };\n Object.defineProperty(NavigationPane.prototype, \"outerContainerWidth\", {\n /**\n * @private\n * @returns {number} - Returns the number.\n */\n get: function () {\n if (!this.mainContainerWidth) {\n this.mainContainerWidth = this.pdfViewerBase.mainContainer.clientWidth;\n }\n return this.mainContainerWidth;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @private\n * @returns {number} - Returns the number.\n */\n NavigationPane.prototype.getViewerContainerScrollbarWidth = function () {\n // eslint-disable-next-line max-len\n return (this.pdfViewerBase.viewerContainer.offsetWidth + this.pdfViewerBase.viewerContainer.offsetLeft) - (this.pdfViewerBase.viewerContainer.clientWidth + this.pdfViewerBase.viewerContainer.offsetLeft);\n };\n Object.defineProperty(NavigationPane.prototype, \"sideToolbarWidth\", {\n /**\n * @private\n * @returns {number} - Returns the number.\n */\n get: function () {\n if (this.sideBarToolbar) {\n return this.sideBarToolbar.clientWidth;\n }\n else {\n return 0;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(NavigationPane.prototype, \"sideBarContentContainerWidth\", {\n /**\n * @private\n * @returns {number} - Returns the number.\n */\n get: function () {\n if (this.sideBarContentContainer) {\n return this.sideBarContentContainer.clientWidth;\n }\n else {\n return 0;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(NavigationPane.prototype, \"commentPanelContainerWidth\", {\n /**\n * @private\n * @returns {number} - Returns the number.\n */\n get: function () {\n if (this.commentPanelContainer) {\n return this.commentPanelContainer.offsetWidth;\n }\n else {\n return 0;\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @private\n * @returns {void}\n */\n NavigationPane.prototype.updateViewerContainerOnClose = function () {\n var proxy = null;\n proxy = this;\n if (proxy.sideBarContentContainer) {\n proxy.sideBarContentContainer.style.display = 'none';\n if (this.pdfViewer.enableRtl) {\n proxy.pdfViewerBase.viewerContainer.style.right = (proxy.sideToolbarWidth) + 'px';\n }\n else {\n proxy.pdfViewerBase.viewerContainer.style.left = (proxy.sideToolbarWidth) + 'px';\n }\n // eslint-disable-next-line max-len\n proxy.pdfViewerBase.viewerContainer.style.width = (proxy.pdfViewer.element.clientWidth - proxy.sideToolbarWidth - proxy.getViewerContainerRight()) + 'px';\n // eslint-disable-next-line max-len\n proxy.pdfViewerBase.pageContainer.style.width = (proxy.pdfViewerBase.viewerContainer.offsetWidth - proxy.getViewerContainerScrollbarWidth()) + 'px';\n if (this.restrictUpdateZoomValue) {\n proxy.pdfViewerBase.updateZoomValue();\n }\n }\n };\n /**\n * @private\n * @returns {void}\n */\n NavigationPane.prototype.updateViewerContainerOnExpand = function () {\n var proxy = null;\n proxy = this;\n if (proxy.sideBarContentContainer) {\n proxy.sideBarContentContainer.style.display = 'block';\n if (this.pdfViewer.enableRtl) {\n // eslint-disable-next-line max-len\n proxy.pdfViewerBase.viewerContainer.style.right = proxy.getViewerContainerLeft() + 'px';\n }\n else {\n // eslint-disable-next-line max-len\n proxy.pdfViewerBase.viewerContainer.style.left = proxy.getViewerContainerLeft() + 'px';\n }\n // eslint-disable-next-line max-len\n proxy.pdfViewerBase.viewerContainer.style.width = (proxy.pdfViewer.element.clientWidth - this.getViewerContainerLeft() - this.getViewerContainerRight()) + 'px';\n proxy.pdfViewerBase.pageContainer.style.width = proxy.pdfViewerBase.viewerContainer.clientWidth + 'px';\n proxy.pdfViewerBase.updateZoomValue();\n if (proxy.pdfViewer.enableThumbnail) {\n proxy.pdfViewer.thumbnailViewModule.gotoThumbnailImage(proxy.pdfViewerBase.currentPageNumber - 1);\n }\n }\n };\n /**\n * @private\n * @returns {number} - Returns the number.\n */\n NavigationPane.prototype.getViewerContainerLeft = function () {\n if (this.sideToolbarWidth) {\n return (this.sideToolbarWidth + this.sideBarContentContainerWidth);\n }\n else {\n return 0;\n }\n };\n /**\n * @private\n * @returns {number} - Returns the number.\n */\n NavigationPane.prototype.getViewerContainerRight = function () {\n if (this.commentPanelResizer) {\n return (this.commentPanelContainerWidth + this.commentPanelResizer.clientWidth);\n }\n else {\n return 0;\n }\n };\n /**\n * @private\n * @returns {number} - Returns the number.\n */\n NavigationPane.prototype.getViewerMainContainerWidth = function () {\n return this.pdfViewer.element.clientWidth - this.sideToolbarWidth;\n };\n /**\n * @private\n * @returns {void}\n */\n NavigationPane.prototype.setThumbnailSelectionIconTheme = function () {\n if (this.thumbnailButton) {\n this.thumbnailButton.children[0].classList.remove('e-pv-thumbnail-view-icon');\n this.thumbnailButton.children[0].classList.add('e-pv-thumbnail-view-selection-icon');\n this.thumbnailButton.classList.add('e-pv-thumbnail-view-button-selection');\n }\n };\n NavigationPane.prototype.removeThumbnailSelectionIconTheme = function () {\n if (this.thumbnailButton && this.thumbnailButton.children[0]) {\n this.thumbnailButton.children[0].classList.add('e-pv-thumbnail-view-icon');\n this.thumbnailButton.children[0].classList.remove('e-pv-thumbnail-view-selection-icon');\n this.thumbnailButton.classList.remove('e-pv-thumbnail-view-button-selection');\n }\n };\n NavigationPane.prototype.resetThumbnailIcon = function () {\n if (this.thumbnailButton && this.thumbnailButton.children[0]) {\n this.thumbnailButton.children[0].classList.remove('e-pv-thumbnail-view-icon');\n this.thumbnailButton.children[0].classList.add('e-pv-thumbnail-view-disable-icon');\n }\n };\n /**\n * @private\n * @returns {void}\n */\n NavigationPane.prototype.resetThumbnailView = function () {\n if (this.sideBarContentContainer) {\n this.sideBarContentContainer.style.display = 'none';\n if (this.pdfViewer.enableRtl) {\n this.pdfViewerBase.viewerContainer.style.left = 1 + 'px';\n }\n else {\n this.pdfViewerBase.viewerContainer.style.left = (this.sideToolbarWidth) + 'px';\n }\n // eslint-disable-next-line max-len\n this.pdfViewerBase.viewerContainer.style.width = (this.pdfViewer.element.clientWidth - this.sideToolbarWidth - this.getViewerContainerRight()) + 'px';\n if (this.pdfViewerBase.pageContainer) {\n this.pdfViewerBase.pageContainer.style.width = this.pdfViewerBase.viewerContainer.clientWidth + 'px';\n }\n this.thumbnailButton.setAttribute('disabled', 'disabled');\n this.removeThumbnailSelectionIconTheme();\n this.resetThumbnailIcon();\n }\n };\n NavigationPane.prototype.setBookmarkSelectionIconTheme = function () {\n if (this.bookmarkButton) {\n this.bookmarkButton.children[0].classList.remove('e-pv-bookmark-icon');\n this.bookmarkButton.children[0].classList.add('e-pv-bookmark-selection-icon');\n this.bookmarkButton.classList.add('e-pv-bookmark-button-selection');\n }\n };\n NavigationPane.prototype.removeBookmarkSelectionIconTheme = function () {\n if (this.bookmarkButton && this.bookmarkButton.children[0]) {\n this.bookmarkButton.children[0].classList.add('e-pv-bookmark-icon');\n this.bookmarkButton.children[0].classList.remove('e-pv-bookmark-selection-icon');\n this.bookmarkButton.classList.remove('e-pv-bookmark-button-selection');\n }\n };\n NavigationPane.prototype.sideToolbarOnMouseup = function (event) {\n if (event.target === this.sideBarToolbar) {\n this.pdfViewerBase.focusViewerContainer();\n }\n };\n NavigationPane.prototype.sideBarTitleOnMouseup = function (event) {\n this.pdfViewerBase.focusViewerContainer();\n };\n /**\n * @private\n * @returns {void}\n */\n NavigationPane.prototype.openBookmarkcontentInitially = function () {\n var proxy = null;\n proxy = this;\n if (document.getElementById(this.pdfViewer.element.id + '_thumbnail_view')) {\n document.getElementById(this.pdfViewer.element.id + '_thumbnail_view').style.display = 'none';\n }\n this.removeThumbnailSelectionIconTheme();\n this.sideBarTitle.textContent = this.pdfViewer.localeObj.getConstant('Bookmarks');\n this.sideBarContent.setAttribute('aria-label', 'Bookmark View Panel');\n this.pdfViewer.bookmarkViewModule.renderBookmarkcontent();\n if (this.sideBarContentContainer) {\n if (proxy.sideBarContentContainer.style.display !== 'none') {\n if (this.isThumbnailOpen) {\n this.setBookmarkSelectionIconTheme();\n this.isBookmarkOpen = true;\n this.updateViewerContainerOnExpand();\n }\n else {\n this.removeBookmarkSelectionIconTheme();\n this.isBookmarkOpen = false;\n this.updateViewerContainerOnClose();\n }\n }\n else {\n this.sideBarContent.focus();\n this.setBookmarkSelectionIconTheme();\n this.isBookmarkOpen = true;\n this.updateViewerContainerOnExpand();\n }\n }\n this.isThumbnailOpen = false;\n if (this.pdfViewer.annotationModule && this.pdfViewer.annotationModule.inkAnnotationModule) {\n // eslint-disable-next-line\n var currentPageNumber = parseInt(this.pdfViewer.annotationModule.inkAnnotationModule.currentPageNumber);\n this.pdfViewer.annotationModule.inkAnnotationModule.drawInkAnnotation(currentPageNumber);\n }\n };\n /**\n * @private\n * @returns {void}\n */\n NavigationPane.prototype.disableBookmarkButton = function () {\n if (this.sideBarContentContainer && this.bookmarkButton && this.bookmarkButton.children[0]) {\n this.sideBarContentContainer.style.display = 'none';\n this.bookmarkButton.setAttribute('disabled', 'disabled');\n this.bookmarkButton.children[0].classList.add('e-pv-bookmark-disable-icon');\n }\n };\n /**\n * @private\n * @returns {void}\n */\n NavigationPane.prototype.clear = function () {\n if (!Browser.isDevice) {\n this.removeBookmarkSelectionIconTheme();\n this.removeThumbnailSelectionIconTheme();\n this.closeCommentPanelContainer();\n }\n if (this.commentsContentContainer) {\n this.commentsContentContainer.innerHTML = '';\n }\n };\n /**\n * @private\n * @returns {void}\n */\n NavigationPane.prototype.destroy = function () {\n var bookmarkButtonInstance = this.bookmarkButton;\n var thumbnailButtonInstance = this.thumbnailButton;\n if (bookmarkButtonInstance && bookmarkButtonInstance.ej2_instances && bookmarkButtonInstance.ej2_instances.length > 0) {\n bookmarkButtonInstance.ej2_instances[0].destroy();\n }\n if (thumbnailButtonInstance && thumbnailButtonInstance.ej2_instances && thumbnailButtonInstance.ej2_instances.length > 0) {\n thumbnailButtonInstance.ej2_instances[0].destroy();\n }\n if (this.annotationMenuObj) {\n var annotationMenuElement = this.annotationMenuObj.element;\n annotationMenuElement && annotationMenuElement.ej2_instances && annotationMenuElement.ej2_instances.length > 0 ? this.annotationMenuObj.destroy() : null;\n }\n };\n /**\n * @returns {string} - Returns the string.\n */\n NavigationPane.prototype.getModuleName = function () {\n return 'NavigationPane';\n };\n return NavigationPane;\n}());\nexport { NavigationPane };\n","/**\n * enum module defines the public enumerations\n */\n/**\n * Defines the container/canvas transform\n * Self - Sets the transform type as Self\n * Parent - Sets the transform type as Parent\n */\nexport var RotateTransform;\n(function (RotateTransform) {\n /** Self - Sets the transform type as Self */\n RotateTransform[RotateTransform[\"Self\"] = 1] = \"Self\";\n /** Parent - Sets the transform type as Parent */\n RotateTransform[RotateTransform[\"Parent\"] = 2] = \"Parent\";\n})(RotateTransform || (RotateTransform = {}));\n/** Enables/Disables The element actions\n * None - Diables all element actions are none\n * ElementIsPort - Enable element action is port\n * ElementIsGroup - Enable element action as Group\n * @private\n */\nexport var ElementAction;\n(function (ElementAction) {\n /** Disables all element actions are none */\n ElementAction[ElementAction[\"None\"] = 0] = \"None\";\n /** Enable the element action is Port */\n ElementAction[ElementAction[\"ElementIsPort\"] = 2] = \"ElementIsPort\";\n /** Enable the element action as Group */\n ElementAction[ElementAction[\"ElementIsGroup\"] = 4] = \"ElementIsGroup\";\n})(ElementAction || (ElementAction = {}));\n/**\n * Defines the constraints to enable/disable certain features of connector.\n * * None - Interaction of the connectors cannot be done.\n * * Select - Selects the connector.\n * * Delete - Delete the connector.\n * * Drag - Drag the connector.\n * * DragSourceEnd - Drag the source end of the connector.\n * * DragTargetEnd - Drag the target end of the connector.\n * * DragSegmentThump - Drag the segment thumb of the connector.\n * * AllowDrop - Allow to drop a node.\n * * Bridging - Creates bridge on intersection of two connectors.\n * * BridgeObstacle -\n * * InheritBridging - Creates bridge on intersection of two connectors.\n * * PointerEvents - Sets the pointer events.\n * * Tooltip - Displays a tooltip for the connectors.\n * * InheritToolTip - Displays a tooltip for the connectors.\n * * Interaction - Features of the connector used for interaction.\n * * ReadOnly - Enables ReadOnly\n * * Default - Default features of the connector.\n * @aspNumberEnum\n * @IgnoreSingular\n */\nexport var ConnectorConstraints;\n(function (ConnectorConstraints) {\n /** Disable all connector Constraints. */\n ConnectorConstraints[ConnectorConstraints[\"None\"] = 1] = \"None\";\n /** Enables connector to be selected. */\n ConnectorConstraints[ConnectorConstraints[\"Select\"] = 2] = \"Select\";\n /** Enables connector to be Deleted. */\n ConnectorConstraints[ConnectorConstraints[\"Delete\"] = 4] = \"Delete\";\n /** Enables connector to be Dragged. */\n ConnectorConstraints[ConnectorConstraints[\"Drag\"] = 8] = \"Drag\";\n /** Enables connectors source end to be selected. */\n ConnectorConstraints[ConnectorConstraints[\"DragSourceEnd\"] = 16] = \"DragSourceEnd\";\n /** Enables connectors target end to be selected. */\n ConnectorConstraints[ConnectorConstraints[\"DragTargetEnd\"] = 32] = \"DragTargetEnd\";\n /** Enables control point and end point of every segment in a connector for editing. */\n ConnectorConstraints[ConnectorConstraints[\"DragSegmentThumb\"] = 64] = \"DragSegmentThumb\";\n /** Enables AllowDrop constraints to the connector. */\n ConnectorConstraints[ConnectorConstraints[\"AllowDrop\"] = 128] = \"AllowDrop\";\n /** Enables bridging to the connector. */\n ConnectorConstraints[ConnectorConstraints[\"Bridging\"] = 256] = \"Bridging\";\n /** Enables or Disables Bridge Obstacles with overlapping of connectors. */\n ConnectorConstraints[ConnectorConstraints[\"BridgeObstacle\"] = 512] = \"BridgeObstacle\";\n /** Enables bridging to the connector. */\n ConnectorConstraints[ConnectorConstraints[\"InheritBridging\"] = 1024] = \"InheritBridging\";\n /** Used to set the pointer events. */\n ConnectorConstraints[ConnectorConstraints[\"PointerEvents\"] = 2048] = \"PointerEvents\";\n /** Enables or disables tool tip for the connectors */\n ConnectorConstraints[ConnectorConstraints[\"Tooltip\"] = 4096] = \"Tooltip\";\n /** Enables or disables tool tip for the connectors */\n ConnectorConstraints[ConnectorConstraints[\"InheritTooltip\"] = 8192] = \"InheritTooltip\";\n /** Enables Interaction. */\n ConnectorConstraints[ConnectorConstraints[\"Interaction\"] = 4218] = \"Interaction\";\n /** Enables ReadOnly */\n ConnectorConstraints[ConnectorConstraints[\"ReadOnly\"] = 16384] = \"ReadOnly\";\n /** Enables all constraints. */\n ConnectorConstraints[ConnectorConstraints[\"Default\"] = 11838] = \"Default\";\n})(ConnectorConstraints || (ConnectorConstraints = {}));\n/** Enables/Disables the handles of the selector\n * Rotate - Enable Rotate Thumb\n * ConnectorSource - Enable Connector source point\n * ConnectorTarget - Enable Connector target point\n * ResizeNorthEast - Enable ResizeNorthEast Resize\n * ResizeEast - Enable ResizeEast Resize\n * ResizeSouthEast - Enable ResizeSouthEast Resize\n * ResizeSouth - Enable ResizeSouth Resize\n * ResizeSouthWest - Enable ResizeSouthWest Resize\n * ResizeWest - Enable ResizeWest Resize\n * ResizeNorthWest - Enable ResizeNorthWest Resize\n * ResizeNorth - Enable ResizeNorth Resize\n * Default - Enables all constraints\n * @private\n */\nexport var ThumbsConstraints;\n(function (ThumbsConstraints) {\n /** Enable Rotate Thumb */\n ThumbsConstraints[ThumbsConstraints[\"Rotate\"] = 2] = \"Rotate\";\n /** Enable Connector source point */\n ThumbsConstraints[ThumbsConstraints[\"ConnectorSource\"] = 4] = \"ConnectorSource\";\n /** Enable Connector target point */\n ThumbsConstraints[ThumbsConstraints[\"ConnectorTarget\"] = 8] = \"ConnectorTarget\";\n /** Enable ResizeNorthEast Resize */\n ThumbsConstraints[ThumbsConstraints[\"ResizeNorthEast\"] = 16] = \"ResizeNorthEast\";\n /** Enable ResizeEast Resize */\n ThumbsConstraints[ThumbsConstraints[\"ResizeEast\"] = 32] = \"ResizeEast\";\n /** Enable ResizeSouthEast Resize */\n ThumbsConstraints[ThumbsConstraints[\"ResizeSouthEast\"] = 64] = \"ResizeSouthEast\";\n /** Enable ResizeSouth Resize */\n ThumbsConstraints[ThumbsConstraints[\"ResizeSouth\"] = 128] = \"ResizeSouth\";\n /** Enable ResizeSouthWest Resize */\n ThumbsConstraints[ThumbsConstraints[\"ResizeSouthWest\"] = 256] = \"ResizeSouthWest\";\n /** Enable ResizeWest Resize */\n ThumbsConstraints[ThumbsConstraints[\"ResizeWest\"] = 512] = \"ResizeWest\";\n /** Enable ResizeNorthWest Resize */\n ThumbsConstraints[ThumbsConstraints[\"ResizeNorthWest\"] = 1024] = \"ResizeNorthWest\";\n /** Enable ResizeNorth Resize */\n ThumbsConstraints[ThumbsConstraints[\"ResizeNorth\"] = 2048] = \"ResizeNorth\";\n /** Enables all constraints */\n ThumbsConstraints[ThumbsConstraints[\"Default\"] = 4094] = \"Default\";\n})(ThumbsConstraints || (ThumbsConstraints = {}));\n/**\n * Defines the visibility of the selector handles\n * None - Hides all the selector elements\n * ConnectorSourceThumb - Shows/hides the source thumb of the connector\n * ConnectorTargetThumb - Shows/hides the target thumb of the connector\n * ResizeSouthEast - Shows/hides the bottom right resize handle of the selector\n * ResizeSouthWest - Shows/hides the bottom left resize handle of the selector\n * ResizeNorthEast - Shows/hides the top right resize handle of the selector\n * ResizeNorthWest - Shows/hides the top left resize handle of the selector\n * ResizeEast - Shows/hides the middle right resize handle of the selector\n * ResizeWest - Shows/hides the middle left resize handle of the selector\n * ResizeSouth - Shows/hides the bottom center resize handle of the selector\n * ResizeNorth - Shows/hides the top center resize handle of the selector\n * Rotate - Shows/hides the rotate handle of the selector\n * UserHandles - Shows/hides the user handles of the selector\n * Resize - Shows/hides all resize handles of the selector\n * @aspNumberEnum\n * @IgnoreSingular\n */\nexport var SelectorConstraints;\n(function (SelectorConstraints) {\n /** Hides all the selector elements */\n SelectorConstraints[SelectorConstraints[\"None\"] = 1] = \"None\";\n /** Shows/hides the source thumb of the connector */\n SelectorConstraints[SelectorConstraints[\"ConnectorSourceThumb\"] = 2] = \"ConnectorSourceThumb\";\n /** Shows/hides the target thumb of the connector */\n SelectorConstraints[SelectorConstraints[\"ConnectorTargetThumb\"] = 4] = \"ConnectorTargetThumb\";\n /** Shows/hides the bottom right resize handle of the selector */\n SelectorConstraints[SelectorConstraints[\"ResizeSouthEast\"] = 8] = \"ResizeSouthEast\";\n /** Shows/hides the bottom left resize handle of the selector */\n SelectorConstraints[SelectorConstraints[\"ResizeSouthWest\"] = 16] = \"ResizeSouthWest\";\n /** Shows/hides the top right resize handle of the selector */\n SelectorConstraints[SelectorConstraints[\"ResizeNorthEast\"] = 32] = \"ResizeNorthEast\";\n /** Shows/hides the top left resize handle of the selector */\n SelectorConstraints[SelectorConstraints[\"ResizeNorthWest\"] = 64] = \"ResizeNorthWest\";\n /** Shows/hides the middle right resize handle of the selector */\n SelectorConstraints[SelectorConstraints[\"ResizeEast\"] = 128] = \"ResizeEast\";\n /** Shows/hides the middle left resize handle of the selector */\n SelectorConstraints[SelectorConstraints[\"ResizeWest\"] = 256] = \"ResizeWest\";\n /** Shows/hides the bottom center resize handle of the selector */\n SelectorConstraints[SelectorConstraints[\"ResizeSouth\"] = 512] = \"ResizeSouth\";\n /** Shows/hides the top center resize handle of the selector */\n SelectorConstraints[SelectorConstraints[\"ResizeNorth\"] = 1024] = \"ResizeNorth\";\n /** Shows/hides the rotate handle of the selector */\n SelectorConstraints[SelectorConstraints[\"Rotate\"] = 2048] = \"Rotate\";\n /** Shows/hides the user handles of the selector */\n SelectorConstraints[SelectorConstraints[\"UserHandle\"] = 4096] = \"UserHandle\";\n /** Shows/hides the default tooltip of nodes and connectors */\n SelectorConstraints[SelectorConstraints[\"ToolTip\"] = 8192] = \"ToolTip\";\n /** Shows/hides all resize handles of the selector */\n SelectorConstraints[SelectorConstraints[\"ResizeAll\"] = 2046] = \"ResizeAll\";\n /** Shows all handles of the selector */\n SelectorConstraints[SelectorConstraints[\"All\"] = 16382] = \"All\";\n})(SelectorConstraints || (SelectorConstraints = {}));\n/** @private */\nexport var NoOfSegments;\n(function (NoOfSegments) {\n NoOfSegments[NoOfSegments[\"Zero\"] = 0] = \"Zero\";\n NoOfSegments[NoOfSegments[\"One\"] = 1] = \"One\";\n NoOfSegments[NoOfSegments[\"Two\"] = 2] = \"Two\";\n NoOfSegments[NoOfSegments[\"Three\"] = 3] = \"Three\";\n NoOfSegments[NoOfSegments[\"Four\"] = 4] = \"Four\";\n NoOfSegments[NoOfSegments[\"Five\"] = 5] = \"Five\";\n})(NoOfSegments || (NoOfSegments = {}));\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Component, EventHandler, Property, Event, Browser, L10n, getUniqueID } from '@syncfusion/ej2-base';\nimport { NotifyPropertyChanges } from '@syncfusion/ej2-base';\nimport { attributes, addClass, removeClass, detach, closest } from '@syncfusion/ej2-base';\nimport { isNullOrUndefined, getValue, formatUnit, setValue, merge } from '@syncfusion/ej2-base';\nimport { Internationalization, getNumericObject } from '@syncfusion/ej2-base';\nimport { Input } from '../input/input';\nvar ROOT = 'e-control-wrapper e-numeric';\nvar SPINICON = 'e-input-group-icon';\nvar SPINUP = 'e-spin-up';\nvar SPINDOWN = 'e-spin-down';\nvar ERROR = 'e-error';\nvar INCREMENT = 'increment';\nvar DECREMENT = 'decrement';\nvar INTREGEXP = new RegExp('^(-)?(\\\\d*)$');\nvar DECIMALSEPARATOR = '.';\nvar COMPONENT = 'e-numerictextbox';\nvar CONTROL = 'e-control';\nvar NUMERIC_FOCUS = 'e-input-focus';\nvar HIDDENELEMENT = 'e-numeric-hidden';\nvar wrapperAttributes = ['title', 'style', 'class'];\nvar selectionTimeOut = 0;\n/**\n * Represents the NumericTextBox component that allows the user to enter only numeric values.\n * ```html\n * \n * ```\n * ```typescript\n * \n * ```\n */\nvar NumericTextBox = /** @class */ (function (_super) {\n __extends(NumericTextBox, _super);\n /**\n *\n * @param {NumericTextBoxModel} options - Specifies the NumericTextBox model.\n * @param {string | HTMLInputElement} element - Specifies the element to render as component.\n * @private\n */\n function NumericTextBox(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.isVue = false;\n _this.preventChange = false;\n _this.isAngular = false;\n _this.isDynamicChange = false;\n _this.numericOptions = options;\n return _this;\n }\n NumericTextBox.prototype.preRender = function () {\n this.isPrevFocused = false;\n this.decimalSeparator = '.';\n // eslint-disable-next-line no-useless-escape\n this.intRegExp = new RegExp('/^(-)?(\\d*)$/');\n this.isCalled = false;\n var ejInstance = getValue('ej2_instances', this.element);\n this.cloneElement = this.element.cloneNode(true);\n removeClass([this.cloneElement], [CONTROL, COMPONENT, 'e-lib']);\n this.angularTagName = null;\n this.formEle = closest(this.element, 'form');\n if (this.element.tagName === 'EJS-NUMERICTEXTBOX') {\n this.angularTagName = this.element.tagName;\n var input = this.createElement('input');\n var index = 0;\n for (index; index < this.element.attributes.length; index++) {\n var attributeName = this.element.attributes[index].nodeName;\n if (attributeName !== 'id' && attributeName !== 'class') {\n input.setAttribute(this.element.attributes[index].nodeName, this.element.attributes[index].nodeValue);\n input.innerHTML = this.element.innerHTML;\n }\n else if (attributeName === 'class') {\n input.setAttribute(attributeName, this.element.className.split(' ').filter(function (item) { return item.indexOf('ng-') !== 0; }).join(' '));\n }\n }\n if (this.element.hasAttribute('name')) {\n this.element.removeAttribute('name');\n }\n this.element.classList.remove('e-control', 'e-numerictextbox');\n this.element.appendChild(input);\n this.element = input;\n setValue('ej2_instances', ejInstance, this.element);\n }\n attributes(this.element, { 'role': 'spinbutton', 'tabindex': '0', 'autocomplete': 'off' });\n var localeText = {\n incrementTitle: 'Increment value', decrementTitle: 'Decrement value', placeholder: this.placeholder\n };\n this.l10n = new L10n('numerictextbox', localeText, this.locale);\n if (this.l10n.getConstant('placeholder') !== '') {\n this.setProperties({ placeholder: this.placeholder || this.l10n.getConstant('placeholder') }, true);\n }\n if (!this.element.hasAttribute('id')) {\n this.element.setAttribute('id', getUniqueID('numerictextbox'));\n }\n this.isValidState = true;\n this.inputStyle = null;\n this.inputName = null;\n this.cultureInfo = {};\n this.initCultureInfo();\n this.initCultureFunc();\n this.prevValue = this.value;\n this.updateHTMLAttrToElement();\n this.checkAttributes(false);\n if (this.formEle) {\n this.inputEleValue = this.value;\n }\n this.validateMinMax();\n this.validateStep();\n if (this.placeholder === null) {\n this.updatePlaceholder();\n }\n };\n /**\n * To Initialize the control rendering\n *\n * @returns {void}\n * @private\n */\n NumericTextBox.prototype.render = function () {\n if (this.element.tagName.toLowerCase() === 'input') {\n this.createWrapper();\n if (this.showSpinButton) {\n this.spinBtnCreation();\n }\n this.setElementWidth(this.width);\n if (!this.container.classList.contains('e-input-group')) {\n this.container.classList.add('e-input-group');\n }\n this.changeValue(this.value === null || isNaN(this.value) ?\n null : this.strictMode ? this.trimValue(this.value) : this.value);\n this.wireEvents();\n if (this.value !== null && !isNaN(this.value)) {\n if (this.decimals) {\n this.setProperties({ value: this.roundNumber(this.value, this.decimals) }, true);\n }\n }\n if (this.element.getAttribute('value') || this.value) {\n this.element.setAttribute('value', this.element.value);\n this.hiddenInput.setAttribute('value', this.hiddenInput.value);\n }\n this.elementPrevValue = this.element.value;\n if (this.element.hasAttribute('data-val')) {\n this.element.setAttribute('data-val', 'false');\n }\n if (!isNullOrUndefined(closest(this.element, \"fieldset\")) && closest(this.element, \"fieldset\").disabled) {\n this.enabled = false;\n }\n this.renderComplete();\n }\n };\n NumericTextBox.prototype.checkAttributes = function (isDynamic) {\n var attributes = isDynamic ? isNullOrUndefined(this.htmlAttributes) ? [] : Object.keys(this.htmlAttributes) :\n ['value', 'min', 'max', 'step', 'disabled', 'readonly', 'style', 'name', 'placeholder'];\n for (var _i = 0, attributes_1 = attributes; _i < attributes_1.length; _i++) {\n var prop = attributes_1[_i];\n if (!isNullOrUndefined(this.element.getAttribute(prop))) {\n switch (prop) {\n case 'disabled':\n if ((isNullOrUndefined(this.numericOptions) || (this.numericOptions['enabled'] === undefined)) || isDynamic) {\n var enabled = this.element.getAttribute(prop) === 'disabled' || this.element.getAttribute(prop) === ''\n || this.element.getAttribute(prop) === 'true' ? false : true;\n this.setProperties({ enabled: enabled }, !isDynamic);\n }\n break;\n case 'readonly':\n if ((isNullOrUndefined(this.numericOptions) || (this.numericOptions['readonly'] === undefined)) || isDynamic) {\n var readonly = this.element.getAttribute(prop) === 'readonly' || this.element.getAttribute(prop) === ''\n || this.element.getAttribute(prop) === 'true' ? true : false;\n this.setProperties({ readonly: readonly }, !isDynamic);\n }\n break;\n case 'placeholder':\n if ((isNullOrUndefined(this.numericOptions) || (this.numericOptions['placeholder'] === undefined)) || isDynamic) {\n this.setProperties({ placeholder: this.element.placeholder }, !isDynamic);\n }\n break;\n case 'value':\n if ((isNullOrUndefined(this.numericOptions) || (this.numericOptions['value'] === undefined)) || isDynamic) {\n var setNumber = this.instance.getNumberParser({ format: 'n' })(this.element.getAttribute(prop));\n this.setProperties(setValue(prop, setNumber, {}), !isDynamic);\n }\n break;\n case 'min':\n if ((isNullOrUndefined(this.numericOptions) || (this.numericOptions['min'] === undefined)) || isDynamic) {\n var minValue = this.instance.getNumberParser({ format: 'n' })(this.element.getAttribute(prop));\n if (minValue !== null && !isNaN(minValue)) {\n this.setProperties(setValue(prop, minValue, {}), !isDynamic);\n }\n }\n break;\n case 'max':\n if ((isNullOrUndefined(this.numericOptions) || (this.numericOptions['max'] === undefined)) || isDynamic) {\n var maxValue = this.instance.getNumberParser({ format: 'n' })(this.element.getAttribute(prop));\n if (maxValue !== null && !isNaN(maxValue)) {\n this.setProperties(setValue(prop, maxValue, {}), !isDynamic);\n }\n }\n break;\n case 'step':\n if ((isNullOrUndefined(this.numericOptions) || (this.numericOptions['step'] === undefined)) || isDynamic) {\n var stepValue = this.instance.getNumberParser({ format: 'n' })(this.element.getAttribute(prop));\n if (stepValue !== null && !isNaN(stepValue)) {\n this.setProperties(setValue(prop, stepValue, {}), !isDynamic);\n }\n }\n break;\n case 'style':\n this.inputStyle = this.element.getAttribute(prop);\n break;\n case 'name':\n this.inputName = this.element.getAttribute(prop);\n break;\n default:\n {\n var value = this.instance.getNumberParser({ format: 'n' })(this.element.getAttribute(prop));\n if ((value !== null && !isNaN(value)) || (prop === 'value')) {\n this.setProperties(setValue(prop, value, {}), true);\n }\n }\n break;\n }\n }\n }\n };\n NumericTextBox.prototype.updatePlaceholder = function () {\n this.setProperties({ placeholder: this.l10n.getConstant('placeholder') }, true);\n };\n NumericTextBox.prototype.initCultureFunc = function () {\n this.instance = new Internationalization(this.locale);\n };\n NumericTextBox.prototype.initCultureInfo = function () {\n this.cultureInfo.format = this.format;\n if (getValue('currency', this) !== null) {\n setValue('currency', this.currency, this.cultureInfo);\n this.setProperties({ currencyCode: this.currency }, true);\n }\n };\n /* Wrapper creation */\n NumericTextBox.prototype.createWrapper = function () {\n var updatedCssClassValue = this.cssClass;\n if (!isNullOrUndefined(this.cssClass) && this.cssClass !== '') {\n updatedCssClassValue = this.getNumericValidClassList(this.cssClass);\n }\n var inputObj = Input.createInput({\n element: this.element,\n floatLabelType: this.floatLabelType,\n properties: {\n readonly: this.readonly,\n placeholder: this.placeholder,\n cssClass: updatedCssClassValue,\n enableRtl: this.enableRtl,\n showClearButton: this.showClearButton,\n enabled: this.enabled\n }\n }, this.createElement);\n this.inputWrapper = inputObj;\n this.container = inputObj.container;\n this.container.setAttribute('class', ROOT + ' ' + this.container.getAttribute('class'));\n this.updateHTMLAttrToWrapper();\n if (this.readonly) {\n attributes(this.element, { 'aria-readonly': 'true' });\n }\n this.hiddenInput = (this.createElement('input', { attrs: { type: 'text',\n 'validateHidden': 'true', 'class': HIDDENELEMENT } }));\n this.inputName = this.inputName !== null ? this.inputName : this.element.id;\n this.element.removeAttribute('name');\n attributes(this.hiddenInput, { 'name': this.inputName });\n this.container.insertBefore(this.hiddenInput, this.container.childNodes[1]);\n this.updateDataAttribute(false);\n if (this.inputStyle !== null) {\n attributes(this.container, { 'style': this.inputStyle });\n }\n };\n NumericTextBox.prototype.updateDataAttribute = function (isDynamic) {\n var attr = {};\n if (!isDynamic) {\n for (var a = 0; a < this.element.attributes.length; a++) {\n attr[this.element.attributes[a].name] = this.element.getAttribute(this.element.attributes[a].name);\n }\n }\n else {\n attr = this.htmlAttributes;\n }\n for (var _i = 0, _a = Object.keys(attr); _i < _a.length; _i++) {\n var key = _a[_i];\n if (key.indexOf('data') === 0) {\n this.hiddenInput.setAttribute(key, attr[\"\" + key]);\n }\n }\n };\n NumericTextBox.prototype.updateHTMLAttrToElement = function () {\n if (!isNullOrUndefined(this.htmlAttributes)) {\n for (var _i = 0, _a = Object.keys(this.htmlAttributes); _i < _a.length; _i++) {\n var pro = _a[_i];\n if (wrapperAttributes.indexOf(pro) < 0) {\n this.element.setAttribute(pro, this.htmlAttributes[\"\" + pro]);\n }\n }\n }\n };\n NumericTextBox.prototype.updateCssClass = function (newClass, oldClass) {\n Input.setCssClass(this.getNumericValidClassList(newClass), [this.container], this.getNumericValidClassList(oldClass));\n };\n NumericTextBox.prototype.getNumericValidClassList = function (numericClassName) {\n var result = numericClassName;\n if (!isNullOrUndefined(numericClassName) && numericClassName !== '') {\n result = (numericClassName.replace(/\\s+/g, ' ')).trim();\n }\n return result;\n };\n NumericTextBox.prototype.updateHTMLAttrToWrapper = function () {\n if (!isNullOrUndefined(this.htmlAttributes)) {\n for (var _i = 0, _a = Object.keys(this.htmlAttributes); _i < _a.length; _i++) {\n var pro = _a[_i];\n if (wrapperAttributes.indexOf(pro) > -1) {\n if (pro === 'class') {\n var updatedClassValue = this.getNumericValidClassList(this.htmlAttributes[\"\" + pro]);\n if (updatedClassValue !== '') {\n addClass([this.container], updatedClassValue.split(' '));\n }\n }\n else if (pro === 'style') {\n var numericStyle = this.container.getAttribute(pro);\n numericStyle = !isNullOrUndefined(numericStyle) ? (numericStyle + this.htmlAttributes[\"\" + pro]) :\n this.htmlAttributes[\"\" + pro];\n this.container.setAttribute(pro, numericStyle);\n }\n else {\n this.container.setAttribute(pro, this.htmlAttributes[\"\" + pro]);\n }\n }\n }\n }\n };\n NumericTextBox.prototype.setElementWidth = function (width) {\n if (!isNullOrUndefined(width)) {\n if (typeof width === 'number') {\n this.container.style.width = formatUnit(width);\n }\n else if (typeof width === 'string') {\n this.container.style.width = (width.match(/px|%|em/)) ? (width) : (formatUnit(width));\n }\n }\n };\n /* Spinner creation */\n NumericTextBox.prototype.spinBtnCreation = function () {\n this.spinDown = Input.appendSpan(SPINICON + ' ' + SPINDOWN, this.container, this.createElement);\n attributes(this.spinDown, {\n 'title': this.l10n.getConstant('decrementTitle')\n });\n this.spinUp = Input.appendSpan(SPINICON + ' ' + SPINUP, this.container, this.createElement);\n attributes(this.spinUp, {\n 'title': this.l10n.getConstant('incrementTitle')\n });\n this.wireSpinBtnEvents();\n };\n NumericTextBox.prototype.validateMinMax = function () {\n if (!(typeof (this.min) === 'number' && !isNaN(this.min))) {\n this.setProperties({ min: -(Number.MAX_VALUE) }, true);\n }\n if (!(typeof (this.max) === 'number' && !isNaN(this.max))) {\n this.setProperties({ max: Number.MAX_VALUE }, true);\n }\n if (this.decimals !== null) {\n if (this.min !== -(Number.MAX_VALUE)) {\n this.setProperties({ min: this.instance.getNumberParser({ format: 'n' })(this.formattedValue(this.decimals, this.min)) }, true);\n }\n if (this.max !== (Number.MAX_VALUE)) {\n this.setProperties({ max: this.instance.getNumberParser({ format: 'n' })(this.formattedValue(this.decimals, this.max)) }, true);\n }\n }\n this.setProperties({ min: this.min > this.max ? this.max : this.min }, true);\n if (this.min !== -(Number.MAX_VALUE)) {\n attributes(this.element, { 'aria-valuemin': this.min.toString() });\n }\n if (this.max !== (Number.MAX_VALUE)) {\n attributes(this.element, { 'aria-valuemax': this.max.toString() });\n }\n };\n NumericTextBox.prototype.formattedValue = function (decimals, value) {\n return this.instance.getNumberFormat({\n maximumFractionDigits: decimals,\n minimumFractionDigits: decimals, useGrouping: false\n })(value);\n };\n NumericTextBox.prototype.validateStep = function () {\n if (this.decimals !== null) {\n this.setProperties({ step: this.instance.getNumberParser({ format: 'n' })(this.formattedValue(this.decimals, this.step)) }, true);\n }\n };\n NumericTextBox.prototype.action = function (operation, event) {\n this.isInteract = true;\n var value = this.isFocused ? this.instance.getNumberParser({ format: 'n' })(this.element.value) : this.value;\n this.changeValue(this.performAction(value, this.step, operation));\n this.raiseChangeEvent(event);\n };\n NumericTextBox.prototype.checkErrorClass = function () {\n if (this.isValidState) {\n removeClass([this.container], ERROR);\n }\n else {\n addClass([this.container], ERROR);\n }\n attributes(this.element, { 'aria-invalid': this.isValidState ? 'false' : 'true' });\n };\n NumericTextBox.prototype.bindClearEvent = function () {\n if (this.showClearButton) {\n EventHandler.add(this.inputWrapper.clearButton, 'mousedown touchstart', this.resetHandler, this);\n }\n };\n NumericTextBox.prototype.resetHandler = function (e) {\n e.preventDefault();\n if (!(this.inputWrapper.clearButton.classList.contains('e-clear-icon-hide')) || this.inputWrapper.container.classList.contains('e-static-clear')) {\n this.clear(e);\n }\n this.isInteract = true;\n this.raiseChangeEvent(e);\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n NumericTextBox.prototype.clear = function (event) {\n this.setProperties({ value: null }, true);\n this.setElementValue('');\n this.hiddenInput.value = '';\n var formElement = closest(this.element, 'form');\n if (formElement) {\n var element = this.element.nextElementSibling;\n var keyupEvent = document.createEvent('KeyboardEvent');\n keyupEvent.initEvent('keyup', false, true);\n element.dispatchEvent(keyupEvent);\n }\n };\n NumericTextBox.prototype.resetFormHandler = function () {\n if (this.element.tagName === 'EJS-NUMERICTEXTBOX') {\n this.updateValue(null);\n }\n else {\n this.updateValue(this.inputEleValue);\n }\n };\n NumericTextBox.prototype.setSpinButton = function () {\n if (!isNullOrUndefined(this.spinDown)) {\n attributes(this.spinDown, {\n 'title': this.l10n.getConstant('decrementTitle'),\n 'aria-label': this.l10n.getConstant('decrementTitle')\n });\n }\n if (!isNullOrUndefined(this.spinUp)) {\n attributes(this.spinUp, {\n 'title': this.l10n.getConstant('incrementTitle'),\n 'aria-label': this.l10n.getConstant('incrementTitle')\n });\n }\n };\n NumericTextBox.prototype.wireEvents = function () {\n EventHandler.add(this.element, 'focus', this.focusHandler, this);\n EventHandler.add(this.element, 'blur', this.focusOutHandler, this);\n EventHandler.add(this.element, 'keydown', this.keyDownHandler, this);\n EventHandler.add(this.element, 'keyup', this.keyUpHandler, this);\n EventHandler.add(this.element, 'input', this.inputHandler, this);\n EventHandler.add(this.element, 'keypress', this.keyPressHandler, this);\n EventHandler.add(this.element, 'change', this.changeHandler, this);\n EventHandler.add(this.element, 'paste', this.pasteHandler, this);\n if (this.enabled) {\n this.bindClearEvent();\n if (this.formEle) {\n EventHandler.add(this.formEle, 'reset', this.resetFormHandler, this);\n }\n }\n };\n NumericTextBox.prototype.wireSpinBtnEvents = function () {\n /* bind spin button events */\n EventHandler.add(this.spinUp, Browser.touchStartEvent, this.mouseDownOnSpinner, this);\n EventHandler.add(this.spinDown, Browser.touchStartEvent, this.mouseDownOnSpinner, this);\n EventHandler.add(this.spinUp, Browser.touchEndEvent, this.mouseUpOnSpinner, this);\n EventHandler.add(this.spinDown, Browser.touchEndEvent, this.mouseUpOnSpinner, this);\n EventHandler.add(this.spinUp, Browser.touchMoveEvent, this.touchMoveOnSpinner, this);\n EventHandler.add(this.spinDown, Browser.touchMoveEvent, this.touchMoveOnSpinner, this);\n };\n NumericTextBox.prototype.unwireEvents = function () {\n EventHandler.remove(this.element, 'focus', this.focusHandler);\n EventHandler.remove(this.element, 'blur', this.focusOutHandler);\n EventHandler.remove(this.element, 'keyup', this.keyUpHandler);\n EventHandler.remove(this.element, 'input', this.inputHandler);\n EventHandler.remove(this.element, 'keydown', this.keyDownHandler);\n EventHandler.remove(this.element, 'keypress', this.keyPressHandler);\n EventHandler.remove(this.element, 'change', this.changeHandler);\n EventHandler.remove(this.element, 'paste', this.pasteHandler);\n if (this.formEle) {\n EventHandler.remove(this.formEle, 'reset', this.resetFormHandler);\n }\n };\n NumericTextBox.prototype.unwireSpinBtnEvents = function () {\n /* unbind spin button events */\n EventHandler.remove(this.spinUp, Browser.touchStartEvent, this.mouseDownOnSpinner);\n EventHandler.remove(this.spinDown, Browser.touchStartEvent, this.mouseDownOnSpinner);\n EventHandler.remove(this.spinUp, Browser.touchEndEvent, this.mouseUpOnSpinner);\n EventHandler.remove(this.spinDown, Browser.touchEndEvent, this.mouseUpOnSpinner);\n EventHandler.remove(this.spinUp, Browser.touchMoveEvent, this.touchMoveOnSpinner);\n EventHandler.remove(this.spinDown, Browser.touchMoveEvent, this.touchMoveOnSpinner);\n };\n NumericTextBox.prototype.changeHandler = function (event) {\n event.stopPropagation();\n if (!this.element.value.length) {\n this.setProperties({ value: null }, true);\n }\n var parsedInput = this.instance.getNumberParser({ format: 'n' })(this.element.value);\n this.updateValue(parsedInput, event);\n };\n NumericTextBox.prototype.raiseChangeEvent = function (event) {\n if (this.prevValue !== this.value) {\n var eventArgs = {};\n this.changeEventArgs = { value: this.value, previousValue: this.prevValue, isInteracted: this.isInteract,\n isInteraction: this.isInteract, event: event };\n if (event) {\n this.changeEventArgs.event = event;\n }\n if (this.changeEventArgs.event === undefined) {\n this.changeEventArgs.isInteracted = false;\n this.changeEventArgs.isInteraction = false;\n }\n merge(eventArgs, this.changeEventArgs);\n this.prevValue = this.value;\n this.isInteract = false;\n this.elementPrevValue = this.element.value;\n this.preventChange = false;\n this.trigger('change', eventArgs);\n }\n };\n NumericTextBox.prototype.pasteHandler = function () {\n var _this = this;\n if (!this.enabled || this.readonly) {\n return;\n }\n var beforeUpdate = this.element.value;\n setTimeout(function () {\n if (!_this.numericRegex().test(_this.element.value)) {\n _this.setElementValue(beforeUpdate);\n }\n });\n };\n NumericTextBox.prototype.preventHandler = function () {\n var _this = this;\n var iOS = !!navigator.platform && /iPad|iPhone|iPod/.test(navigator.platform);\n setTimeout(function () {\n if (_this.element.selectionStart > 0) {\n var currentPos = _this.element.selectionStart;\n var prevPos = _this.element.selectionStart - 1;\n var start = 0;\n var valArray = _this.element.value.split('');\n var numericObject = getNumericObject(_this.locale);\n var decimalSeparator = getValue('decimal', numericObject);\n var ignoreKeyCode = decimalSeparator.charCodeAt(0);\n if (_this.element.value[prevPos] === ' ' && _this.element.selectionStart > 0 && !iOS) {\n if (isNullOrUndefined(_this.prevVal)) {\n _this.element.value = _this.element.value.trim();\n }\n else if (prevPos !== 0) {\n _this.element.value = _this.prevVal;\n }\n else if (prevPos === 0) {\n _this.element.value = _this.element.value.trim();\n }\n _this.element.setSelectionRange(prevPos, prevPos);\n }\n else if (isNaN(parseFloat(_this.element.value[_this.element.selectionStart - 1])) &&\n _this.element.value[_this.element.selectionStart - 1].charCodeAt(0) !== 45) {\n if ((valArray.indexOf(_this.element.value[_this.element.selectionStart - 1]) !==\n valArray.lastIndexOf(_this.element.value[_this.element.selectionStart - 1]) &&\n _this.element.value[_this.element.selectionStart - 1].charCodeAt(0) === ignoreKeyCode) ||\n _this.element.value[_this.element.selectionStart - 1].charCodeAt(0) !== ignoreKeyCode) {\n _this.element.value = _this.element.value.substring(0, prevPos) +\n _this.element.value.substring(currentPos, _this.element.value.length);\n _this.element.setSelectionRange(prevPos, prevPos);\n if (isNaN(parseFloat(_this.element.value[_this.element.selectionStart - 1])) && _this.element.selectionStart > 0\n && _this.element.value.length) {\n _this.preventHandler();\n }\n }\n }\n else if (isNaN(parseFloat(_this.element.value[_this.element.selectionStart - 2])) && _this.element.selectionStart > 1 &&\n _this.element.value[_this.element.selectionStart - 2].charCodeAt(0) !== 45) {\n if ((valArray.indexOf(_this.element.value[_this.element.selectionStart - 2]) !==\n valArray.lastIndexOf(_this.element.value[_this.element.selectionStart - 2]) &&\n _this.element.value[_this.element.selectionStart - 2].charCodeAt(0) === ignoreKeyCode) ||\n _this.element.value[_this.element.selectionStart - 2].charCodeAt(0) !== ignoreKeyCode) {\n _this.element.setSelectionRange(prevPos, prevPos);\n _this.nextEle = _this.element.value[_this.element.selectionStart];\n _this.cursorPosChanged = true;\n _this.preventHandler();\n }\n }\n if (_this.cursorPosChanged === true && _this.element.value[_this.element.selectionStart] === _this.nextEle &&\n isNaN(parseFloat(_this.element.value[_this.element.selectionStart - 1]))) {\n _this.element.setSelectionRange(_this.element.selectionStart + 1, _this.element.selectionStart + 1);\n _this.cursorPosChanged = false;\n _this.nextEle = null;\n }\n if (_this.element.value.trim() === '') {\n _this.element.setSelectionRange(start, start);\n }\n if (_this.element.selectionStart > 0) {\n if ((_this.element.value[_this.element.selectionStart - 1].charCodeAt(0) === 45) && _this.element.selectionStart > 1) {\n if (isNullOrUndefined(_this.prevVal)) {\n // eslint-disable-next-line no-self-assign\n _this.element.value = _this.element.value;\n }\n else {\n _this.element.value = _this.prevVal;\n }\n _this.element.setSelectionRange(_this.element.selectionStart, _this.element.selectionStart);\n }\n if (_this.element.value[_this.element.selectionStart - 1] === decimalSeparator && _this.decimals === 0 && _this.validateDecimalOnType) {\n _this.element.value = _this.element.value.substring(0, prevPos) +\n _this.element.value.substring(currentPos, _this.element.value.length);\n }\n }\n _this.prevVal = _this.element.value;\n }\n });\n };\n NumericTextBox.prototype.keyUpHandler = function () {\n if (!this.enabled || this.readonly) {\n return;\n }\n var iOS = !!navigator.platform && /iPad|iPhone|iPod/.test(navigator.platform);\n if (!iOS && Browser.isDevice) {\n this.preventHandler();\n }\n var parseValue = this.instance.getNumberParser({ format: 'n' })(this.element.value);\n parseValue = parseValue === null || isNaN(parseValue) ? null : parseValue;\n this.hiddenInput.value = parseValue || parseValue === 0 ? parseValue.toString() : null;\n var formElement = closest(this.element, 'form');\n if (formElement) {\n var element = this.element.nextElementSibling;\n var keyupEvent = document.createEvent('KeyboardEvent');\n keyupEvent.initEvent('keyup', false, true);\n element.dispatchEvent(keyupEvent);\n }\n };\n NumericTextBox.prototype.inputHandler = function (event) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-this-alias\n var numerictextboxObj = this;\n if (!this.enabled || this.readonly) {\n return;\n }\n var iOS = !!navigator.platform && /iPad|iPhone|iPod/.test(navigator.platform);\n var fireFox = navigator.userAgent.toLowerCase().indexOf('firefox') > -1;\n if ((fireFox || iOS) && Browser.isDevice) {\n this.preventHandler();\n }\n /* istanbul ignore next */\n if (this.isAngular\n && this.element.value !== getValue('decimal', getNumericObject(this.locale))\n && this.element.value !== getValue('minusSign', getNumericObject(this.locale))) {\n var parsedValue = this.instance.getNumberParser({ format: 'n' })(this.element.value);\n parsedValue = isNaN(parsedValue) ? null : parsedValue;\n numerictextboxObj.localChange({ value: parsedValue });\n this.preventChange = true;\n }\n if (this.isVue) {\n var current = this.instance.getNumberParser({ format: 'n' })(this.element.value);\n var previous = this.instance.getNumberParser({ format: 'n' })(this.elementPrevValue);\n //EJ2-54963-if type \".\" or \".0\" or \"-.0\" it converts to \"0\" automatically when binding v-model\n var nonZeroRegex = new RegExp('[^0-9]+$');\n if (nonZeroRegex.test(this.element.value) || ((this.elementPrevValue.indexOf('.') !== -1 || this.elementPrevValue.indexOf('-') !== -1) && this.element.value[this.element.value.length - 1] === '0')) {\n current = this.value;\n }\n var eventArgs = {\n event: event,\n value: (current === null || isNaN(current) ? null : current),\n previousValue: (previous === null || isNaN(previous) ? null : previous)\n };\n this.preventChange = true;\n this.elementPrevValue = this.element.value;\n this.trigger('input', eventArgs);\n }\n };\n NumericTextBox.prototype.keyDownHandler = function (event) {\n if (!this.readonly) {\n switch (event.keyCode) {\n case 38:\n event.preventDefault();\n this.action(INCREMENT, event);\n break;\n case 40:\n event.preventDefault();\n this.action(DECREMENT, event);\n break;\n default: break;\n }\n }\n };\n NumericTextBox.prototype.performAction = function (value, step, operation) {\n if (value === null || isNaN(value)) {\n value = 0;\n }\n var updatedValue = operation === INCREMENT ? value + step : value - step;\n updatedValue = this.correctRounding(value, step, updatedValue);\n return this.strictMode ? this.trimValue(updatedValue) : updatedValue;\n };\n NumericTextBox.prototype.correctRounding = function (value, step, result) {\n var floatExp = new RegExp('[,.](.*)');\n var floatValue = floatExp.test(value.toString());\n var floatStep = floatExp.test(step.toString());\n if (floatValue || floatStep) {\n var valueCount = floatValue ? floatExp.exec(value.toString())[0].length : 0;\n var stepCount = floatStep ? floatExp.exec(step.toString())[0].length : 0;\n var max = Math.max(valueCount, stepCount);\n return value = this.roundValue(result, max);\n }\n return result;\n };\n NumericTextBox.prototype.roundValue = function (result, precision) {\n precision = precision || 0;\n var divide = Math.pow(10, precision);\n return result *= divide, result = Math.round(result) / divide;\n };\n NumericTextBox.prototype.updateValue = function (value, event) {\n if (event) {\n this.isInteract = true;\n }\n if (value !== null && !isNaN(value)) {\n if (this.decimals) {\n value = this.roundNumber(value, this.decimals);\n }\n }\n this.changeValue(value === null || isNaN(value) ? null : this.strictMode ? this.trimValue(value) : value);\n /* istanbul ignore next */\n if (!this.isDynamicChange) {\n this.raiseChangeEvent(event);\n }\n };\n NumericTextBox.prototype.updateCurrency = function (prop, propVal) {\n setValue(prop, propVal, this.cultureInfo);\n this.updateValue(this.value);\n };\n NumericTextBox.prototype.changeValue = function (value) {\n if (!(value || value === 0)) {\n value = null;\n this.setProperties({ value: value }, true);\n }\n else {\n var numberOfDecimals = this.getNumberOfDecimals(value);\n this.setProperties({ value: this.roundNumber(value, numberOfDecimals) }, true);\n }\n this.modifyText();\n if (!this.strictMode) {\n this.validateState();\n }\n };\n NumericTextBox.prototype.modifyText = function () {\n if (this.value || this.value === 0) {\n var value = this.formatNumber();\n var elementValue = this.isFocused ? value : this.instance.getNumberFormat(this.cultureInfo)(this.value);\n this.setElementValue(elementValue);\n attributes(this.element, { 'aria-valuenow': value });\n this.hiddenInput.value = this.value.toString();\n if (this.value !== null && this.serverDecimalSeparator) {\n this.hiddenInput.value = this.hiddenInput.value.replace('.', this.serverDecimalSeparator);\n }\n }\n else {\n this.setElementValue('');\n this.element.removeAttribute('aria-valuenow');\n this.hiddenInput.value = null;\n }\n };\n NumericTextBox.prototype.setElementValue = function (val, element) {\n Input.setValue(val, (element ? element : this.element), this.floatLabelType, this.showClearButton);\n };\n NumericTextBox.prototype.validateState = function () {\n this.isValidState = true;\n if (this.value || this.value === 0) {\n this.isValidState = !(this.value > this.max || this.value < this.min);\n }\n this.checkErrorClass();\n };\n NumericTextBox.prototype.getNumberOfDecimals = function (value) {\n var numberOfDecimals;\n // eslint-disable-next-line no-useless-escape\n var EXPREGEXP = new RegExp('[eE][\\-+]?([0-9]+)');\n var valueString = value.toString();\n if (EXPREGEXP.test(valueString)) {\n var result = EXPREGEXP.exec(valueString);\n if (!isNullOrUndefined(result)) {\n valueString = value.toFixed(Math.min(parseInt(result[1], 10), 20));\n }\n }\n var decimalPart = valueString.split('.')[1];\n numberOfDecimals = !decimalPart || !decimalPart.length ? 0 : decimalPart.length;\n if (this.decimals !== null) {\n numberOfDecimals = numberOfDecimals < this.decimals ? numberOfDecimals : this.decimals;\n }\n return numberOfDecimals;\n };\n NumericTextBox.prototype.formatNumber = function () {\n var numberOfDecimals = this.getNumberOfDecimals(this.value);\n return this.instance.getNumberFormat({\n maximumFractionDigits: numberOfDecimals,\n minimumFractionDigits: numberOfDecimals, useGrouping: false\n })(this.value);\n };\n NumericTextBox.prototype.trimValue = function (value) {\n if (value > this.max) {\n return this.max;\n }\n if (value < this.min) {\n return this.min;\n }\n return value;\n };\n NumericTextBox.prototype.roundNumber = function (value, precision) {\n var result = value;\n var decimals = precision || 0;\n var result1 = result.toString().split('e');\n result = Math.round(Number(result1[0] + 'e' + (result1[1] ? (Number(result1[1]) + decimals) : decimals)));\n var result2 = result.toString().split('e');\n result = Number(result2[0] + 'e' + (result2[1] ? (Number(result2[1]) - decimals) : -decimals));\n return Number(result.toFixed(decimals));\n };\n NumericTextBox.prototype.cancelEvent = function (event) {\n event.preventDefault();\n return false;\n };\n NumericTextBox.prototype.keyPressHandler = function (event) {\n if (!this.enabled || this.readonly) {\n return true;\n }\n if (!Browser.isDevice && Browser.info.version === '11.0' && event.keyCode === 13) {\n var parsedInput = this.instance.getNumberParser({ format: 'n' })(this.element.value);\n this.updateValue(parsedInput, event);\n return true;\n }\n if (event.which === 0 || event.metaKey || event.ctrlKey || event.keyCode === 8 || event.keyCode === 13) {\n return true;\n }\n var currentChar = String.fromCharCode(event.which);\n var decimalSeparator = getValue('decimal', getNumericObject(this.locale));\n var isAlterNumPadDecimalChar = event.code === \"NumpadDecimal\" && currentChar !== decimalSeparator;\n //EJ2-59813-replace the culture decimal separator value with numberpad decimal separator value when culture decimal separator and numberpad decimal separator are different\n if (isAlterNumPadDecimalChar) {\n currentChar = decimalSeparator;\n }\n var text = this.element.value;\n text = text.substring(0, this.element.selectionStart) + currentChar + text.substring(this.element.selectionEnd);\n if (!this.numericRegex().test(text)) {\n event.preventDefault();\n event.stopPropagation();\n return false;\n }\n else {\n //EJ2-59813-update the numberpad decimal separator and update the cursor position\n if (isAlterNumPadDecimalChar) {\n var start = this.element.selectionStart + 1;\n this.element.value = text;\n this.element.setSelectionRange(start, start);\n event.preventDefault();\n event.stopPropagation();\n }\n return true;\n }\n };\n NumericTextBox.prototype.numericRegex = function () {\n var numericObject = getNumericObject(this.locale);\n var decimalSeparator = getValue('decimal', numericObject);\n var fractionRule = '*';\n if (decimalSeparator === DECIMALSEPARATOR) {\n decimalSeparator = '\\\\' + decimalSeparator;\n }\n if (this.decimals === 0 && this.validateDecimalOnType) {\n return INTREGEXP;\n }\n if (this.decimals && this.validateDecimalOnType) {\n fractionRule = '{0,' + this.decimals + '}';\n }\n // eslint-disable-next-line detect-non-literal-regexp\n return new RegExp('^(-)?(((\\\\d+(' + decimalSeparator + '\\\\d' + fractionRule +\n ')?)|(' + decimalSeparator + '\\\\d' + fractionRule + ')))?$');\n };\n NumericTextBox.prototype.mouseWheel = function (event) {\n event.preventDefault();\n var delta;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var rawEvent = event;\n if (rawEvent.wheelDelta) {\n delta = rawEvent.wheelDelta / 120;\n }\n else if (rawEvent.detail) {\n delta = -rawEvent.detail / 3;\n }\n if (delta > 0) {\n this.action(INCREMENT, event);\n }\n else if (delta < 0) {\n this.action(DECREMENT, event);\n }\n this.cancelEvent(event);\n };\n NumericTextBox.prototype.focusHandler = function (event) {\n var _this = this;\n clearTimeout(selectionTimeOut);\n this.focusEventArgs = { event: event, value: this.value, container: this.container };\n this.trigger('focus', this.focusEventArgs);\n if (!this.enabled || this.readonly) {\n return;\n }\n this.isFocused = true;\n removeClass([this.container], ERROR);\n this.prevValue = this.value;\n if ((this.value || this.value === 0)) {\n var formatValue_1 = this.formatNumber();\n this.setElementValue(formatValue_1);\n if (!this.isPrevFocused) {\n if (!Browser.isDevice && Browser.info.version === '11.0') {\n this.element.setSelectionRange(0, formatValue_1.length);\n }\n else {\n var delay = (Browser.isDevice && Browser.isIos) ? 600 : 0;\n selectionTimeOut = setTimeout(function () {\n _this.element.setSelectionRange(0, formatValue_1.length);\n }, delay);\n }\n }\n }\n if (!Browser.isDevice) {\n EventHandler.add(this.element, 'mousewheel DOMMouseScroll', this.mouseWheel, this);\n }\n };\n NumericTextBox.prototype.focusOutHandler = function (event) {\n var _this = this;\n this.blurEventArgs = { event: event, value: this.value, container: this.container };\n this.trigger('blur', this.blurEventArgs);\n if (!this.enabled || this.readonly) {\n return;\n }\n if (this.isPrevFocused) {\n event.preventDefault();\n if (Browser.isDevice) {\n var value_1 = this.element.value;\n this.element.focus();\n this.isPrevFocused = false;\n var ele_1 = this.element;\n setTimeout(function () {\n _this.setElementValue(value_1, ele_1);\n }, 200);\n }\n }\n else {\n this.isFocused = false;\n if (!this.element.value.length) {\n this.setProperties({ value: null }, true);\n }\n var parsedInput = this.instance.getNumberParser({ format: 'n' })(this.element.value);\n this.updateValue(parsedInput);\n if (!Browser.isDevice) {\n EventHandler.remove(this.element, 'mousewheel DOMMouseScroll', this.mouseWheel);\n }\n }\n var formElement = closest(this.element, 'form');\n if (formElement) {\n var element = this.element.nextElementSibling;\n var focusEvent = document.createEvent('FocusEvent');\n focusEvent.initEvent('focusout', false, true);\n element.dispatchEvent(focusEvent);\n }\n };\n NumericTextBox.prototype.mouseDownOnSpinner = function (event) {\n var _this = this;\n if (this.isFocused) {\n this.isPrevFocused = true;\n event.preventDefault();\n }\n if (!this.getElementData(event)) {\n return;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var result = this.getElementData(event);\n var target = event.currentTarget;\n var action = (target.classList.contains(SPINUP)) ? INCREMENT : DECREMENT;\n EventHandler.add(target, 'mouseleave', this.mouseUpClick, this);\n this.timeOut = setInterval(function () {\n _this.isCalled = true;\n _this.action(action, event);\n }, 150);\n EventHandler.add(document, 'mouseup', this.mouseUpClick, this);\n };\n NumericTextBox.prototype.touchMoveOnSpinner = function (event) {\n var target;\n if (event.type === \"touchmove\") {\n var touchEvent = event.touches;\n target = touchEvent.length && document.elementFromPoint(touchEvent[0].pageX, touchEvent[0].pageY);\n }\n else {\n target = document.elementFromPoint(event.clientX, event.clientY);\n }\n if (!(target.classList.contains(SPINICON))) {\n clearInterval(this.timeOut);\n }\n };\n NumericTextBox.prototype.mouseUpOnSpinner = function (event) {\n this.prevValue = this.value;\n if (this.isPrevFocused) {\n this.element.focus();\n if (!Browser.isDevice) {\n this.isPrevFocused = false;\n }\n }\n if (!Browser.isDevice) {\n event.preventDefault();\n }\n if (!this.getElementData(event)) {\n return;\n }\n var target = event.currentTarget;\n var action = (target.classList.contains(SPINUP)) ? INCREMENT : DECREMENT;\n EventHandler.remove(target, 'mouseleave', this.mouseUpClick);\n if (!this.isCalled) {\n this.action(action, event);\n }\n this.isCalled = false;\n EventHandler.remove(document, 'mouseup', this.mouseUpClick);\n var formElement = closest(this.element, 'form');\n if (formElement) {\n var element = this.element.nextElementSibling;\n var keyupEvent = document.createEvent('KeyboardEvent');\n keyupEvent.initEvent('keyup', false, true);\n element.dispatchEvent(keyupEvent);\n }\n };\n NumericTextBox.prototype.getElementData = function (event) {\n if ((event.which && event.which === 3) || (event.button && event.button === 2)\n || !this.enabled || this.readonly) {\n return false;\n }\n clearInterval(this.timeOut);\n return true;\n };\n NumericTextBox.prototype.floatLabelTypeUpdate = function () {\n Input.removeFloating(this.inputWrapper);\n var hiddenInput = this.hiddenInput;\n this.hiddenInput.remove();\n Input.addFloating(this.element, this.floatLabelType, this.placeholder, this.createElement);\n this.container.insertBefore(hiddenInput, this.container.childNodes[1]);\n };\n NumericTextBox.prototype.mouseUpClick = function (event) {\n event.stopPropagation();\n clearInterval(this.timeOut);\n this.isCalled = false;\n EventHandler.remove(this.spinUp, 'mouseleave', this.mouseUpClick);\n EventHandler.remove(this.spinDown, 'mouseleave', this.mouseUpClick);\n };\n /**\n * Increments the NumericTextBox value with the specified step value.\n *\n * @param {number} step - Specifies the value used to increment the NumericTextBox value.\n * if its not given then numeric value will be incremented based on the step property value.\n * @returns {void}\n */\n NumericTextBox.prototype.increment = function (step) {\n if (step === void 0) { step = this.step; }\n this.isInteract = false;\n this.changeValue(this.performAction(this.value, step, INCREMENT));\n this.raiseChangeEvent();\n };\n /**\n * Decrements the NumericTextBox value with specified step value.\n *\n * @param {number} step - Specifies the value used to decrement the NumericTextBox value.\n * if its not given then numeric value will be decremented based on the step property value.\n * @returns {void}\n */\n NumericTextBox.prototype.decrement = function (step) {\n if (step === void 0) { step = this.step; }\n this.isInteract = false;\n this.changeValue(this.performAction(this.value, step, DECREMENT));\n this.raiseChangeEvent();\n };\n /**\n * Removes the component from the DOM and detaches all its related event handlers.\n * Also it maintains the initial input element from the DOM.\n *\n * @method destroy\n * @returns {void}\n */\n NumericTextBox.prototype.destroy = function () {\n this.unwireEvents();\n detach(this.hiddenInput);\n if (this.showSpinButton) {\n this.unwireSpinBtnEvents();\n detach(this.spinUp);\n detach(this.spinDown);\n }\n var attrArray = ['aria-labelledby', 'role', 'autocomplete', 'aria-readonly',\n 'aria-disabled', 'autocapitalize', 'spellcheck', 'aria-autocomplete', 'tabindex',\n 'aria-valuemin', 'aria-valuemax', 'aria-valuenow', 'aria-invalid'];\n for (var i = 0; i < attrArray.length; i++) {\n this.element.removeAttribute(attrArray[i]);\n }\n this.element.classList.remove('e-input');\n this.container.insertAdjacentElement('afterend', this.element);\n detach(this.container);\n this.spinUp = null;\n this.spinDown = null;\n this.container = null;\n this.hiddenInput = null;\n this.changeEventArgs = null;\n this.blurEventArgs = null;\n this.focusEventArgs = null;\n this.inputWrapper = null;\n Input.destroy();\n _super.prototype.destroy.call(this);\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-returns */\n /**\n * Returns the value of NumericTextBox with the format applied to the NumericTextBox.\n *\n */\n NumericTextBox.prototype.getText = function () {\n return this.element.value;\n };\n /* eslint-enable valid-jsdoc, jsdoc/require-returns */\n /**\n * Sets the focus to widget for interaction.\n *\n * @returns {void}\n */\n NumericTextBox.prototype.focusIn = function () {\n if (document.activeElement !== this.element && this.enabled) {\n this.element.focus();\n addClass([this.container], [NUMERIC_FOCUS]);\n }\n };\n /**\n * Remove the focus from widget, if the widget is in focus state.\n *\n * @returns {void}\n */\n NumericTextBox.prototype.focusOut = function () {\n if (document.activeElement === this.element && this.enabled) {\n this.element.blur();\n removeClass([this.container], [NUMERIC_FOCUS]);\n }\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Gets the properties to be maintained in the persisted state.\n *\n * @returns {string}\n */\n NumericTextBox.prototype.getPersistData = function () {\n var keyEntity = ['value'];\n return this.addOnPersist(keyEntity);\n };\n /* eslint-enable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Calls internally if any of the property value is changed.\n *\n * @param {NumericTextBoxModel} newProp - Returns the dynamic property value of the component.\n * @param {NumericTextBoxModel} oldProp - Returns the previous property value of the component.\n * @returns {void}\n * @private\n */\n NumericTextBox.prototype.onPropertyChanged = function (newProp, oldProp) {\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'width':\n this.setElementWidth(newProp.width);\n Input.calculateWidth(this.element, this.container);\n break;\n case 'cssClass':\n this.updateCssClass(newProp.cssClass, oldProp.cssClass);\n break;\n case 'enabled':\n Input.setEnabled(newProp.enabled, this.element);\n this.bindClearEvent();\n break;\n case 'enableRtl':\n Input.setEnableRtl(newProp.enableRtl, [this.container]);\n break;\n case 'readonly':\n Input.setReadonly(newProp.readonly, this.element);\n if (this.readonly) {\n attributes(this.element, { 'aria-readonly': 'true' });\n }\n else {\n this.element.removeAttribute('aria-readonly');\n }\n break;\n case 'htmlAttributes':\n this.updateHTMLAttrToElement();\n this.updateHTMLAttrToWrapper();\n this.updateDataAttribute(true);\n this.checkAttributes(true);\n Input.validateInputType(this.container, this.element);\n break;\n case 'placeholder':\n Input.setPlaceholder(newProp.placeholder, this.element);\n Input.calculateWidth(this.element, this.container);\n break;\n case 'step':\n this.step = newProp.step;\n this.validateStep();\n break;\n case 'showSpinButton':\n this.updateSpinButton(newProp);\n break;\n case 'showClearButton':\n this.updateClearButton(newProp);\n break;\n case 'floatLabelType':\n this.floatLabelType = newProp.floatLabelType;\n this.floatLabelTypeUpdate();\n break;\n case 'value':\n this.isDynamicChange = (this.isAngular || this.isVue) && this.preventChange;\n this.updateValue(newProp.value);\n if (this.isDynamicChange) {\n this.preventChange = false;\n this.isDynamicChange = false;\n }\n break;\n case 'min':\n case 'max':\n setValue(prop, getValue(prop, newProp), this);\n this.validateMinMax();\n this.updateValue(this.value);\n break;\n case 'strictMode':\n this.strictMode = newProp.strictMode;\n this.updateValue(this.value);\n this.validateState();\n break;\n case 'locale':\n this.initCultureFunc();\n this.l10n.setLocale(this.locale);\n this.setSpinButton();\n this.updatePlaceholder();\n Input.setPlaceholder(this.placeholder, this.element);\n this.updateValue(this.value);\n break;\n case 'currency':\n {\n var propVal = getValue(prop, newProp);\n this.setProperties({ currencyCode: propVal }, true);\n this.updateCurrency(prop, propVal);\n }\n break;\n case 'currencyCode':\n {\n var propValue = getValue(prop, newProp);\n this.setProperties({ currency: propValue }, true);\n this.updateCurrency('currency', propValue);\n }\n break;\n case 'format':\n setValue(prop, getValue(prop, newProp), this);\n this.initCultureInfo();\n this.updateValue(this.value);\n break;\n case 'decimals':\n this.decimals = newProp.decimals;\n this.updateValue(this.value);\n }\n }\n };\n NumericTextBox.prototype.updateClearButton = function (newProp) {\n Input.setClearButton(newProp.showClearButton, this.element, this.inputWrapper, undefined, this.createElement);\n this.bindClearEvent();\n };\n NumericTextBox.prototype.updateSpinButton = function (newProp) {\n if (newProp.showSpinButton) {\n this.spinBtnCreation();\n }\n else {\n detach(this.spinUp);\n detach(this.spinDown);\n }\n };\n /**\n * Gets the component name\n *\n * @returns {string} Returns the component name.\n * @private\n */\n NumericTextBox.prototype.getModuleName = function () {\n return 'numerictextbox';\n };\n __decorate([\n Property('')\n ], NumericTextBox.prototype, \"cssClass\", void 0);\n __decorate([\n Property(null)\n ], NumericTextBox.prototype, \"value\", void 0);\n __decorate([\n Property(-(Number.MAX_VALUE))\n ], NumericTextBox.prototype, \"min\", void 0);\n __decorate([\n Property(Number.MAX_VALUE)\n ], NumericTextBox.prototype, \"max\", void 0);\n __decorate([\n Property(1)\n ], NumericTextBox.prototype, \"step\", void 0);\n __decorate([\n Property(null)\n ], NumericTextBox.prototype, \"width\", void 0);\n __decorate([\n Property(null)\n ], NumericTextBox.prototype, \"placeholder\", void 0);\n __decorate([\n Property({})\n ], NumericTextBox.prototype, \"htmlAttributes\", void 0);\n __decorate([\n Property(true)\n ], NumericTextBox.prototype, \"showSpinButton\", void 0);\n __decorate([\n Property(false)\n ], NumericTextBox.prototype, \"readonly\", void 0);\n __decorate([\n Property(true)\n ], NumericTextBox.prototype, \"enabled\", void 0);\n __decorate([\n Property(false)\n ], NumericTextBox.prototype, \"showClearButton\", void 0);\n __decorate([\n Property(false)\n ], NumericTextBox.prototype, \"enablePersistence\", void 0);\n __decorate([\n Property('n2')\n ], NumericTextBox.prototype, \"format\", void 0);\n __decorate([\n Property(null)\n ], NumericTextBox.prototype, \"decimals\", void 0);\n __decorate([\n Property(null)\n ], NumericTextBox.prototype, \"currency\", void 0);\n __decorate([\n Property(null)\n ], NumericTextBox.prototype, \"currencyCode\", void 0);\n __decorate([\n Property(true)\n ], NumericTextBox.prototype, \"strictMode\", void 0);\n __decorate([\n Property(false)\n ], NumericTextBox.prototype, \"validateDecimalOnType\", void 0);\n __decorate([\n Property('Never')\n ], NumericTextBox.prototype, \"floatLabelType\", void 0);\n __decorate([\n Event()\n ], NumericTextBox.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], NumericTextBox.prototype, \"destroyed\", void 0);\n __decorate([\n Event()\n ], NumericTextBox.prototype, \"change\", void 0);\n __decorate([\n Event()\n ], NumericTextBox.prototype, \"focus\", void 0);\n __decorate([\n Event()\n ], NumericTextBox.prototype, \"blur\", void 0);\n NumericTextBox = __decorate([\n NotifyPropertyChanges\n ], NumericTextBox);\n return NumericTextBox;\n}(Component));\nexport { NumericTextBox };\n","/**\n * @hidden\n */\nvar AjaxHandler = /** @class */ (function () {\n /**\n * Constructor for Ajax class\n * @param {PdfViewer} pdfviewer - The pdfviewer.\n * @private\n */\n function AjaxHandler(pdfviewer) {\n /**\n * Specifies the URL to which request to be sent.\n *\n * @default 'POST'\n */\n this.type = 'POST';\n /**\n * A boolean value indicating whether the request should be sent asynchronous or not.\n *\n * @default true\n * @private\n */\n this.mode = true;\n /**\n * Specifies the ContentType to which request to be sent\n *\n * @default null\n * @private\n */\n this.contentType = 'application/json;charset=UTF-8';\n this.pdfViewer = pdfviewer;\n this.retryCount = pdfviewer.retryCount;\n this.retryStatusCodes = pdfviewer.retryStatusCodes;\n }\n /**\n * Send the request to server\n *\n * @param {object} jsonObj - To send to service\n * @returns {void}\n * @private\n */\n AjaxHandler.prototype.send = function (jsonObj) {\n var _this = this;\n this.httpRequest = new XMLHttpRequest();\n if (!this.mode) {\n setTimeout(function () {\n _this.sendRequest(jsonObj);\n });\n }\n else {\n this.sendRequest(jsonObj);\n }\n this.httpRequest.onreadystatechange = function () {\n var isSkip = false;\n // eslint-disable-next-line\n var viewerBase = _this.pdfViewer.viewerBase;\n if (viewerBase && viewerBase.isPasswordAvailable && viewerBase.passwordData === '') {\n isSkip = true;\n _this.retryCount = 0;\n }\n if (_this.retryCount > 0) {\n isSkip = _this.resendRequest(_this, jsonObj);\n }\n if (!isSkip) {\n _this.stateChange(_this);\n }\n };\n this.httpRequest.onerror = function () {\n _this.error(_this);\n };\n };\n /**\n * Clear the http request\n * @returns {void}\n * @private\n */\n AjaxHandler.prototype.clear = function () {\n this.httpRequest && this.httpRequest.abort();\n this.onSuccess = null;\n this.onFailure = null;\n this.onError = null;\n };\n // eslint-disable-next-line\n AjaxHandler.prototype.resendRequest = function (proxy, jsonObj) {\n var isSkip = false;\n var status = proxy.httpRequest.status;\n var statusString = this.retryStatusCodes.indexOf(status) !== -1;\n if (proxy.httpRequest.readyState === 4 && status === 200) {\n // eslint-disable-next-line\n var data = void 0;\n if (this.responseType !== null) {\n data = proxy.httpRequest.response;\n }\n else {\n data = proxy.httpRequest.responseText;\n }\n if (data) {\n if (typeof data !== 'object') {\n try {\n data = JSON.parse(data);\n }\n catch (error) {\n // eslint-disable-next-line max-len\n if (data === 'Document stream does not exist in the cache' || data === 'Document Reference pointer does not exist in the cache') {\n isSkip = true;\n }\n }\n }\n }\n }\n if (statusString || isSkip) {\n isSkip = true;\n this.retryCount--;\n proxy.pdfViewer.fireAjaxRequestFailed(status, proxy.httpRequest.statusText, jsonObj.action, true);\n proxy.send(jsonObj);\n }\n return isSkip;\n };\n AjaxHandler.prototype.sendRequest = function (jsonObj) {\n /* eslint-disable-next-line security/detect-non-literal-fs-filename */\n this.httpRequest.open(this.type, this.url, this.mode);\n this.httpRequest.withCredentials = this.pdfViewer.ajaxRequestSettings.withCredentials;\n this.httpRequest.setRequestHeader('Content-Type', this.contentType);\n jsonObj = this.addExtraData(jsonObj);\n this.setCustomAjaxHeaders();\n if (this.responseType !== null) {\n this.httpRequest.responseType = this.responseType;\n }\n this.httpRequest.send(JSON.stringify(jsonObj)); // jshint ignore:line\n };\n AjaxHandler.prototype.addExtraData = function (jsonObject) {\n this.pdfViewer.viewerBase.ajaxData = '';\n this.pdfViewer.fireAjaxRequestInitiate(jsonObject);\n if (this.pdfViewer.viewerBase.ajaxData && this.pdfViewer.viewerBase.ajaxData !== '') {\n jsonObject = this.pdfViewer.viewerBase.ajaxData;\n }\n return jsonObject;\n };\n AjaxHandler.prototype.stateChange = function (proxy) {\n var status = proxy.httpRequest.status;\n var statusString = status.toString().split('')[0];\n if (proxy.httpRequest.readyState === 4 && status === 200) {\n // eslint-disable-next-line\n var data = void 0;\n if (this.responseType !== null) {\n data = proxy.httpRequest.response;\n }\n else {\n data = proxy.httpRequest.responseText;\n }\n // eslint-disable-next-line\n var result = {\n name: 'onSuccess',\n data: data,\n readyState: proxy.httpRequest.readyState,\n status: proxy.httpRequest.status\n };\n proxy.successHandler(result);\n }\n else if (proxy.httpRequest.readyState === 4 && (statusString === '4' || statusString === '5')) { // jshint ignore:line)\n // For handling 4xx and 5xx errors.\n // eslint-disable-next-line\n var result = {\n name: 'onFailure',\n status: proxy.httpRequest.status,\n statusText: proxy.httpRequest.statusText\n };\n proxy.failureHandler(result);\n }\n };\n AjaxHandler.prototype.error = function (proxy) {\n // eslint-disable-next-line\n var result = {\n name: 'onError',\n status: this.httpRequest.status,\n statusText: this.httpRequest.statusText\n };\n proxy.errorHandler(result);\n };\n // eslint-disable-next-line\n AjaxHandler.prototype.successHandler = function (response) {\n if (this.onSuccess) {\n this.onSuccess(response);\n }\n return response;\n };\n // eslint-disable-next-line\n AjaxHandler.prototype.failureHandler = function (response) {\n if (this.onFailure) {\n this.onFailure(response);\n }\n return response;\n };\n // eslint-disable-next-line\n AjaxHandler.prototype.errorHandler = function (response) {\n if (this.onError) {\n this.onError(response);\n }\n return response;\n };\n AjaxHandler.prototype.setCustomAjaxHeaders = function () {\n for (var i = 0; i < this.pdfViewer.ajaxRequestSettings.ajaxHeaders.length; i++) {\n // eslint-disable-next-line max-len\n this.httpRequest.setRequestHeader(this.pdfViewer.ajaxRequestSettings.ajaxHeaders[parseInt(i.toString(), 10)].headerName, this.pdfViewer.ajaxRequestSettings.ajaxHeaders[parseInt(i.toString(), 10)].headerValue);\n }\n };\n return AjaxHandler;\n}());\nexport { AjaxHandler };\n","/**\n * Rect defines and processes rectangular regions\n */\nvar Rect = /** @class */ (function () {\n function Rect(x, y, width, height) {\n /**\n * Sets the x-coordinate of the starting point of a rectangular region\n * @default 0\n */\n this.x = Number.MAX_VALUE;\n /**\n * Sets the y-coordinate of the starting point of a rectangular region\n * @default 0\n */\n this.y = Number.MAX_VALUE;\n /**\n * Sets the width of a rectangular region\n * @default 0\n */\n this.width = 0;\n /**\n * Sets the height of a rectangular region\n * @default 0\n */\n this.height = 0;\n if (x === undefined || y === undefined) {\n x = y = Number.MAX_VALUE;\n width = height = 0;\n }\n else {\n if (width === undefined) {\n width = 0;\n }\n if (height === undefined) {\n height = 0;\n }\n }\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n }\n Object.defineProperty(Rect.prototype, \"left\", {\n /** @private */\n get: function () {\n return this.x;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"right\", {\n /** @private */\n get: function () {\n return this.x + this.width;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"top\", {\n /** @private */\n get: function () {\n return this.y;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"bottom\", {\n /** @private */\n get: function () {\n return this.y + this.height;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"topLeft\", {\n /** @private */\n get: function () {\n return { x: this.left, y: this.top };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"topRight\", {\n /** @private */\n get: function () {\n return { x: this.right, y: this.top };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"bottomLeft\", {\n /** @private */\n get: function () {\n return { x: this.left, y: this.bottom };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"bottomRight\", {\n /** @private */\n get: function () {\n return { x: this.right, y: this.bottom };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"middleLeft\", {\n /** @private */\n get: function () {\n return { x: this.left, y: this.y + this.height / 2 };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"middleRight\", {\n /** @private */\n get: function () {\n return { x: this.right, y: this.y + this.height / 2 };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"topCenter\", {\n /** @private */\n get: function () {\n return { x: this.x + this.width / 2, y: this.top };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"bottomCenter\", {\n /** @private */\n get: function () {\n return { x: this.x + this.width / 2, y: this.bottom };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"center\", {\n /** @private */\n get: function () {\n return { x: this.x + this.width / 2, y: this.y + this.height / 2 };\n },\n enumerable: true,\n configurable: true\n });\n /** @private */\n Rect.prototype.equals = function (rect1, rect2) {\n return rect1.x === rect2.x && rect1.y === rect2.y && rect1.width === rect2.width && rect1.height === rect2.height;\n };\n /** @private */\n Rect.prototype.uniteRect = function (rect) {\n var right = Math.max(Number.NaN === this.right || this.x === Number.MAX_VALUE ? rect.right : this.right, rect.right);\n var bottom = Math.max(Number.NaN === this.bottom || this.y === Number.MAX_VALUE ? rect.bottom : this.bottom, rect.bottom);\n this.x = Math.min(this.left, rect.left);\n this.y = Math.min(this.top, rect.top);\n this.width = right - this.x;\n this.height = bottom - this.y;\n return this;\n };\n /** @private */\n Rect.prototype.unitePoint = function (point) {\n if (this.x === Number.MAX_VALUE) {\n this.x = point.x;\n this.y = point.y;\n return;\n }\n var x = Math.min(this.left, point.x);\n var y = Math.min(this.top, point.y);\n var right = Math.max(this.right, point.x);\n var bottom = Math.max(this.bottom, point.y);\n this.x = x;\n this.y = y;\n this.width = right - this.x;\n this.height = bottom - this.y;\n };\n Rect.prototype.intersection = function (rect) {\n if (this.intersects(rect)) {\n var left = Math.max(this.left, rect.left);\n var top_1 = Math.max(this.top, rect.top);\n var right = Math.min(this.right, rect.right);\n var bottom = Math.min(this.bottom, rect.bottom);\n return new Rect(left, top_1, right - left, bottom - top_1);\n }\n return Rect.empty;\n };\n /** @private */\n Rect.prototype.Inflate = function (padding) {\n this.x -= padding;\n this.y -= padding;\n this.width += padding * 2;\n this.height += padding * 2;\n return this;\n };\n // public Inflate(size: Size): Rect {\n // this.x -= size.Width;\n // this.y -= size.Height;\n // this.width += size.Width * 2;\n // this.height += size.Height * 2;\n // return this;\n // }\n // public inflate(width: number, height: number): void {\n // this.x -= width;\n // this.y -= height;\n // this.width += width * 2;\n // this.height += height * 2;\n // }\n /** @private */\n Rect.prototype.intersects = function (rect) {\n if (this.right < rect.left || this.left > rect.right || this.top > rect.bottom || this.bottom < rect.top) {\n return false;\n }\n return true;\n };\n /** @private */\n Rect.prototype.containsRect = function (rect) {\n return this.left <= rect.left && this.right >= rect.right && this.top <= rect.top && this.bottom >= rect.bottom;\n };\n /** @private */\n Rect.prototype.containsPoint = function (point, padding) {\n if (padding === void 0) { padding = 0; }\n return this.left - padding <= point.x && this.right + padding >= point.x\n && this.top - padding <= point.y && this.bottom + padding >= point.y;\n };\n Rect.prototype.toPoints = function () {\n var points = [];\n points.push(this.topLeft);\n points.push(this.topRight);\n points.push(this.bottomLeft);\n points.push(this.bottomRight);\n return points;\n };\n /** @private */\n Rect.toBounds = function (points) {\n var rect = new Rect();\n for (var _i = 0, points_1 = points; _i < points_1.length; _i++) {\n var pt = points_1[_i];\n rect.unitePoint(pt);\n }\n return rect;\n };\n Rect.prototype.scale = function (scaleX, scaleY) {\n this.width *= scaleX;\n this.height *= scaleY;\n };\n Rect.prototype.offset = function (offsetX, offsetY) {\n this.x += offsetX;\n this.y += offsetY;\n };\n /** @private */\n Rect.empty = new Rect(Number.MAX_VALUE, Number.MIN_VALUE, 0, 0);\n return Rect;\n}());\nexport { Rect };\n","import { identityMatrix, rotateMatrix, transformPointByMatrix } from './../primitives/matrix';\nimport { Container } from './../core/containers/container';\nimport { StrokeStyle } from './../core/appearance';\nimport { Point } from './../primitives/point';\nimport { TextElement } from '../core/elements/text-element';\nimport { rotatePoint } from './base-util';\n/**\n * Implements the drawing functionalities\n */\n/** @private */\nexport function findNearestPoint(reference, start, end) {\n var shortestPoint;\n var shortest = Point.findLength(start, reference);\n var shortest1 = Point.findLength(end, reference);\n if (shortest > shortest1) {\n shortestPoint = end;\n }\n else {\n shortestPoint = start;\n }\n var angleBWStAndEnd = Point.findAngle(start, end);\n var angleBWStAndRef = Point.findAngle(shortestPoint, reference);\n var r = Point.findLength(shortestPoint, reference);\n var vaAngle = angleBWStAndRef + ((angleBWStAndEnd - angleBWStAndRef) * 2);\n return {\n x: (shortestPoint.x + r * Math.cos(vaAngle * Math.PI / 180)),\n y: (shortestPoint.y + r * Math.sin(vaAngle * Math.PI / 180))\n };\n}\n/** @private */\nexport function findElementUnderMouse(obj, position, padding) {\n return findTargetElement(obj.wrapper, position, padding);\n}\n/** @private */\nexport function findTargetElement(container, position, padding) {\n for (var i = container.children.length - 1; i >= 0; i--) {\n var element = container.children[i];\n if (element && element.bounds.containsPoint(position, 0)) {\n if (element instanceof Container) {\n var target = this.findTargetElement(element, position);\n if (target) {\n return target;\n }\n }\n if (element.bounds.containsPoint(position, 0)) {\n return element;\n }\n }\n }\n if (container.bounds.containsPoint(position, padding) && container.style.fill !== 'none') {\n return container;\n }\n return null;\n}\n/** @private */\nexport function intersect3(lineUtil1, lineUtil2) {\n var point = { x: 0, y: 0 };\n var l1 = lineUtil1;\n var l2 = lineUtil2;\n var d = (l2.y2 - l2.y1) * (l1.x2 - l1.x1) - (l2.x2 - l2.x1) * (l1.y2 - l1.y1);\n var na = (l2.x2 - l2.x1) * (l1.y1 - l2.y1) - (l2.y2 - l2.y1) * (l1.x1 - l2.x1);\n var nb = (l1.x2 - l1.x1) * (l1.y1 - l2.y1) - (l1.y2 - l1.y1) * (l1.x1 - l2.x1);\n if (d === 0) {\n return { enabled: false, intersectPt: point };\n }\n var ua = na / d;\n var ub = nb / d;\n if (ua >= 0 && ua <= 1 && ub >= 0 && ub <= 1) {\n point.x = l1.x1 + (ua * (l1.x2 - l1.x1));\n point.y = l1.y1 + (ua * (l1.y2 - l1.y1));\n return { enabled: true, intersectPt: point };\n }\n return { enabled: false, intersectPt: point };\n}\n/** @private */\nexport function intersect2(start1, end1, start2, end2) {\n var point = { x: 0, y: 0 };\n var lineUtil1 = getLineSegment(start1.x, start1.y, end1.x, end1.y);\n var lineUtil2 = getLineSegment(start2.x, start2.y, end2.x, end2.y);\n var line3 = intersect3(lineUtil1, lineUtil2);\n if (line3.enabled) {\n return line3.intersectPt;\n }\n else {\n return point;\n }\n}\n/** @private */\nexport function getLineSegment(x1, y1, x2, y2) {\n return { 'x1': Number(x1) || 0, 'y1': Number(y1) || 0, 'x2': Number(x2) || 0, 'y2': Number(y2) || 0 };\n}\n/** @private */\nexport function getPoints(element, corners, padding) {\n var line = [];\n padding = padding || 0;\n var left = { x: corners.topLeft.x - padding, y: corners.topLeft.y };\n var right = { x: corners.topRight.x + padding, y: corners.topRight.y };\n var top = { x: corners.bottomRight.x, y: corners.bottomRight.y - padding };\n var bottom = { x: corners.bottomLeft.x, y: corners.bottomLeft.y + padding };\n line.push(left);\n line.push(right);\n line.push(top);\n line.push(bottom);\n return line;\n}\n/** @private */\nexport function getBezierDirection(src, tar) {\n if (Math.abs(tar.x - src.x) > Math.abs(tar.y - src.y)) {\n return src.x < tar.x ? 'right' : 'left';\n }\n else {\n return src.y < tar.y ? 'bottom' : 'top';\n }\n}\n/** @private */\nexport function updateStyle(changedObject, target) {\n //since text style model is the super set of shape style model, we used text style model\n var style = target.style;\n var textElement = target;\n for (var _i = 0, _a = Object.keys(changedObject); _i < _a.length; _i++) {\n var key = _a[_i];\n switch (key) {\n case 'fill':\n style.fill = changedObject.fill;\n if (style instanceof StrokeStyle) {\n /* tslint:disable:no-string-literal */\n style['fill'] = 'transparent';\n }\n break;\n case 'textOverflow':\n style.textOverflow = changedObject.textOverflow;\n break;\n case 'opacity':\n style.opacity = changedObject.opacity;\n break;\n case 'strokeColor':\n style.strokeColor = changedObject.strokeColor;\n break;\n case 'strokeDashArray':\n style.strokeDashArray = changedObject.strokeDashArray;\n break;\n case 'strokeWidth':\n style.strokeWidth = changedObject.strokeWidth;\n break;\n case 'bold':\n style.bold = changedObject.bold;\n break;\n case 'color':\n style.color = changedObject.color;\n break;\n case 'textWrapping':\n style.textWrapping = changedObject.textWrapping;\n break;\n case 'fontFamily':\n style.fontFamily = changedObject.fontFamily;\n break;\n case 'fontSize':\n style.fontSize = changedObject.fontSize;\n break;\n case 'italic':\n style.italic = changedObject.italic;\n break;\n case 'textAlign':\n style.textAlign = changedObject.textAlign;\n break;\n case 'whiteSpace':\n style.whiteSpace = changedObject.whiteSpace;\n break;\n case 'textDecoration':\n style.textDecoration = changedObject.textDecoration;\n break;\n }\n }\n if (target instanceof TextElement) {\n textElement.refreshTextElement();\n }\n}\n/** @private */\nexport function scaleElement(element, sw, sh, refObject) {\n if (element.width !== undefined && element.height !== undefined) {\n element.width *= sw;\n element.height *= sh;\n }\n if (element instanceof Container) {\n var matrix = identityMatrix();\n var width = refObject.width || refObject.actualSize.width;\n var height = refObject.height || refObject.actualSize.height;\n if (width !== undefined && height !== undefined) {\n var x = refObject.offsetX - width * refObject.pivot.x;\n var y = refObject.offsetY - height * refObject.pivot.y;\n var refPoint = {\n x: x + width * refObject.pivot.x,\n y: y + height * refObject.pivot.y\n };\n refPoint = rotatePoint(refObject.rotateAngle, refObject.offsetX, refObject.offsetY, refPoint);\n rotateMatrix(matrix, -refObject.rotateAngle, refPoint.x, refPoint.y);\n // scaleMatrix(matrix, sw, sh, refPoint.x, refPoint.y);\n rotateMatrix(matrix, refObject.rotateAngle, refPoint.x, refPoint.y);\n for (var _i = 0, _a = element.children; _i < _a.length; _i++) {\n var child = _a[_i];\n if (child.width !== undefined && child.height !== undefined) {\n var newPosition = transformPointByMatrix(matrix, { x: child.offsetX, y: child.offsetY });\n child.offsetX = newPosition.x;\n child.offsetY = newPosition.y;\n scaleElement(child, sw, sh, refObject);\n }\n }\n }\n }\n}\n/** @private */\nexport function contains(mousePosition, corner, padding) {\n if (mousePosition.x >= corner.x - padding && mousePosition.x <= corner.x + padding) {\n if (mousePosition.y >= corner.y - padding && mousePosition.y <= corner.y + padding) {\n return true;\n }\n }\n return false;\n}\n/** @private */\nexport function getPoint(x, y, w, h, angle, offsetX, offsetY, cornerPoint) {\n var pivot = { x: 0, y: 0 };\n var trans = identityMatrix();\n rotateMatrix(trans, angle, offsetX, offsetY);\n switch (cornerPoint.x) {\n case 0:\n switch (cornerPoint.y) {\n case 0:\n pivot = transformPointByMatrix(trans, ({ x: x, y: y }));\n break;\n case 0.5:\n pivot = transformPointByMatrix(trans, ({ x: x, y: y + h / 2 }));\n break;\n case 1:\n pivot = transformPointByMatrix(trans, ({ x: x, y: y + h }));\n break;\n }\n break;\n case 0.5:\n switch (cornerPoint.y) {\n case 0:\n pivot = transformPointByMatrix(trans, ({ x: x + w / 2, y: y }));\n break;\n case 0.5:\n pivot = transformPointByMatrix(trans, ({ x: x + w / 2, y: y + h / 2 }));\n break;\n case 1:\n pivot = transformPointByMatrix(trans, ({ x: x + w / 2, y: y + h }));\n break;\n }\n break;\n case 1:\n switch (cornerPoint.y) {\n case 0:\n pivot = transformPointByMatrix(trans, ({ x: x + w, y: y }));\n break;\n case 0.5:\n pivot = transformPointByMatrix(trans, ({ x: x + w, y: y + h / 2 }));\n break;\n case 1:\n pivot = transformPointByMatrix(trans, ({ x: x + w, y: y + h }));\n break;\n }\n break;\n }\n return { x: pivot.x, y: pivot.y };\n}\n","import { Rect } from '../primitives/rect';\nimport { Size } from '../primitives/size';\nimport { whiteSpaceToString, wordBreakToString, textAlignToString, bBoxText } from './base-util';\nimport { identityMatrix, transformPointByMatrix, rotateMatrix } from '../primitives/matrix';\nimport { createElement, Browser } from '@syncfusion/ej2-base';\n/**\n * Defines the functionalities that need to access DOM\n */\nexport function getChildNode(node) {\n var child;\n var collection = [];\n if (Browser.info.name === 'msie' || Browser.info.name === 'edge') {\n for (var i = 0; i < node.childNodes.length; i++) {\n child = node.childNodes[i];\n if (child.nodeType === 1) {\n collection.push(child);\n }\n }\n }\n else {\n collection = node.children;\n }\n return collection;\n}\nexport function translatePoints(element, points) {\n var translatedPts = [];\n for (var _i = 0, points_1 = points; _i < points_1.length; _i++) {\n var point = points_1[_i];\n var pt1 = {\n x: element.offsetX - element.actualSize.width * element.pivot.x + point.x,\n y: element.offsetY - element.actualSize.height * element.pivot.y + point.y\n };\n var matrix = void 0;\n var angle = element.rotateAngle + element.parentTransform;\n if (angle) {\n matrix = identityMatrix();\n rotateMatrix(matrix, angle, element.offsetX, element.offsetY);\n }\n if (matrix) {\n pt1 = transformPointByMatrix(matrix, pt1);\n }\n translatedPts.push(pt1);\n }\n return translatedPts;\n}\n/** @private */\nexport function measurePath(data) {\n var path = 'pathTable';\n if (!window[path]) {\n window[path] = {};\n }\n if (data) {\n var measureElement = 'measureElement';\n window[measureElement].style.visibility = 'visible';\n var svg = window[measureElement].children[2];\n var element = getChildNode(svg)[0];\n element.setAttribute('d', data);\n //let bounds: SVGRect = element.getBBox();\n var bounds = void 0;\n if (window[path][data]) {\n bounds = window[path][data];\n }\n else {\n window[path][data] = bounds = element.getBBox();\n if ((bounds.x === 0 || bounds.y === 0) && (bounds.width === 0 || bounds.height === 0)) {\n window[path][data] = bounds = getBBox(data);\n }\n }\n var svgBounds = new Rect(bounds.x, bounds.y, bounds.width, bounds.height);\n window[measureElement].style.visibility = 'hidden';\n return svgBounds;\n }\n return new Rect(0, 0, 0, 0);\n}\n// tslint:disable-next-line\nfunction getBBox(path) {\n var xmin = 0;\n var xmax = 0;\n var ymin = 0;\n var ymax = 0;\n // tslint:disable-next-line\n var currentValue;\n // tslint:disable-next-line\n var currentpath = path;\n currentpath = currentpath.replace(/[a-z].*/g, ' ').replace(/[\\sA-Z]+/gi, ' ').trim().split(' ');\n for (var i = 0; i < currentpath.length; i++) {\n if (currentpath[i].length > 1) {\n currentValue = currentpath[i].split(',');\n xmin = xmax = currentValue[0];\n ymin = ymax = currentValue[1];\n }\n }\n for (var i = 0; i < currentpath.length; i++) {\n currentValue = currentpath[i].split(',');\n if (!currentValue[1]) {\n currentValue[0] = xmin;\n currentValue[1] = ymin;\n }\n xmin = Math.min(xmin, currentValue[0]);\n xmax = Math.max(xmax, currentValue[0]);\n ymin = Math.min(ymin, currentValue[1]);\n ymax = Math.max(ymax, currentValue[1]);\n }\n return { x: xmin, y: ymin, width: xmax - xmin, height: ymax - ymin };\n}\nfunction getTextOptions(element, maxWidth) {\n var options = {\n fill: element.style.fill, stroke: element.style.strokeColor, angle: element.rotateAngle + element.parentTransform,\n pivotX: element.pivot.x, pivotY: element.pivot.y, strokeWidth: element.style.strokeWidth,\n dashArray: element.style.strokeDashArray, opacity: element.style.opacity,\n visible: element.visible, id: element.id,\n width: maxWidth || element.actualSize.width, height: element.actualSize.height,\n x: element.offsetX - element.actualSize.width * element.pivot.x + 0.5,\n y: element.offsetY - element.actualSize.height * element.pivot.y + 0.5\n };\n options.fontSize = element.style.fontSize;\n options.fontFamily = element.style.fontFamily;\n options.textOverflow = element.style.textOverflow;\n options.textDecoration = element.style.textDecoration;\n options.doWrap = element.doWrap;\n options.whiteSpace = whiteSpaceToString(element.style.whiteSpace, element.style.textWrapping);\n options.content = element.content;\n options.textWrapping = element.style.textWrapping;\n options.breakWord = wordBreakToString(element.style.textWrapping);\n options.textAlign = textAlignToString(element.style.textAlign);\n options.color = element.style.color;\n options.italic = element.style.italic;\n options.bold = element.style.bold;\n options.dashArray = '';\n options.strokeWidth = 0;\n options.fill = '';\n return options;\n}\nfunction wrapSvgText(text, textValue) {\n var childNodes = [];\n var k = 0;\n var txtValue;\n var bounds1;\n var content = textValue || text.content;\n if (text.whiteSpace !== 'nowrap' && text.whiteSpace !== 'pre') {\n if (text.breakWord === 'breakall') {\n txtValue = '';\n txtValue += content[0];\n for (k = 0; k < content.length; k++) {\n bounds1 = bBoxText(txtValue, text);\n if (bounds1 >= text.width && txtValue.length > 0) {\n childNodes[childNodes.length] = { text: txtValue, x: 0, dy: 0, width: bounds1 };\n txtValue = '';\n }\n else {\n txtValue = txtValue + (content[k + 1] || '');\n // if (txtValue.indexOf('\\n') > -1) {\n // txtValue = txtValue.replace('\\n', '');\n // }\n var width = bBoxText(txtValue, text);\n if ((Math.ceil(width) + 2 >= text.width && txtValue.length > 0) || (txtValue.indexOf('\\n') > -1)) {\n childNodes[childNodes.length] = { text: txtValue, x: 0, dy: 0, width: width };\n txtValue = '';\n }\n if (k === content.length - 1 && txtValue.length > 0) {\n childNodes[childNodes.length] = { text: txtValue, x: 0, dy: 0, width: width };\n txtValue = '';\n }\n }\n }\n }\n else {\n childNodes = wordWrapping(text, textValue);\n }\n }\n else {\n childNodes[childNodes.length] = { text: content, x: 0, dy: 0, width: bBoxText(content, text) };\n }\n return childNodes;\n}\nfunction wordWrapping(text, textValue) {\n var childNodes = [];\n var txtValue = '';\n var j = 0;\n var i = 0;\n var wrap = text.whiteSpace !== 'nowrap' ? true : false;\n var content = textValue || text.content;\n var bounds1;\n var eachLine = content.split('\\n');\n var txt;\n var words;\n var newText;\n var existingWidth;\n var existingText;\n for (j = 0; j < eachLine.length; j++) {\n txt = '';\n words = text.textWrapping !== 'NoWrap' ? eachLine[j].split(' ') : eachLine;\n for (i = 0; i < words.length; i++) {\n bounds1 = bBoxText(words[i], text);\n if (bounds1 > text.width && words[i].length > 0) {\n if (eachLine.length > 1) {\n words[i] = words[i] + '\\n';\n }\n text.content = words[i];\n childNodes = wrapText(text, txtValue, childNodes);\n }\n else {\n txtValue += (((i !== 0 || words.length === 1) && wrap && txtValue.length > 0) ? ' ' : '') + words[i];\n newText = txtValue + (words[i + 1] || '');\n var width = bBoxText(newText, text);\n if (eachLine.length > 1 && i === words.length - 1) {\n txtValue = txtValue + '\\n';\n }\n if (Math.floor(width) > text.width - 2 && txtValue.length > 0) {\n childNodes[childNodes.length] = {\n text: (txtValue.indexOf('\\n') === -1) ? txtValue + ' ' : textValue, x: 0, dy: 0,\n width: newText === txtValue ? width : (txtValue === existingText) ? existingWidth : bBoxText(txtValue, text)\n };\n txtValue = '';\n }\n else {\n if (i === words.length - 1) {\n childNodes[childNodes.length] = { text: txtValue, x: 0, dy: 0, width: width };\n txtValue = '';\n }\n }\n existingText = newText;\n existingWidth = width;\n }\n }\n }\n return childNodes;\n}\nfunction wrapText(txt, textValue, childNode) {\n var k = 0;\n var txtValue;\n var bounds1;\n var content = textValue || txt.content;\n txtValue = '';\n txtValue += content[0];\n for (k = 0; k < content.length; k++) {\n bounds1 = bBoxText(txtValue, txt);\n if (bounds1 >= txt.width && txtValue.length > 0) {\n childNode[childNode.length] = { text: txtValue, x: 0, dy: 0, width: bounds1 };\n txtValue = '';\n }\n else {\n txtValue = txtValue + (content[k + 1] || '');\n var width = bBoxText(txtValue, txt);\n if ((Math.ceil(width) + 2 >= txt.width && txtValue.length > 0) || (txtValue.indexOf('\\n') > -1)) {\n txtValue = txtValue.slice(0, -1);\n childNode[childNode.length] = { text: txtValue, x: 0, dy: 0, width: width };\n txtValue = content[k + 1] || '';\n }\n if (k === content.length - 1 && txtValue.length > 0) {\n childNode[childNode.length] = { text: txtValue, x: 0, dy: 0, width: width };\n txtValue = '';\n }\n }\n }\n return childNode;\n}\nfunction wrapSvgTextAlign(text, childNodes) {\n var wrapBounds = { x: 0, width: 0 };\n var k = 0;\n var txtWidth;\n var width;\n for (k = 0; k < childNodes.length; k++) {\n txtWidth = childNodes[k].width;\n width = txtWidth;\n if (text.textAlign === 'left') {\n txtWidth = 0;\n }\n else if (text.textAlign === 'center') {\n if (txtWidth > text.width && (text.textOverflow === 'Ellipsis' || text.textOverflow === 'Clip')) {\n txtWidth = 0;\n }\n else {\n txtWidth = -txtWidth / 2;\n }\n }\n else if (text.textAlign === 'right') {\n txtWidth = -txtWidth;\n }\n else {\n txtWidth = childNodes.length > 1 ? 0 : -txtWidth / 2;\n }\n childNodes[k].dy = text.fontSize * 1.2;\n childNodes[k].x = txtWidth;\n if (!wrapBounds) {\n wrapBounds = {\n x: txtWidth,\n width: width\n };\n }\n else {\n wrapBounds.x = Math.min(wrapBounds.x, txtWidth);\n wrapBounds.width = Math.max(wrapBounds.width, width);\n }\n }\n return wrapBounds;\n}\n/** @private */\nexport function measureText(text, style, content, maxWidth, textValue) {\n var bounds = new Size(0, 0);\n var childNodes;\n var wrapBounds;\n var options = getTextOptions(text, maxWidth);\n text.childNodes = childNodes = wrapSvgText(options, textValue);\n text.wrapBounds = wrapBounds = wrapSvgTextAlign(options, childNodes);\n bounds.width = wrapBounds.width;\n if (text.wrapBounds.width >= maxWidth && options.textOverflow !== 'Wrap') {\n bounds.width = maxWidth;\n }\n bounds.height = childNodes.length * text.style.fontSize * 1.2;\n return bounds;\n}\n/** @private */\nexport function getDiagramElement(elementId, contentId) {\n var diagramElement;\n var element;\n if (contentId) {\n element = document.getElementById(contentId);\n }\n diagramElement = (element) ? element.querySelector('#' + elementId) : document.getElementById(elementId);\n return diagramElement;\n}\n/** @private */\nexport function createHtmlElement(elementType, attribute) {\n var element = createElement(elementType);\n setAttributeHtml(element, attribute);\n return element;\n}\n/** @private */\nexport function setAttributeHtml(element, attributes) {\n var keys = Object.keys(attributes);\n for (var i = 0; i < keys.length; i++) {\n element.setAttribute(keys[i], attributes[keys[i]]);\n }\n}\n/**\n * @private\n */\nexport function getAdornerLayerSvg(diagramId, index) {\n var adornerLayerSvg = null;\n var diagramElement = getDiagramElement(diagramId + index + '_diagramAdornerLayer');\n var elementcoll;\n if (diagramElement) {\n elementcoll = diagramElement.getElementsByClassName('e-adorner-layer' + index);\n adornerLayerSvg = elementcoll[0];\n }\n return adornerLayerSvg;\n}\n/** @private */\nexport function getSelectorElement(diagramId, index) {\n var adornerLayer = null;\n var adornerSvg = getAdornerLayerSvg(diagramId, index);\n if (adornerSvg) {\n adornerLayer = adornerSvg.getElementById(diagramId + '_SelectorElement');\n }\n return adornerLayer;\n}\n/** @private */\nexport function createMeasureElements() {\n var measureElement = 'measureElement';\n if (!window[measureElement]) {\n var divElement = createHtmlElement('div', {\n id: 'measureElement',\n style: 'visibility:hidden ; height: 0px ; width: 0px; overflow: hidden;'\n });\n var text = createHtmlElement('span', { 'style': 'display:inline-block ; line-height: normal' });\n divElement.appendChild(text);\n var imageElement = void 0;\n imageElement = createHtmlElement('img', {});\n divElement.appendChild(imageElement);\n var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n svg.setAttribute('xlink', 'http://www.w3.org/1999/xlink');\n divElement.appendChild(svg);\n var element = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n svg.appendChild(element);\n var data = document.createTextNode('');\n var tSpan = document.createElementNS('http://www.w3.org/2000/svg', 'text');\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n svg.appendChild(tSpan);\n window[measureElement] = divElement;\n window[measureElement].usageCount = 1;\n document.body.appendChild(divElement);\n }\n else {\n window[measureElement].usageCount += 1;\n }\n}\n/** @private */\nexport function measureImage(source, contentSize) {\n var measureElement = 'measureElement';\n window[measureElement].style.visibility = 'visible';\n var imageElement = window[measureElement].children[1];\n imageElement.setAttribute('src', source);\n var bounds = imageElement.getBoundingClientRect();\n var width = bounds.width;\n var height = bounds.height;\n contentSize = new Size(width, height);\n window[measureElement].style.visibility = 'hidden';\n return contentSize;\n}\n","import { Rect } from '../primitives/rect';\nimport { identityMatrix, transformPointByMatrix, rotateMatrix } from '../primitives/matrix';\nimport { getChildNode } from './dom-util';\nimport { Size } from '../primitives/size';\n/**\n * Implements the basic functionalities\n */\n/** @private */\nexport function randomId() {\n var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz';\n var id = '';\n var num;\n for (var i = 0; i < 5; i++) {\n if ('crypto' in window && 'getRandomValues' in crypto) {\n var count = new Uint16Array(1);\n // tslint:disable-next-line:no-any\n var intCrypto = window.msCrypto || window.crypto;\n num = intCrypto.getRandomValues(count)[0] % (chars.length - 1);\n }\n else {\n num = Math.floor(Math.random() * chars.length);\n }\n if (i === 0 && num < 10) {\n i--;\n continue;\n }\n id += chars.substring(num, num + 1);\n }\n return id;\n}\n/** @private */\nexport function cornersPointsBeforeRotation(ele) {\n var bounds = new Rect();\n var top = ele.offsetY - ele.actualSize.height * ele.pivot.y;\n var bottom = ele.offsetY + ele.actualSize.height * (1 - ele.pivot.y);\n var left = ele.offsetX - ele.actualSize.width * ele.pivot.x;\n var right = ele.offsetX + ele.actualSize.width * (1 - ele.pivot.x);\n var topLeft = { x: left, y: top };\n var topCenter = { x: (left + right) / 2, y: top };\n var topRight = { x: right, y: top };\n var middleLeft = { x: left, y: (top + bottom) / 2 };\n var middleRight = { x: right, y: (top + bottom) / 2 };\n var bottomLeft = { x: left, y: bottom };\n var bottomCenter = { x: (left + right) / 2, y: bottom };\n var bottomRight = { x: right, y: bottom };\n bounds = Rect.toBounds([topLeft, topRight, bottomLeft, bottomRight]);\n return bounds;\n}\n/** @private */\nexport function rotateSize(size, angle) {\n var matrix = identityMatrix();\n rotateMatrix(matrix, angle, 0, 0);\n var topLeft = transformPointByMatrix(matrix, { x: 0, y: 0 });\n var topRight = transformPointByMatrix(matrix, { x: size.width, y: 0 });\n var bottomLeft = transformPointByMatrix(matrix, { x: 0, y: size.height });\n var bottomRight = transformPointByMatrix(matrix, { x: size.width, y: size.height });\n var minX = Math.min(topLeft.x, topRight.x, bottomLeft.x, bottomRight.x);\n var minY = Math.min(topLeft.y, topRight.y, bottomLeft.y, bottomRight.y);\n var maxX = Math.max(topLeft.x, topRight.x, bottomLeft.x, bottomRight.x);\n var maxY = Math.max(topLeft.y, topRight.y, bottomLeft.y, bottomRight.y);\n return new Size(maxX - minX, maxY - minY);\n}\n/** @private */\nexport function getBounds(element) {\n var bounds = new Rect();\n var corners;\n corners = cornersPointsBeforeRotation(element);\n var middleLeft = corners.middleLeft;\n var topCenter = corners.topCenter;\n var bottomCenter = corners.bottomCenter;\n var middleRight = corners.middleRight;\n var topLeft = corners.topLeft;\n var topRight = corners.topRight;\n var bottomLeft = corners.bottomLeft;\n var bottomRight = corners.bottomRight;\n element.corners = {\n topLeft: topLeft, topCenter: topCenter, topRight: topRight, middleLeft: middleLeft,\n middleRight: middleRight, bottomLeft: bottomLeft, bottomCenter: bottomCenter, bottomRight: bottomRight\n };\n if (element.rotateAngle !== 0 || element.parentTransform !== 0) {\n var matrix = identityMatrix();\n rotateMatrix(matrix, element.rotateAngle + element.parentTransform, element.offsetX, element.offsetY);\n element.corners.topLeft = topLeft = transformPointByMatrix(matrix, topLeft);\n element.corners.topCenter = topCenter = transformPointByMatrix(matrix, topCenter);\n element.corners.topRight = topRight = transformPointByMatrix(matrix, topRight);\n element.corners.middleLeft = middleLeft = transformPointByMatrix(matrix, middleLeft);\n element.corners.middleRight = middleRight = transformPointByMatrix(matrix, middleRight);\n element.corners.bottomLeft = bottomLeft = transformPointByMatrix(matrix, bottomLeft);\n element.corners.bottomCenter = bottomCenter = transformPointByMatrix(matrix, bottomCenter);\n element.corners.bottomRight = bottomRight = transformPointByMatrix(matrix, bottomRight);\n //Set corners based on rotate angle\n }\n bounds = Rect.toBounds([topLeft, topRight, bottomLeft, bottomRight]);\n element.corners.left = bounds.left;\n element.corners.right = bounds.right;\n element.corners.top = bounds.top;\n element.corners.bottom = bounds.bottom;\n element.corners.center = bounds.center;\n element.corners.width = bounds.width;\n element.corners.height = bounds.height;\n return bounds;\n}\n/** @private */\nexport function textAlignToString(value) {\n var state = '';\n switch (value) {\n case 'Center':\n state = 'center';\n break;\n case 'Left':\n state = 'left';\n break;\n case 'Right':\n state = 'right';\n break;\n }\n return state;\n}\n/** @private */\nexport function wordBreakToString(value) {\n var state = '';\n switch (value) {\n case 'Wrap':\n state = 'breakall';\n break;\n case 'NoWrap':\n state = 'keepall';\n break;\n case 'WrapWithOverflow':\n state = 'normal';\n break;\n case 'LineThrough':\n state = 'line-through';\n break;\n }\n return state;\n}\nexport function bBoxText(textContent, options) {\n var measureElement = 'measureElement';\n window[measureElement].style.visibility = 'visible';\n var svg = window[measureElement].children[2];\n var text = getChildNode(svg)[1];\n text.textContent = textContent;\n text.setAttribute('style', 'font-size:' + options.fontSize + 'px; font-family:'\n + options.fontFamily + ';font-weight:' + (options.bold ? 'bold' : 'normal'));\n var bBox = text.getBBox().width;\n window[measureElement].style.visibility = 'hidden';\n return bBox;\n}\n/** @private */\nexport function middleElement(i, j) {\n var m = 0;\n m = (i + j) / 2;\n return m;\n}\n/** @private */\nexport function whiteSpaceToString(value, wrap) {\n if (wrap === 'NoWrap' && value === 'PreserveAll') {\n return 'pre';\n }\n var state = '';\n switch (value) {\n case 'CollapseAll':\n state = 'nowrap';\n break;\n case 'CollapseSpace':\n state = 'pre-line';\n break;\n case 'PreserveAll':\n state = 'pre-wrap';\n break;\n }\n return state;\n}\n/** @private */\nexport function rotatePoint(angle, pivotX, pivotY, point) {\n if (angle !== 0) {\n var matrix = identityMatrix();\n rotateMatrix(matrix, angle, pivotX, pivotY);\n return transformPointByMatrix(matrix, point);\n }\n return point;\n}\n/** @private */\nexport function getOffset(topLeft, obj) {\n var offX = topLeft.x + obj.desiredSize.width * obj.pivot.x;\n var offY = topLeft.y + obj.desiredSize.height * obj.pivot.y;\n return {\n x: offX, y: offY\n };\n}\n","import { RotateTransform, ElementAction } from '../../enum/enum';\nimport { Size } from '../../primitives/size';\nimport { Rect } from '../../primitives/rect';\nimport { getBounds } from '../../utility/base-util';\n/**\n * DiagramElement module defines the basic unit of diagram\n */\nvar DrawingElement = /** @class */ (function () {\n function DrawingElement() {\n /**\n * Sets/Gets the reference point of the element\n * ```html\n *
    \n * ```\n * ```typescript\n * let stackPanel: StackPanel = new StackPanel();\n * stackPanel.offsetX = 300; stackPanel.offsetY = 200;\n * stackPanel.width = 100; stackPanel.height = 100;\n * stackPanel.style.fill = 'red';\n * stackPanel.pivot = { x: 0.5, y: 0.5 };\n * let diagram: Diagram = new Diagram({\n * ...\n * basicElements: [stackPanel],\n * ...\n * });\n * diagram.appendTo('#diagram');\n * ```\n */\n this.pivot = { x: 0.5, y: 0.5 };\n this.rotateValue = { x: 0, y: 0, angle: 0 };\n /**\n * Sets or gets whether the content of the element needs to be measured\n */\n this.isDirt = true;\n /**\n * Sets/Gets the x-coordinate of the element\n */\n this.offsetX = 0;\n /**\n * Sets/Gets the y-coordinate of the element\n */\n this.offsetY = 0;\n /**\n * Set the corner of the element\n */\n this.cornerRadius = 0;\n /**\n * Sets/Gets the minimum height of the element\n */\n this.minHeight = undefined;\n /**\n * Sets/Gets the minimum width of the element\n */\n this.minWidth = undefined;\n /**\n * Sets/Gets the maximum width of the element\n */\n this.maxWidth = undefined;\n /**\n * Sets/Gets the maximum height of the element\n */\n this.maxHeight = undefined;\n /**\n * Sets/Gets the width of the element\n */\n this.width = undefined;\n /**\n * Sets/Gets the height of the element\n */\n this.height = undefined;\n /**\n * Sets/Gets how the element has to be horizontally arranged with respect to its immediate parent\n * * Stretch - Stretches the diagram element throughout its immediate parent\n * * Left - Aligns the diagram element at the left of its immediate parent\n * * Right - Aligns the diagram element at the right of its immediate parent\n * * Center - Aligns the diagram element at the center of its immediate parent\n * * Auto - Aligns the diagram element based on the characteristics of its immediate parent\n */\n this.horizontalAlignment = 'Auto';\n /**\n * Sets/Gets how the element has to be vertically arranged with respect to its immediate parent\n * * Stretch - Stretches the diagram element throughout its immediate parent\n * * Top - Aligns the diagram element at the top of its immediate parent\n * * Bottom - Aligns the diagram element at the bottom of its immediate parent\n * * Center - Aligns the diagram element at the center of its immediate parent\n * * Auto - Aligns the diagram element based on the characteristics of its immediate parent\n */\n this.verticalAlignment = 'Auto';\n /**\n * Sets or gets whether the content of the element to be visible\n */\n this.visible = true;\n /**\n * Sets/Gets the rotate angle of the element\n */\n this.rotateAngle = 0;\n /**\n * Sets/Gets the margin of the element\n */\n this.margin = { left: 0, right: 0, top: 0, bottom: 0 };\n /**\n * Sets whether the element has to be aligned with respect to a point/with respect to its immediate parent\n * * Point - Diagram elements will be aligned with respect to a point\n * * Object - Diagram elements will be aligned with respect to its immediate parent\n */\n this.relativeMode = 'Point';\n /**\n * Sets whether the element has to be transformed based on its parent or not\n * * Self - Sets the transform type as Self\n * * Parent - Sets the transform type as Parent\n */\n /** @private */\n this.transform = RotateTransform.Self | RotateTransform.Parent;\n /**\n * Sets the style of the element\n */\n this.style = { fill: 'white', strokeColor: 'black', opacity: 1, strokeWidth: 1 };\n /**\n * Gets the minimum size that is required by the element\n */\n this.desiredSize = new Size();\n /**\n * Gets the size that the element will be rendered\n */\n this.actualSize = new Size();\n /**\n * Gets the rotate angle that is set to the immediate parent of the element\n */\n this.parentTransform = 0;\n /** @private */\n this.preventContainer = false;\n /**\n * Gets/Sets the boundary of the element\n */\n this.bounds = new Rect(0, 0, 0, 0);\n /**\n * Defines whether the element has to be measured or not\n */\n this.staticSize = false;\n /**\n * check whether the element is rect or not\n */\n /** @private */\n this.isRectElement = false;\n /** @private */\n this.isCalculateDesiredSize = true;\n /**\n * Defines whether the element is group or port\n */\n /** @private */\n this.elementActions = ElementAction.None;\n //private variables\n this.position = undefined;\n this.unitMode = undefined;\n /** @private */\n this.float = false;\n this.floatingBounds = undefined;\n }\n // public constructor() {\n // this.id = randomId();\n // }\n /**\n * Sets the offset of the element with respect to its parent\n * @param x\n * @param y\n * @param mode\n */\n DrawingElement.prototype.setOffsetWithRespectToBounds = function (x, y, mode) {\n this.unitMode = mode;\n this.position = { x: x, y: y };\n };\n /**\n * Gets the position of the element with respect to its parent\n * @param size\n */\n DrawingElement.prototype.getAbsolutePosition = function (size) {\n if (this.position !== undefined) {\n if (this.unitMode === 'Absolute') {\n return this.position;\n }\n else {\n return {\n x: this.position.x * size.width, y: this.position.y * size.height\n };\n }\n }\n return undefined;\n };\n Object.defineProperty(DrawingElement.prototype, \"outerBounds\", {\n get: function () {\n return this.floatingBounds || this.bounds;\n },\n /**\n * used to set the outer bounds value\n * @private\n */\n set: function (bounds) {\n this.floatingBounds = bounds;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Measures the minimum space that the element requires\n * @param availableSize\n */\n DrawingElement.prototype.measure = function (availableSize) {\n var width = this.width !== undefined ? this.width : (availableSize.width || 0) - this.margin.left - this.margin.right;\n var height = this.height !== undefined ? this.height : (availableSize.height || 0) - this.margin.top - this.margin.bottom;\n this.desiredSize = new Size(width, height);\n if (this.isCalculateDesiredSize) {\n this.desiredSize = this.validateDesiredSize(this.desiredSize, availableSize);\n }\n return this.desiredSize;\n };\n /**\n * Arranges the element\n * @param desiredSize\n */\n DrawingElement.prototype.arrange = function (desiredSize) {\n this.actualSize = desiredSize;\n this.updateBounds();\n return this.actualSize;\n };\n /**\n * Updates the bounds of the element\n */\n DrawingElement.prototype.updateBounds = function () {\n this.bounds = getBounds(this);\n };\n /**\n * Validates the size of the element with respect to its minimum and maximum size\n * @param desiredSize\n * @param availableSize\n */\n DrawingElement.prototype.validateDesiredSize = function (desiredSize, availableSize) {\n //Empty canvas\n if (this.isRectElement && !this.width && !this.minWidth && !this.maxWidth) {\n desiredSize.width = 50;\n }\n if (this.isRectElement && !this.height && !this.minHeight && !this.maxHeight) {\n desiredSize.height = 50;\n }\n if (desiredSize === undefined || this.width !== undefined &&\n this.height !== undefined) {\n desiredSize = desiredSize || new Size();\n desiredSize.width = this.width === undefined ? (availableSize.width || 0)\n - this.margin.left - this.margin.right : this.width;\n desiredSize.height = this.height === undefined ? (availableSize.height || 0)\n - this.margin.top - this.margin.bottom : this.height;\n }\n //Considering min values\n if (this.minWidth !== undefined) {\n desiredSize.width = Math.max(desiredSize.width, this.minWidth);\n }\n if (this.minHeight !== undefined) {\n desiredSize.height = Math.max(desiredSize.height, this.minHeight);\n }\n //Considering max values\n if (this.maxWidth !== undefined) {\n desiredSize.width = Math.min(desiredSize.width, this.maxWidth);\n }\n if (this.maxHeight !== undefined) {\n desiredSize.height = Math.min(desiredSize.height, this.maxHeight);\n }\n return desiredSize;\n };\n return DrawingElement;\n}());\nexport { DrawingElement };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { Size } from '../../primitives/size';\nimport { DrawingElement } from './drawing-element';\nimport { measureText } from './../../utility/dom-util';\n/**\n * TextElement is used to display text/annotations\n */\nvar TextElement = /** @class */ (function (_super) {\n __extends(TextElement, _super);\n /**\n * set the id for each element\n */\n function TextElement() {\n var _this = _super.call(this) || this;\n /**\n * sets or gets the image source\n */\n _this.textContent = '';\n /** @private */\n _this.canMeasure = true;\n /** @private */\n _this.canConsiderBounds = true;\n /** @private */\n _this.doWrap = true;\n _this.textNodes = [];\n /**\n * Defines the appearance of the text element\n */\n _this.style = {\n color: 'black', fill: 'transparent', strokeColor: 'black',\n strokeWidth: 1, fontFamily: 'Arial', fontSize: 12, whiteSpace: 'CollapseSpace',\n textWrapping: 'WrapWithOverflow', textAlign: 'Center', italic: false, bold: false,\n textDecoration: 'None', strokeDashArray: '', opacity: 1,\n textOverflow: 'Wrap'\n };\n _this.style.fill = 'transparent';\n _this.style.strokeColor = 'transparent';\n return _this;\n }\n Object.defineProperty(TextElement.prototype, \"content\", {\n /**\n * gets the content for the text element\n */\n get: function () {\n return this.textContent;\n },\n /**\n * sets the content for the text element\n */\n set: function (value) {\n if (this.textContent !== value) {\n this.textContent = value;\n this.isDirt = true;\n this.doWrap = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TextElement.prototype, \"childNodes\", {\n /**\n * sets the content for the text element\n */\n get: function () {\n return this.textNodes;\n },\n /**\n * gets the content for the text element\n */\n set: function (value) {\n this.textNodes = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TextElement.prototype, \"wrapBounds\", {\n /**\n * gets the wrapBounds for the text\n */\n get: function () {\n return this.textWrapBounds;\n },\n /**\n * sets the wrapBounds for the text\n */\n set: function (value) {\n this.textWrapBounds = value;\n },\n enumerable: true,\n configurable: true\n });\n /** @private */\n TextElement.prototype.refreshTextElement = function () {\n this.isDirt = true;\n };\n /**\n * Measures the minimum size that is required for the text element\n * @param availableSize\n */\n TextElement.prototype.measure = function (availableSize) {\n var size;\n if (this.isDirt && this.canMeasure) {\n size = measureText(this, this.style, this.content, this.width || availableSize.width);\n }\n else {\n size = this.desiredSize;\n }\n if (this.width === undefined || this.height === undefined) {\n this.desiredSize = new Size(size.width, size.height);\n }\n else {\n this.desiredSize = new Size(this.width, this.height);\n }\n this.desiredSize = this.validateDesiredSize(this.desiredSize, availableSize);\n return this.desiredSize;\n };\n /**\n * Arranges the text element\n * @param desiredSize\n */\n TextElement.prototype.arrange = function (desiredSize) {\n if (desiredSize.width !== this.actualSize.width || desiredSize.height !== this.actualSize.height || this.isDirt) {\n this.doWrap = true;\n }\n this.actualSize = desiredSize;\n this.updateBounds();\n this.isDirt = false;\n return this.actualSize;\n };\n return TextElement;\n}(DrawingElement));\nexport { TextElement };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { DrawingElement } from '../elements/drawing-element';\nimport { Size } from '../../primitives/size';\nimport { Rect } from '../../primitives/rect';\nimport { rotatePoint, getOffset } from '../../utility/base-util';\n/**\n * Container module is used to group related objects\n */\nvar Container = /** @class */ (function (_super) {\n __extends(Container, _super);\n function Container() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n //private members \n _this.desiredBounds = undefined;\n /** @private */\n _this.measureChildren = true;\n /** @private */\n _this.prevRotateAngle = 0;\n return _this;\n }\n /**\n * returns whether the container has child elements or not\n */\n Container.prototype.hasChildren = function () {\n if (this.children !== undefined && this.children.length > 0) {\n return true;\n }\n return false;\n };\n /**\n * Measures the minimum space that the container requires\n *\n * @param availableSize\n */\n Container.prototype.measure = function (availableSize) {\n // measure the element and find the desired size\n this.desiredBounds = undefined;\n var desired = undefined;\n var child;\n var center = { x: 0, y: 0 };\n var y;\n var x;\n var childBounds;\n if (this.hasChildren()) {\n //Measuring the children\n for (var i = 0; i < this.children.length; i++) {\n child = this.children[i];\n if (child.horizontalAlignment === 'Stretch' && !availableSize.width) {\n availableSize.width = child.bounds.width;\n }\n if (child.verticalAlignment === 'Stretch' && !availableSize.height) {\n availableSize.height = child.bounds.height;\n }\n var force = child.horizontalAlignment === 'Stretch' || child.verticalAlignment === 'Stretch';\n if (this.measureChildren || force || (child instanceof Container && child.measureChildren !== undefined)) {\n child.measure(availableSize);\n }\n childBounds = this.GetChildrenBounds(child);\n if (child.horizontalAlignment !== 'Stretch' && child.verticalAlignment !== 'Stretch') {\n if (this.desiredBounds === undefined) {\n this.desiredBounds = childBounds;\n }\n else {\n this.desiredBounds.uniteRect(childBounds);\n }\n }\n else if (this.actualSize && !this.actualSize.width && !this.actualSize.height &&\n !child.preventContainer && child.horizontalAlignment === 'Stretch' && child.verticalAlignment === 'Stretch') {\n if (this.desiredBounds === undefined) {\n this.desiredBounds = child.bounds;\n }\n else {\n this.desiredBounds.uniteRect(child.bounds);\n }\n }\n }\n if (this.desiredBounds !== undefined && this.rotateAngle !== 0) {\n var offsetPt = {\n x: this.desiredBounds.x + this.desiredBounds.width * this.pivot.x,\n y: this.desiredBounds.y + this.desiredBounds.height * this.pivot.y\n };\n var newPoint = rotatePoint(this.rotateAngle, undefined, undefined, offsetPt);\n this.desiredBounds.x = newPoint.x - this.desiredBounds.width * this.pivot.x;\n this.desiredBounds.y = newPoint.y - this.desiredBounds.height * this.pivot.y;\n }\n if (this.desiredBounds) {\n desired = new Size(this.desiredBounds.width, this.desiredBounds.height);\n }\n }\n desired = this.validateDesiredSize(desired, availableSize);\n this.stretchChildren(desired);\n this.desiredSize = desired;\n return desired;\n };\n /**\n * Arranges the container and its children\n * @param desiredSize\n */\n Container.prototype.arrange = function (desiredSize) {\n var child;\n var bounds;\n var childBounds = this.desiredBounds;\n if (childBounds) {\n var x = this.offsetX;\n var y = this.offsetY;\n this.offsetX = childBounds.x + childBounds.width * this.pivot.x;\n this.offsetY = childBounds.y + childBounds.height * this.pivot.y;\n // container has rotateAngle\n if (this.hasChildren()) {\n //Measuring the children\n for (var i = 0; i < this.children.length; i++) {\n child = this.children[i];\n var arrange = false;\n if (child.horizontalAlignment === 'Stretch') {\n child.offsetX = this.offsetX;\n child.parentTransform = this.parentTransform + this.rotateAngle;\n arrange = true;\n }\n if (child.verticalAlignment === 'Stretch') {\n child.offsetY = this.offsetY;\n child.parentTransform = this.parentTransform + this.rotateAngle;\n arrange = true;\n }\n if (arrange || this.measureChildren || (child instanceof Container && child.measureChildren !== undefined)) {\n child.arrange(child.desiredSize);\n }\n }\n }\n }\n this.actualSize = desiredSize;\n this.updateBounds();\n this.prevRotateAngle = this.rotateAngle;\n return desiredSize;\n };\n //protected methods\n /**\n * Stretches the child elements based on the size of the container\n * @param size\n */\n Container.prototype.stretchChildren = function (size) {\n if (this.hasChildren()) {\n for (var _i = 0, _a = this.children; _i < _a.length; _i++) {\n var child = _a[_i];\n if (child.horizontalAlignment === 'Stretch' || child.desiredSize.width === undefined) {\n child.desiredSize.width = size.width - child.margin.left - child.margin.right;\n }\n if (child.verticalAlignment === 'Stretch' || child.desiredSize.height === undefined) {\n child.desiredSize.height = size.height - child.margin.top - child.margin.bottom;\n }\n if (child instanceof Container) {\n child.stretchChildren(child.desiredSize);\n }\n }\n }\n };\n /**\n * Finds the offset of the child element with respect to the container\n * @param child\n * @param center\n */\n Container.prototype.findChildOffsetFromCenter = function (child, center) {\n var topLeft = { x: center.x - child.desiredSize.width / 2, y: center.y - child.desiredSize.height / 2 };\n var offset = getOffset(topLeft, child);\n //Rotate based on child rotate angle\n offset = rotatePoint(child.rotateAngle, center.x, center.y, offset);\n //Rotate based on parent pivot\n offset = rotatePoint(this.rotateAngle + this.parentTransform, this.offsetX, this.offsetY, offset);\n child.offsetX = offset.x;\n child.offsetY = offset.y;\n };\n //private methods - check its need\n Container.prototype.GetChildrenBounds = function (child) {\n var childBounds;\n var childSize;\n childSize = child.desiredSize.clone();\n var diffAngle = child.rotateAngle - this.rotateAngle;\n var refPoint = { x: child.offsetX, y: child.offsetY };\n var left = refPoint.x - childSize.width * child.pivot.x;\n var top = refPoint.y - childSize.height * child.pivot.y;\n var right = left + childSize.width;\n var bottom = top + childSize.height;\n var topLeft = { x: left, y: top };\n var topRight = { x: right, y: top };\n var bottomLeft = { x: left, y: bottom };\n var bottomRight = { x: right, y: bottom };\n topLeft = rotatePoint(child.rotateAngle, child.offsetX, child.offsetY, topLeft);\n topRight = rotatePoint(child.rotateAngle, child.offsetX, child.offsetY, topRight);\n bottomLeft = rotatePoint(child.rotateAngle, child.offsetX, child.offsetY, bottomLeft);\n bottomRight = rotatePoint(child.rotateAngle, child.offsetX, child.offsetY, bottomRight);\n if (this.rotateAngle !== 0) {\n topLeft = rotatePoint(-this.rotateAngle, undefined, undefined, topLeft);\n topRight = rotatePoint(-this.rotateAngle, undefined, undefined, topRight);\n bottomLeft = rotatePoint(-this.rotateAngle, undefined, undefined, bottomLeft);\n bottomRight = rotatePoint(-this.rotateAngle, undefined, undefined, bottomRight);\n }\n return Rect.toBounds([topLeft, topRight, bottomLeft, bottomRight]);\n };\n return Container;\n}(DrawingElement));\nexport { Container };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, ChildProperty, Collection, Complex, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { Container } from '@syncfusion/ej2-drawings';\nimport { Point } from '@syncfusion/ej2-drawings';\nimport { PdfAnnotationBase, PdfFormFieldBase } from './pdf-annotation';\n/**\n * Defines the size and position of selected items and defines the appearance of selector\n *\n * @hidden\n */\nvar Selector = /** @class */ (function (_super) {\n __extends(Selector, _super);\n function Selector() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Initializes the UI of the container\n *\n * @param {any} diagram - diagram element.\n * @returns {Container} - Returns the container element.\n */\n // eslint-disable-next-line\n Selector.prototype.init = function (diagram) {\n var container = new Container();\n container.measureChildren = false;\n container.children = [];\n if (this.formFields && this.formFields.length > 0) {\n for (var i = 0; i < this.formFields.length; i++) {\n var node = diagram.pdfViewer.nameTable[this.formFields[parseInt(i.toString(), 10)].id];\n var wrapper = node.wrapper;\n container.children.push(wrapper);\n }\n }\n else if (this.annotations) {\n for (var i = 0; i < this.annotations.length; i++) {\n if (!isNullOrUndefined(this.annotations[parseInt(i.toString(), 10)])) {\n var node = diagram.pdfViewer.nameTable[this.annotations[parseInt(i.toString(), 10)].id];\n var wrapper = node.wrapper;\n container.children.push(wrapper);\n }\n }\n }\n this.wrapper = container;\n return container;\n };\n __decorate([\n Property(null)\n ], Selector.prototype, \"wrapper\", void 0);\n __decorate([\n Collection([], PdfAnnotationBase)\n ], Selector.prototype, \"annotations\", void 0);\n __decorate([\n Collection([], PdfFormFieldBase)\n ], Selector.prototype, \"formFields\", void 0);\n __decorate([\n Property()\n ], Selector.prototype, \"width\", void 0);\n __decorate([\n Property()\n ], Selector.prototype, \"height\", void 0);\n __decorate([\n Property(0)\n ], Selector.prototype, \"rotateAngle\", void 0);\n __decorate([\n Property(0)\n ], Selector.prototype, \"offsetX\", void 0);\n __decorate([\n Property(0)\n ], Selector.prototype, \"offsetY\", void 0);\n __decorate([\n Complex({ x: 0.5, y: 0.5 }, Point)\n ], Selector.prototype, \"pivot\", void 0);\n return Selector;\n}(ChildProperty));\nexport { Selector };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { Size } from '../../primitives/size';\nimport { DrawingElement } from './drawing-element';\nimport { Rect } from '../../primitives/rect';\nimport { measurePath } from './../../utility/dom-util';\nimport { processPathData, splitArrayCollection, transformPath, getPathString } from '../../utility/path-util';\n/**\n * PathElement takes care of how to align the path based on offsetX and offsetY\n */\nvar PathElement = /** @class */ (function (_super) {\n __extends(PathElement, _super);\n /**\n * set the id for each element\n */\n function PathElement() {\n var _this = _super.call(this) || this;\n /**\n * Gets or sets the geometry of the path element\n */\n _this.pathData = '';\n /**\n * Gets/Sets whether the path has to be transformed to fit the given x,y, width, height\n */\n _this.transformPath = true;\n /**\n * Gets/Sets the equivalent path, that will have the origin as 0,0\n */\n _this.absolutePath = '';\n /** @private */\n _this.canMeasurePath = false;\n //Private variables\n /** @private */\n _this.absoluteBounds = new Rect();\n return _this;\n }\n Object.defineProperty(PathElement.prototype, \"data\", {\n /**\n * Gets the geometry of the path element\n */\n get: function () {\n return this.pathData;\n },\n /**\n * Sets the geometry of the path element\n */\n set: function (value) {\n if (this.pathData !== value) {\n this.pathData = value;\n this.isDirt = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Measures the minimum space that is required to render the element\n * @param availableSize\n */\n PathElement.prototype.measure = function (availableSize) {\n //Performance issue - Avoiding measuring the connector path\n if (this.staticSize && this.width !== undefined && this.height !== undefined) {\n this.absoluteBounds = new Rect(this.offsetX - this.width * this.pivot.x, this.offsetY - this.height * this.pivot.y, this.width, this.height);\n }\n else if (this.isDirt && (this.transformPath || (this.width === undefined || this.height === undefined))\n && (!this.absoluteBounds || this.absoluteBounds.height === 0) || this.canMeasurePath) {\n //Measure the element only whent the path data is changed/ size is not specified\n this.absoluteBounds = measurePath(this.data ? this.data : '');\n }\n if (this.width === undefined) {\n this.desiredSize = new Size(this.absoluteBounds.width, this.height || this.absoluteBounds.height);\n }\n else if (this.height === undefined) {\n this.desiredSize = new Size(this.width || this.absoluteBounds.width, this.absoluteBounds.height);\n }\n else {\n this.desiredSize = new Size(this.width, this.height);\n }\n this.desiredSize = this.validateDesiredSize(this.desiredSize, availableSize);\n this.canMeasurePath = false;\n return this.desiredSize;\n };\n /**\n * Arranges the path element\n * @param desiredSize\n */\n PathElement.prototype.arrange = function (desiredSize) {\n if (this.isDirt || this.actualSize.width !== desiredSize.width || this.actualSize.height !== desiredSize.height) {\n this.isDirt = true;\n this.absolutePath = this.updatePath(this.data, this.absoluteBounds, desiredSize);\n if (!this.staticSize) {\n this.points = null;\n }\n }\n this.actualSize = this.desiredSize;\n this.updateBounds();\n this.isDirt = false;\n return this.actualSize;\n };\n /**\n * Translates the path to 0,0 and scales the path based on the actual size\n * @param pathData\n * @param bounds\n * @param actualSize\n */\n PathElement.prototype.updatePath = function (pathData, bounds, actualSize) {\n var isScale = false;\n var newPathString = '';\n var scaleX = -bounds.x;\n var scaleY = -bounds.y;\n var arrayCollection = [];\n if (actualSize.width !== bounds.width || actualSize.height !== bounds.height) {\n scaleX = actualSize.width / Number(bounds.width ? bounds.width : 1);\n scaleY = actualSize.height / Number(bounds.height ? bounds.height : 1);\n isScale = true;\n }\n arrayCollection = processPathData(pathData);\n arrayCollection = splitArrayCollection(arrayCollection);\n if ((isScale || this.isDirt) && this.transformPath) {\n newPathString = transformPath(arrayCollection, scaleX, scaleY, isScale, bounds.x, bounds.y, 0, 0);\n }\n else {\n newPathString = getPathString(arrayCollection);\n }\n isScale = false;\n return newPathString;\n };\n return PathElement;\n}(DrawingElement));\nexport { PathElement };\n","import { PathElement, Rect, Point, Size, RotateTransform, TextElement, randomId, identityMatrix, rotateMatrix, transformPointByMatrix, intersect3 } from '@syncfusion/ej2-drawings';\nimport { setElementStype, findPointsLength } from './drawing-util';\nimport { isNullOrUndefined } from '@syncfusion/ej2-base';\n/**\n * @private\n * @param {PdfAnnotationBaseModel} obj - Specified the annotation object.\n * @param {PointModel[]} points - Specified the annotation points.\n * @returns {PointModel[]} - Returns the annotation points model array.\n */\nexport function getConnectorPoints(obj, points) {\n points = obj.vertexPoints;\n var newPoints = points.slice(0);\n if (newPoints && newPoints.length > 0) {\n obj.sourcePoint = newPoints[0];\n obj.targetPoint = newPoints[newPoints.length - 1];\n }\n return newPoints;\n}\n/**\n * @private\n * @param {PdfAnnotationBaseModel} connector - Specified the annotation connector model.\n * @param {PointModel[]} points - Specified the annotation points.\n * @returns {string} - Returns the annotation path value.\n */\nexport function getSegmentPath(connector, points) {\n var path = '';\n var getPt;\n var pts = [];\n var j = 0;\n while (j < points.length) {\n pts.push({ x: points[parseInt(j.toString(), 10)].x, y: points[parseInt(j.toString(), 10)].y });\n j++;\n }\n pts = clipDecorators(connector, pts);\n for (var k = 0; k < pts.length; k++) {\n getPt = pts[parseInt(k.toString(), 10)];\n if (k === 0) {\n path = 'M' + getPt.x + ' ' + getPt.y;\n }\n if (k > 0) {\n path += ' ' + 'L' + getPt.x + ' ' + getPt.y;\n }\n }\n return path;\n}\n/**\n * @private\n * @param {PdfAnnotationBaseModel} connector - Specified the annotation connector model.\n * @param {PointModel[]} points - Specified the annotation points.\n * @param {PathElement} element - Specified the annotation element.\n * @returns {PathElement} - Returns the annotation path element.\n */\nexport function updateSegmentElement(connector, points, element) {\n var bounds = new Rect();\n var segmentPath = getSegmentPath(connector, points);\n bounds = Rect.toBounds(points);\n element.width = bounds.width;\n element.height = bounds.height;\n element.offsetX = bounds.x + element.width / 2;\n element.offsetY = bounds.y + element.height / 2;\n element.data = segmentPath;\n if (connector.wrapper) {\n connector.wrapper.offsetX = element.offsetX;\n connector.wrapper.offsetY = element.offsetY;\n connector.wrapper.width = bounds.width;\n connector.wrapper.height = bounds.height;\n }\n return element;\n}\n/**\n * @private\n * @param {PdfAnnotationBaseModel} connector - Specified the annotation connector model.\n * @param {PathElement} segmentElement - Specified the annotation segment element.\n * @returns {PathElement} - Returns the annotation path element.\n */\nexport function getSegmentElement(connector, segmentElement) {\n var points = [];\n points = getConnectorPoints(connector);\n segmentElement.staticSize = true;\n segmentElement = updateSegmentElement(connector, points, segmentElement);\n setElementStype(connector, segmentElement);\n return segmentElement;\n}\n/**\n * @private\n * @param {PdfAnnotationBaseModel} obj - Specified the annotation object.\n * @param {DrawingElement} element - Specified the annotation drawing element.\n * @param {PointModel} pt - Specified the annotation point.\n * @param {PointModel} adjacentPoint - Specified the annotation adjacent point.\n * @param {boolean} isSource - Specified the is source value or not.\n * @returns {void}\n */\nexport function updateDecoratorElement(obj, element, pt, adjacentPoint, isSource) {\n element.offsetX = pt.x;\n element.offsetY = pt.y;\n var angle = Point.findAngle(pt, adjacentPoint);\n var getPath = getDecoratorShape(isSource ? obj.sourceDecoraterShapes : obj.taregetDecoraterShapes);\n var thickness = 0;\n var size;\n if (obj.shapeAnnotationType === 'LineWidthArrowHead') {\n thickness = obj.thickness;\n size = new Size(thickness * 12, thickness * 12);\n }\n else {\n thickness = obj.thickness <= 5 ? 5 : obj.thickness;\n size = new Size(thickness * 2, thickness * 2);\n }\n element.transform = RotateTransform.Self;\n setElementStype(obj, element);\n element.style.fill = (obj.fillColor !== 'tranparent') ? obj.fillColor : 'white';\n element.rotateAngle = angle;\n element.data = getPath;\n element.canMeasurePath = true;\n element.width = size.width;\n element.height = size.height;\n if (obj.sourceDecoraterShapes === 'Butt') {\n element.width = size.width - 10;\n element.height = size.height + 10;\n }\n}\n/**\n * @private\n * @param {PdfAnnotationBaseModel} obj - Specified the annotation object.\n * @param {PointModel} offsetPoint - Specified the annotation offset point.\n * @param {PointModel} adjacentPoint - Specified the annotation adjacent point.\n * @param {boolean} isSource - Specified the is source value or not.\n * @returns {PathElement} - Returns the annotation path element.\n */\nexport function getDecoratorElement(obj, offsetPoint, adjacentPoint, isSource) {\n var decEle = new PathElement();\n updateDecoratorElement(obj, decEle, offsetPoint, adjacentPoint, isSource);\n return decEle;\n}\n/**\n * @private\n * @param {PdfAnnotationBaseModel} connector - Specified the annotation object.\n * @param {PointModel[]} pts - Specified the annotation point model array.\n * @returns {PointModel[]} - Returns the annotation point model array.\n */\nexport function clipDecorators(connector, pts) {\n pts[0] = clipDecorator(connector, pts, true);\n pts[pts.length - 1] = clipDecorator(connector, pts, false);\n return pts;\n}\n/**\n * @private\n * @param {PdfAnnotationBaseModel} connector - Specified the annotation connector object.\n * @param {PointModel[]} points - Specified the annotation offset point.\n * @param {boolean} isSource - Specified the is source value or not.\n * @returns {PointModel} - Returns the annotation point model.\n */\nexport function clipDecorator(connector, points, isSource) {\n var point = { x: 0, y: 0 };\n var start = { x: 0, y: 0 };\n var end = { x: 0, y: 0 };\n var length = points.length;\n start = !isSource ? points[length - 1] : points[0];\n end = !isSource ? points[length - 2] : points[1];\n var len = Point.distancePoints(start, end);\n len = (len === 0) ? 1 : len;\n var width = connector.thickness;\n point.x = (Math.round(start.x + width * (end.x - start.x) / len));\n point.y = (Math.round(start.y + width * (end.y - start.y) / len));\n var strokeWidth = 1;\n point = Point.adjustPoint(point, end, true, (strokeWidth / 2));\n return point;\n}\n/**\n * @param {PdfAnnotationBaseModel} obj - Specified the annotation object.\n * @param {PointModel[]} points - Specified the annotation point model array.\n * @param {MeasureAnnotation} measure - Specified the measure annotation object.\n * @param {PdfViewer} pdfviewer - Specified the pdfviewer element.\n * @hidden\n * @returns {TextElement[]} - Returns the text element collections.\n */\n// eslint-disable-next-line max-len\nexport function initDistanceLabel(obj, points, measure, pdfviewer) {\n var labels = [];\n var angle = Point.findAngle(points[0], points[1]);\n var textele = textElement(obj, angle);\n if (!pdfviewer.enableImportAnnotationMeasurement && obj.notes && obj.notes !== '') {\n textele.content = obj.notes;\n }\n else {\n textele.content = measure.setConversion(findPointsLength([points[0], points[1]]) * measure.pixelToPointFactor, obj);\n }\n textele.rotateValue = { y: -10, angle: angle };\n if (obj.enableShapeLabel === true) {\n textele.style.strokeColor = obj.labelBorderColor;\n textele.style.fill = obj.labelFillColor;\n textele.style.fontSize = obj.fontSize;\n textele.style.color = obj.fontColor;\n textele.style.fontFamily = obj.fontFamily;\n }\n labels.push(textele);\n return labels;\n}\n/**\n * @param {PdfAnnotationBaseModel} obj - Specified the annotation object.\n * @param {PointModel[]} points - Specified the annotation point model array.\n * @param {MeasureAnnotation} measure - Specified the measure annotation object.\n * @hidden\n * @returns {string} - Returns the distance value.\n */\nexport function updateDistanceLabel(obj, points, measure) {\n var distance;\n for (var i = 0; i < obj.wrapper.children.length; i++) {\n var textElement_1 = obj.wrapper.children[parseInt(i.toString(), 10)];\n if (textElement_1 && !isNullOrUndefined(textElement_1.content)) {\n distance = measure.setConversion(findPointsLength([points[0], points[1]]) * measure.pixelToPointFactor, obj);\n textElement_1.content = distance;\n textElement_1.childNodes[0].text = textElement_1.content;\n textElement_1.refreshTextElement();\n }\n }\n return distance;\n}\n/**\n * @param {PdfAnnotationBaseModel} obj - Specified the annotation object.\n * @param {MeasureAnnotation} measure - Specified the measure annotation object.\n * @hidden\n * @returns {string} - Returns the radius label value.\n */\nexport function updateRadiusLabel(obj, measure) {\n var radius;\n for (var i = 0; i < obj.wrapper.children.length; i++) {\n var textElement_2 = obj.wrapper.children[parseInt(i.toString(), 10)];\n if (textElement_2 && !isNullOrUndefined(textElement_2.content)) {\n radius = measure.setConversion((obj.bounds.width / 2) * measure.pixelToPointFactor, obj);\n textElement_2.content = radius;\n if (textElement_2.childNodes.length === 2) {\n textElement_2.childNodes[0].text = radius;\n textElement_2.childNodes.splice(textElement_2.childNodes.length - 1, 1);\n }\n else {\n textElement_2.childNodes[0].text = radius;\n }\n textElement_2.refreshTextElement();\n }\n }\n return radius;\n}\n/**\n * @param {PdfAnnotationBaseModel} obj - Specified the annotation object.\n * @param {PointModel[]} points - Specified the annotation point model array.\n * @param {MeasureAnnotation} measure - Specified the measure annotation object.\n * @param {PdfViewer} pdfviewer - Specified the pdfviewer element.\n * @hidden\n * @returns {TextElement[]} - Returns the text element collections.\n */\n// eslint-disable-next-line max-len\nexport function initPerimeterLabel(obj, points, measure, pdfviewer) {\n var labels = [];\n var angle = Point.findAngle(points[0], points[1]);\n var textele = textElement(obj, angle);\n if (!pdfviewer.enableImportAnnotationMeasurement && obj.notes && obj.notes !== '') {\n textele.content = obj.notes;\n }\n else {\n textele.content = measure.calculatePerimeter(obj);\n }\n if (obj.enableShapeLabel === true) {\n textele.style.strokeColor = obj.labelBorderColor;\n textele.style.fill = obj.labelFillColor;\n textele.style.fontSize = obj.fontSize;\n textele.style.color = obj.fontColor;\n textele.style.fontFamily = obj.fontFamily;\n }\n textele.rotateValue = { y: -10, angle: angle };\n labels.push(textele);\n return labels;\n}\n/**\n * @param {PdfAnnotationBaseModel} obj - Specified the annotation object.\n * @param {PointModel[]} points - Specified the annotation point model array.\n * @param {MeasureAnnotation} measure - Specified the measure annotation object.\n * @hidden\n * @returns {string} - Returns the perimeter label value.\n */\nexport function updatePerimeterLabel(obj, points, measure) {\n var perimeter;\n for (var i = 0; i < obj.wrapper.children.length; i++) {\n var textElement_3 = obj.wrapper.children[parseInt(i.toString(), 10)];\n if (textElement_3 && !isNullOrUndefined(textElement_3.content)) {\n perimeter = measure.calculatePerimeter(obj);\n textElement_3.content = perimeter;\n textElement_3.childNodes[0].text = textElement_3.content;\n textElement_3.refreshTextElement();\n }\n }\n return perimeter;\n}\n/**\n * @param {PdfAnnotationBaseModel} obj - Specified the annotation object.\n * @hidden\n * @returns {void}\n */\nexport function removePerimeterLabel(obj) {\n for (var i = 0; i < obj.wrapper.children.length; i++) {\n var textElement_4 = obj.wrapper.children[parseInt(i.toString(), 10)];\n if (textElement_4 && !isNullOrUndefined(textElement_4.content)) {\n obj.wrapper.children.splice(i, 1);\n }\n }\n}\n/**\n * @param {PdfAnnotationBaseModel} obj - Specified the annotation object.\n * @hidden\n * @returns {void}\n */\nexport function updateCalibrateLabel(obj) {\n if (obj.wrapper && obj.wrapper.children) {\n for (var i = 0; i < obj.wrapper.children.length; i++) {\n var textElement_5 = obj.wrapper.children[parseInt(i.toString(), 10)];\n if (textElement_5 && !isNullOrUndefined(textElement_5.content)) {\n textElement_5.content = obj.notes;\n textElement_5.childNodes[0].text = textElement_5.content;\n textElement_5.refreshTextElement();\n }\n }\n }\n}\n/**\n * Used to find the path for polygon shapes\n *\n * @param {PointModel[]} collection - Specified the polygon annotaion points collection.\n * @hidden\n * @returns {string} - Returns the polygon annotation path.\n */\nexport function getPolygonPath(collection) {\n var path = '';\n var seg;\n path = 'M' + collection[0].x + ' ' + collection[0].y;\n var i;\n for (i = 1; i < collection.length; i++) {\n seg = collection[parseInt(i.toString(), 10)];\n path += 'L' + seg.x + ' ' + seg.y;\n }\n path += 'Z';\n return path;\n}\n/**\n * @param {PdfAnnotationBaseModel} obj - Specified the annotation object.\n * @param {number} angle - Specified the annotaion rotation angle.\n * @hidden\n * @returns {TextElement} - Returns the annotation text element.\n */\nexport function textElement(obj, angle) {\n var textele = new TextElement();\n setElementStype(obj, textele);\n textele.style.fill = 'transparent';\n textele.id = randomId();\n textele.horizontalAlignment = 'Center';\n textele.rotateValue = { y: 10, angle: angle };\n textele.verticalAlignment = 'Top';\n textele.relativeMode = 'Object';\n textele.setOffsetWithRespectToBounds(.5, .5, 'Absolute');\n // eslint-disable-next-line\n textele.offsetX;\n textele.style.textWrapping = 'NoWrap';\n return textele;\n}\n/**\n * @param {PdfAnnotationBaseModel} obj - Specified the annotation object.\n * @param {PointModel[]} points - Specified the annotaion leader points.\n * @hidden\n * @returns {PathElement[]} - Returns the annotation path elements.\n */\nexport function initLeaders(obj, points) {\n var leaders = [];\n var leader = initLeader(obj, points[0], points[1]);\n leaders.push(leader);\n leader = initLeader(obj, points[1], points[0], true);\n leaders.push(leader);\n return leaders;\n}\n/**\n * @param {PdfAnnotationBaseModel} obj - Specified the annotation object.\n * @param {PointModel} point1 - Specified the annotaion leader point1.\n * @param {PointModel} point2 - Specified the annotaion leader point2.\n * @param {boolean} isSecondLeader - Specified the is second leader or not.\n * @hidden\n * @returns {PathElement} - Returns the annotation path element.\n */\nexport function initLeader(obj, point1, point2, isSecondLeader) {\n var element = new PathElement();\n element.offsetX = point1.x;\n element.offsetY = point1.y;\n var angle = Point.findAngle(point1, point2);\n var center = { x: (point1.x + point2.x) / 2, y: (point1.y + point2.y) / 2 };\n var matrix = identityMatrix();\n rotateMatrix(matrix, 0 - angle, center.x, center.y);\n var rotatedPoint = transformPointByMatrix(matrix, point1);\n var newPoint1 = { x: rotatedPoint.x, y: rotatedPoint.y - obj.leaderHeight };\n matrix = identityMatrix();\n rotateMatrix(matrix, angle, element.offsetX, element.offsetY);\n rotatedPoint = transformPointByMatrix(matrix, newPoint1);\n var finalPoint = { x: point1.x, y: point1.y };\n element.offsetX = finalPoint.x;\n element.offsetY = finalPoint.y;\n element.transform = RotateTransform.Self;\n var getPath = 'M' + point1.x + ',' + point1.y + ',L' + rotatedPoint.x + ',' + rotatedPoint.y + 'Z';\n var size = new Size(0, obj.leaderHeight);\n element.pivot.x = .5;\n if (isSecondLeader) {\n element.id = 'leader2_' + randomId();\n element.pivot.y = 0;\n }\n else {\n element.id = 'leader1_' + randomId();\n element.pivot.y = 1;\n }\n setElementStype(obj, element);\n element.rotateAngle = angle;\n element.data = getPath;\n element.canMeasurePath = true;\n element.width = size.width;\n element.height = size.height;\n return element;\n}\n/**\n * @private\n * @param {PdfAnnotationBaseModel} connector - Specified the annotation connector object.\n * @param {PointModel} reference - Specified the pointer reference value.\n * @returns {boolean} - Returns true or false.\n */\nexport function isPointOverConnector(connector, reference) {\n var vertexPoints = connector.vertexPoints;\n if (!isNullOrUndefined(vertexPoints)) {\n for (var i = 0; i < vertexPoints.length - 1; i++) {\n var start = vertexPoints[parseInt(i.toString(), 10)];\n var end = vertexPoints[i + 1];\n var rect = Rect.toBounds([start, end]);\n rect.Inflate(10);\n if (rect.containsPoint(reference)) {\n var intersectinPt = findNearestPoint(reference, start, end);\n var segment1 = { x1: start.x, x2: end.x, y1: start.y, y2: end.y };\n var segment2 = { x1: reference.x, x2: intersectinPt.x, y1: reference.y, y2: intersectinPt.y };\n var intersectDetails = intersect3(segment1, segment2);\n if (intersectDetails.enabled) {\n var distance = Point.findLength(reference, intersectDetails.intersectPt);\n if (Math.abs(distance) < 10) {\n return true;\n }\n }\n else {\n var rect_1 = Rect.toBounds([reference, reference]);\n rect_1.Inflate(3);\n if (rect_1.containsPoint(start) || rect_1.containsPoint(end)) {\n return true;\n }\n }\n if (Point.equals(reference, intersectinPt)) {\n return true;\n }\n }\n }\n }\n return false;\n}\n/**\n * @param {PointModel} reference - Specified the pointer reference value.\n * @param {PointModel} start - Specified the pointer start value.\n * @param {PointModel} end - Specified the pointer end value.\n * @private\n * @returns {PointModel} - Returns annotation point model.\n */\nexport function findNearestPoint(reference, start, end) {\n var shortestPoint;\n var shortest = Point.findLength(start, reference);\n var shortest1 = Point.findLength(end, reference);\n if (shortest > shortest1) {\n shortestPoint = end;\n }\n else {\n shortestPoint = start;\n }\n var angleBWStAndEnd = Point.findAngle(start, end);\n var angleBWStAndRef = Point.findAngle(shortestPoint, reference);\n var r = Point.findLength(shortestPoint, reference);\n var vaAngle = angleBWStAndRef + ((angleBWStAndEnd - angleBWStAndRef) * 2);\n return {\n x: (shortestPoint.x + r * Math.cos(vaAngle * Math.PI / 180)),\n y: (shortestPoint.y + r * Math.sin(vaAngle * Math.PI / 180))\n };\n}\n/**\n * @param {DecoratorShapes} shape - Specified the annotation decorator shapes.\n * @hidden\n * @returns {string} - Returns the annotation decorator shape value.\n */\nexport function getDecoratorShape(shape) {\n // eslint-disable-next-line\n return decoratorShapes[shape];\n}\nvar decoratorShapes = {\n 'OpenArrow': 'M15.9,23 L5,16 L15.9,9 L17,10.7 L8.7,16 L17,21.3Z',\n 'Square': 'M0,0 L10,0 L10,10 L0,10 z',\n 'Fletch': 'M14.8,10c0,0-3.5,6,0.2,12c0,0-2.5-6-10.9-6C4.1,16,11.3,16,14.8,10z',\n 'OpenFetch': 'M6,17c-0.6,0-1-0.4-1-1s0.4-1,1-1c10.9,0,11-5,11-5' +\n 'c0-0.6,0.4-1,1-1s1,0.4,1,1C19,10.3,18.9,17,6,17C6,17,6,17,6,17z ' +\n 'M18,23c-0.5,0-1-0.4-1-1c0-0.2-0.3-5-11-5c-0.6,0-1-0.5-1-1s0.4-1,1-1c0,0,0,0,0,0' +\n 'c12.9,0,13,6.7,13,7 C19,22.6,18.6,23,18,23z',\n 'IndentedArrow': 'M17,10c0,0-4.5,5.5,0,12L5,16L17,10z',\n 'OutdentedArrow': 'M14.6,10c0,0,5.4,6,0,12L5,16L14.6,10z',\n 'DoubleArrow': 'M19,10 L19,22 L13,16Z M12,10 L12,22 L6,16Z',\n 'Arrow': 'M15,10 L15,22 L5,16Z',\n 'Diamond': 'M12,23l-7-7l7-7l6.9,7L12,23z',\n 'Circle': 'M0,50 A50,50,0 1 1 100,50 A50,50,0 1 1 0,50 Z',\n 'Butt': 'M0,0 L0,90'\n};\n","import { contains } from '@syncfusion/ej2-drawings';\nimport { Rect } from '@syncfusion/ej2-drawings';\nimport { Point, identityMatrix, rotateMatrix } from '@syncfusion/ej2-drawings';\nimport { Container, transformPointByMatrix } from '@syncfusion/ej2-drawings';\nimport { isPointOverConnector } from './connector-util';\nimport { LineTool, NodeDrawingTool, StampTool } from './tools';\nimport { isNullOrUndefined } from '@syncfusion/ej2-base';\n/**\n * @private\n * @param {MouseEvent | TouchEvent} event - Specified the annotaion event.\n * @param {PdfViewerBase} pdfBase - Specified the pdfviewer base element.\n * @param {PdfViewer} pdfViewer - Specified the pdfviewer element.\n * @param {boolean} isOverlapped - Specified the overlapped element or not.\n * @returns {any} - Returns the active element.\n */\n// eslint-disable-next-line\nexport function findActiveElement(event, pdfBase, pdfViewer, isOverlapped) {\n if (pdfViewer && pdfBase.activeElements.activePageID > -1) {\n var objects = findObjectsUnderMouse(pdfBase, pdfViewer, event);\n var object = findObjectUnderMouse(objects, event, pdfBase, pdfViewer);\n if (isOverlapped) {\n return objects;\n }\n return object;\n }\n return undefined;\n}\n/**\n * @private\n * @param {PdfViewerBase} pdfBase - Specified the pdfviewer base element.\n * @param {PdfViewer} pdfViewer - Specified the pdfviewer element.\n * @param {MouseEvent} event - Specified the annotaion event.\n * @returns {IElement[]} - Returns the annotaion elements.\n */\nexport function findObjectsUnderMouse(pdfBase, pdfViewer, event) {\n var pt = pdfBase.currentPosition || { x: event.offsetX, y: event.offsetY };\n pt = { x: pt.x / pdfBase.getZoomFactor(), y: pt.y / pdfBase.getZoomFactor() };\n var pageTable = pdfViewer.getPageTable(pdfBase.activeElements.activePageID);\n var objArray = findObjects(pt, pageTable.objects, pdfViewer.touchPadding);\n return objArray;\n}\n/**\n * @private\n * @param {PdfAnnotationBaseModel[]} objects - Specified the annotaion object model.\n * @param {any} event - Specified the annotaion event.\n * @param {PdfViewerBase} pdfBase - Specified the pdfviewer base element.\n * @param {PdfViewer} pdfViewer - Specified the pdfviewer element.\n * @returns {IElement} - Returns the annotaion element.\n */\nexport function findObjectUnderMouse(\n// eslint-disable-next-line\nobjects, event, pdfBase, pdfViewer) {\n var actualTarget = null;\n var touchArg;\n var offsetX;\n var offsetY;\n if (event && event.type && event.type.indexOf('touch') !== -1) {\n touchArg = event;\n if (pdfViewer.annotation) {\n var pageDiv = pdfBase.getElement('_pageDiv_' + pdfViewer.annotation.getEventPageNumber(event));\n if (pageDiv) {\n var pageCurrentRect = pageDiv.getBoundingClientRect();\n offsetX = touchArg.changedTouches[0].clientX - pageCurrentRect.left;\n offsetY = touchArg.changedTouches[0].clientY - pageCurrentRect.top;\n }\n }\n // eslint-disable-next-line\n }\n else if (event && event.target && event.path && event.target.parentElement && event.target.parentElement.classList.contains('foreign-object')) {\n // eslint-disable-next-line\n var targetParentRect = event.path[4].getBoundingClientRect();\n offsetX = event.clientX - targetParentRect.left;\n offsetY = event.clientY - targetParentRect.top;\n }\n else if (event.target && event.target.parentElement && event.target.parentElement.classList.contains('foreign-object')) {\n // eslint-disable-next-line\n var targetParentRect = event.target.offsetParent.offsetParent.offsetParent.getBoundingClientRect();\n offsetX = event.clientX - targetParentRect.left;\n offsetY = event.clientY - targetParentRect.top;\n // eslint-disable-next-line\n }\n else if (event.target && event.target.parentElement && event.target.parentElement.parentElement && event.target.parentElement.parentElement.classList.contains('foreign-object')) {\n // eslint-disable-next-line\n var targetParentRect = event.target.offsetParent.offsetParent.offsetParent.offsetParent.getBoundingClientRect();\n offsetX = event.clientX - targetParentRect.left;\n offsetY = event.clientY - targetParentRect.top;\n // eslint-disable-next-line\n }\n else {\n offsetX = !isNaN(event.offsetX) ? event.offsetX : (event.position ? event.position.x : 0);\n offsetY = !isNaN(event.offsetY) ? event.offsetY : (event.position ? event.position.y : 0);\n }\n //EJ2-63562 - Reduced the offset selector by half to improve selection of fields in mobile devices\n var offsetForSelector = pdfViewer.touchPadding / 2;\n var boundsDiff = 0;\n for (var i = 0; i < objects.length; i++) {\n if (!(objects[parseInt(i.toString(), 10)].shapeAnnotationType === 'Distance' || objects[parseInt(i.toString(), 10)].shapeAnnotationType === 'Line' || objects[parseInt(i.toString(), 10)].shapeAnnotationType === 'LineWidthArrowHead' || pdfBase.tool instanceof LineTool)) {\n var bounds = objects[parseInt(i.toString(), 10)].wrapper.bounds;\n var rotationValue = 0;\n if (objects[parseInt(i.toString(), 10)].shapeAnnotationType === 'Stamp' || objects[parseInt(i.toString(), 10)].shapeAnnotationType === 'Image') {\n rotationValue = 25;\n }\n // eslint-disable-next-line max-len\n if ((((bounds.x - offsetForSelector) * pdfBase.getZoomFactor()) < offsetX) && (((bounds.x + bounds.width + offsetForSelector) * pdfBase.getZoomFactor()) > offsetX) &&\n // eslint-disable-next-line max-len\n (((bounds.y - offsetForSelector - rotationValue) * pdfBase.getZoomFactor()) < offsetY) && (((bounds.y + bounds.height + offsetForSelector) * pdfBase.getZoomFactor()) > offsetY)) {\n if (pdfBase.tool instanceof NodeDrawingTool || pdfBase.tool instanceof StampTool) {\n actualTarget = objects[parseInt(i.toString(), 10)];\n }\n else {\n if (!boundsDiff) {\n actualTarget = objects[parseInt(i.toString(), 10)];\n // eslint-disable-next-line max-len\n boundsDiff = (offsetX - ((bounds.x - offsetForSelector) * pdfBase.getZoomFactor())) + (((bounds.x + bounds.width + offsetForSelector) * pdfBase.getZoomFactor()) - offsetX) +\n // eslint-disable-next-line max-len\n (offsetY - ((bounds.y - offsetForSelector - rotationValue) * pdfBase.getZoomFactor())) + (((bounds.y + bounds.height + offsetForSelector) * pdfBase.getZoomFactor()) - offsetY);\n }\n else {\n // eslint-disable-next-line max-len\n var objectBounds = (offsetX - ((bounds.x - offsetForSelector) * pdfBase.getZoomFactor())) + (((bounds.x + bounds.width + offsetForSelector) * pdfBase.getZoomFactor()) - offsetX) +\n // eslint-disable-next-line max-len\n (offsetY - ((bounds.y - offsetForSelector - rotationValue) * pdfBase.getZoomFactor())) + (((bounds.y + bounds.height + offsetForSelector) * pdfBase.getZoomFactor()) - offsetY);\n if (boundsDiff > objectBounds) {\n actualTarget = objects[parseInt(i.toString(), 10)];\n boundsDiff = objectBounds;\n }\n else if (boundsDiff === objectBounds) {\n actualTarget = objects[parseInt(i.toString(), 10)];\n boundsDiff = objectBounds;\n }\n else if ((objects[parseInt(i.toString(), 10)].shapeAnnotationType === \"Image\") || (objects[parseInt(i.toString(), 10)].shapeAnnotationType === \"Stamp\")) {\n actualTarget = objects[parseInt(i.toString(), 10)];\n }\n }\n }\n }\n }\n else {\n var pt = { x: offsetX / pdfBase.getZoomFactor(), y: offsetY / pdfBase.getZoomFactor() };\n var obj = findElementUnderMouse(objects[parseInt(i.toString(), 10)], pt, offsetForSelector);\n var isOver = isPointOverConnector(objects[parseInt(i.toString(), 10)], pt);\n if (obj && !isOver) {\n var newpoint = CalculateLeaderPoints(objects[parseInt(i.toString(), 10)], obj);\n if (newpoint) {\n var rect = Rect.toBounds([newpoint, newpoint]);\n rect.Inflate(10);\n if (rect.containsPoint(pt)) {\n isOver = true;\n }\n }\n }\n if (obj && isOver) {\n actualTarget = objects[parseInt(i.toString(), 10)];\n }\n }\n }\n return actualTarget;\n}\n/**\n * @private\n * @param {any} selector - Specified the annotaion selctor.\n * @param {any} currentobject - Specified the current annotaion object.\n * @returns {any} - Returns the leader points.\n */\n// eslint-disable-next-line\nexport function CalculateLeaderPoints(selector, currentobject) {\n var leaderCount = 0;\n var sourcePoint = selector.sourcePoint;\n var targetPoint = selector.targetPoint;\n if (selector.shapeAnnotationType === 'Distance') {\n var segment = currentobject;\n var newPoint1 = void 0;\n var angle = Point.findAngle(selector.sourcePoint, selector.targetPoint);\n if (segment.id.indexOf('leader') > -1) {\n var center = selector.wrapper.children[0].bounds.center;\n if (leaderCount === 0 && segment.id.indexOf('leader1') > -1) {\n newPoint1 = { x: selector.sourcePoint.x, y: selector.sourcePoint.y - selector.leaderHeight };\n center = sourcePoint;\n }\n else {\n newPoint1 = { x: selector.targetPoint.x, y: selector.targetPoint.y - selector.leaderHeight };\n center = targetPoint;\n }\n var matrix = identityMatrix();\n rotateMatrix(matrix, angle, center.x, center.y);\n var rotatedPoint = transformPointByMatrix(matrix, { x: newPoint1.x, y: newPoint1.y });\n return rotatedPoint;\n }\n }\n}\n/**\n * @private\n * @param {IElement} obj - Specified the annotation element.\n * @param {PointModel} position - Specified the annotation position value.\n * @param {number} padding - Specified the annotation padding.\n * @returns {DrawingElement} - Returns the annotation drawing element.\n */\nexport function findElementUnderMouse(obj, position, padding) {\n return findTargetShapeElement(obj.wrapper, position, padding);\n}\n/**\n * @private\n * @param {PdfAnnotationBaseModel} obj - Specified the annotation object model.\n * @param {string} key - Specified the annotation key value.\n * @param {Object[]} collection - Specified the annotation collection.\n * @returns {void}\n */\nexport function insertObject(obj, key, collection) {\n if (collection.length === 0) {\n collection.push(obj);\n }\n else if (collection.length === 1) {\n // eslint-disable-next-line\n if (collection[0][key] > obj[key]) {\n collection.splice(0, 0, obj);\n }\n else {\n collection.push(obj);\n }\n }\n else if (collection.length > 1) {\n var low = 0;\n var high = collection.length - 1;\n var mid = Math.floor((low + high) / 2);\n while (mid !== low) {\n // eslint-disable-next-line\n if (collection[mid][key] < obj[key]) {\n low = mid;\n mid = Math.floor((low + high) / 2);\n // eslint-disable-next-line\n }\n else if (collection[mid][key] > obj[key]) {\n high = mid;\n mid = Math.floor((low + high) / 2);\n }\n }\n // eslint-disable-next-line\n if (collection[high][key] < obj[key]) {\n collection.push(obj);\n // eslint-disable-next-line\n }\n else if (collection[low][key] > obj[key]) {\n collection.splice(low, 0, obj);\n // eslint-disable-next-line\n }\n else if ((collection[low][key] < obj[key]) && collection[high][key] > obj[key]) {\n collection.splice(high, 0, obj);\n }\n }\n}\n/**\n * @private\n * @param {Container} container - Specified the annotaion container.\n * @param {PointModel} position - Specified the annotation position.\n * @param {number} padding - Specified the annotaion padding value.\n * @returns {DrawingElement} - Returns the annotation drawing element.\n */\nexport function findTargetShapeElement(container, position, padding) {\n if (container && container.children) {\n for (var i = container.children.length - 1; i >= 0; i--) {\n var shapeElement = container.children[parseInt(i.toString(), 10)];\n var touchPadding = padding;\n // eslint-disable-next-line\n if (!isNullOrUndefined(shapeElement.children) && shapeElement.children.length > 0) {\n // eslint-disable-next-line\n for (var j = shapeElement.children.length - 1; j >= 0; j--) {\n // eslint-disable-next-line\n var currentTarget = shapeElement.children[j];\n if (currentTarget && currentTarget.bounds.containsPoint(position, touchPadding)) {\n if (currentTarget instanceof Container) {\n var targetElement = this.findTargetElement(currentTarget, position);\n if (targetElement) {\n return targetElement;\n }\n }\n if (currentTarget.bounds.containsPoint(position, touchPadding)) {\n return currentTarget;\n }\n }\n }\n }\n else {\n if (shapeElement && shapeElement.bounds.containsPoint(position, touchPadding)) {\n if (shapeElement instanceof Container) {\n var targetElement = this.findTargetElement(shapeElement, position);\n if (targetElement) {\n return targetElement;\n }\n }\n if (shapeElement.bounds.containsPoint(position, touchPadding)) {\n return shapeElement;\n }\n }\n }\n }\n }\n if (container && container.bounds.containsPoint(position, padding) && container.style.fill !== 'none') {\n var element = container;\n var paddingValue = 10;\n var rotateThumbDistance = 30;\n var matrix = identityMatrix();\n rotateMatrix(matrix, element.parentTransform, element.offsetX, element.offsetY);\n var x = element.offsetX - element.pivot.x * element.actualSize.width;\n var y = element.offsetY - element.pivot.y * element.actualSize.height;\n var rotateThumb = {\n x: x + ((element.pivot.x === 0.5 ? element.pivot.x * 2 : element.pivot.x) * element.actualSize.width / 2),\n y: y - rotateThumbDistance\n };\n rotateThumb = transformPointByMatrix(matrix, rotateThumb);\n if (contains(position, rotateThumb, paddingValue)) {\n return container;\n }\n }\n return null;\n}\n/**\n * @private\n * @param {PointModel} region - Specified the annotation region point model.\n * @param {PdfAnnotationBaseModel[]} objCollection - Specified the annotation object collections.\n * @returns {PdfAnnotationBaseModel[]} - Returns the annotation object collections.\n */\nexport function findObjects(region, objCollection, touchPadding) {\n var objects = [];\n for (var _i = 0, objCollection_1 = objCollection; _i < objCollection_1.length; _i++) {\n var obj = objCollection_1[_i];\n if (findElementUnderMouse(obj, region, touchPadding) || ((obj.shapeAnnotationType === 'Stamp') && findElementUnderMouse(obj, region, 40))) {\n insertObject(obj, 'zIndex', objects);\n }\n }\n return objects;\n}\n/**\n * @private\n * @param {MouseEvent} event - Specified the annotaion mouse event.\n * @param {PdfViewerBase} pdfBase - Specified the pdfBase element.\n * @returns {number} - Returns the active page Id.\n */\nexport function findActivePage(event, pdfBase) {\n var activePageID = undefined;\n if (event.target && event.target.wrapper) {\n return event.target.pageIndex;\n }\n if (event.target) {\n var elementIdColl = event.target.id.split('_');\n if (elementIdColl.length > 0) {\n // eslint-disable-next-line radix\n activePageID = parseInt(elementIdColl[elementIdColl.length - 1]);\n }\n }\n return activePageID;\n}\n/**\n * @hidden\n */\nvar ActiveElements = /** @class */ (function () {\n function ActiveElements() {\n this.activePage = undefined;\n this.activePageID = undefined;\n }\n Object.defineProperty(ActiveElements.prototype, \"activePageID\", {\n /**\n * @private\n * @returns {number} - Returns the active page Id.\n */\n get: function () {\n return this.activePage;\n },\n /**\n * @private\n * @param {number} offset - The page offset value.\n */\n set: function (offset) {\n this.activePage = offset;\n // eslint-disable-next-line\n if (offset !== this.activePage) { }\n },\n enumerable: true,\n configurable: true\n });\n return ActiveElements;\n}());\nexport { ActiveElements };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { randomId, Point } from '@syncfusion/ej2-drawings';\nimport { rotatePoint } from '@syncfusion/ej2-drawings';\nimport { Rect } from '@syncfusion/ej2-drawings';\nimport { transformPointByMatrix, rotateMatrix, identityMatrix } from '@syncfusion/ej2-drawings';\nimport { TextElement } from '@syncfusion/ej2-drawings';\nimport { Selector } from './selector';\nimport { findActiveElement } from './action';\nimport { cloneObject, isLineShapes } from './drawing-util';\nimport { isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { updatePerimeterLabel } from './connector-util';\nimport { Browser } from '@syncfusion/ej2-base';\n/**\n * Defines the interactive tools\n *\n * @hidden\n */\nvar ToolBase = /** @class */ (function () {\n /**\n * Initializes the tool\n *\n * @param {PdfViewer} pdfViewer - Specified the pdfviewer component.\n * @param {PdfViewerBase} pdfViewerBase - Specified the pdfViewer base component.\n * @param {boolean} protectChange - Set the default value as false.\n */\n function ToolBase(pdfViewer, pdfViewerBase, protectChange) {\n if (protectChange === void 0) { protectChange = false; }\n /**\n * Command that is corresponding to the current action\n */\n this.commandHandler = null;\n /**\n * Sets/Gets whether the interaction is being done\n */\n this.inAction = false;\n /**\n * Sets/Gets the protect change\n */\n this.pdfViewerBase = null;\n /**\n * Sets/Gets the current element that is under mouse\n */\n /** @private */\n this.currentElement = null;\n /** @private */\n this.blocked = false;\n this.isTooltipVisible = false;\n /** @private */\n this.childTable = {};\n /** @private */\n this.helper = undefined;\n /**\n * Sets/Gets the previous object when mouse down\n */\n this.undoElement = { annotations: [] };\n this.undoParentElement = { annotations: [] };\n this.commandHandler = pdfViewer;\n this.pdfViewerBase = pdfViewerBase;\n }\n /**\n * @param {IElement} currentElement - Specified the current element.\n * @returns {void}\n */\n ToolBase.prototype.startAction = function (currentElement) {\n this.currentElement = currentElement;\n this.inAction = true;\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Mouse up event arguments.\n * @returns {void}\n */\n ToolBase.prototype.mouseDown = function (args) {\n this.currentElement = args.source;\n this.startPosition = this.currentPosition = this.prevPosition = args.position;\n this.isTooltipVisible = true;\n this.startAction(args.source);\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Mouse up event arguments.\n * @returns {boolean} - Returns true or false.\n */\n ToolBase.prototype.mouseMove = function (args) {\n this.currentPosition = args.position;\n //this.currentElement = currentElement;\n this.prevPageId = this.pdfViewerBase.activeElements.activePageID;\n return !this.blocked;\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Mouse up event arguments.\n * @returns {void}\n */\n ToolBase.prototype.mouseUp = function (args) {\n this.currentPosition = args.position;\n // this.currentElement = currentElement;\n this.isTooltipVisible = false;\n //At the end\n this.endAction();\n this.helper = null;\n };\n ToolBase.prototype.endAction = function () {\n //remove helper\n if (this.commandHandler) {\n this.commandHandler.tool = '';\n if (this.helper) {\n this.commandHandler.remove(this.helper);\n }\n }\n this.commandHandler = null;\n this.currentElement = null;\n this.currentPosition = null;\n this.inAction = false;\n this.blocked = false;\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Mouse wheel event arguments.\n * @returns {void}\n */\n ToolBase.prototype.mouseWheel = function (args) {\n this.currentPosition = args.position;\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Mouse leave event arguments.\n * @returns {void}\n */\n ToolBase.prototype.mouseLeave = function (args) {\n this.mouseUp(args);\n };\n // eslint-disable-next-line\n ToolBase.prototype.updateSize = function (shape, startPoint, endPoint, corner, initialBounds, angle, isMouseUp) {\n var zoom = this.commandHandler.viewerBase.getZoomFactor();\n var difx = this.currentPosition.x / zoom - this.startPosition.x / zoom;\n var dify = this.currentPosition.y / zoom - this.startPosition.y / zoom;\n var rotateAngle = (shape instanceof TextElement) ? angle : shape.rotateAngle;\n var matrix = identityMatrix();\n rotateMatrix(matrix, -rotateAngle, 0, 0);\n var deltaWidth = 0;\n var deltaHeight = 0;\n var diff;\n var width = (shape instanceof TextElement) ? shape.actualSize.width : shape.wrapper.bounds.width;\n var height = (shape instanceof TextElement) ? shape.actualSize.height : shape.wrapper.bounds.height;\n // eslint-disable-next-line\n var obj = shape;\n if (!shape.formFieldAnnotationType) {\n if (!shape.annotName && !shape.shapeAnnotationType) {\n if (shape) {\n // eslint-disable-next-line\n obj = shape.annotations[0];\n }\n }\n }\n // eslint-disable-next-line\n var annotationSettings = this.commandHandler.annotationModule ? this.commandHandler.annotationModule.findAnnotationSettings(obj) : {};\n var annotationMaxHeight = 0;\n var annotationMaxWidth = 0;\n var annotationMinHeight = 0;\n var annotationMinWidth = 0;\n if (annotationSettings.minWidth || annotationSettings.maxWidth || annotationSettings.minHeight || annotationSettings.maxHeight) {\n annotationMaxHeight = annotationSettings.maxHeight ? annotationSettings.maxHeight : 2000;\n annotationMaxWidth = annotationSettings.maxWidth ? annotationSettings.maxWidth : 2000;\n annotationMinHeight = annotationSettings.minHeight ? annotationSettings.minHeight : 0;\n annotationMinWidth = annotationSettings.minWidth ? annotationSettings.minWidth : 0;\n }\n var isAnnotationSet = false;\n if (annotationMinHeight || annotationMinWidth || annotationMaxHeight || annotationMaxWidth) {\n isAnnotationSet = true;\n }\n if (isAnnotationSet && isMouseUp) {\n // eslint-disable-next-line\n var size = this.getPositions(corner, difx, dify);\n var newWidth = width + size.x;\n var newHeight = height + size.y;\n // eslint-disable-next-line max-len\n if ((newHeight > annotationMinHeight && newHeight < annotationMaxHeight) && (newWidth > annotationMinWidth && newWidth < annotationMaxWidth)) {\n // eslint-disable-next-line\n difx = difx;\n // eslint-disable-next-line\n dify = dify;\n }\n else {\n if (newHeight < annotationMinHeight || newHeight > annotationMaxHeight) {\n if (newHeight < annotationMinHeight) {\n dify = annotationMinHeight - height;\n }\n else {\n dify = annotationMaxHeight - height;\n }\n }\n if (newWidth < annotationMinWidth || newWidth > annotationMaxWidth) {\n if (newWidth < annotationMinWidth) {\n difx = annotationMinWidth - width;\n }\n else {\n difx = annotationMaxWidth - width;\n }\n }\n }\n }\n switch (corner) {\n case 'ResizeWest':\n diff = transformPointByMatrix(matrix, ({ x: difx, y: dify }));\n difx = diff.x;\n dify = diff.y;\n deltaHeight = 1;\n // eslint-disable-next-line\n difx = difx;\n dify = 0;\n if (isAnnotationSet) {\n if (initialBounds.width - difx > annotationMaxWidth) {\n difx = annotationMaxWidth - initialBounds.width;\n }\n }\n deltaWidth = (initialBounds.width - difx) / width;\n break;\n case 'ResizeEast':\n diff = transformPointByMatrix(matrix, ({ x: difx, y: dify }));\n difx = diff.x;\n dify = diff.y;\n dify = 0;\n if (isAnnotationSet) {\n if (initialBounds.width + difx > annotationMaxWidth) {\n difx = annotationMaxWidth - initialBounds.width;\n }\n }\n deltaWidth = (initialBounds.width + difx) / width;\n deltaHeight = 1;\n break;\n case 'ResizeNorth':\n deltaWidth = 1;\n diff = transformPointByMatrix(matrix, ({ x: difx, y: dify }));\n difx = diff.x;\n dify = diff.y;\n if (isAnnotationSet) {\n if (initialBounds.height - dify > annotationMaxHeight) {\n dify = annotationMaxHeight - initialBounds.height;\n }\n }\n deltaHeight = (initialBounds.height - dify) / height;\n break;\n case 'ResizeSouth':\n deltaWidth = 1;\n diff = transformPointByMatrix(matrix, ({ x: difx, y: dify }));\n difx = diff.x;\n dify = diff.y;\n if (isAnnotationSet) {\n if (initialBounds.height + dify > annotationMaxHeight) {\n dify = annotationMaxHeight - initialBounds.height;\n }\n }\n deltaHeight = (initialBounds.height + dify) / height;\n break;\n case 'ResizeNorthEast':\n diff = transformPointByMatrix(matrix, ({ x: difx, y: dify }));\n difx = diff.x;\n dify = diff.y;\n if (isAnnotationSet) {\n if (initialBounds.width + difx > annotationMaxWidth) {\n difx = annotationMaxWidth - initialBounds.width;\n }\n if (initialBounds.height - dify > annotationMaxHeight) {\n dify = annotationMaxHeight - initialBounds.height;\n }\n }\n deltaWidth = (initialBounds.width + difx) / width;\n deltaHeight = (initialBounds.height - dify) / height;\n break;\n case 'ResizeNorthWest':\n diff = transformPointByMatrix(matrix, ({ x: difx, y: dify }));\n difx = diff.x;\n dify = diff.y;\n if (isAnnotationSet) {\n if (initialBounds.width - difx > annotationMaxWidth) {\n difx = annotationMaxWidth - initialBounds.width;\n }\n if (initialBounds.height - dify > annotationMaxHeight) {\n dify = annotationMaxHeight - initialBounds.height;\n }\n }\n deltaWidth = (initialBounds.width - difx) / width;\n deltaHeight = (initialBounds.height - dify) / height;\n break;\n case 'ResizeSouthEast':\n diff = transformPointByMatrix(matrix, ({ x: difx, y: dify }));\n difx = diff.x;\n dify = diff.y;\n if (isAnnotationSet) {\n if (initialBounds.width + difx > annotationMaxWidth) {\n difx = annotationMaxWidth - initialBounds.width;\n }\n if (initialBounds.height + dify > annotationMaxHeight) {\n dify = annotationMaxHeight - initialBounds.height;\n }\n }\n deltaHeight = (initialBounds.height + dify) / height;\n deltaWidth = (initialBounds.width + difx) / width;\n break;\n case 'ResizeSouthWest':\n diff = transformPointByMatrix(matrix, ({ x: difx, y: dify }));\n difx = diff.x;\n dify = diff.y;\n if (isAnnotationSet) {\n if (initialBounds.width - difx > annotationMaxWidth) {\n difx = annotationMaxWidth - initialBounds.width;\n }\n if (initialBounds.height + dify > annotationMaxHeight) {\n dify = annotationMaxHeight - initialBounds.height;\n }\n }\n deltaWidth = (initialBounds.width - difx) / width;\n deltaHeight = (initialBounds.height + dify) / height;\n break;\n }\n return { width: deltaWidth, height: deltaHeight };\n };\n ToolBase.prototype.getPivot = function (corner) {\n switch (corner) {\n case 'ResizeWest':\n return { x: 1, y: 0.5 };\n case 'ResizeEast':\n return { x: 0, y: 0.5 };\n case 'ResizeNorth':\n return { x: 0.5, y: 1 };\n case 'ResizeSouth':\n return { x: 0.5, y: 0 };\n case 'ResizeNorthEast':\n return { x: 0, y: 1 };\n case 'ResizeNorthWest':\n return { x: 1, y: 1 };\n case 'ResizeSouthEast':\n return { x: 0, y: 0 };\n case 'ResizeSouthWest':\n return { x: 1, y: 0 };\n }\n return { x: 0.5, y: 0.5 };\n };\n ToolBase.prototype.getPositions = function (corner, x, y) {\n switch (corner) {\n case 'ResizeEast':\n return { x: x, y: 0 };\n case 'ResizeSouthEast':\n return { x: x, y: y };\n case 'ResizeSouth':\n return { x: 0, y: y };\n case 'ResizeNorth':\n return { x: 0, y: -y };\n case 'ResizeNorthEast':\n return { x: x, y: -y };\n case 'ResizeNorthWest':\n return { x: -x, y: -y };\n case 'ResizeWest':\n return { x: -x, y: 0 };\n case 'ResizeSouthWest':\n return { x: -x, y: y };\n }\n return { x: x, y: y };\n };\n return ToolBase;\n}());\nexport { ToolBase };\n/**\n * Helps to select the objects\n *\n * @hidden\n */\nvar SelectTool = /** @class */ (function (_super) {\n __extends(SelectTool, _super);\n function SelectTool(commandHandler, base) {\n return _super.call(this, commandHandler, base, true) || this;\n // this.action = action;\n }\n /**\n * @private\n * @param {MouseEventArgs} args - Mouse down event arguments.\n * @returns {void}\n */\n SelectTool.prototype.mouseDown = function (args) {\n this.inAction = true;\n this.mouseEventHelper(args);\n _super.prototype.mouseDown.call(this, args);\n };\n SelectTool.prototype.mouseEventHelper = function (args) {\n if (this.commandHandler && this.commandHandler.annotationModule) {\n // eslint-disable-next-line\n this.commandHandler.annotationModule.overlappedCollections = findActiveElement(args, this.pdfViewerBase, this.commandHandler, true);\n }\n // eslint-disable-next-line\n var object = findActiveElement(args, this.pdfViewerBase, this.commandHandler);\n // if (!isNullOrUndefined(object) && (object as any).shapeAnnotationType != 'Path'){\n var isLock = false;\n // eslint-disable-next-line\n if (object && object.shapeAnnotationType === 'StickyNotes') {\n // eslint-disable-next-line\n if (object.annotationSettings && object.annotationSettings.isLock) {\n if (this.commandHandler.annotationModule.checkAllowedInteractions('Select', object)) {\n isLock = false;\n }\n else {\n isLock = true;\n }\n }\n }\n if (!isLock) {\n // eslint-disable-next-line\n var currentSelctor = void 0;\n if (args.source && args.annotationSelectorSettings !== null) {\n currentSelctor = args.source.annotationSelectorSettings;\n }\n else {\n currentSelctor = '';\n }\n if (this.commandHandler) {\n var selectedObject = this.commandHandler.selectedItems;\n if (selectedObject) {\n // eslint-disable-next-line\n var annotation = selectedObject.annotations[0];\n // eslint-disable-next-line\n var formField = selectedObject.formFields[0];\n var currentAnnot = this.commandHandler.selectedItems.annotations[0];\n var currentSource = args.source;\n if ((selectedObject.annotations.length) && args.info && !args.info.ctrlKey\n // eslint-disable-next-line\n && this.commandHandler.annotationModule && this.commandHandler.annotationModule.freeTextAnnotationModule.isInuptBoxInFocus === false) {\n this.commandHandler.clearSelection(this.pdfViewerBase.activeElements.activePageID);\n }\n else if (args.info && args.info.ctrlKey && ((currentSource && currentSource.shapeAnnotationType === 'FreeText') || (currentAnnot && currentAnnot.shapeAnnotationType === 'FreeText'))) {\n this.commandHandler.clearSelection(this.pdfViewerBase.activeElements.activePageID);\n }\n else if (isNullOrUndefined(object) && this.commandHandler.formDesignerModule && !((currentSource && currentSource.shapeAnnotationType === 'FreeText') || (currentAnnot && (currentAnnot.shapeAnnotationType === 'FreeText' || currentAnnot.shapeAnnotationType === 'Image' || currentAnnot.shapeAnnotationType === 'StickyNotes')))) {\n this.commandHandler.clearSelection(this.pdfViewerBase.activeElements.activePageID);\n }\n if (object) {\n if (!isNullOrUndefined(this.pdfViewerBase.isFreeTextSelected) && !this.pdfViewerBase.isFreeTextSelected) {\n this.commandHandler.select([object.id], currentSelctor);\n this.commandHandler.viewerBase.isAnnotationMouseDown = true;\n }\n this.pdfViewerBase.isFreeTextSelected = false;\n this.commandHandler.viewerBase.isFormFieldMouseDown = true;\n }\n if (selectedObject.annotations.length === 0 && annotation && annotation.shapeAnnotationType !== 'HandWrittenSignature' && annotation.shapeAnnotationType !== 'SignatureText' && annotation.shapeAnnotationType !== 'SignatureImage' && annotation.shapeAnnotationType !== 'Path' && !annotation.formFieldAnnotationType) {\n if (this.commandHandler.enableToolbar && Browser.isDevice && !this.commandHandler.enableDesktopMode) {\n this.commandHandler.toolbarModule.showToolbar(true);\n }\n this.commandHandler.fireAnnotationUnSelect(annotation.annotName, annotation.pageIndex, annotation);\n }\n // eslint-disable-next-line max-len\n if (selectedObject.formFields.length === 0 && this.commandHandler.formDesignerModule && formField && formField.formFieldAnnotationType) {\n // eslint-disable-next-line\n var field = { name: formField.name, id: formField.id, value: formField.value, fontFamily: formField.fontFamily, fontSize: formField.fontSize, fontStyle: formField.fontStyle,\n // eslint-disable-next-line\n color: formField.color, backgroundColor: formField.backgroundColor, alignment: formField.alignment, isReadonly: formField.isReadOnly, visibility: formField.visibility,\n // eslint-disable-next-line\n maxLength: formField.maxLength, isRequired: formField.isRequired, isPrint: formField.isPrint, rotation: formField.rotation, tooltip: formField.tooltip,\n // eslint-disable-next-line\n options: formField.options, isChecked: formField.isChecked, isSelected: formField.isSelected };\n this.commandHandler.fireFormFieldUnselectEvent('formFieldUnselect', field, formField.pageIndex);\n }\n else if (this.pdfViewerBase.currentTarget && this.pdfViewerBase.currentTarget.id && this.commandHandler.formFields && event.type === 'mousedown') {\n for (var i = 0; i < this.commandHandler.formFields.length; i++) {\n var formField_1 = this.commandHandler.formFields[parseInt(i.toString(), 10)];\n if (this.pdfViewerBase.currentTarget && this.pdfViewerBase.currentTarget.id === formField_1.id) {\n // eslint-disable-next-line\n var field = {\n value: formField_1.value, fontFamily: formField_1.fontFamily, fontSize: formField_1.fontSize, fontStyle: formField_1.fontStyle,\n // eslint-disable-next-line\n color: formField_1.color, backgroundColor: formField_1.backgroundColor, alignment: formField_1.alignment, isReadonly: formField_1.isReadonly, visibility: formField_1.visibility,\n // eslint-disable-next-line\n maxLength: formField_1.maxLength, isRequired: formField_1.isRequired, isPrint: formField_1.isPrint, rotation: formField_1.rotateAngle, tooltip: formField_1.tooltip,\n // eslint-disable-next-line\n options: formField_1.options, isChecked: formField_1.isChecked, isSelected: formField_1.isSelected\n };\n if (!object) {\n this.commandHandler.fireFocusOutFormField(field, formField_1.pageIndex);\n this.pdfViewerBase.currentTarget = null;\n }\n else {\n if (this.pdfViewerBase.currentTarget.id != event.target.id && event.target.className != 'e-pv-text-layer') {\n this.commandHandler.fireFocusOutFormField(field, formField_1.pageIndex);\n this.pdfViewerBase.currentTarget = null;\n }\n }\n }\n }\n }\n }\n }\n }\n // } else {\n // if (!isNullOrUndefined(this.commandHandler))\n // this.commandHandler.clearSelection(this.pdfViewerBase.activeElements.activePageID);\n // }\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Mouse move event arguments.\n * @returns {boolean} - Returns true or false.\n */\n SelectTool.prototype.mouseMove = function (args) {\n _super.prototype.mouseMove.call(this, args);\n //draw selected region\n return !this.blocked;\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Mouse up event arguments.\n * @returns {void}\n */\n SelectTool.prototype.mouseUp = function (args) {\n this.mouseEventHelper(args);\n this.inAction = false;\n _super.prototype.mouseUp.call(this, args);\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Mouse leave event arguments.\n * @returns {void}\n */\n SelectTool.prototype.mouseLeave = function (args) {\n if (this.inAction) {\n this.mouseUp(args);\n }\n };\n return SelectTool;\n}(ToolBase));\nexport { SelectTool };\n/** @hidden */\nvar MoveTool = /** @class */ (function (_super) {\n __extends(MoveTool, _super);\n function MoveTool(commandHandler, base) {\n var _this = _super.call(this, commandHandler, base) || this;\n /** @private */\n _this.currentTarget = null;\n /** @private */\n _this.prevNode = null;\n return _this;\n }\n /**\n * @private\n * @param {MouseEventArgs} args - Mouse down event arguments.\n * @returns {void}\n */\n MoveTool.prototype.mouseDown = function (args) {\n _super.prototype.mouseDown.call(this, args);\n this.offset = { x: args.source.wrapper.offsetX, y: args.source.wrapper.offsetY };\n this.startPosition = args.position;\n var nodeMouseDown = cloneObject(args.source);\n this.redoElement = {\n bounds: {\n x: nodeMouseDown.wrapper.offsetX, y: nodeMouseDown.wrapper.offsetY,\n width: nodeMouseDown.wrapper.actualSize.width, height: nodeMouseDown.wrapper.actualSize.height\n }\n // eslint-disable-next-line\n };\n if (isLineShapes(nodeMouseDown)) {\n this.redoElement.vertexPoints = nodeMouseDown.vertexPoints;\n this.redoElement.leaderHeight = nodeMouseDown.leaderHeight;\n }\n this.inAction = true;\n };\n /**\n * @private\n * @param {any} args - Specified the mouse event arguments.\n * @returns {void}\n */\n // eslint-disable-next-line\n MoveTool.prototype.mouseUp = function (args) {\n if (this.commandHandler && args.source) {\n this.checkisAnnotationMove(args);\n var currentSelctor = args.source.annotationSelectorSettings;\n this.commandHandler.clearSelection(this.pdfViewerBase.activeElements.activePageID);\n this.commandHandler.select([args.source.id], currentSelctor);\n // eslint-disable-next-line max-len\n if (this.pdfViewerBase.activeElements.activePageID == args.source.pageIndex) {\n this.commandHandler.dragSelectedObjects(this.calculateMouseActionXDiff(args), this.calculateMouseActionYDiff(args), this.pdfViewerBase.activeElements.activePageID, currentSelctor, null);\n }\n if (args.source && (args.source.formFieldAnnotationType === 'Textbox' || args.source.formFieldAnnotationType === 'Checkbox'\n || args.source.formFieldAnnotationType === 'RadioButton' || args.source.formFieldAnnotationType === 'ListBox'\n || args.source.formFieldAnnotationType === 'SignatureField' || args.source.formFieldAnnotationType === 'InitialField' || args.source.formFieldAnnotationType === 'DropdownList'\n || args.source.formFieldAnnotationType === 'PasswordField')) {\n this.commandHandler.formDesignerModule.updateHTMLElement(args.source);\n }\n this.commandHandler.renderSelector(this.pdfViewerBase.activeElements.activePageID, currentSelctor);\n this.commandHandler.viewerBase.isAnnotationMouseMove = false;\n this.commandHandler.viewerBase.isFormFieldMouseMove = false;\n // eslint-disable-next-line\n var newShapeObject = {\n bounds: {\n x: args.source.wrapper.offsetX, y: args.source.wrapper.offsetY,\n width: args.source.wrapper.actualSize.width, height: args.source.wrapper.actualSize.height\n }, modifiedDate: args.source.modifiedDate\n };\n if (isLineShapes(args.source)) {\n newShapeObject.vertexPoints = args.source.vertexPoints;\n newShapeObject.leaderHeight = args.source.leaderHeight;\n }\n if (args.target && args.target.formFieldAnnotationType) {\n var node = args.target;\n var field = {\n // eslint-disable-next-line\n value: node.value, fontFamily: node.fontFamily, fontSize: node.fontSize, fontStyle: node.fontStyle,\n // eslint-disable-next-line\n color: node.color, backgroundColor: node.backgroundColor, borderColor: node.borderColor,\n // eslint-disable-next-line\n thickness: node.thickness, alignment: node.alignment, isReadonly: node.isReadonly, visibility: node.visibility,\n // eslint-disable-next-line\n maxLength: node.maxLength, isRequired: node.isRequired, isPrint: node.isPrint, rotation: node.rotateAngle, tooltip: node.tooltip, options: node.options,\n // eslint-disable-next-line\n isChecked: node.isChecked, isSelected: node.isSelected\n };\n // eslint-disable-next-line max-len\n var currentPosition = { X: args.source.wrapper.offsetX, Y: args.source.wrapper.offsetY, Width: args.source.wrapper.actualSize.width, Height: args.source.wrapper.actualSize.height };\n // eslint-disable-next-line max-len\n var previousPosition = { X: this.offset.x, Y: this.offset.y, Width: args.source.wrapper.actualSize.width, Height: args.source.wrapper.actualSize.height };\n this.commandHandler.fireFormFieldMoveEvent('formFieldMove', field, node.pageIndex, previousPosition, currentPosition);\n }\n if (this.commandHandler.annotation) {\n // eslint-disable-next-line\n this.commandHandler.annotation.addAction(this.pageIndex, null, args.source, 'Drag', '', this.redoElement, newShapeObject);\n this.commandHandler.annotation.stampAnnotationModule.updateSessionStorage(args.source, null, 'Drag');\n this.commandHandler.annotation.stickyNotesAnnotationModule.updateStickyNotes(args.source, null);\n }\n }\n var shapeAnnotationType = this.commandHandler && this.commandHandler.selectedItems && this.commandHandler.selectedItems.annotations && this.commandHandler.selectedItems.annotations.length > 0 ? this.commandHandler.selectedItems.annotations[0].shapeAnnotationType : null;\n if (shapeAnnotationType && shapeAnnotationType !== 'Image' && shapeAnnotationType !== 'SignatureImage') {\n _super.prototype.mouseUp.call(this, args);\n }\n else if (this.commandHandler && this.commandHandler.selectedItems && this.commandHandler.selectedItems.formFields && this.commandHandler.selectedItems.formFields.length > 0) {\n _super.prototype.mouseUp.call(this, args);\n }\n };\n MoveTool.prototype.calculateMouseXDiff = function () {\n if (this.currentPosition && this.startPosition) {\n return this.currentPosition.x - this.startPosition.x;\n }\n else {\n return 0;\n }\n };\n MoveTool.prototype.calculateMouseYDiff = function () {\n if (this.currentPosition && this.startPosition) {\n return this.currentPosition.y - this.startPosition.y;\n }\n else {\n return 0;\n }\n };\n MoveTool.prototype.calculateMouseActionXDiff = function (args) {\n var x = this.calculateMouseXDiff() / this.commandHandler.viewerBase.getZoomFactor();\n // let y: number = this.calculateMouseYDiff() / this.commandHandler.magnification.zoomFactor;\n if (this.offset) {\n var requiredX = this.offset.x + x;\n // let requiredY: number = this.offset.y + y;\n return requiredX - args.source.wrapper.offsetX;\n //let diffY: number = requiredY - args.source.wrapper.offsetY;\n }\n else {\n return 0;\n }\n };\n MoveTool.prototype.calculateMouseActionYDiff = function (args) {\n // let x: number = this.calculateMouseXDiff() / this.commandHandler.magnification.zoomFactor;\n var y = this.calculateMouseYDiff() / this.commandHandler.viewerBase.getZoomFactor();\n if (this.offset) {\n // let requiredX: number = this.offset.x + x;\n var requiredY = this.offset.y + y;\n // let diffX: number = requiredX - args.source.wrapper.offsetX;\n return requiredY - args.source.wrapper.offsetY;\n }\n else {\n return 0;\n }\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @param {boolean} isStamp - Specified the stamp annotation or not.\n * @param {boolean} isSkip - Specified the annotation skip or not.\n * @returns {boolean} - Returns the true or false.\n */\n MoveTool.prototype.mouseMove = function (args, isStamp, isSkip) {\n _super.prototype.mouseMove.call(this, args);\n if (this.inAction) {\n this.currentPosition = args.position;\n this.currentTarget = args.target;\n var currentSelctor = args.source.annotationSelectorSettings;\n var x = this.calculateMouseXDiff() / this.commandHandler.viewerBase.getZoomFactor();\n var y = this.calculateMouseYDiff() / this.commandHandler.viewerBase.getZoomFactor();\n var requiredX = this.offset.x + x;\n var requiredY = this.offset.y + y;\n var diffX = this.calculateMouseActionXDiff(args);\n var diffY = this.calculateMouseActionYDiff(args);\n var selectedItem = this.commandHandler.selectedItems.annotations[0];\n var cobject = void 0;\n if (!this.helper) {\n // eslint-disable-next-line\n cobject = this.commandHandler.selectedItems.annotations.length > 0 ? cloneObject(this.commandHandler.selectedItems.annotations[0]) : cloneObject(this.commandHandler.selectedItems.formFields[0]);\n if (cobject.wrapper) {\n diffX = requiredX - cobject.wrapper.offsetX;\n diffY = requiredY - cobject.wrapper.offsetY;\n // eslint-disable-next-line max-len\n cobject.bounds = this.commandHandler.selectedItems.annotations.length > 0 ? this.commandHandler.selectedItems.annotations[0].wrapper.bounds : this.commandHandler.selectedItems.formFields[0].wrapper.bounds;\n }\n cobject.wrapper = undefined;\n cobject.id = 'diagram_helper';\n if (cobject.shapeAnnotationType === 'Stamp') {\n cobject.strokeColor = '';\n cobject.borderDashArray = '';\n cobject.fillColor = 'transparent';\n cobject.stampFillColor = 'transparent';\n cobject.data = '';\n }\n else if (cobject.shapeAnnotationType === 'FreeText') {\n cobject.strokeColor = 'blue';\n cobject.fillColor = 'transparent';\n cobject.thickness = 1;\n cobject.opacity = 1;\n cobject.dynamicText = '';\n }\n else if (cobject.shapeAnnotationType === 'SignatureText') {\n cobject.strokeColor = 'red';\n cobject.borderDashArray = '5,5';\n cobject.fillColor = 'transparent';\n cobject.thickness = 2;\n cobject.opacity = 1;\n cobject.data = '';\n }\n else {\n cobject.strokeColor = 'red';\n cobject.borderDashArray = '5,5';\n cobject.fillColor = 'transparent';\n cobject.thickness = 2;\n cobject.opacity = 1;\n }\n if (cobject.enableShapeLabel === true) {\n cobject.labelContent = '';\n }\n var shapeAnnotationType = cobject.shapeAnnotationType;\n if (!isStamp && shapeAnnotationType !== 'Image' && shapeAnnotationType !== 'SignatureImage') {\n this.helper = cobject = this.commandHandler.add(cobject);\n }\n else {\n cobject = this.helper = args.source;\n }\n if (this.commandHandler.selectedItems.annotations.length > 0) {\n this.commandHandler.selectedItems.annotations = [cobject];\n }\n else {\n this.commandHandler.selectedItems.formFields = [cobject];\n }\n }\n else {\n diffX = requiredX - this.helper.wrapper.offsetX;\n diffY = requiredY - this.helper.wrapper.offsetY;\n }\n if (this.helper && this.helper.shapeAnnotationType === 'Stamp') {\n isStamp = true;\n }\n // eslint-disable-next-line max-len\n if (this.commandHandler.checkBoundaryConstraints(diffX, diffY, this.pdfViewerBase.activeElements.activePageID, this.helper.wrapper.bounds, isStamp, isSkip)) {\n var shapeAnnotationType = this.helper.shapeAnnotationType;\n if (this.helper && (shapeAnnotationType === 'Image' || shapeAnnotationType === 'SignatureImage')) {\n this.checkisAnnotationMove(args);\n // eslint-disable-next-line max-len\n var currentSelctor_1 = args.source.annotationSelectorSettings;\n this.commandHandler.clearSelection(this.pdfViewerBase.activeElements.activePageID);\n this.commandHandler.select([args.source.id], currentSelctor_1);\n // eslint-disable-next-line max-len\n this.commandHandler.dragSelectedObjects(diffX, diffY, this.pdfViewerBase.activeElements.activePageID, currentSelctor_1, this.helper);\n this.commandHandler.renderSelector(this.pdfViewerBase.activeElements.activePageID, currentSelctor_1);\n }\n else {\n this.commandHandler.dragSelectedObjects(diffX, diffY, this.pdfViewerBase.activeElements.activePageID, currentSelctor, this.helper);\n }\n this.prevNode = this.helper;\n this.prevPosition = this.currentPosition;\n }\n else {\n this.currentPosition = this.prevPosition;\n }\n if (selectedItem && selectedItem.annotName) {\n this.commandHandler.annotation.triggerAnnotationMove(selectedItem, true);\n }\n }\n return true;\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {void}\n */\n MoveTool.prototype.mouseLeave = function (args) {\n var currentSelctor = args.source.annotationSelectorSettings;\n var requiredX = this.offset.x + this.calculateMouseXDiff();\n var requiredY = this.offset.y + this.calculateMouseYDiff();\n var diffX = requiredX - args.source.wrapper.offsetX;\n var diffY = requiredY - args.source.wrapper.offsetY;\n this.commandHandler.dragSelectedObjects(diffX, diffY, this.prevPageId, currentSelctor, null);\n this.commandHandler.renderSelector(this.prevPageId, currentSelctor);\n _super.prototype.mouseLeave.call(this, args);\n };\n /**\n * @private\n * @returns {void}\n */\n MoveTool.prototype.endAction = function () {\n _super.prototype.endAction.call(this);\n this.currentTarget = null;\n this.prevPosition = null;\n };\n MoveTool.prototype.checkisAnnotationMove = function (args) {\n // eslint-disable-next-line max-len\n if (this.commandHandler.selectedItems && this.commandHandler.selectedItems.annotations && this.commandHandler.selectedItems.annotations.length > 0) {\n if (this.commandHandler.selectedItems.annotations[0].annotName === args.source.annotName) {\n this.commandHandler.viewerBase.isAnnotationMouseMove = true;\n }\n }\n else {\n this.commandHandler.viewerBase.isAnnotationMouseMove = false;\n }\n // eslint-disable-next-line max-len\n if (this.commandHandler.selectedItems && this.commandHandler.selectedItems.formFields && this.commandHandler.selectedItems.formFields.length > 0) {\n if (this.commandHandler.selectedItems.formFields[0].name === args.source.name) {\n this.commandHandler.viewerBase.isFormFieldMouseMove = true;\n }\n }\n else {\n this.commandHandler.viewerBase.isFormFieldMouseMove = false;\n }\n };\n return MoveTool;\n}(ToolBase));\nexport { MoveTool };\n/** @hidden */\nvar StampTool = /** @class */ (function (_super) {\n __extends(StampTool, _super);\n function StampTool() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {any} - Returns the mouse up event.\n */\n // eslint-disable-next-line\n StampTool.prototype.mouseDown = function (args) {\n _super.prototype.mouseUp.call(this, args);\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {boolean} - Returns the true or false.\n */\n StampTool.prototype.mouseMove = function (args) {\n // eslint-disable-next-line\n var newObject;\n if (!this.inAction) {\n var pageIndex = this.pdfViewerBase.activeElements.activePageID;\n this.commandHandler.clearSelection(this.pdfViewerBase.activeElements.activePageID);\n // eslint-disable-next-line max-len\n var nodeElement = this.commandHandler.annotation.stampAnnotationModule.moveStampElement(args.position.x, args.position.y, pageIndex);\n if (nodeElement.shapeAnnotationType === 'SignatureText') {\n var textWidth = this.getTextWidth(nodeElement.data, nodeElement.fontSize, nodeElement.fontFamily);\n var widthRatio = 1;\n if (textWidth > nodeElement.bounds.width)\n widthRatio = nodeElement.bounds.width / textWidth;\n nodeElement.fontSize = this.getFontSize(Math.floor((nodeElement.fontSize * widthRatio)));\n var defaultFontSize = 32; // default font size.\n nodeElement.bounds.height = nodeElement.fontSize < defaultFontSize ? nodeElement.fontSize * 2 : nodeElement.bounds.height;\n nodeElement.thickness = 0;\n }\n newObject = this.commandHandler.add(nodeElement);\n args.source = this.commandHandler.annotations[this.commandHandler.annotations.length - 1];\n args.sourceWrapper = args.source.wrapper;\n this.inAction = true;\n // eslint-disable-next-line\n var currentSource = args.source;\n if (currentSource && (currentSource.shapeAnnotationType === 'HandWrittenSignature' || currentSource.shapeAnnotationType === 'SignatureText' || currentSource.shapeAnnotationType === 'SignatureImage')) {\n this['offset'] = { x: args.source.wrapper.offsetX - (args.source.wrapper.bounds.width / 2), y: args.source.wrapper.offsetY - (args.source.wrapper.bounds.height / 2) };\n }\n else {\n this['offset'] = { x: args.source.wrapper.offsetX, y: args.source.wrapper.offsetY };\n }\n this.startPosition = args.position;\n this.commandHandler.select([newObject.id]);\n }\n var currentSelctor = args.source.annotationSelectorSettings;\n _super.prototype.mouseMove.call(this, args, true, true);\n this.commandHandler.renderSelector(args.source.pageIndex, currentSelctor);\n return this.inAction;\n };\n StampTool.prototype.getTextWidth = function (text, font, fontFamily) {\n var canvas = document.createElement('canvas');\n var context = canvas.getContext('2d');\n var fontName;\n if (font) {\n fontName = font + 'px' + ' ' + fontFamily;\n }\n context.font = fontName || getComputedStyle(document.body).font;\n return context.measureText(text).width;\n };\n /**\n * @param {number} fontSize - Font size.\n * @returns {number} - Returns the font size.\n */\n StampTool.prototype.getFontSize = function (fontSize) {\n return (fontSize % 2 === 0) ? fontSize : --fontSize;\n };\n return StampTool;\n}(MoveTool));\nexport { StampTool };\n/**\n * Draws a node that is defined by the user\n *\n * @hidden\n */\nvar InkDrawingTool = /** @class */ (function (_super) {\n __extends(InkDrawingTool, _super);\n function InkDrawingTool(commandHandler, base, sourceObject) {\n var _this = _super.call(this, commandHandler, base) || this;\n _this.sourceObject = sourceObject;\n return _this;\n }\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {void}\n */\n InkDrawingTool.prototype.mouseDown = function (args) {\n this.pdfViewerBase.disableTextSelectionMode();\n _super.prototype.mouseDown.call(this, args);\n this.inAction = true;\n // eslint-disable-next-line\n var node = { currentPosition: this.currentPosition, prevPosition: this.prevPosition };\n this.commandHandler.annotation.inkAnnotationModule.drawInkInCanvas(node, this.pdfViewerBase.activeElements.activePageID);\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {boolean} - Returns true or false.\n */\n InkDrawingTool.prototype.mouseMove = function (args) {\n _super.prototype.mouseMove.call(this, args);\n if (this.inAction) {\n // eslint-disable-next-line\n var node = { currentPosition: this.currentPosition, prevPosition: this.pdfViewerBase.prevPosition };\n this.commandHandler.annotation.inkAnnotationModule.drawInkInCanvas(node, this.pdfViewerBase.activeElements.activePageID);\n }\n return this.inAction;\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {boolean} - Returns true.\n */\n InkDrawingTool.prototype.mouseUp = function (args) {\n this.commandHandler.annotation.inkAnnotationModule.storePathData();\n return true;\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {void}\n */\n InkDrawingTool.prototype.mouseLeave = function (args) {\n //this.mouseUp(args);\n };\n /**\n * @private\n * @returns {void}\n */\n InkDrawingTool.prototype.endAction = function () {\n _super.prototype.endAction.call(this);\n };\n return InkDrawingTool;\n}(ToolBase));\nexport { InkDrawingTool };\n/**\n * Helps to edit the selected connectors\n *\n * @hidden\n */\nvar ConnectTool = /** @class */ (function (_super) {\n __extends(ConnectTool, _super);\n function ConnectTool(commandHandler, base, endPoint) {\n var _this = _super.call(this, commandHandler, base, true) || this;\n _this.endPoint = endPoint;\n return _this;\n }\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {void}\n */\n ConnectTool.prototype.mouseDown = function (args) {\n this.inAction = true;\n this.undoElement = undefined;\n _super.prototype.mouseDown.call(this, args);\n var oldValue;\n var connectors;\n if (args.source && args.source.annotations) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n oldValue = { x: this.prevPosition.x, y: this.prevPosition.y };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n connectors = args.source.annotations[0];\n }\n this.initialPosition = args.position;\n this.prevSource = this.commandHandler.selectedItems.annotations[0];\n var nodeElement = cloneObject(args.source);\n this.redoElement = {\n bounds: {\n x: nodeElement.wrapper.offsetX, y: nodeElement.wrapper.offsetY,\n width: nodeElement.wrapper.actualSize.width, height: nodeElement.wrapper.actualSize.height\n }\n // eslint-disable-next-line\n };\n if (isLineShapes(nodeElement)) {\n this.redoElement.vertexPoints = nodeElement.vertexPoints;\n this.redoElement.leaderHeight = nodeElement.leaderHeight;\n if (nodeElement.measureType === 'Distance' || nodeElement.measureType === 'Perimeter' || nodeElement.measureType === 'Area' || nodeElement.measureType === 'Volume') {\n this.redoElement.notes = nodeElement.notes;\n }\n }\n this.currentPosition = args.position;\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {void}\n */\n ConnectTool.prototype.mouseUp = function (args) {\n if (this.commandHandler) {\n var node = this.commandHandler.selectedItems.annotations[0];\n if (node) {\n // eslint-disable-next-line\n var annotationSettings = this.commandHandler.annotationModule.findAnnotationSettings(node);\n var annotationMaxHeight = 0;\n var annotationMaxWidth = 0;\n var annotationMinHeight = 0;\n var annotationMinWidth = 0;\n // eslint-disable-next-line max-len\n if (annotationSettings.minWidth || annotationSettings.maxWidth || annotationSettings.minHeight || annotationSettings.maxHeight) {\n annotationMaxHeight = annotationSettings.maxHeight ? annotationSettings.maxHeight : 2000;\n annotationMaxWidth = annotationSettings.maxWidth ? annotationSettings.maxWidth : 2000;\n annotationMinHeight = annotationSettings.minHeight ? annotationSettings.minHeight : 0;\n annotationMinWidth = annotationSettings.minWidth ? annotationSettings.minWidth : 0;\n }\n if (node.vertexPoints.length > 3) {\n // eslint-disable-next-line\n var sizeObject = this.commandHandler.viewerBase.checkAnnotationWidth(node.vertexPoints);\n var width = sizeObject.width;\n var height = sizeObject.height;\n if (annotationMinHeight || annotationMinWidth || annotationMaxHeight || annotationMaxWidth) {\n // eslint-disable-next-line max-len\n if ((height > annotationMinHeight && height < annotationMaxHeight) || (width > annotationMinWidth && width < annotationMaxWidth)) {\n // eslint-disable-next-line max-len\n this.commandHandler.nodePropertyChange(this.prevSource, { vertexPoints: node.vertexPoints, leaderHeight: node.leaderHeight });\n }\n }\n else {\n // eslint-disable-next-line max-len\n this.commandHandler.nodePropertyChange(this.prevSource, { vertexPoints: node.vertexPoints, leaderHeight: node.leaderHeight });\n }\n }\n else {\n if (annotationMinHeight || annotationMinWidth || annotationMaxHeight || annotationMaxWidth) {\n if (node.shapeAnnotationType === 'Line' || node.shapeAnnotationType === 'Distance' || node.shapeAnnotationType === 'LineWidthArrowHead') {\n var x = 0;\n var y = 0;\n if (node.vertexPoints[0].x > node.vertexPoints[1].x) {\n x = node.vertexPoints[0].x - node.vertexPoints[1].x;\n }\n else {\n x = node.vertexPoints[1].x - node.vertexPoints[0].x;\n }\n if (node.vertexPoints[0].y > node.vertexPoints[1].y) {\n y = node.vertexPoints[0].y - node.vertexPoints[1].y;\n }\n else {\n y = node.vertexPoints[1].y - node.vertexPoints[0].y;\n }\n var diff = (x > y) ? x : y;\n if (diff < (annotationMaxHeight || annotationMaxWidth) && diff > (annotationMinHeight || annotationMinWidth)) {\n // eslint-disable-next-line max-len\n this.commandHandler.nodePropertyChange(this.prevSource, { vertexPoints: node.vertexPoints, leaderHeight: node.leaderHeight });\n }\n }\n else {\n // eslint-disable-next-line max-len\n this.commandHandler.nodePropertyChange(this.prevSource, { vertexPoints: node.vertexPoints, leaderHeight: node.leaderHeight });\n }\n }\n else {\n // eslint-disable-next-line max-len\n this.commandHandler.nodePropertyChange(this.prevSource, { vertexPoints: node.vertexPoints, leaderHeight: node.leaderHeight });\n }\n }\n var currentSelctor = args.source.annotationSelectorSettings;\n this.commandHandler.clearSelection(this.pdfViewerBase.activeElements.activePageID);\n this.commandHandler.select([this.prevSource.id], currentSelctor);\n this.commandHandler.renderSelector(this.pdfViewerBase.activeElements.activePageID, currentSelctor);\n // eslint-disable-next-line\n var newShapeElementObject = {\n bounds: {\n x: args.source.wrapper.offsetX, y: args.source.wrapper.offsetY,\n width: args.source.wrapper.actualSize.width, height: args.source.wrapper.actualSize.height\n }\n };\n if (node.measureType === 'Distance' || node.measureType === 'Perimeter' || node.measureType === 'Area' || node.measureType === 'Volume') {\n this.commandHandler.annotation.updateCalibrateValues(this.commandHandler.selectedItems.annotations[0]);\n newShapeElementObject.notes = args.source.notes;\n }\n if (isLineShapes(args.source)) {\n newShapeElementObject.vertexPoints = args.source.vertexPoints;\n newShapeElementObject.leaderHeight = args.source.leaderHeight;\n }\n // eslint-disable-next-line\n this.commandHandler.annotation.addAction(this.pageIndex, null, this.prevSource, 'Resize', '', this.redoElement, newShapeElementObject);\n }\n }\n _super.prototype.mouseUp.call(this, args);\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {boolean} - Returns true or false.\n */\n ConnectTool.prototype.mouseMove = function (args) {\n _super.prototype.mouseMove.call(this, args);\n var connector;\n this.currentPosition = args.position;\n if (this.currentPosition && this.prevPosition) {\n var diffX = this.currentPosition.x - this.prevPosition.x;\n var diffY = this.currentPosition.y - this.prevPosition.y;\n var newValue = void 0;\n var oldValue = void 0;\n if (args.source && args.source.annotations) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n newValue = {\n x: this.currentPosition.x, y: this.currentPosition.y\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n oldValue = {\n x: this.prevPosition.x, y: this.prevPosition.y\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n connector = args.source.annotations[0];\n }\n if (this.inAction && this.endPoint !== undefined && diffX !== 0 || diffY !== 0) {\n if (!this.helper) {\n // eslint-disable-next-line\n var cloneShapebject = cloneObject(this.commandHandler.selectedItems.annotations[0]);\n cloneShapebject.id = 'diagram_helper';\n cloneShapebject.strokeColor = 'red';\n cloneShapebject.borderDashArray = '5,5';\n cloneShapebject.fillColor = 'transparent';\n cloneShapebject.thickness = 2;\n cloneShapebject.opacity = 1;\n if (cloneShapebject.enableShapeLabel === true) {\n cloneShapebject.labelContent = '';\n }\n this.helper = cloneShapebject = this.commandHandler.add(cloneShapebject);\n this.commandHandler.selectedItems.annotations = [cloneShapebject];\n }\n var currentSelctor = args.source.annotationSelectorSettings;\n this.blocked = !this.commandHandler.dragConnectorEnds(this.endPoint, this.helper, this.currentPosition, this.selectedSegment, args.target, null, currentSelctor);\n this.commandHandler.renderSelector(this.pdfViewerBase.activeElements.activePageID, currentSelctor);\n }\n }\n this.prevPosition = this.currentPosition;\n return !this.blocked;\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {void}\n */\n ConnectTool.prototype.mouseLeave = function (args) {\n this.mouseUp(args);\n };\n /**\n * @private\n * @returns {void}\n */\n ConnectTool.prototype.endAction = function () {\n _super.prototype.endAction.call(this);\n this.prevPosition = null;\n this.endPoint = null;\n };\n return ConnectTool;\n}(ToolBase));\nexport { ConnectTool };\n/**\n * Scales the selected objects\n *\n * @hidden\n */\nvar ResizeTool = /** @class */ (function (_super) {\n __extends(ResizeTool, _super);\n function ResizeTool(commandHandler, base, corner) {\n var _this = _super.call(this, commandHandler, base, true) || this;\n /** @private */\n _this.initialBounds = new Rect();\n _this.corner = corner;\n return _this;\n }\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {void} - Returns true or false.\n */\n ResizeTool.prototype.mouseDown = function (args) {\n _super.prototype.mouseDown.call(this, args);\n this.initialBounds.x = args.source.wrapper.offsetX;\n this.initialBounds.y = args.source.wrapper.offsetY;\n this.initialBounds.height = args.source.wrapper.actualSize.height;\n this.initialBounds.width = args.source.wrapper.actualSize.width;\n this.initialPosition = args.position;\n var node = cloneObject(args.source);\n this.redoElement = {\n bounds: {\n x: node.wrapper.offsetX, y: node.wrapper.offsetY,\n width: node.wrapper.actualSize.width, height: node.wrapper.actualSize.height\n }\n // eslint-disable-next-line\n };\n if (isLineShapes(node)) {\n this.redoElement.vertexPoints = node.vertexPoints;\n this.redoElement.leaderHeight = node.leaderHeight;\n }\n if (node.measureType === 'Radius') {\n this.redoElement.notes = node.notes;\n }\n // eslint-disable-next-line max-len\n this.prevSource = this.commandHandler.selectedItems.annotations.length > 0 ? this.commandHandler.selectedItems.annotations[0] : this.commandHandler.selectedItems.formFields[0];\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @param {boolean} isPreventHistory - Specified the prevent history value.\n * @returns {boolean} - Returns true or false.\n */\n ResizeTool.prototype.mouseUp = function (args, isPreventHistory) {\n var object = args.source;\n var oldObject = cloneObject(args.source);\n if (this.commandHandler && this.prevSource) {\n this.commandHandler.clearSelection(this.pdfViewerBase.activeElements.activePageID);\n this.commandHandler.viewerBase.isAnnotationSelect = true;\n this.commandHandler.viewerBase.isFormFieldSelect = true;\n this.commandHandler.select([this.prevSource.id], this.prevSource.annotationSelectorSettings);\n // eslint-disable-next-line max-len\n var deltaValues = this.updateSize(this.prevSource, this.currentPosition, this.initialPosition, this.corner, this.initialBounds, null, true);\n this.blocked = this.scaleObjects(deltaValues.width, deltaValues.height, this.corner, this.currentPosition, this.initialPosition, this.prevSource, args.info.ctrlKey);\n if (this.commandHandler.selectedItems && this.commandHandler.selectedItems.annotations &&\n this.commandHandler.selectedItems.annotations[0] && this.commandHandler.selectedItems.annotations[0].shapeAnnotationType === 'Stamp') {\n if (this.commandHandler.stampSettings.minHeight || this.commandHandler.stampSettings.minWidth) {\n this.commandHandler.select([this.prevSource.id], this.prevSource.annotationSelectorSettings);\n }\n }\n if (this.commandHandler.selectedItems.formFields.length > 0 && (this.commandHandler.selectedItems.formFields[0].formFieldAnnotationType === 'Textbox' || this.commandHandler.selectedItems.formFields[0].formFieldAnnotationType === 'Checkbox'\n || this.commandHandler.selectedItems.formFields[0].formFieldAnnotationType === 'RadioButton' || this.commandHandler.selectedItems.formFields[0].formFieldAnnotationType === 'InitialField' || this.commandHandler.selectedItems.formFields[0].formFieldAnnotationType === 'SignatureField'\n || this.commandHandler.selectedItems.formFields[0].formFieldAnnotationType === 'DropdownList' || this.commandHandler.selectedItems.formFields[0].formFieldAnnotationType === 'ListBox' || this.commandHandler.selectedItems.formFields[0].formFieldAnnotationType === 'PasswordField')) {\n if (this.commandHandler.selectedItems.formFields[0].formFieldAnnotationType === 'SignatureField') {\n this.commandHandler.selectedItems.formFields[0].signatureIndicatorSettings = this.commandHandler.selectedItems.formFields[0].signatureIndicatorSettings ? this.commandHandler.selectedItems.formFields[0].signatureIndicatorSettings : { opacity: 1, backgroundColor: 'rgba(255, 228, 133, 0.35)', width: 19, height: 10, fontSize: 10, text: null, color: 'black' };\n }\n this.commandHandler.formDesignerModule.updateHTMLElement(this.commandHandler.selectedItems.formFields[0]);\n }\n this.commandHandler.renderSelector(this.prevPageId, this.prevSource.annotationSelectorSettings);\n if (this.commandHandler.annotation && args.source.wrapper) {\n // eslint-disable-next-line\n var newObject = {\n bounds: {\n x: args.source.wrapper.offsetX, y: args.source.wrapper.offsetY,\n width: args.source.wrapper.actualSize.width, height: args.source.wrapper.actualSize.height\n }\n };\n if (isLineShapes(args.source)) {\n newObject.vertexPoints = args.source.vertexPoints;\n newObject.leaderHeight = args.source.leaderHeight;\n }\n if (this.prevSource.measureType === 'Radius') {\n newObject.notes = args.source.notes;\n this.commandHandler.annotation.updateCalibrateValues(this.prevSource);\n }\n if (this.prevSource.shapeAnnotationType === 'SignatureText') {\n var boundsRatio = newObject.bounds.width / oldObject.width;\n newObject.fontSize = this.prevSource.wrapper.children[1].style.fontSize * boundsRatio;\n if (args.target != null) {\n args.target.fontSize = newObject.fontSize;\n // eslint-disable-next-line\n args.target.wrapper.children[1].style.fontSize = newObject.fontSize;\n args.target.wrapper.children[1].horizontalAlignment = 'Center';\n args.target.wrapper.children[1].verticalAlignment = 'Center';\n args.target.wrapper.children[1].setOffsetWithRespectToBounds(0, 0, 'Absolute');\n // eslint-disable-next-line\n this.commandHandler.selectedItems.annotations[0].wrapper.children[1].style.fontSize = newObject.fontSize;\n this.commandHandler.selectedItems.annotations[0].wrapper.children[1].horizontalAlignment = 'Center';\n this.commandHandler.selectedItems.annotations[0].wrapper.children[1].verticalAlignment = 'Center';\n this.commandHandler.selectedItems.annotations[0].wrapper.children[1].setOffsetWithRespectToBounds(0, 0, 'Absolute');\n this.commandHandler.selectedItems.annotations[0].fontSize = newObject.fontSize;\n }\n }\n if ((this.prevSource.shapeAnnotationType === 'SignatureText') && this.commandHandler.selectedItems.annotations && this.commandHandler.selectedItems.annotations.length > 0) {\n // eslint-disable-next-line max-len\n this.commandHandler.nodePropertyChange(this.commandHandler.selectedItems.annotations[0], { fontSize: newObject.fontSize });\n }\n // eslint-disable-next-line\n this.commandHandler.annotation.addAction(this.pageIndex, null, this.prevSource, 'Resize', '', this.redoElement, newObject);\n }\n if (args.target && args.target.formFieldAnnotationType) {\n var node = args.target;\n // eslint-disable-next-line\n var field = { value: node.value, fontFamily: node.fontFamily, fontSize: node.fontSize, fontStyle: node.fontStyle,\n // eslint-disable-next-line\n color: node.color, backgroundColor: node.backgroundColor, alignment: node.alignment, isReadonly: node.isReadonly, visibility: node.visibility,\n // eslint-disable-next-line\n maxLength: node.maxLength, isRequired: node.isRequired, isPrint: node.isPrint, rotation: node.rotateAngle, tooltip: node.tooltip,\n // eslint-disable-next-line\n options: node.options, isChecked: node.isChecked, isSelected: node.isSelected };\n // eslint-disable-next-line max-len\n var currentPosition = { X: args.source.wrapper.offsetX, Y: args.source.wrapper.offsetY, Width: args.source.wrapper.actualSize.width, Height: args.source.wrapper.actualSize.height };\n // eslint-disable-next-line max-len\n var previousPosition = { X: this.initialBounds.x, Y: this.initialBounds.y, Width: this.initialBounds.width, Height: this.initialBounds.height };\n this.commandHandler.fireFormFieldResizeEvent('formFieldResize', field, node.pageIndex, previousPosition, currentPosition);\n }\n if (this.commandHandler.annotation && this.commandHandler.annotation.stampAnnotationModule) {\n this.commandHandler.annotation.stampAnnotationModule.updateSessionStorage(args.source, this.prevSource.id, 'Resize');\n }\n }\n _super.prototype.mouseUp.call(this, args);\n return !this.blocked;\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {boolean} - Returns true or false.\n */\n ResizeTool.prototype.mouseMove = function (args) {\n _super.prototype.mouseMove.call(this, args);\n var object = args.source;\n this.currentPosition = args.position;\n var x = this.currentPosition.x - this.startPosition.x;\n var y = this.currentPosition.y - this.startPosition.y;\n x = x / this.commandHandler.viewerBase.getZoomFactor();\n y = y / this.commandHandler.viewerBase.getZoomFactor();\n // eslint-disable-next-line\n var annotationElement = args.source;\n // eslint-disable-next-line\n var size = this.getPoints(x, y);\n var width = annotationElement.width + size.x;\n var height = annotationElement.height + size.y;\n // eslint-disable-next-line\n var obj = object;\n if (object && object.annotations) {\n // eslint-disable-next-line\n obj = object.annotations[0];\n }\n // eslint-disable-next-line\n var annotationSettings = this.commandHandler.annotationModule ? this.commandHandler.annotationModule.findAnnotationSettings(obj) : {};\n var annotationMaxHeight = 0;\n var annotationMaxWidth = 0;\n var annotationMinHeight = 0;\n var annotationMinWidth = 0;\n if (annotationSettings.minWidth || annotationSettings.maxWidth || annotationSettings.minHeight || annotationSettings.maxHeight) {\n annotationMaxHeight = annotationSettings.maxHeight ? annotationSettings.maxHeight : 2000;\n annotationMaxWidth = annotationSettings.maxWidth ? annotationSettings.maxWidth : 2000;\n annotationMinHeight = annotationSettings.minHeight ? annotationSettings.minHeight : 0;\n annotationMinWidth = annotationSettings.minWidth ? annotationSettings.minWidth : 0;\n }\n if (annotationMinHeight || annotationMinWidth || annotationMaxHeight || annotationMaxWidth) {\n // eslint-disable-next-line max-len\n if ((height >= annotationMinHeight && height <= annotationMaxHeight) && (width >= annotationMinWidth && width <= annotationMaxWidth)) {\n // eslint-disable-next-line\n x = x;\n // eslint-disable-next-line\n y = y;\n }\n else {\n if (height < annotationMinHeight || height > annotationMaxHeight) {\n if (height < annotationMinHeight) {\n y = annotationMinHeight - annotationElement.height;\n }\n else {\n y = annotationMaxHeight - annotationElement.height;\n }\n }\n if (width < annotationMinWidth || width > annotationMaxWidth) {\n if (width < annotationMinWidth) {\n x = annotationMinWidth - annotationElement.width;\n }\n else {\n x = annotationMaxWidth - annotationElement.width;\n }\n }\n }\n }\n var changes = { x: x, y: y };\n if (this.currentElement.wrapper) {\n changes = rotatePoint(-this.currentElement.wrapper.rotateAngle, undefined, undefined, changes);\n }\n changes = this.getChanges(changes);\n this.commandHandler.renderSelector(this.prevPageId, this.prevSource.annotationSelectorSettings);\n if (!this.helper) {\n // eslint-disable-next-line\n var cobject = this.commandHandler.selectedItems.annotations.length > 0 ? cloneObject(this.commandHandler.selectedItems.annotations[0]) : cloneObject(this.commandHandler.selectedItems.formFields[0]);\n cobject.id = 'diagram_helper';\n if (cobject.shapeAnnotationType === 'Stamp') {\n cobject.strokeColor = '';\n cobject.borderDashArray = '';\n cobject.fillColor = 'transparent';\n cobject.stampFillColor = 'transparent';\n cobject.data = '';\n }\n else if (cobject.shapeAnnotationType === 'FreeText') {\n cobject.strokeColor = 'blue';\n cobject.fillColor = 'transparent';\n cobject.thickness = 1;\n cobject.opacity = 1;\n cobject.dynamicText = '';\n }\n else {\n // eslint-disable-next-line max-len\n cobject.bounds = this.commandHandler.selectedItems.annotations.length > 0 ? this.commandHandler.selectedItems.annotations[0].wrapper.bounds : this.commandHandler.selectedItems.formFields[0].wrapper.bounds;\n cobject.strokeColor = 'red';\n cobject.borderDashArray = '5,5';\n cobject.fillColor = 'transparent';\n cobject.thickness = 2;\n cobject.opacity = 1;\n }\n if (cobject.enableShapeLabel === true) {\n cobject.labelContent = '';\n }\n if (cobject.shapeAnnotationType === 'SignatureText') {\n cobject.fillColor = 'transparent';\n cobject.thickness = 1;\n cobject.opacity = 1;\n cobject.data = '';\n }\n this.helper = cobject = this.commandHandler.add(cobject);\n if (this.commandHandler.selectedItems.annotations.length > 0) {\n this.commandHandler.selectedItems.annotations = [cobject];\n }\n else {\n this.commandHandler.selectedItems.formFields = [cobject];\n }\n }\n var deltaValues = this.updateSize(this.helper, this.startPosition, this.currentPosition, this.corner, this.initialBounds);\n // eslint-disable-next-line max-len\n this.blocked = !(this.scaleObjects(deltaValues.width, deltaValues.height, this.corner, this.startPosition, this.currentPosition, this.helper, args.info.ctrlKey));\n this.prevPosition = this.currentPosition;\n return !this.blocked;\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {void}\n */\n ResizeTool.prototype.mouseLeave = function (args) {\n this.mouseUp(args);\n };\n ResizeTool.prototype.getTooltipContent = function (pdfAnnotationBaseModel) {\n return 'W:' + Math.round(pdfAnnotationBaseModel.wrapper.bounds.width) + ' ' + 'H:' + Math.round(pdfAnnotationBaseModel.wrapper.bounds.height);\n };\n ResizeTool.prototype.getChanges = function (change) {\n switch (this.corner) {\n case 'ResizeEast':\n return { x: change.x, y: 0 };\n case 'ResizeSouthEast':\n return change;\n case 'ResizeSouth':\n return { x: 0, y: change.y };\n case 'ResizeNorth':\n return { x: 0, y: -change.y };\n case 'ResizeNorthEast':\n return { x: change.x, y: -change.y };\n case 'ResizeNorthWest':\n return { x: -change.x, y: -change.y };\n case 'ResizeWest':\n return { x: -change.x, y: 0 };\n case 'ResizeSouthWest':\n return { x: -change.x, y: change.y };\n }\n return change;\n };\n ResizeTool.prototype.getPoints = function (x, y) {\n switch (this.corner) {\n case 'ResizeEast':\n return { x: x, y: 0 };\n case 'ResizeSouthEast':\n return { x: x, y: y };\n case 'ResizeSouth':\n return { x: 0, y: y };\n case 'ResizeNorth':\n return { x: 0, y: -y };\n case 'ResizeNorthEast':\n return { x: x, y: -y };\n case 'ResizeNorthWest':\n return { x: -x, y: -y };\n case 'ResizeWest':\n return { x: -x, y: 0 };\n case 'ResizeSouthWest':\n return { x: -x, y: y };\n }\n return { x: x, y: y };\n };\n /**\n * Updates the size with delta width and delta height using scaling.\n * Aspect ratio used to resize the width or height based on resizing the height or width.\n *\n * @param {number} deltaWidth - Specified the delta width.\n * @param {number} deltaHeight - Specified the delta height.\n * @param {string} corner - Specified the corner value.\n * @param {PointModel} startPoint - Specified the start point of the annotation.\n * @param {PointModel} endPoint - Specified the end point of the annotation.\n * @param {SelectorModel | PdfAnnotationBaseModel} source - Specified the annotation object.\n * @param {boolean} isCtrlKeyPressed - becomes true when ctrl Key is pressed.\n * @returns {boolean} - Returns true or false.\n */\n ResizeTool.prototype.scaleObjects = function (deltaWidth, deltaHeight, corner, startPoint, endPoint, source, isCtrlKeyPressed) {\n // eslint-disable-next-line\n var annotationSettings = this.commandHandler.annotationModule ? this.commandHandler.annotationModule.findAnnotationSettings(source) : {};\n var annotationMaxHeight = 0;\n var annotationMaxWidth = 0;\n var annotationMinHeight = 0;\n var annotationMinWidth = 0;\n var x = this.currentPosition.x - this.startPosition.x;\n var y = this.currentPosition.y - this.startPosition.y;\n x = x / this.commandHandler.viewerBase.getZoomFactor();\n y = y / this.commandHandler.viewerBase.getZoomFactor();\n // eslint-disable-next-line\n var annotationElement = source;\n // eslint-disable-next-line\n var size = this.getPoints(x, y);\n var width = annotationElement.bounds.width + size.x;\n var height = annotationElement.bounds.height + size.y;\n if (annotationSettings.minWidth || annotationSettings.maxWidth || annotationSettings.minHeight || annotationSettings.maxHeight) {\n annotationMaxHeight = annotationSettings.maxHeight ? annotationSettings.maxHeight : 2000;\n annotationMaxWidth = annotationSettings.maxWidth ? annotationSettings.maxWidth : 2000;\n annotationMinHeight = annotationSettings.minHeight ? annotationSettings.minHeight : 0;\n annotationMinWidth = annotationSettings.minWidth ? annotationSettings.minWidth : 0;\n }\n if (source instanceof Selector && source.annotations.length === 1 &&\n (source.annotations[0].shapeAnnotationType === 'Perimeter' || source.annotations[0].shapeAnnotationType === 'Radius' || source.shapeAnnotationType === 'Stamp')) {\n if (!(deltaHeight === 1 && deltaWidth === 1)) {\n deltaHeight = deltaWidth = Math.max(deltaHeight === 1 ? 0 : deltaHeight, deltaWidth === 1 ? 0 : deltaWidth);\n }\n else if (startPoint !== endPoint) {\n deltaHeight = deltaWidth = Math.max(deltaHeight, deltaWidth);\n }\n else {\n deltaHeight = deltaWidth = 0;\n }\n }\n else if (source.shapeAnnotationType === 'Image' || (source.shapeAnnotationType === 'HandWrittenSignature' || source.shapeAnnotationType === 'SignatureText' || source.shapeAnnotationType === 'SignatureImage')) {\n if (!(deltaHeight === 1 && deltaWidth === 1)) {\n if (isCtrlKeyPressed) {\n if (width >= annotationMaxWidth && height < annotationMaxHeight) {\n deltaHeight = Math.max(deltaHeight, deltaWidth);\n }\n if (height >= annotationMaxHeight && width < annotationMaxWidth) {\n deltaWidth = Math.max(deltaHeight, deltaWidth);\n }\n if (width < annotationMaxWidth && height < annotationMaxHeight) {\n deltaHeight = deltaWidth = Math.max(deltaHeight, deltaWidth);\n }\n }\n }\n if (!isCtrlKeyPressed) {\n deltaHeight = deltaWidth = Math.max(deltaHeight, deltaWidth);\n }\n }\n else {\n if (source.shapeAnnotationType === 'Perimeter' || source.shapeAnnotationType === 'Radius'\n || source.shapeAnnotationType === 'Stamp') {\n if (source.shapeAnnotationType === 'Stamp') {\n if (!annotationMaxHeight && !deltaHeight) {\n deltaHeight = Math.max(deltaHeight === 1 ? 0 : deltaHeight);\n }\n if (!annotationMaxWidth && !deltaWidth) {\n deltaWidth = Math.max(deltaWidth === 1 ? 0 : deltaWidth);\n }\n }\n else {\n if (!annotationMaxHeight || !annotationMaxWidth) {\n if (!(deltaHeight === 1 && deltaWidth === 1)) {\n deltaHeight = deltaWidth = Math.max(deltaHeight === 1 ? 0 : deltaHeight, deltaWidth === 1 ? 0 : deltaWidth);\n }\n }\n }\n }\n }\n this.blocked = this.commandHandler.scaleSelectedItems(deltaWidth, deltaHeight, this.getPivot(this.corner));\n return this.blocked;\n };\n return ResizeTool;\n}(ToolBase));\nexport { ResizeTool };\n/**\n * Draws a node that is defined by the user\n *\n * @hidden\n */\nvar NodeDrawingTool = /** @class */ (function (_super) {\n __extends(NodeDrawingTool, _super);\n function NodeDrawingTool(commandHandler, base, sourceObject) {\n var _this = _super.call(this, commandHandler, base) || this;\n _this.sourceObject = sourceObject;\n return _this;\n }\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {void}\n */\n NodeDrawingTool.prototype.mouseDown = function (args) {\n if (!isNaN(this.pdfViewerBase.activeElements.activePageID) && event.target.className != 'e-pv-page-container') {\n _super.prototype.mouseDown.call(this, args);\n this.inAction = true;\n var node = { bounds: { x: 100, y: 300, width: 100, height: 100 }, pageIndex: 0, strokeColor: 'red', thickness: 3 };\n node.id = randomId();\n this.sourceObject.pageIndex = node.pageIndex = this.pdfViewerBase.activeElements.activePageID || 0;\n this.sourceObject.enableShapeLabel = this.commandHandler.enableShapeLabel;\n this.pdfViewerBase.updateFreeTextProperties(this.sourceObject);\n this.isFormDesign = false;\n // eslint-disable-next-line\n var formFieldElement = document.getElementById('FormField_helper_html_element');\n if (formFieldElement) {\n formFieldElement.remove();\n }\n // eslint-disable-next-line\n this.commandHandler.drawingObject = this.drawingObject = this.commandHandler.add(this.sourceObject || node);\n if (this.drawingObject.formFieldAnnotationType === 'Textbox' || this.drawingObject.formFieldAnnotationType === 'SignatureField' || this.drawingObject.formFieldAnnotationType === 'InitialField' ||\n this.drawingObject.formFieldAnnotationType === 'Checkbox' || this.drawingObject.formFieldAnnotationType === 'ListBox' || this.drawingObject.formFieldAnnotationType === 'RadioButton' ||\n this.drawingObject.formFieldAnnotationType === 'DropdownList' || this.drawingObject.formFieldAnnotationType === 'PasswordField') {\n this.inAction = false;\n // eslint-disable-next-line\n this.drawingObject.pageNumber = this.pdfViewerBase.getActivePage(true);\n // eslint-disable-next-line\n var bounds = this.commandHandler.formDesignerModule.updateFormFieldInitialSize(this.drawingObject.wrapper.children[0], this.drawingObject.formFieldAnnotationType);\n var pageWidth = this.pdfViewerBase.pageContainer.firstElementChild.clientWidth - bounds.width;\n var pageHeight = this.pdfViewerBase.pageContainer.firstElementChild.clientHeight - bounds.height;\n // eslint-disable-next-line\n var left = this.pdfViewerBase.pageContainer.firstElementChild.offsetLeft;\n var offsetX = void 0;\n // eslint-disable-next-line\n if (this.currentPosition.y >= pageHeight && event.target && event.target.parentElement && event.target.parentElement.classList.contains('foreign-object')) {\n // eslint-disable-next-line\n var targetParentRect = event.path[3].getBoundingClientRect();\n // eslint-disable-next-line\n offsetX = event.clientX - targetParentRect.left;\n }\n else {\n offsetX = this.currentPosition.x - left;\n }\n // eslint-disable-next-line\n var rect = void 0;\n if (this.currentPosition.x >= pageWidth && this.currentPosition.y >= pageHeight) {\n // eslint-disable-next-line max-len\n rect = { x: pageWidth, y: pageHeight, width: this.drawingObject.wrapper.children[0].width, height: this.drawingObject.wrapper.children[0].height };\n }\n else if (this.currentPosition.x >= pageWidth) {\n // eslint-disable-next-line max-len\n rect = { x: pageWidth, y: this.currentPosition.y, width: this.drawingObject.wrapper.children[0].width, height: this.drawingObject.wrapper.children[0].height };\n }\n else if (this.currentPosition.y >= pageHeight) {\n // eslint-disable-next-line max-len\n rect = { x: offsetX, y: pageHeight, width: this.drawingObject.wrapper.children[0].width, height: this.drawingObject.wrapper.children[0].height };\n }\n else {\n // eslint-disable-next-line max-len\n rect = { x: this.currentPosition.x, y: this.currentPosition.y, width: this.drawingObject.wrapper.children[0].width, height: this.drawingObject.wrapper.children[0].height };\n }\n this.updateNodeDimension(this.drawingObject, rect);\n this.drawingObject.bounds.x = this.drawingObject.bounds.x - (this.drawingObject.bounds.width / 2);\n this.drawingObject.bounds.y = this.drawingObject.bounds.y - (this.drawingObject.bounds.height / 2);\n this.commandHandler.formFieldCollection.push(this.drawingObject);\n var drawingObject = this.drawingObject;\n // eslint-disable-next-line max-len\n var formField = {\n id: drawingObject.id, name: drawingObject.name, value: drawingObject.value,\n // eslint-disable-next-line max-len\n type: drawingObject.formFieldAnnotationType, isReadOnly: drawingObject.isReadonly, fontFamily: drawingObject.fontFamily,\n // eslint-disable-next-line max-len\n fontSize: drawingObject.fontSize, fontStyle: drawingObject.fontStyle, color: drawingObject.color, backgroundColor: drawingObject.backgroundColor,\n // eslint-disable-next-line max-len\n alignment: drawingObject.alignment, visibility: drawingObject.visibility, maxLength: drawingObject.maxLength, isRequired: drawingObject.isRequired,\n // eslint-disable-next-line max-len\n isPrint: drawingObject.isPrint, isSelected: drawingObject.isSelected, isChecked: drawingObject.isChecked, tooltip: drawingObject.tooltip, bounds: drawingObject.bounds, thickness: drawingObject.thickness, borderColor: drawingObject.borderColor,\n signatureIndicatorSettings: drawingObject.signatureIndicatorSettings, pageIndex: drawingObject.pageIndex\n };\n this.commandHandler.formFieldCollections.push(formField);\n // eslint-disable-next-line max-len\n this.commandHandler.formDesignerModule.drawHTMLContent(this.drawingObject.formFieldAnnotationType, this.drawingObject.wrapper.children[0], this.drawingObject, this.drawingObject.pageIndex, this.commandHandler);\n this.commandHandler.select([this.commandHandler.drawingObject.id], this.commandHandler.annotationSelectorSettings);\n if (this.commandHandler.annotation) {\n this.commandHandler.annotation.addAction(this.pdfViewerBase.getActivePage(true), null, this.drawingObject, 'Addition', '', this.drawingObject, this.drawingObject);\n }\n this.endAction();\n this.pdfViewerBase.tool = null;\n this.pdfViewerBase.action = 'Select';\n this.drawingObject = null;\n this.pdfViewerBase.isMouseDown = false;\n this.pdfViewerBase.pdfViewer.drawingObject = null;\n this.isFormDesign = true;\n }\n }\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {boolean} - Returns true or false.\n */\n NodeDrawingTool.prototype.mouseMove = function (args) {\n _super.prototype.mouseMove.call(this, args);\n if (this.inAction && Point.equals(this.currentPosition, this.prevPosition) === false) {\n this.dragging = true;\n var rect = Rect.toBounds([this.prevPosition, this.currentPosition]);\n this.updateNodeDimension(this.drawingObject, rect);\n if (this.drawingObject.shapeAnnotationType === 'Radius') {\n this.updateRadiusLinePosition(this.drawingObject.wrapper.children[1], this.drawingObject);\n }\n }\n return true;\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {void}\n */\n NodeDrawingTool.prototype.mouseUp = function (args) {\n if (this.drawingObject && this.dragging) {\n this.commandHandler.clearSelection(this.pdfViewerBase.activeElements.activePageID);\n this.commandHandler.select([this.drawingObject.id], this.commandHandler.annotationSelectorSettings);\n var drawnAnnotation = this.commandHandler.selectedItems.annotations[0];\n this.commandHandler.nodePropertyChange(drawnAnnotation, { bounds: { x: drawnAnnotation.wrapper.offsetX, y: drawnAnnotation.wrapper.offsetY } });\n this.commandHandler.annotation.updateCalibrateValues(this.drawingObject, true);\n if (this.commandHandler && !this.isFormDesign) {\n // eslint-disable-next-line\n this.commandHandler.annotation.addAction(this.pageIndex, null, this.drawingObject, 'Addition', '', this.drawingObject, this.drawingObject);\n }\n this.dragging = false;\n _super.prototype.mouseUp.call(this, args);\n this.inAction = false;\n }\n else {\n _super.prototype.mouseUp.call(this, args);\n }\n this.drawingObject = null;\n };\n /**\n * @private\n * @returns {void}\n */\n NodeDrawingTool.prototype.endAction = function () {\n _super.prototype.endAction.call(this);\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel} obj - Specified the annotation object.\n * @param {Rect} rect - Specified the annotation rect element.\n * @returns {void}\n */\n NodeDrawingTool.prototype.updateNodeDimension = function (obj, rect) {\n var zoom = this.commandHandler.viewerBase.getZoomFactor();\n obj.bounds.x = (rect.x / zoom) + rect.width / zoom;\n obj.bounds.y = (rect.y / zoom) + rect.height / zoom;\n obj.bounds.width = rect.width / zoom;\n obj.bounds.height = rect.height / zoom;\n // eslint-disable-next-line\n var annotationSettings = this.commandHandler.annotationModule ? this.commandHandler.annotationModule.findAnnotationSettings(obj) : {};\n var annotationMaxHeight = 0;\n var annotationMaxWidth = 0;\n if (annotationSettings.maxWidth || annotationSettings.maxHeight) {\n annotationMaxHeight = annotationSettings.maxHeight ? annotationSettings.maxHeight : 2000;\n annotationMaxWidth = annotationSettings.maxWidth ? annotationSettings.maxWidth : 2000;\n if (obj.bounds.width > annotationMaxWidth) {\n obj.bounds.width = annotationMaxWidth;\n }\n if (obj.bounds.height > annotationMaxHeight) {\n obj.bounds.height = annotationMaxHeight;\n }\n if (obj.bounds.height <= annotationMaxHeight && obj.bounds.width <= annotationMaxWidth) {\n this.commandHandler.nodePropertyChange(obj, { bounds: obj.bounds });\n }\n }\n else {\n this.commandHandler.nodePropertyChange(obj, { bounds: obj.bounds });\n }\n };\n /**\n * @private\n * @param {DrawingElement} obj - Specified the drawing element.\n * @param {PdfAnnotationBaseModel} node - Specified the annotation object.\n * @returns {void}\n */\n NodeDrawingTool.prototype.updateRadiusLinePosition = function (obj, node) {\n var trasPoint = { x: node.bounds.x + (node.bounds.width / 4), y: node.bounds.y };\n var center = { x: (node.bounds.x + (node.bounds.width / 2)), y: (node.bounds.y + (node.bounds.height / 2)) };\n var matrix = identityMatrix();\n rotateMatrix(matrix, node.rotateAngle, center.x, center.y);\n var rotatedPoint = transformPointByMatrix(matrix, trasPoint);\n var newPoint1 = { x: rotatedPoint.x, y: rotatedPoint.y };\n obj.offsetX = newPoint1.x;\n obj.offsetY = newPoint1.y;\n obj.width = node.bounds.width / 2;\n // eslint-disable-next-line\n var annotationSettings = this.commandHandler.annotationModule.findAnnotationSettings(node);\n var annotationMaxWidth = 0;\n if (annotationSettings.maxWidth) {\n annotationMaxWidth = annotationSettings.maxWidth ? annotationSettings.maxWidth : 2000;\n if (node.bounds.width > annotationMaxWidth) {\n node.bounds.width = annotationMaxWidth;\n obj.width = node.bounds.width / 2;\n }\n }\n this.commandHandler.renderDrawing(undefined, node.pageIndex);\n };\n return NodeDrawingTool;\n}(ToolBase));\nexport { NodeDrawingTool };\n/**\n * Draws a Polygon shape node dynamically using polygon Tool\n *\n * @hidden\n */\nvar PolygonDrawingTool = /** @class */ (function (_super) {\n __extends(PolygonDrawingTool, _super);\n function PolygonDrawingTool(commandHandler, base, action) {\n var _this = _super.call(this, commandHandler, base) || this;\n _this.action = action;\n return _this;\n }\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {void}\n */\n PolygonDrawingTool.prototype.mouseDown = function (args) {\n _super.prototype.mouseDown.call(this, args);\n this.inAction = true;\n if (!this.drawingObject) {\n this.startPoint = { x: this.startPosition.x, y: this.startPosition.y };\n var nodeAnnotElement = {\n bounds: { x: this.currentPosition.x, y: this.currentPosition.y, width: 5, height: 5 },\n // eslint-disable-next-line max-len\n vertexPoints: [{ x: this.startPoint.x / this.pdfViewerBase.getZoomFactor(), y: this.startPoint.y / this.pdfViewerBase.getZoomFactor() }, { x: this.currentPosition.x / this.pdfViewerBase.getZoomFactor(), y: this.currentPosition.y / this.pdfViewerBase.getZoomFactor() }],\n shapeAnnotationType: 'Line', fillColor: this.commandHandler.drawingObject.fillColor,\n strokeColor: this.commandHandler.drawingObject.strokeColor, pageIndex: this.pdfViewerBase.activeElements.activePageID,\n // eslint-disable-next-line max-len\n notes: this.commandHandler.drawingObject.notes, thickness: this.commandHandler.drawingObject.thickness, author: this.commandHandler.drawingObject.author,\n subject: this.commandHandler.drawingObject.subject, borderDashArray: this.commandHandler.drawingObject.borderDashArray,\n modifiedDate: this.commandHandler.drawingObject.modifiedDate, borderStyle: this.commandHandler.drawingObject.borderStyle,\n // eslint-disable-next-line max-len\n measureType: this.commandHandler.drawingObject.measureType, enableShapeLabel: this.commandHandler.enableShapeLabel, opacity: this.commandHandler.drawingObject.opacity\n };\n this.pdfViewerBase.updateFreeTextProperties(nodeAnnotElement);\n // eslint-disable-next-line\n this.drawingObject = this.commandHandler.add(nodeAnnotElement);\n }\n else {\n var pt = void 0;\n var obj = (this.drawingObject);\n pt = obj.vertexPoints[obj.vertexPoints.length - 1];\n pt = { x: pt.x, y: pt.y };\n var lastPoint = this.drawingObject.vertexPoints[this.drawingObject.vertexPoints.length - 1];\n if (!(lastPoint.x === pt.x && lastPoint.x === pt.y)) {\n this.drawingObject.vertexPoints.push(pt);\n }\n this.commandHandler.nodePropertyChange(obj, { vertexPoints: obj.vertexPoints });\n }\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {boolean} - Returns true or false.\n */\n PolygonDrawingTool.prototype.mouseMove = function (args) {\n _super.prototype.mouseMove.call(this, args);\n if (this.inAction && Point.equals(this.currentPosition, this.prevPosition) === false) {\n this.dragging = true;\n var obj = (this.drawingObject);\n if (this.drawingObject && this.currentPosition) {\n obj.vertexPoints[obj.vertexPoints.length - 1].x = this.currentPosition.x / this.pdfViewerBase.getZoomFactor();\n obj.vertexPoints[obj.vertexPoints.length - 1].y = this.currentPosition.y / this.pdfViewerBase.getZoomFactor();\n this.commandHandler.nodePropertyChange(obj, { vertexPoints: obj.vertexPoints });\n }\n if (obj.measureType === 'Perimeter') {\n updatePerimeterLabel(obj, obj.vertexPoints, this.commandHandler.annotation.measureAnnotationModule);\n }\n }\n return true;\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @param {boolean} isDoubleClineck - Specified the double click event or not.\n * @param {boolean} isMouseLeave - Specified the mouse leave event or not.\n * @returns {void}\n */\n PolygonDrawingTool.prototype.mouseUp = function (args, isDoubleClineck, isMouseLeave) {\n _super.prototype.mouseMove.call(this, args);\n // eslint-disable-next-line\n var currentSelector;\n if (args.source && args.annotationSelectorSettings !== null) {\n currentSelector = args.source.annotationSelectorSettings;\n }\n if (this.drawingObject) {\n // eslint-disable-next-line max-len\n var bounds = new Rect(this.drawingObject.vertexPoints[this.drawingObject.vertexPoints.length - 1].x - 20, this.drawingObject.vertexPoints[this.drawingObject.vertexPoints.length - 1].y - 20, 40, 40);\n var point = { x: this.drawingObject.vertexPoints[0].x, y: this.drawingObject.vertexPoints[0].y };\n if ((bounds.containsPoint(point) || isDoubleClineck) && this.dragging) {\n if (this.inAction) {\n this.inAction = false;\n if (this.drawingObject) {\n if (!isMouseLeave) {\n if (this.drawingObject.vertexPoints.length > 2) {\n this.drawingObject.vertexPoints.splice(this.drawingObject.vertexPoints.length - 1, 1);\n }\n }\n if (this.action === 'Polygon') {\n if (!isMouseLeave) {\n // eslint-disable-next-line max-len\n this.drawingObject.vertexPoints[this.drawingObject.vertexPoints.length - 1] = this.drawingObject.vertexPoints[0];\n }\n else {\n // eslint-disable-next-line max-len\n this.drawingObject.vertexPoints[this.drawingObject.vertexPoints.length] = this.drawingObject.vertexPoints[0];\n }\n this.commandHandler.nodePropertyChange(this.drawingObject, { vertexPoints: this.drawingObject.vertexPoints });\n var cobject = cloneObject(this.drawingObject);\n cobject.shapeAnnotationType = 'Polygon';\n cobject.bounds.width = cobject.wrapper.actualSize.width;\n cobject.bounds.height = cobject.wrapper.actualSize.height;\n cobject.bounds.x = this.drawingObject.wrapper.bounds.x;\n cobject.bounds.y = this.drawingObject.wrapper.bounds.y;\n this.commandHandler.add(cobject);\n this.commandHandler.remove(this.drawingObject);\n this.commandHandler.select([cobject.id], currentSelector);\n var drawingObject = this.commandHandler.selectedItems.annotations[0];\n if (drawingObject) {\n if (this.commandHandler.enableShapeAnnotation && (isNullOrUndefined(drawingObject.measureType) || drawingObject.measureType === '')) {\n // eslint-disable-next-line max-len\n this.commandHandler.annotation.shapeAnnotationModule.renderShapeAnnotations(drawingObject, drawingObject.pageIndex);\n }\n if (this.commandHandler.enableMeasureAnnotation && (drawingObject.measureType === 'Area' || drawingObject.measureType === 'Volume')) {\n if (drawingObject.measureType === 'Area') {\n // eslint-disable-next-line max-len\n drawingObject.notes = this.commandHandler.annotation.measureAnnotationModule.calculateArea(drawingObject.vertexPoints);\n // eslint-disable-next-line max-len\n this.commandHandler.annotation.stickyNotesAnnotationModule.addTextToComments(drawingObject.annotName, drawingObject.notes);\n }\n else if (drawingObject.measureType === 'Volume') {\n // eslint-disable-next-line max-len\n drawingObject.notes = this.commandHandler.annotation.measureAnnotationModule.calculateVolume(drawingObject.vertexPoints);\n // eslint-disable-next-line max-len\n this.commandHandler.annotation.stickyNotesAnnotationModule.addTextToComments(drawingObject.annotName, drawingObject.notes);\n }\n if (drawingObject.enableShapeLabel) {\n drawingObject.labelContent = drawingObject.notes;\n // eslint-disable-next-line max-len\n this.commandHandler.nodePropertyChange(drawingObject, { vertexPoints: drawingObject.vertexPoints, notes: drawingObject.notes });\n }\n // eslint-disable-next-line max-len\n this.commandHandler.annotation.measureAnnotationModule.renderMeasureShapeAnnotations(drawingObject, drawingObject.pageIndex);\n }\n }\n }\n else {\n if (!isMouseLeave) {\n if (isDoubleClineck) {\n this.drawingObject.vertexPoints.splice(this.drawingObject.vertexPoints.length - 1, 1);\n }\n }\n this.commandHandler.nodePropertyChange(this.drawingObject, {\n // eslint-disable-next-line max-len\n vertexPoints: this.drawingObject.vertexPoints, sourceDecoraterShapes: this.commandHandler.drawingObject.sourceDecoraterShapes,\n taregetDecoraterShapes: this.commandHandler.drawingObject.taregetDecoraterShapes\n });\n this.commandHandler.select([this.drawingObject.id], currentSelector);\n if (this.commandHandler.enableMeasureAnnotation && this.drawingObject.measureType === 'Perimeter') {\n this.commandHandler.renderDrawing(null, this.drawingObject.pageIndex);\n // eslint-disable-next-line max-len\n this.drawingObject.notes = this.commandHandler.annotation.measureAnnotationModule.calculatePerimeter(this.drawingObject);\n if (this.drawingObject.enableShapeLabel) {\n this.drawingObject.labelContent = this.drawingObject.notes;\n // eslint-disable-next-line max-len\n this.commandHandler.nodePropertyChange(this.drawingObject, { vertexPoints: this.drawingObject.vertexPoints, notes: this.drawingObject.notes });\n }\n // eslint-disable-next-line max-len\n this.commandHandler.annotation.stickyNotesAnnotationModule.addTextToComments(this.drawingObject.annotName, this.drawingObject.notes);\n // eslint-disable-next-line max-len\n this.commandHandler.annotation.measureAnnotationModule.renderMeasureShapeAnnotations(this.drawingObject, this.drawingObject.pageIndex);\n }\n }\n var annotationObject = this.commandHandler.selectedItems.annotations[0];\n // eslint-disable-next-line\n this.commandHandler.annotation.addAction(this.pageIndex, null, annotationObject, 'Addition', '', annotationObject, annotationObject);\n this.drawingObject = null;\n }\n }\n this.endAction();\n }\n else if (this.inAction && !this.dragging) {\n this.commandHandler.remove(this.drawingObject);\n }\n }\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {void}\n */\n PolygonDrawingTool.prototype.mouseLeave = function (args) {\n this.mouseUp(args, true, true);\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {void}\n */\n PolygonDrawingTool.prototype.mouseWheel = function (args) {\n _super.prototype.mouseWheel.call(this, args);\n this.mouseMove(args);\n };\n /**\n * @private\n * @returns {void}\n */\n PolygonDrawingTool.prototype.endAction = function () {\n this.inAction = false;\n this.drawingObject = null;\n this.commandHandler.tool = '';\n };\n return PolygonDrawingTool;\n}(ToolBase));\nexport { PolygonDrawingTool };\n/**\n * Helps to edit the selected connectors\n *\n * @hidden\n */\nvar LineTool = /** @class */ (function (_super) {\n __extends(LineTool, _super);\n function LineTool(commandHandler, base, endPoint, drawingObject) {\n var _this = _super.call(this, commandHandler, base, true) || this;\n _this.endPoint = endPoint;\n _this.drawingObject = drawingObject;\n return _this;\n }\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {void}\n */\n LineTool.prototype.mouseDown = function (args) {\n this.inAction = true;\n this.undoElement = undefined;\n _super.prototype.mouseDown.call(this, args);\n var oldPointValue;\n var connectorsShape;\n if (args.source && args.source.annotations) {\n oldPointValue = { x: this.prevPosition.x, y: this.prevPosition.y };\n connectorsShape = this.drawingObject;\n }\n this.initialPosition = args.position;\n this.prevSource = this.drawingObject;\n this.currentPosition = args.position;\n if (!this.drawingObject) {\n var measureModule = this.commandHandler.annotation.measureAnnotationModule;\n var annotationNode = {\n // eslint-disable-next-line max-len\n vertexPoints: [{ x: this.startPosition.x / this.pdfViewerBase.getZoomFactor(), y: this.startPosition.y / this.pdfViewerBase.getZoomFactor() }, { x: this.currentPosition.x / this.pdfViewerBase.getZoomFactor(), y: this.currentPosition.y / this.pdfViewerBase.getZoomFactor() }],\n bounds: { x: this.currentPosition.x, y: this.currentPosition.y, width: 5, height: 5 },\n sourceDecoraterShapes: this.commandHandler.drawingObject.sourceDecoraterShapes,\n taregetDecoraterShapes: this.commandHandler.drawingObject.taregetDecoraterShapes, measureType: 'Distance',\n // eslint-disable-next-line max-len\n fillColor: this.commandHandler.drawingObject.fillColor, notes: this.commandHandler.drawingObject.notes, strokeColor: this.commandHandler.drawingObject.strokeColor,\n // eslint-disable-next-line max-len\n opacity: this.commandHandler.drawingObject.opacity, thickness: this.commandHandler.drawingObject.thickness, borderDashArray: this.commandHandler.drawingObject.borderDashArray,\n shapeAnnotationType: 'Distance', pageIndex: this.pdfViewerBase.activeElements.activePageID,\n author: this.commandHandler.drawingObject.author, subject: this.commandHandler.drawingObject.subject,\n enableShapeLabel: this.commandHandler.enableShapeLabel, leaderHeight: measureModule.leaderLength\n };\n this.pdfViewerBase.updateFreeTextProperties(annotationNode);\n // eslint-disable-next-line\n this.drawingObject = this.commandHandler.add(annotationNode);\n }\n else if (!this.dragging) {\n var nodeAnnot = {\n bounds: { x: this.currentPosition.x, y: this.currentPosition.y, width: 5, height: 5 },\n // eslint-disable-next-line max-len\n vertexPoints: [{ x: this.startPosition.x / this.pdfViewerBase.getZoomFactor(), y: this.startPosition.y / this.pdfViewerBase.getZoomFactor() }, { x: this.currentPosition.x / this.pdfViewerBase.getZoomFactor(), y: this.currentPosition.y / this.pdfViewerBase.getZoomFactor() }],\n // eslint-disable-next-line max-len\n shapeAnnotationType: this.drawingObject.shapeAnnotationType, sourceDecoraterShapes: this.drawingObject.sourceDecoraterShapes,\n taregetDecoraterShapes: this.drawingObject.taregetDecoraterShapes, fillColor: this.drawingObject.fillColor,\n strokeColor: this.drawingObject.strokeColor, pageIndex: this.pdfViewerBase.activeElements.activePageID,\n // eslint-disable-next-line max-len\n opacity: this.drawingObject.opacity || 1, borderDashArray: this.drawingObject.borderDashArray, thickness: this.drawingObject.thickness,\n modifiedDate: this.drawingObject.modifiedDate, author: this.drawingObject.author, subject: this.drawingObject.subject,\n lineHeadEnd: this.drawingObject.lineHeadEnd, lineHeadStart: this.drawingObject.lineHeadStart,\n measureType: this.commandHandler.drawingObject.measureType, enableShapeLabel: this.commandHandler.enableShapeLabel\n };\n this.pdfViewerBase.updateFreeTextProperties(nodeAnnot);\n // eslint-disable-next-line\n this.drawingObject = this.commandHandler.add(nodeAnnot);\n }\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {void}\n */\n LineTool.prototype.mouseUp = function (args) {\n if (this.dragging) {\n _super.prototype.mouseMove.call(this, args);\n if (this.commandHandler) {\n // eslint-disable-next-line\n var currentSelector = void 0;\n if (args.source && args.annotationSelectorSettings !== null) {\n currentSelector = args.source.annotationSelectorSettings;\n }\n else {\n currentSelector = '';\n }\n // eslint-disable-next-line\n var node = this.drawingObject;\n this.commandHandler.nodePropertyChange(node, { vertexPoints: node.vertexPoints, leaderHeight: node.leaderHeight });\n this.commandHandler.clearSelection(this.pdfViewerBase.activeElements.activePageID);\n this.commandHandler.select([node.id], currentSelector);\n this.commandHandler.renderSelector(this.pdfViewerBase.activeElements.activePageID, currentSelector);\n }\n if (this.endPoint && this.endPoint.indexOf('ConnectorSegmentPoint') > -1 && this.dragging) {\n this.commandHandler.annotation.updateCalibrateValues(this.drawingObject);\n // eslint-disable-next-line\n this.commandHandler.annotation.addAction(this.pageIndex, null, this.drawingObject, 'Addition', '', this.drawingObject, this.drawingObject);\n this.drawingObject = null;\n this.dragging = false;\n _super.prototype.mouseUp.call(this, args);\n }\n if (this.drawingObject) {\n this.endPoint = 'ConnectorSegmentPoint_1';\n }\n }\n else {\n if (this.drawingObject) {\n this.commandHandler.remove(this.drawingObject);\n }\n }\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {boolean} - Returns true or false.\n */\n LineTool.prototype.mouseMove = function (args) {\n _super.prototype.mouseMove.call(this, args);\n if (this.inAction && Point.equals(this.currentPosition, this.prevPosition) === false) {\n this.currentPosition = args.position;\n this.dragging = true;\n if (this.currentPosition && this.prevPosition) {\n var diffX = this.currentPosition.x - this.prevPosition.x;\n var diffY = this.currentPosition.y - this.prevPosition.y;\n // eslint-disable-next-line\n var currentSelector = void 0;\n if (args.source && args.annotationSelectorSettings !== null) {\n currentSelector = args.source.annotationSelectorSettings;\n }\n else {\n currentSelector = '';\n }\n // eslint-disable-next-line max-len\n if (this.inAction && this.commandHandler && this.drawingObject && this.endPoint !== undefined && diffX !== 0 || diffY !== 0) {\n // eslint-disable-next-line max-len\n this.blocked = !this.commandHandler.dragConnectorEnds(this.endPoint, this.drawingObject, this.currentPosition, this.selectedSegment, args.target, null, currentSelector);\n this.commandHandler.renderSelector(this.pdfViewerBase.activeElements.activePageID, currentSelector);\n }\n }\n this.prevPosition = this.currentPosition;\n }\n return !this.blocked;\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {void}\n */\n LineTool.prototype.mouseLeave = function (args) {\n this.mouseUp(args);\n };\n /**\n * @private\n * @returns {void}\n */\n LineTool.prototype.endAction = function () {\n _super.prototype.endAction.call(this);\n this.prevPosition = null;\n this.endPoint = null;\n };\n return LineTool;\n}(ToolBase));\nexport { LineTool };\n/**\n * Rotates the selected objects\n *\n * @hidden\n */\nvar RotateTool = /** @class */ (function (_super) {\n __extends(RotateTool, _super);\n function RotateTool(commandHandler, base) {\n return _super.call(this, commandHandler, base, true) || this;\n }\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {void}\n */\n RotateTool.prototype.mouseDown = function (args) {\n var nodeMouseDown = cloneObject(args.source);\n this.undoElement = {\n bounds: {\n x: nodeMouseDown.wrapper.offsetX, y: nodeMouseDown.wrapper.offsetY,\n width: nodeMouseDown.wrapper.actualSize.width, height: nodeMouseDown.wrapper.actualSize.height\n }, rotateAngle: nodeMouseDown.rotateAngle\n // eslint-disable-next-line\n };\n _super.prototype.mouseDown.call(this, args);\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {void}\n */\n RotateTool.prototype.mouseUp = function (args) {\n var object = args.source;\n // eslint-disable-next-line\n var newShapeObject;\n if (this.undoElement.rotateAngle !== object.wrapper.rotateAngle) {\n // eslint-disable-next-line\n var currentSelector = args.source.annotations[0].annotationSelectorSettings;\n this.commandHandler.renderSelector(this.pdfViewerBase.activeElements.activePageID, currentSelector);\n newShapeObject = {\n bounds: {\n x: args.source.wrapper.offsetX, y: args.source.wrapper.offsetY,\n width: args.source.wrapper.actualSize.width, height: args.source.wrapper.actualSize.height\n }, rotateAngle: args.source.wrapper.rotateAngle\n };\n }\n // eslint-disable-next-line\n this.commandHandler.annotation.addAction(this.pageIndex, null, args.source, 'Rotate', '', this.undoElement, newShapeObject);\n this.commandHandler.annotation.stampAnnotationModule.updateSessionStorage(args.source, null, 'Rotate');\n this.commandHandler.annotation.stickyNotesAnnotationModule.updateStickyNotes(args.source, null);\n _super.prototype.mouseUp.call(this, args);\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {boolean} - Returns true or false.\n */\n RotateTool.prototype.mouseMove = function (args) {\n _super.prototype.mouseMove.call(this, args);\n var object = args.source;\n // eslint-disable-next-line\n var currentSelector = args.source.annotations[0].annotationSelectorSettings;\n this.currentPosition = args.position;\n if (object.wrapper) {\n var refPoint = { x: object.wrapper.offsetX, y: object.wrapper.offsetY };\n var angle = Point.findAngle(refPoint, this.currentPosition) + 90;\n angle = (angle + 360) % 360;\n this.blocked = !(this.commandHandler.rotate(angle - object.wrapper.rotateAngle, currentSelector));\n }\n return !this.blocked;\n };\n RotateTool.prototype.getTooltipContent = function (node) {\n return Math.round((node.rotateAngle % 360)).toString() + '\\xB0';\n };\n /**\n * @private\n * @param {MouseEventArgs} args - Specified the mouse event arguments.\n * @returns {void}\n */\n RotateTool.prototype.mouseLeave = function (args) {\n this.mouseUp(args);\n };\n /**\n * @private\n * @returns {void}\n */\n RotateTool.prototype.endAction = function () {\n _super.prototype.endAction.call(this);\n };\n return RotateTool;\n}(ToolBase));\nexport { RotateTool };\n","import { Size } from './../primitives/size';\nimport { pathSegmentCollection, getRectanglePath, processPathData } from './../utility/path-util';\n// import { overFlow } from './../utility/base-util';\nimport { createHtmlElement } from './../utility/dom-util';\n/**\n * Canvas Renderer\n */\n/** @private */\nvar CanvasRenderer = /** @class */ (function () {\n function CanvasRenderer() {\n }\n /** @private */\n CanvasRenderer.getContext = function (canvas) {\n return canvas.getContext('2d');\n };\n CanvasRenderer.prototype.setStyle = function (canvas, style) {\n var ctx = CanvasRenderer.getContext(canvas);\n if (style.fill === 'none') {\n style.fill = 'transparent';\n }\n if (style.stroke === 'none') {\n style.stroke = 'transparent';\n }\n ctx.strokeStyle = style.stroke;\n ctx.lineWidth = style.strokeWidth;\n if (style.strokeWidth === 0) {\n ctx.strokeStyle = 'transparent';\n }\n ctx.globalAlpha = style.opacity;\n var dashArray = [];\n if (style.dashArray) {\n dashArray = this.parseDashArray(style.dashArray);\n }\n ctx.setLineDash(dashArray);\n ctx.fillStyle = style.fill;\n };\n CanvasRenderer.prototype.rotateContext = function (canvas, angle, x, y) {\n var ctx = CanvasRenderer.getContext(canvas);\n ctx.translate(x, y);\n ctx.rotate(angle * Math.PI / 180);\n ctx.translate(-x, -y);\n };\n CanvasRenderer.prototype.setFontStyle = function (canvas, text) {\n var ctx = CanvasRenderer.getContext(canvas);\n var font = '';\n if (text.italic) {\n font += 'italic ';\n }\n if (text.bold) {\n font += 'bold ';\n }\n font += (text.fontSize) + 'px ';\n font += text.fontFamily;\n ctx.font = font;\n };\n /** @private */\n CanvasRenderer.prototype.parseDashArray = function (dashArray) {\n var dashes = [];\n var separator = dashArray.indexOf(' ') !== -1 ? ' ' : ',';\n var splittedDashes = dashArray.split(separator);\n for (var _i = 0, splittedDashes_1 = splittedDashes; _i < splittedDashes_1.length; _i++) {\n var i = splittedDashes_1[_i];\n dashes.push(Number(i));\n }\n return dashes;\n };\n //Rendering Part\n /** @private */\n CanvasRenderer.prototype.drawRectangle = function (canvas, options) {\n if (options.visible === true) {\n if (options.cornerRadius) {\n options.data = getRectanglePath(options.cornerRadius, options.height, options.width);\n this.drawPath(canvas, options);\n }\n else {\n var ctx = CanvasRenderer.getContext(canvas);\n ctx.save();\n ctx.beginPath();\n var cornerRadius = options.cornerRadius;\n var pivotX = options.x + options.width * options.pivotX;\n var pivotY = options.y + options.height * options.pivotY;\n this.rotateContext(canvas, options.angle, pivotX, pivotY);\n this.setStyle(canvas, options);\n ctx.rect(options.x, options.y, options.width, options.height);\n ctx.fillRect(options.x, options.y, options.width, options.height);\n ctx.fill();\n ctx.stroke();\n ctx.closePath();\n ctx.restore();\n }\n }\n };\n /** @private */\n CanvasRenderer.prototype.drawPath = function (canvas, options) {\n var collection = [];\n collection = processPathData(options.data);\n collection = pathSegmentCollection(collection);\n var ctx = CanvasRenderer.getContext(canvas);\n ctx.save();\n ctx.beginPath();\n var pivotY = options.y + options.height * options.pivotY;\n var pivotX = options.x + options.width * options.pivotX;\n this.rotateContext(canvas, options.angle, pivotX, pivotY);\n this.setStyle(canvas, options);\n ctx.translate(options.x, options.y);\n this.renderPath(canvas, options, collection);\n ctx.fill();\n ctx.translate(-options.x, -options.y);\n ctx.stroke();\n ctx.restore();\n };\n /** @private */\n CanvasRenderer.prototype.renderPath = function (canvas, options, collection) {\n if (options.visible === true) {\n var ctx = CanvasRenderer.getContext(canvas);\n var x0 = void 0;\n var y0 = void 0;\n var x1 = void 0;\n var y1 = void 0;\n var x2 = void 0;\n var y2 = void 0;\n var x = void 0;\n var y = void 0;\n var length_1;\n var i = void 0;\n var newSeg = void 0;\n var segs = collection;\n for (x = 0, y = 0, i = 0, length_1 = segs.length; i < length_1; ++i) {\n var obj = segs[i];\n var seg = obj;\n var char = seg.command;\n if ('x1' in seg) {\n x1 = seg.x1;\n }\n if ('x2' in seg) {\n x2 = seg.x2;\n }\n if ('y1' in seg) {\n y1 = seg.y1;\n }\n if ('y2' in seg) {\n y2 = seg.y2;\n }\n if ('x' in seg) {\n x = seg.x;\n }\n if ('y' in seg) {\n y = seg.y;\n }\n switch (char) {\n case 'M':\n ctx.moveTo(x, y);\n seg.x = x;\n seg.y = y;\n break;\n case 'L':\n ctx.lineTo(x, y);\n seg.x = x;\n seg.y = y;\n break;\n case 'C':\n ctx.bezierCurveTo(x1, y1, x2, y2, x, y);\n seg.x = x;\n seg.y = y;\n seg.x1 = x1;\n seg.y1 = y1;\n seg.x2 = x2;\n seg.y2 = y2;\n break;\n case 'Q':\n ctx.quadraticCurveTo(x1, y1, x, y);\n seg.x = x;\n seg.y = y;\n seg.x1 = x1;\n seg.y1 = y1;\n break;\n case 'A':\n var curr = { x: x0, y: y0 };\n var rx = seg.r1;\n var ry = seg.r2;\n var xAxisRotation = seg.angle * (Math.PI / 180.0);\n var largeArc = seg.largeArc;\n var sweep = seg.sweep;\n var cp = { x: x, y: y };\n var currp = {\n x: Math.cos(xAxisRotation) * (curr.x - cp.x) / 2.0 + Math.sin(xAxisRotation) * (curr.y - cp.y) / 2.0,\n y: -Math.sin(xAxisRotation) * (curr.x - cp.x) / 2.0 + Math.cos(xAxisRotation) * (curr.y - cp.y) / 2.0\n };\n var l = Math.pow(currp.x, 2) / Math.pow(rx, 2) + Math.pow(currp.y, 2) / Math.pow(ry, 2);\n if (l > 1) {\n rx *= Math.sqrt(l);\n ry *= Math.sqrt(l);\n }\n var k = (Math.pow(ry, 2) * Math.pow(currp.x, 2));\n var s = (largeArc === sweep ? -1 : 1) * Math.sqrt(((Math.pow(rx, 2) * Math.pow(ry, 2)) - (Math.pow(rx, 2) * Math.pow(currp.y, 2)) - k) /\n (Math.pow(rx, 2) * Math.pow(currp.y, 2) + Math.pow(ry, 2) * Math.pow(currp.x, 2)));\n if (isNaN(s)) {\n s = 0;\n }\n var cpp = { x: s * rx * currp.y / ry, y: s * -ry * currp.x / rx };\n var centp = {\n x: (curr.x + cp.x) / 2.0 + Math.cos(xAxisRotation) * cpp.x - Math.sin(xAxisRotation) * cpp.y,\n y: (curr.y + cp.y) / 2.0 + Math.sin(xAxisRotation) * cpp.x + Math.cos(xAxisRotation) * cpp.y\n };\n var a1 = this.a([1, 0], [(currp.x - cpp.x) / rx, (currp.y - cpp.y) / ry]);\n var u = [(currp.x - cpp.x) / rx, (currp.y - cpp.y) / ry];\n var v = [(-currp.x - cpp.x) / rx, (-currp.y - cpp.y) / ry];\n var ad = this.a(u, v);\n if (this.r(u, v) <= -1) {\n ad = Math.PI;\n }\n if (this.r(u, v) >= 1) {\n ad = 0;\n }\n var dir = !sweep ? -1.0 : 1.0;\n var ah = a1 + dir * (ad / 2.0);\n var halfWay = {\n x: centp.x + rx * Math.cos(ah),\n y: centp.y + ry * Math.sin(ah)\n };\n seg.centp = centp;\n seg.xAxisRotation = xAxisRotation;\n seg.rx = rx;\n seg.ry = ry;\n seg.a1 = a1;\n seg.ad = ad;\n seg.sweep = sweep;\n if (ctx != null) {\n var ra = rx > ry ? rx : ry;\n var sx = rx > ry ? 1 : rx / ry;\n var sy = rx > ry ? ry / rx : 1;\n ctx.save();\n ctx.translate(centp.x, centp.y);\n ctx.rotate(xAxisRotation);\n ctx.scale(sx, sy);\n ctx.arc(0, 0, ra, a1, a1 + ad, !sweep);\n ctx.scale(1 / sx, 1 / sy);\n ctx.rotate(-xAxisRotation);\n ctx.translate(-centp.x, -centp.y);\n ctx.restore();\n }\n break;\n case 'Z':\n case 'z':\n ctx.closePath();\n x = x0;\n y = y0;\n break;\n }\n x0 = x;\n y0 = y;\n }\n }\n };\n /** @private */\n CanvasRenderer.prototype.drawText = function (canvas, options) {\n if (options.content && options.visible === true) {\n var ctx = CanvasRenderer.getContext(canvas);\n ctx.save();\n this.setStyle(canvas, options);\n var pivotX = options.x + options.width * options.pivotX;\n var pivotY = options.y + options.height * options.pivotY;\n this.rotateContext(canvas, options.angle, pivotX, pivotY);\n this.setFontStyle(canvas, options);\n var i = 0;\n var childNodes = [];\n childNodes = options.childNodes;\n var wrapBounds = options.wrapBounds;\n ctx.fillStyle = options.color;\n if (wrapBounds) {\n var position = this.labelAlign(options, wrapBounds, childNodes);\n for (i = 0; i < childNodes.length; i++) {\n var child = childNodes[i];\n var offsetX = position.x + child.x - wrapBounds.x;\n var offsetY = position.y + child.dy * i + ((options.fontSize) * 0.8);\n // if (wrapBounds.width > options.width && options.textOverflow !== 'Wrap') {\n // child.text = overFlow(child.text, options);\n // }\n ctx.fillText(child.text, offsetX, offsetY);\n if (options.textDecoration === 'Underline'\n || options.textDecoration === 'Overline'\n || options.textDecoration === 'LineThrough') {\n var startPointX = offsetX;\n var startPointY = void 0;\n var textlength = ctx.measureText(child.text).width;\n var endPointX = offsetX + textlength;\n var endPointY = void 0;\n switch (options.textDecoration) {\n case 'Underline':\n startPointY = offsetY + 2;\n endPointY = offsetY + 2;\n break;\n case 'Overline':\n startPointY = (position.y + child.dy * i);\n endPointY = (position.y + child.dy * i);\n break;\n case 'LineThrough':\n startPointY = ((offsetY + position.y + child.dy * i) / 2) + 2;\n endPointY = ((offsetY + position.y + child.dy * i) / 2) + 2;\n }\n ctx.beginPath();\n ctx.moveTo(startPointX, startPointY);\n ctx.lineTo(endPointX, endPointY);\n ctx.strokeStyle = options.color;\n ctx.lineWidth = options.fontSize * .08;\n ctx.globalAlpha = options.opacity;\n ctx.stroke();\n }\n }\n }\n ctx.restore();\n }\n };\n //end region\n // vector magnitude\n CanvasRenderer.prototype.m = function (v) { return Math.sqrt(Math.pow(v[0], 2) + Math.pow(v[1], 2)); };\n // ratio between two vectors\n CanvasRenderer.prototype.r = function (u, v) { return (u[0] * v[0] + u[1] * v[1]) / (this.m(u) * this.m(v)); };\n // angle between two vectors\n CanvasRenderer.prototype.a = function (u, v) { return (u[0] * v[1] < u[1] * v[0] ? -1 : 1) * Math.acos(this.r(u, v)); };\n CanvasRenderer.prototype.getMeetOffset = function (arg, res, dest) {\n var max = Math.max(res, dest);\n var min = Math.min(res, dest);\n switch (arg) {\n case 'min': return 0;\n case 'mid': return (max - min) / 2;\n case 'max': return max - min;\n default: return 0;\n }\n };\n CanvasRenderer.prototype.getSliceOffset = function (arg, res, dest, src) {\n switch (arg) {\n case 'min': return 0;\n case 'mid': return (res - dest) / 2 * src / res;\n case 'max': return (res - dest) * src / res;\n default: return 0;\n }\n };\n CanvasRenderer.prototype.image = function (ctx, image, x, y, width, height, alignOptions) {\n ctx.beginPath();\n var srcWidth = image.width;\n var srcHeight = image.height;\n var destinationW = width;\n var destinationH = height;\n var resultWidth = 0;\n var resultHeight = 0;\n ctx.globalAlpha = alignOptions.opacity;\n if (alignOptions && alignOptions.alignment !== 'None') {\n var xalign = alignOptions.alignment.toLowerCase().substr(1, 3);\n var yalign = alignOptions.alignment.toLowerCase().substr(5, 3);\n if (alignOptions.scale === 'Slice') {\n var a = function () {\n resultWidth = destinationW;\n resultHeight = srcHeight * destinationW / srcWidth;\n };\n var b = function () {\n resultWidth = srcWidth * destinationH / srcHeight;\n resultHeight = destinationH;\n };\n if (destinationW > destinationH) {\n a();\n if (destinationH > resultHeight) {\n b();\n }\n }\n else if (destinationW === destinationH) {\n if (srcWidth > srcHeight) {\n b();\n }\n else {\n a();\n }\n }\n else {\n b();\n if (destinationW > resultWidth) {\n a();\n }\n }\n var x1 = this.getSliceOffset(xalign, resultWidth, destinationW, srcWidth);\n var y1 = this.getSliceOffset(yalign, resultHeight, destinationH, srcHeight);\n var sWidth = srcWidth - x1;\n var sHeight = srcHeight - y1;\n var dWidth = resultWidth - (x1 * (resultWidth / srcWidth));\n var dHeight = resultHeight - (y1 * (resultHeight / srcHeight));\n var canvas1 = createHtmlElement('canvas', { 'width': width.toString(), 'height': height.toString() });\n var ctx1 = canvas1.getContext('2d');\n ctx1.drawImage(image, x1, y1, sWidth, sHeight, 0, 0, dWidth, dHeight);\n ctx.drawImage(canvas1, x, y, width, height);\n }\n else if (alignOptions.scale === 'Meet') {\n var srcRatio = (srcHeight / srcWidth);\n var destRatio = (destinationH / destinationW);\n resultWidth = destRatio > srcRatio ? destinationW : destinationH / srcRatio;\n resultHeight = destRatio > srcRatio ? destinationW * srcRatio : destinationH;\n x += this.getMeetOffset(xalign, resultWidth, destinationW);\n y += this.getMeetOffset(yalign, resultHeight, destinationH);\n ctx.drawImage(image, 0, 0, srcWidth, srcHeight, x, y, resultWidth, resultHeight);\n }\n else {\n ctx.drawImage(image, x, y, width, height);\n }\n }\n else {\n if (image.complete) {\n ctx.drawImage(image, x, y, width, height);\n }\n else {\n var transform_1 = ctx.getTransform();\n image.onload = function () {\n ctx.setTransform(transform_1.a, transform_1.b, transform_1.c, transform_1.d, transform_1.e, transform_1.f);\n ctx.drawImage(image, x, y, width, height);\n };\n }\n }\n ctx.closePath();\n };\n // text utility\n CanvasRenderer.prototype.loadImage = function (ctx, obj, canvas, pivotX, pivotY) {\n this.rotateContext(canvas, obj.angle, pivotX, pivotY);\n var image;\n if (window.customStampCollection && window.customStampCollection.get(obj.printID)) {\n image = window.customStampCollection.get(obj.printID);\n }\n else {\n image = new Image();\n image.src = obj.source;\n }\n this.image(ctx, image, obj.x, obj.y, obj.width, obj.height, obj);\n };\n /** @private */\n CanvasRenderer.prototype.drawImage = function (canvas, obj, parentSvg, fromPalette) {\n var _this = this;\n if (obj.visible) {\n var ctx_1 = CanvasRenderer.getContext(canvas);\n ctx_1.save();\n var pivotX_1 = obj.x + obj.width * obj.pivotX;\n var pivotY_1 = obj.y + obj.height * obj.pivotY;\n var imageObj = new Image();\n imageObj.src = obj.source;\n var id = ctx_1.canvas.id.split('_');\n var value = id[id.length - 1] === ('diagram' || 'diagramLayer') ? true : false;\n /**\n * Since Clipping portion for node with slice option is not calculated properly\n * if (obj.sourceX !== undefined && obj.sourceY !== undefined && obj.sourceWidth !== undefined\n * && obj.sourceHeight !== undefined) {\n * ctx.drawImage(imageObj, obj.sourceX, obj.sourceY, obj.sourceWidth, obj.sourceHeight, obj.x, obj.y, obj.width, obj.height);\n * } else {\n * ctx.drawImage(imageObj, obj.x, obj.y, obj.width, obj.height);\n * }\n */\n if (!fromPalette) {\n this.loadImage(ctx_1, obj, canvas, pivotX_1, pivotY_1);\n }\n else {\n imageObj.onload = function () {\n _this.loadImage(ctx_1, obj, canvas, pivotX_1, pivotY_1);\n };\n }\n ctx_1.restore();\n }\n };\n /** @private */\n CanvasRenderer.prototype.labelAlign = function (text, wrapBounds, childNodes) {\n var bounds = new Size(wrapBounds.width, childNodes.length * (text.fontSize * 1.2));\n var position = { x: 0, y: 0 };\n var labelX = text.x;\n var labelY = text.y;\n var offsetx = text.width * 0.5;\n var offsety = text.height * 0.5;\n var pointx = offsetx;\n var pointy = offsety;\n if (text.textAlign === 'left') {\n pointx = 0;\n }\n else if (text.textAlign === 'center') {\n if (wrapBounds.width > text.width && (text.textOverflow === 'Ellipsis' || text.textOverflow === 'Clip')) {\n pointx = 0;\n }\n else {\n pointx = text.width * 0.5;\n }\n }\n else if (text.textAlign === 'right') {\n pointx = (text.width * 1);\n }\n position.x = labelX + pointx + (wrapBounds ? wrapBounds.x : 0);\n position.y = labelY + pointy - bounds.height / 2;\n return position;\n };\n return CanvasRenderer;\n}());\nexport { CanvasRenderer };\nexport function refreshDiagramElements(canvas, drawingObjects, renderer) {\n for (var i = 0; i < drawingObjects.length; i++) {\n renderer.renderElement(drawingObjects[i], canvas, undefined);\n }\n}\n","import { Size } from './../primitives/size';\nimport { CanvasRenderer } from './../rendering/canvas-renderer';\nimport { processPathData, pathSegmentCollection } from '../utility/path-util';\n/**\n * SVG Renderer\n */\n/** @private */\nvar SvgRenderer = /** @class */ (function () {\n function SvgRenderer() {\n }\n /** @private */\n SvgRenderer.prototype.parseDashArray = function (dashArray) {\n var dashes = [];\n return dashes;\n };\n /** @private */\n SvgRenderer.prototype.drawRectangle = function (svg, options, diagramId, onlyRect, isSelector, parentSvg, ariaLabel) {\n var id;\n if (options.id === svg.id) {\n id = options.id + '_container';\n }\n else {\n id = options.id;\n }\n var rect;\n if (!rect || isSelector) {\n rect = document.createElementNS('http://www.w3.org/2000/svg', 'rect');\n svg.appendChild(rect);\n }\n var attr = {\n 'id': id, 'x': options.x.toString(), 'y': options.y.toString(), 'width': options.width.toString(),\n 'height': options.height.toString(), 'visibility': options.visible ? 'visible' : 'hidden',\n 'transform': 'rotate(' + options.angle + ','\n + (options.x + options.width * options.pivotX) + ',' + (options.y + options.height * options.pivotY) + ')',\n 'rx': options.cornerRadius || 0, 'ry': options.cornerRadius || 0, 'opacity': options.opacity,\n 'aria-label': ariaLabel ? ariaLabel : ''\n };\n if (options.class) {\n attr['class'] = options.class;\n }\n var poiterEvents = 'pointer-events';\n if (!ariaLabel) {\n attr[poiterEvents] = 'none';\n }\n setAttributeSvg(rect, attr);\n this.setSvgStyle(rect, options, diagramId);\n };\n /** @private */\n SvgRenderer.prototype.updateSelectionRegion = function (gElement, options) {\n var rect;\n rect = gElement.parentNode.getElementById(options.id);\n var attr;\n attr = {\n 'id': options.id, 'x': options.x.toString(), 'y': options.y.toString(), 'width': options.width.toString(),\n 'height': options.height.toString(), 'transform': 'rotate(' + options.angle + ','\n + (options.x + options.width * options.pivotX) + ',' + (options.y + options.height * options.pivotY) + ')',\n class: 'e-diagram-selected-region'\n };\n if (!rect) {\n rect = document.createElementNS('http://www.w3.org/2000/svg', 'rect');\n gElement.appendChild(rect);\n }\n this.setSvgStyle(rect, options);\n setAttributeSvg(rect, attr);\n };\n /** @private */\n SvgRenderer.prototype.createGElement = function (elementType, attribute) {\n var gElement = createSvgElement(elementType, attribute);\n return gElement;\n };\n /** @private */\n SvgRenderer.prototype.drawCircle = function (gElement, options, enableSelector, ariaLabel) {\n var circle = document.createElementNS('http://www.w3.org/2000/svg', 'circle');\n this.setSvgStyle(circle, options);\n var classval = options.class || '';\n if (!enableSelector) {\n classval += ' e-disabled';\n }\n var attr = {\n 'id': options.id,\n 'cx': options.centerX,\n 'cy': options.centerY,\n 'r': options.radius,\n 'visibility': options.visible ? 'visible' : 'hidden',\n 'class': classval,\n 'aria-label': ariaLabel ? ariaLabel['aria-label'] : ''\n };\n var pointerEvents = 'pointer-events';\n if (attr['aria-label'] === '') {\n attr[pointerEvents] = 'none';\n }\n circle.style.display = options.visible ? 'block' : 'none';\n setAttributeSvg(circle, attr);\n gElement.appendChild(circle);\n };\n /** @private */\n SvgRenderer.prototype.setSvgStyle = function (svg, style, diagramId) {\n if (style.canApplyStyle || style.canApplyStyle === undefined) {\n if (style.fill === 'none') {\n style.fill = 'transparent';\n }\n if (style.stroke === 'none') {\n style.stroke = 'transparent';\n }\n var dashArray = [];\n var fill = void 0;\n if (style.dashArray !== undefined) {\n var canvasRenderer = new CanvasRenderer();\n dashArray = canvasRenderer.parseDashArray(style.dashArray);\n }\n fill = style.fill;\n if (style.stroke) {\n svg.setAttribute('stroke', style.stroke);\n }\n if (style.strokeWidth !== undefined && style.strokeWidth !== null) {\n svg.setAttribute('stroke-width', style.strokeWidth.toString());\n }\n if (dashArray) {\n svg.setAttribute('stroke-dasharray', dashArray.toString());\n }\n if (fill) {\n svg.setAttribute('fill', fill);\n }\n }\n };\n //end region\n // text utility\n /** @private */\n SvgRenderer.prototype.svgLabelAlign = function (text, wrapBound, childNodes) {\n var bounds = new Size(wrapBound.width, childNodes.length * (text.fontSize * 1.2));\n var pos = { x: 0, y: 0 };\n var x = 0;\n var y = 1.2;\n var offsetX = text.width * 0.5;\n var offsety = text.height * 0.5;\n var pointX = offsetX;\n var pointY = offsety;\n if (text.textAlign === 'left') {\n pointX = 0;\n }\n else if (text.textAlign === 'center') {\n if (wrapBound.width > text.width && (text.textOverflow === 'Ellipsis' || text.textOverflow === 'Clip')) {\n pointX = 0;\n }\n else {\n pointX = text.width * 0.5;\n }\n }\n else if (text.textAlign === 'right') {\n pointX = (text.width * 1);\n }\n pos.x = x + pointX + (wrapBound ? wrapBound.x : 0);\n pos.y = y + pointY - bounds.height / 2;\n return pos;\n };\n /** @private */\n SvgRenderer.prototype.drawLine = function (gElement, options) {\n var line = document.createElementNS('http://www.w3.org/2000/svg', 'line');\n this.setSvgStyle(line, options);\n var pivotX = options.x + options.width * options.pivotX;\n var pivotY = options.y + options.height * options.pivotY;\n var kk = '';\n var attr = {\n 'id': options.id,\n 'x1': options.startPoint.x + options.x,\n 'y1': options.startPoint.y + options.y,\n 'x2': options.endPoint.x + options.x,\n 'y2': options.endPoint.y + options.y,\n 'stroke': options.stroke,\n 'stroke-width': options.strokeWidth.toString(), 'opacity': options.opacity.toString(),\n 'transform': 'rotate(' + options.angle + ' ' + pivotX + ' ' + pivotY + ')',\n 'visibility': options.visible ? 'visible' : 'hidden',\n };\n if (options.class) {\n attr['class'] = options.class;\n }\n setAttributeSvg(line, attr);\n gElement.appendChild(line);\n };\n /** @private */\n SvgRenderer.prototype.drawPath = function (svg, options, diagramId, isSelector, parentSvg, ariaLabel) {\n var id;\n var x = Math.floor((Math.random() * 10) + 1);\n id = svg.id + '_shape' + x.toString();\n var collection = [];\n collection = processPathData(options.data);\n collection = pathSegmentCollection(collection);\n var shadowElement;\n if (parentSvg) {\n shadowElement = parentSvg.getElementById(options.id + '_groupElement_shadow');\n if (shadowElement) {\n shadowElement.parentNode.removeChild(shadowElement);\n }\n }\n var path;\n if (parentSvg) {\n path = parentSvg.getElementById(options.id);\n }\n if (!path || isSelector) {\n path = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n svg.appendChild(path);\n }\n this.renderPath(path, options, collection);\n var attr = {\n 'id': options.id, 'transform': 'rotate(' + options.angle + ',' + (options.x + options.width * options.pivotX) + ','\n + (options.y + options.height * options.pivotY) + ')' + 'translate(' + (options.x) + ',' + (options.y) + ')',\n 'visibility': options.visible ? 'visible' : 'hidden', 'opacity': options.opacity,\n 'aria-label': ariaLabel ? ariaLabel : ''\n };\n if (options.class) {\n attr['class'] = options.class;\n }\n setAttributeSvg(path, attr);\n this.setSvgStyle(path, options, diagramId);\n };\n /** @private */\n SvgRenderer.prototype.renderPath = function (svg, options, collection) {\n var x1;\n var y1;\n var x2;\n var y2;\n var x;\n var y;\n var length;\n var i;\n var segments = collection;\n var d = '';\n for (x = 0, y = 0, i = 0, length = segments.length; i < length; ++i) {\n var obj = segments[i];\n var segment = obj;\n var char = segment.command;\n if ('x1' in segment) {\n x1 = segment.x1;\n }\n if ('x2' in segment) {\n x2 = segment.x2;\n }\n if ('y1' in segment) {\n y1 = segment.y1;\n }\n if ('y2' in segment) {\n y2 = segment.y2;\n }\n if ('x' in segment) {\n x = segment.x;\n }\n if ('y' in segment) {\n y = segment.y;\n }\n switch (char) {\n case 'M':\n d = d + 'M' + x.toString() + ',' + y.toString() + ' ';\n break;\n case 'L':\n d = d + 'L' + x.toString() + ',' + y.toString() + ' ';\n break;\n case 'C':\n d = d + 'C' + x1.toString() + ',' + y1.toString() + ',' + x2.toString() + ',' + y2.toString() + ',';\n d += x.toString() + ',' + y.toString() + ' ';\n break;\n case 'Q':\n d = d + 'Q' + x1.toString() + ',' + y1.toString() + ',' + x.toString() + ',' + y.toString() + ' ';\n break;\n case 'A':\n d = d + 'A' + segment.r1.toString() + ',' + segment.r2.toString() + ',' + segment.angle.toString() + ',';\n d += segment.largeArc.toString() + ',' + segment.sweep + ',' + x.toString() + ',' + y.toString() + ' ';\n break;\n case 'Z':\n case 'z':\n d = d + 'Z' + ' ';\n break;\n }\n }\n svg.setAttribute('d', d);\n };\n return SvgRenderer;\n}());\nexport { SvgRenderer };\n/** @private */\nexport function setAttributeSvg(svg, attributes) {\n var keys = Object.keys(attributes);\n for (var i = 0; i < keys.length; i++) {\n svg.setAttribute(keys[i], attributes[keys[i]]);\n }\n}\n/** @private */\nexport function createSvgElement(elementType, attribute) {\n var element = document.createElementNS('http://www.w3.org/2000/svg', elementType);\n setAttributeSvg(element, attribute);\n return element;\n}\n/** @private */\nexport function createSvg(id, width, height) {\n var svgObj = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n setAttributeSvg(svgObj, { 'id': id, 'width': width, 'height': height });\n return svgObj;\n}\nexport function getParentSvg(element, targetElement, canvas) {\n if (element && element.id) {\n if (targetElement && targetElement === 'selector') {\n return this.pdfViewer.adornerSvgLayer;\n }\n }\n return canvas;\n}\n","import { createHtmlElement, getDiagramElement } from '@syncfusion/ej2-drawings';\nimport { setAttributeSvg, createSvgElement } from '@syncfusion/ej2-drawings';\n/**\n * @param {ClientRect} bounds - Specified the bounds of the annotation.\n * @param {string} commonStyle - Specified the annotation styles.\n * @param {HTMLElement} cavas - Specified the annotation canvas element.\n * @param {number} index - Specified the page index value.\n * @param {PdfViewer} pdfViewer - Specified the pdfviewer element.\n * @hidden\n * @returns {void}\n */\nexport function renderAdornerLayer(bounds, commonStyle, cavas, index, pdfViewer) {\n var divElement = createHtmlElement('div', {\n 'id': pdfViewer.element.id + index + '_diagramAdornerLayer',\n 'style': 'width:' + bounds.width + 'px;height:' + bounds.height + 'px;' + commonStyle\n });\n if (!getDiagramElement(divElement.id)) {\n var nextElement = pdfViewer.viewerBase.getElement('_pageDiv_' + index);\n var pageBound = nextElement.getBoundingClientRect();\n var svgAdornerSvg = createSvg(pdfViewer.element.id + index + '_diagramAdorner_svg', pageBound.width, pageBound.height);\n svgAdornerSvg.setAttribute('class', 'e-adorner-layer' + index);\n svgAdornerSvg.setAttribute('style', 'pointer-events:none;');\n pdfViewer.adornerSvgLayer = createSvgElement('g', { 'id': pdfViewer.element.id + index + '_diagramAdorner' });\n pdfViewer.adornerSvgLayer.setAttribute('style', ' pointer-events: all; ');\n svgAdornerSvg.appendChild(pdfViewer.adornerSvgLayer);\n divElement.appendChild(svgAdornerSvg);\n divElement.style.width = pageBound.width + 'px';\n divElement.style.height = pageBound.height + 'px';\n if (nextElement) {\n nextElement.insertBefore(divElement, nextElement.childNodes[0]);\n }\n else {\n cavas.parentElement.appendChild(divElement);\n }\n var svgSelector = createSvgElement('g', { 'id': pdfViewer.element.id + index + '_SelectorElement' });\n pdfViewer.adornerSvgLayer.appendChild(svgSelector);\n setAttributeSvg(svgAdornerSvg, { style: 'pointer-events:none;' });\n }\n pdfViewer.viewerBase.applyElementStyles(divElement, index);\n}\n/**\n * @param {string} id - Specified the Id of the svg element.\n * @param {string | number} width - Specified the width of the svg element.\n * @param {string | number} height - Specified the height of the svg element.\n * @hidden\n * @returns {SVGElement} - Returns the svg element.\n */\nexport function createSvg(id, width, height) {\n var svgObj = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n setAttributeSvg(svgObj, { 'id': id, 'width': width, 'height': height });\n return svgObj;\n}\n","/**\n * ContextMenu module is used to handle the context menus used in the control.\n *\n * @hidden\n */\nvar BlazorContextMenu = /** @class */ (function () {\n /**\n * Initialize the constructor of blazorcontext\n *\n * @param { PdfViewer } pdfViewer - Specified PdfViewer class.\n * @param { PdfViewerBase } pdfViewerBase - The pdfViewerBase.\n */\n function BlazorContextMenu(pdfViewer, pdfViewerBase) {\n this.pdfViewer = pdfViewer;\n this.pdfViewerBase = pdfViewerBase;\n }\n /**\n * Create the context menu.\n * @returns {void}\n */\n BlazorContextMenu.prototype.createContextMenu = function () {\n var htmlCollection = document.getElementsByClassName(this.pdfViewer.element.id + '_context_menu');\n if (htmlCollection) {\n this.contextMenuElement = htmlCollection[0];\n if (this.contextMenuElement.children && this.contextMenuElement.children.length > 0) {\n var htmlElement = this.contextMenuElement.children[0];\n htmlElement.className = htmlElement.className + ' ' + 'e-pv-context-menu';\n }\n }\n };\n /**\n * open the context menu.\n * @param {number} top - The top.\n * @param {number} left - The left.\n * @param {HTMLElement} target - The target.\n * @returns {void}\n */\n BlazorContextMenu.prototype.open = function (top, left, target) {\n this.pdfViewer._dotnetInstance.invokeMethodAsync('OpenContextMenu', top, left);\n };\n /**\n * close the context menu.\n * @returns {void}\n */\n BlazorContextMenu.prototype.close = function () {\n this.pdfViewer._dotnetInstance.invokeMethodAsync('CloseContextMenu');\n };\n /**\n * destroy the context menu.\n * @returns {void}\n */\n BlazorContextMenu.prototype.destroy = function () {\n this.previousAction = '';\n this.contextMenuElement = null;\n };\n // eslint-disable-next-line\n BlazorContextMenu.prototype.OnItemSelected = function (selectedMenu) {\n if (typeof selectedMenu === 'string') {\n this.pdfViewerBase.OnItemSelected(selectedMenu);\n }\n else {\n this.pdfViewerBase.OnItemSelected(selectedMenu[0]);\n }\n };\n return BlazorContextMenu;\n}());\nexport { BlazorContextMenu };\n","import { isNullOrUndefined, classList, createElement } from '@syncfusion/ej2-base';\nvar globalTimeOut = {};\nvar spinTemplate = null;\nvar spinCSSClass = null;\nvar DEFT_MAT_WIDTH = 30;\nvar DEFT_FAB_WIDTH = 30;\nvar DEFT_BOOT_WIDTH = 30;\nvar DEFT_BOOT4_WIDTH = 36;\nvar CLS_SHOWSPIN = 'e-spin-show';\nvar CLS_HIDESPIN = 'e-spin-hide';\nvar CLS_MATERIALSPIN = 'e-spin-material';\nvar CLS_FABRICSPIN = 'e-spin-fabric';\nvar CLS_BOOTSPIN = 'e-spin-bootstrap';\nvar CLS_BOOT4SPIN = 'e-spin-bootstrap4';\nvar CLS_BOOT5SPIN = 'e-spin-bootstrap5';\nvar CLS_TAILWIND = 'e-spin-tailwind';\nvar CLS_Fluent = 'e-spin-fluent';\nvar CLS_HIGHCONTRASTSPIN = 'e-spin-high-contrast';\nvar CLS_SPINWRAP = 'e-spinner-pane';\nvar CLS_SPININWRAP = 'e-spinner-inner';\nvar CLS_SPINCIRCLE = 'e-path-circle';\nvar CLS_SPINARC = 'e-path-arc';\nvar CLS_SPINLABEL = 'e-spin-label';\nvar CLS_SPINTEMPLATE = 'e-spin-template';\n/**\n * Function to change the Spinners in a page globally from application end.\n * ```\n * E.g : blazorSpinner({ action: \"Create\", options: {target: targetElement}, type: \"\" });\n * ```\n *\n * @private\n * @param {string} action - The action.\n * @param {CreateArgs} options - The options\n * @param {string} target - The target\n * @param {string} type - the type\n * @returns {void}\n */\nexport function Spinner(action, options, target, type) {\n switch (action) {\n case 'Create':\n // eslint-disable-next-line\n var element = document.querySelector(options.target);\n // eslint-disable-next-line\n var args = { type: type, target: element, cssClass: options.cssClass,\n label: options.label, width: options.width };\n createSpinner(args);\n break;\n case 'Show':\n showSpinner(document.querySelector(target));\n break;\n case 'Hide':\n hideSpinner(document.querySelector(target));\n break;\n case 'Set':\n // eslint-disable-next-line\n var setArgs = { cssClass: options.cssClass, type: type };\n setSpinner(setArgs);\n break;\n }\n}\n/**\n * Create a spinner for the specified target element.\n * ```\n * E.g : createSpinner({ target: targetElement, width: '34px', label: 'Loading..' });\n * ```\n * @private\n * @param {SpinnerArgs} args - The SpinnerArgs.\n * @param {createElementParams} internalCreateElement - The internalCreateElement\n * @returns {void}\n */\nexport function createSpinner(args, internalCreateElement) {\n if (!args.target) {\n return;\n }\n var radius;\n var makeElement = !isNullOrUndefined(internalCreateElement) ? internalCreateElement : createElement;\n var container = createSpinnerContainer(args.target, makeElement);\n if (!isNullOrUndefined(args.cssClass)) {\n container.wrap.classList.add(args.cssClass);\n }\n if (!isNullOrUndefined(args.template) || !isNullOrUndefined(spinTemplate)) {\n var template = !isNullOrUndefined(args.template) ? args.template : spinTemplate;\n container.wrap.classList.add(CLS_SPINTEMPLATE);\n replaceContent(container.wrap, template, spinCSSClass);\n }\n else {\n var theme = !isNullOrUndefined(args.type) ? args.type : getTheme(container.wrap);\n var width = !isNullOrUndefined(args.width) ? args.width : undefined;\n radius = calculateRadius(width, theme);\n setTheme(theme, container.wrap, radius, makeElement);\n if (!isNullOrUndefined(args.label)) {\n createLabel(container.innerWrap, args.label, makeElement);\n }\n }\n container.wrap.classList.add(CLS_HIDESPIN);\n container = null;\n}\n/**\n * @param {HTMLElement} container - The HTMLElement.\n * @param {number} label - The label.\n * @param {createElementParams} makeElement - The makeElement.\n * @returns {HTMLElement} - Returns HTMLElement.\n */\nfunction createLabel(container, label, makeElement) {\n var labelEle = makeElement('div', {});\n labelEle.classList.add(CLS_SPINLABEL);\n labelEle.textContent = label;\n container.appendChild(labelEle);\n return labelEle;\n}\n/**\n * @param {HTMLElement} container - The HTMLElement.\n * @param {number} radius - The radius.\n * @param {createElementParams} makeElement - The makeElement.\n * @returns {void}\n */\nfunction createMaterialSpinner(container, radius, makeElement) {\n var uniqueID = randomGenerator();\n globalTimeOut[\"\" + uniqueID] = { timeOut: 0, type: 'Material', radius: radius };\n createMaterialElement(container, uniqueID, makeElement, CLS_MATERIALSPIN);\n matCalculateAttributes(radius, container, 'Material', CLS_MATERIALSPIN);\n}\n/**\n * @param {HTMLElement} container - The HTMLElement.\n * @param {number} radius - The radius.\n * @param {createElementParams} makeElement - The makeElement.\n * @returns {void}\n */\nfunction createBootstrap4Spinner(container, radius, makeElement) {\n var uniqueID = randomGenerator();\n globalTimeOut[\"\" + uniqueID] = { timeOut: 0, type: 'Bootstrap4', radius: radius };\n createMaterialElement(container, uniqueID, makeElement, CLS_BOOT4SPIN);\n matCalculateAttributes(radius, container, 'Bootstrap4', CLS_BOOT4SPIN);\n}\n/**\n * @param {HTMLElement} container - The HTMLElement.\n * @param {number} radius - The radius.\n * @param {createElementParams} makeElement - The makeElement.\n * @returns {void}\n */\nfunction createBootstrap5Spinner(container, radius, makeElement) {\n var uniqueID = randomGenerator();\n globalTimeOut[\"\" + uniqueID] = { timeOut: 0, type: 'Bootstrap5', radius: radius };\n createMaterialElement(container, uniqueID, makeElement, CLS_BOOT5SPIN);\n matCalculateAttributes(radius, container, 'Bootstrap5', CLS_BOOT5SPIN);\n}\n/**\n * @param {HTMLElement} container - The HTMLElement.\n * @param {number} radius - The radius.\n * @param {createElementParams} makeElement - The makeElement.\n * @returns {void}\n */\nfunction createTailwindSpinner(container, radius, makeElement) {\n var uniqueID = randomGenerator();\n globalTimeOut[\"\" + uniqueID] = { timeOut: 0, type: 'Tailwind', radius: radius };\n createFabricElement(container, uniqueID, CLS_TAILWIND, makeElement);\n fbCalculateAttributes(radius, container, CLS_TAILWIND);\n}\n/**\n * @param {HTMLElement} container - The HTMLElement.\n * @param {number} radius - The radius.\n * @param {createElementParams} makeElement - The makeElement.\n * @returns {void}\n */\nfunction createFluentSpinner(container, radius, makeElement) {\n var uniqueID = randomGenerator();\n globalTimeOut[\"\" + uniqueID] = { timeOut: 0, type: 'Fluent', radius: radius };\n createFabricElement(container, uniqueID, CLS_Fluent, makeElement);\n fbCalculateAttributes(radius, container, CLS_Fluent);\n}\n/**\n * @param {HTMLElement} container - The HTMLElement.\n * @param {string} uniqueID - The uniqueID.\n * @param {number} radius - The radius.\n * @returns {void}\n */\nfunction startMatAnimate(container, uniqueID, radius) {\n var globalObject = {};\n var timeOutVar = 0;\n globalTimeOut[\"\" + uniqueID].timeOut = 0;\n globalObject[\"\" + uniqueID] = globalVariables(uniqueID, radius, 0, 0);\n var spinnerInfo = { uniqueID: uniqueID, container: container, globalInfo: globalObject, timeOutVar: timeOutVar };\n animateMaterial(spinnerInfo);\n}\n/**\n * @param {HTMLElement} container - The HTMLElement.\n * @param {number} radius - The radius.\n * @param {createElementParams} makeElement - The makeElement.\n * @returns {void}\n */\nfunction createFabricSpinner(container, radius, makeElement) {\n var uniqueID = randomGenerator();\n globalTimeOut[\"\" + uniqueID] = { timeOut: 0, type: 'Fabric', radius: radius };\n createFabricElement(container, uniqueID, CLS_FABRICSPIN, makeElement);\n fbCalculateAttributes(radius, container, CLS_FABRICSPIN);\n}\n/**\n * @param {HTMLElement} container - The HTMLElement.\n * @param {number} radius - The radius.\n * @param {createElementParams} makeElement - The makeElement.\n * @returns {void}\n */\nfunction createHighContrastSpinner(container, radius, makeElement) {\n var uniqueID = randomGenerator();\n globalTimeOut[\"\" + uniqueID] = { timeOut: 0, type: 'HighContrast', radius: radius };\n createFabricElement(container, uniqueID, CLS_HIGHCONTRASTSPIN, makeElement);\n fbCalculateAttributes(radius, container, CLS_HIGHCONTRASTSPIN);\n}\n/**\n * @param {HTMLElement} container - The container\n * @returns {string} - Returns the string\n */\nfunction getTheme(container) {\n var theme = window.getComputedStyle(container, ':after').getPropertyValue('content');\n return theme.replace(/['\"]+/g, '');\n}\n/**\n * @param {string} theme - The theme.\n * @param {HTMLElement} container - The HTMLElement.\n * @param {number} radius - The radius.\n * @param {createElementParams} makeElement - The makeElement.\n * @returns {void}\n */\nfunction setTheme(theme, container, radius, makeElement) {\n var innerContainer = container.querySelector('.' + CLS_SPININWRAP);\n var svg = innerContainer.querySelector('svg');\n if (!isNullOrUndefined(svg)) {\n innerContainer.removeChild(svg);\n }\n switch (theme) {\n case 'Material':\n createMaterialSpinner(innerContainer, radius, makeElement);\n break;\n case 'Fabric':\n createFabricSpinner(innerContainer, radius, makeElement);\n break;\n case 'Bootstrap':\n createBootstrapSpinner(innerContainer, radius, makeElement);\n break;\n case 'HighContrast':\n createHighContrastSpinner(innerContainer, radius, makeElement);\n break;\n case 'Bootstrap4':\n createBootstrap4Spinner(innerContainer, radius, makeElement);\n break;\n case 'Bootstrap5':\n createBootstrap5Spinner(innerContainer, radius, makeElement);\n break;\n case 'Tailwind':\n createTailwindSpinner(innerContainer, radius, makeElement);\n break;\n case 'Fluent':\n createFluentSpinner(innerContainer, radius, makeElement);\n break;\n }\n}\n/**\n * @param {HTMLElement} innerContainer - The innerContainer.\n * @param {number} radius - The radius.\n * @param {createElementParams} makeElement - The makeElement.\n * @returns {void}\n */\nfunction createBootstrapSpinner(innerContainer, radius, makeElement) {\n var uniqueID = randomGenerator();\n globalTimeOut[\"\" + uniqueID] = { timeOut: 0, type: 'Bootstrap', radius: radius };\n createBootstrapElement(innerContainer, uniqueID, makeElement);\n bootCalculateAttributes(innerContainer, radius);\n}\n/**\n * @param {HTMLElement} innerContainer - The HTMLElement.\n * @param {string} uniqueID - The uniqueID.\n * @param {createElementParams} makeElement - The createElementParams.\n * @returns {void}\n */\nfunction createBootstrapElement(innerContainer, uniqueID, makeElement) {\n var svgBoot = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n var viewBoxValue = 64;\n var trans = 32;\n var defaultRadius = 2;\n svgBoot.setAttribute('id', uniqueID);\n svgBoot.setAttribute('class', CLS_BOOTSPIN);\n svgBoot.setAttribute('viewBox', '0 0 ' + viewBoxValue + ' ' + viewBoxValue);\n innerContainer.insertBefore(svgBoot, innerContainer.firstChild);\n for (var item = 0; item <= 7; item++) {\n var bootCircle = document.createElementNS('http://www.w3.org/2000/svg', 'circle');\n bootCircle.setAttribute('class', CLS_SPINCIRCLE + '_' + item);\n bootCircle.setAttribute('r', defaultRadius + '');\n bootCircle.setAttribute('transform', 'translate(' + trans + ',' + trans + ')');\n svgBoot.appendChild(bootCircle);\n }\n}\n/**\n * @param {HTMLElement} innerContainer - The innerContainer.\n * @param {number} radius - The radius.\n * @returns {void}\n */\nfunction bootCalculateAttributes(innerContainer, radius) {\n var svg = innerContainer.querySelector('svg.e-spin-bootstrap');\n svg.style.width = svg.style.height = radius + 'px';\n var x = 0;\n var y = 0;\n var rad = 24;\n var startArc = 90;\n for (var item = 0; item <= 7; item++) {\n var start = defineArcPoints(x, y, rad, startArc);\n var circleEle = svg.querySelector('.' + CLS_SPINCIRCLE + '_' + item);\n circleEle.setAttribute('cx', start.x + '');\n circleEle.setAttribute('cy', start.y + '');\n startArc = startArc >= 360 ? 0 : startArc;\n startArc = startArc + 45;\n }\n}\n/**\n * @param {number} begin - The begin.\n * @param {number} stop - The stop.\n * @returns {number[]} - Returns the number.\n */\nfunction generateSeries(begin, stop) {\n var series = [];\n var start = begin;\n var end = stop;\n var increment = false;\n var count = 1;\n formSeries(start);\n /**\n * @param {number} i - The number\n * @returns {void}\n */\n function formSeries(i) {\n series.push(i);\n if (i !== end || count === 1) {\n if (i <= start && i > 1 && !increment) {\n i = parseFloat((i - 0.2).toFixed(2));\n }\n else if (i === 1) {\n i = 7;\n i = parseFloat((i + 0.2).toFixed(2));\n increment = true;\n }\n else if (i < 8 && increment) {\n i = parseFloat((i + 0.2).toFixed(2));\n if (i === 8) {\n increment = false;\n }\n }\n else if (i <= 8 && !increment) {\n i = parseFloat((i - 0.2).toFixed(2));\n }\n ++count;\n formSeries(i);\n }\n }\n return series;\n}\n/**\n * @param {HTMLElement} innerContainer - The innerContainer.\n * @returns {void}\n */\nfunction animateBootstrap(innerContainer) {\n var svg = innerContainer.querySelector('svg.e-spin-bootstrap');\n var id = svg.getAttribute('id');\n for (var i = 1; i <= 8; i++) {\n var circleEle = (innerContainer.getElementsByClassName('e-path-circle_' +\n (i === 8 ? 0 : i))[0]);\n rotation(circleEle, i, i, generateSeries(i, i), id);\n }\n /**\n * @param {SVGCircleElement} circle - The circle.\n * @param {number} start - The start.\n * @param {number} end - The end.\n * @param {number[]} series - The series\n * @param {string} id - The id.\n * @returns {void}\n */\n function rotation(circle, start, end, series, id) {\n var count = 0;\n bootAnimate(start);\n /**\n * @param {number} radius - The radisu.\n * @returns {void}\n */\n function bootAnimate(radius) {\n if (globalTimeOut[\"\" + id].isAnimate) {\n ++count;\n circle.setAttribute('r', radius + '');\n if (count >= series.length) {\n count = 0;\n }\n globalTimeOut[\"\" + id].timeOut = setTimeout(bootAnimate.bind(null, series[parseInt(count.toString(), 10)]), 18);\n }\n }\n }\n}\n/**\n * @param {HTMLElement} container - The container.\n * @param {string} template - The template.\n * @param {string} cssClass - The cssClass.\n * @returns {void}\n */\nfunction replaceContent(container, template, cssClass) {\n if (!isNullOrUndefined(cssClass)) {\n container.classList.add(cssClass);\n }\n var inner = container.querySelector('.e-spinner-inner');\n inner.innerHTML = template;\n}\n/**\n * @param {string | number} width - The width\n * @param {string} theme - The theme.\n * @returns {number} - Returns the number.\n */\nfunction calculateRadius(width, theme) {\n var defaultSize;\n switch (theme) {\n case 'Material':\n defaultSize = DEFT_MAT_WIDTH;\n break;\n case 'Fabric':\n defaultSize = DEFT_FAB_WIDTH;\n break;\n case 'Bootstrap4':\n defaultSize = DEFT_BOOT4_WIDTH;\n break;\n default:\n defaultSize = DEFT_BOOT_WIDTH;\n }\n width = width ? parseFloat(width + '') : defaultSize;\n return theme === 'Bootstrap' ? width : width / 2;\n}\n/**\n * @param {string} id - The id.\n * @param {number} radius - The radius.\n * @param {number} count - The count.\n * @param {number} previousId - The previousId.\n * @returns {GlobalVariables} - Returns GlobalVariables.\n */\nfunction globalVariables(id, radius, count, previousId) {\n return {\n radius: radius,\n count: count,\n previousId: previousId\n };\n}\n/**\n * @returns {string} - Returns string.\n */\nfunction randomGenerator() {\n var random = '';\n var combine = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n for (var i = 0; i < 5; i++) {\n random += combine.charAt(Math.floor(Math.random() * combine.length));\n }\n return random;\n}\n/**\n * @param {HTMLElement} innerCon - The innerContainer.\n * @param {string} uniqueID - The uniqueID.\n * @param {string} themeClass - The themeClass\n * @param {createElementParams} makeElement - The makeElement.\n * @returns {void}\n */\nfunction createFabricElement(innerCon, uniqueID, themeClass, makeElement) {\n var svgFabric = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n svgFabric.setAttribute('id', uniqueID);\n svgFabric.setAttribute('class', themeClass);\n var fabricCirclePath = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n fabricCirclePath.setAttribute('class', CLS_SPINCIRCLE);\n var fabricCircleArc = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n fabricCircleArc.setAttribute('class', CLS_SPINARC);\n innerCon.insertBefore(svgFabric, innerCon.firstChild);\n svgFabric.appendChild(fabricCirclePath);\n svgFabric.appendChild(fabricCircleArc);\n}\n/**\n * @param {HTMLElement} innerContainer - The innerContainer.\n * @param {string} uniqueID - The uniqueID.\n * @param {createElementParams} makeElement - The makeElement.\n * @param {string} cls - The class\n * @returns {void}\n */\nfunction createMaterialElement(innerContainer, uniqueID, makeElement, cls) {\n var svgMaterial = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n svgMaterial.setAttribute('class', cls);\n svgMaterial.setAttribute('id', uniqueID);\n var matCirclePath = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n matCirclePath.setAttribute('class', CLS_SPINCIRCLE);\n innerContainer.insertBefore(svgMaterial, innerContainer.firstChild);\n svgMaterial.appendChild(matCirclePath);\n}\n/**\n * @param {HTMLElement} target - The target.\n * @param {createElementParams} makeElement - The makeElement.\n * @returns {HTMLElement;HTMLElement} - Retruns the HTMLElement.\n */\nfunction createSpinnerContainer(target, makeElement) {\n var spinnerContainer = makeElement('div', {});\n spinnerContainer.classList.add(CLS_SPINWRAP);\n var spinnerInnerContainer = makeElement('div', {});\n spinnerInnerContainer.classList.add(CLS_SPININWRAP);\n target.appendChild(spinnerContainer);\n spinnerContainer.appendChild(spinnerInnerContainer);\n return { wrap: spinnerContainer, innerWrap: spinnerInnerContainer };\n}\n/**\n * @param {SpinnerInfo} spinnerInfo - The SpinnerInfo.\n * @returns {void}\n */\nfunction animateMaterial(spinnerInfo) {\n var start = 1;\n var end = 149;\n var duration = 1333;\n var max = 75;\n createCircle(start, end, easeAnimation, duration, spinnerInfo.globalInfo[spinnerInfo.uniqueID].count, max, spinnerInfo);\n spinnerInfo.globalInfo[spinnerInfo.uniqueID].count = ++spinnerInfo.globalInfo[spinnerInfo.uniqueID].count % 4;\n}\n/**\n * @param {number} start - The start.\n * @param {number} end - The end.\n * @param {Function} easing - The easing.\n * @param {number} duration - The duration.\n * @param {number} count - The count.\n * @param {number} max - The max.\n * @param {SpinnerInfo} spinnerInfo - The SpinnerInfo.\n * @returns {void}\n */\nfunction createCircle(start, end, easing, duration, count, max, spinnerInfo) {\n var id = ++spinnerInfo.globalInfo[spinnerInfo.uniqueID].previousId;\n var startTime = new Date().getTime();\n var change = end - start;\n var diameter = getSize((spinnerInfo.globalInfo[spinnerInfo.uniqueID].radius * 2) + '');\n var strokeSize = getStrokeSize(diameter);\n var rotate = -90 * (spinnerInfo.globalInfo[spinnerInfo.uniqueID].count || 0);\n matAnimation(spinnerInfo);\n /**\n * @param {SpinnerInfo} spinnerInfo - The SpinnerInfo.\n * @returns {void}\n */\n function matAnimation(spinnerInfo) {\n var currentTime = Math.max(0, Math.min(new Date().getTime() - startTime, duration));\n updatePath(easing(currentTime, start, change, duration), spinnerInfo.container);\n if (id === spinnerInfo.globalInfo[spinnerInfo.uniqueID].previousId && currentTime < duration) {\n globalTimeOut[spinnerInfo.uniqueID].timeOut = setTimeout(matAnimation.bind(null, spinnerInfo), 1);\n }\n else {\n animateMaterial(spinnerInfo);\n }\n }\n /**\n * @param {number} value - The value.\n * @param {HTMLElement} container - The container.\n * @returns {void}\n */\n function updatePath(value, container) {\n if ((!isNullOrUndefined(container.querySelector('svg.e-spin-material')))\n && (!isNullOrUndefined(container.querySelector('svg.e-spin-material').querySelector('path.e-path-circle')))) {\n var svg = container.querySelector('svg.e-spin-material');\n var path = svg.querySelector('path.e-path-circle');\n path.setAttribute('stroke-dashoffset', getDashOffset(diameter, strokeSize, value, max) + '');\n path.setAttribute('transform', 'rotate(' + (rotate) + ' ' + diameter / 2 + ' ' + diameter / 2 + ')');\n }\n }\n}\n/**\n * @param {number} radius - The radius.\n * @param {HTMLElement} container - The container.\n * @param {string} type - The type.\n * @param {string} cls - The class\n * @returns {void}\n */\nfunction matCalculateAttributes(radius, container, type, cls) {\n var diameter = radius * 2;\n var svg = container.querySelector('svg.' + cls);\n var path = svg.querySelector('path.e-path-circle');\n var strokeSize = getStrokeSize(diameter);\n var transformOrigin = (diameter / 2) + 'px';\n svg.setAttribute('viewBox', '0 0 ' + diameter + ' ' + diameter);\n svg.style.width = svg.style.height = diameter + 'px';\n svg.style.transformOrigin = transformOrigin + ' ' + transformOrigin + ' ' + transformOrigin;\n path.setAttribute('d', drawArc(diameter, strokeSize));\n if (type === 'Material') {\n path.setAttribute('stroke-width', strokeSize + '');\n path.setAttribute('stroke-dasharray', ((diameter - strokeSize) * Math.PI * 0.75) + '');\n path.setAttribute('stroke-dashoffset', getDashOffset(diameter, strokeSize, 1, 75) + '');\n }\n}\n/**\n * @param {string} value - The value.\n * @returns {number} - Returns number.\n */\nfunction getSize(value) {\n var parsed = parseFloat(value);\n return parsed;\n}\n/**\n * @param {number} diameter - The diameter.\n * @param {number} strokeSize - The strokeSize.\n * @returns {string} - Returns string.\n */\nfunction drawArc(diameter, strokeSize) {\n var radius = diameter / 2;\n var offset = strokeSize / 2;\n return 'M' + radius + ',' + offset\n + 'A' + (radius - offset) + ',' + (radius - offset) + ' 0 1 1 ' + offset + ',' + radius;\n}\n/**\n * @param {number} diameter - The diameter.\n * @returns {number} - Returns number.\n */\nfunction getStrokeSize(diameter) {\n return 10 / 100 * diameter;\n}\n/**\n * @param {number} diameter - The diameter.\n * @param {number} strokeSize - The strokeSize.\n * @param {number} value - The value.\n * @param {number} max - The max.\n * @returns {number} - Returns number.\n */\nfunction getDashOffset(diameter, strokeSize, value, max) {\n return (diameter - strokeSize) * Math.PI * ((3 * (max) / 100) - (value / 100));\n}\n/**\n * @param {number} current - The current.\n * @param {number} start - The start.\n * @param {number} change - The change.\n * @param {number} duration - The duration\n * @returns {number} - Returns number.\n */\nfunction easeAnimation(current, start, change, duration) {\n var timestamp = (current /= duration) * current;\n var timecount = timestamp * current;\n return start + change * (6 * timecount * timestamp + -15 * timestamp * timestamp + 10 * timecount);\n}\n/**\n * @param {number} radius - The radius.\n * @param {HTMLElement} innerConainer - The innerConainer.\n * @param {string} trgClass - The trgClass.\n * @returns {void}\n */\nfunction fbCalculateAttributes(radius, innerConainer, trgClass) {\n var centerX = radius;\n var centerY = radius;\n var diameter = radius * 2;\n var startArc = 315;\n var endArc = 45;\n var svg = innerConainer.querySelector('.' + trgClass);\n var circle = svg.querySelector('.e-path-circle');\n var path = svg.querySelector('.e-path-arc');\n var transformOrigin = (diameter / 2) + 'px';\n circle.setAttribute('d', defineCircle(centerX, centerY, radius));\n path.setAttribute('d', defineArc(centerX, centerY, radius, startArc, endArc));\n svg.setAttribute('viewBox', '0 0 ' + diameter + ' ' + diameter);\n svg.style.transformOrigin = transformOrigin + ' ' + transformOrigin + ' ' + transformOrigin;\n svg.style.width = svg.style.height = diameter + 'px';\n}\n/**\n * @param {number} centerX - The centerX.\n * @param {number} centerY - The centerY.\n * @param {number} radius - The radius.\n * @param {number} angle - The angle.\n * @returns {number;number} - Returns number.\n */\nfunction defineArcPoints(centerX, centerY, radius, angle) {\n var radians = (angle - 90) * Math.PI / 180.0;\n return {\n x: centerX + (radius * Math.cos(radians)),\n y: centerY + (radius * Math.sin(radians))\n };\n}\n/**\n * @param {number} x - The x.\n * @param {number} y - The y.\n * @param {number} radius - The radius.\n * @param {number} startArc - The startArc.\n * @param {number} endArc - The endArc.\n * @returns {string} - Returns string.\n */\nfunction defineArc(x, y, radius, startArc, endArc) {\n var start = defineArcPoints(x, y, radius, endArc);\n var end = defineArcPoints(x, y, radius, startArc);\n var d = [\n 'M', start.x, start.y,\n 'A', radius, radius, 0, 0, 0, end.x, end.y\n ].join(' ');\n return d;\n}\n/**\n * @param {number} x - The x.\n * @param {number} y - The y.\n * @param {number} radius - The radius.\n * @returns {void}\n */\nfunction defineCircle(x, y, radius) {\n var d = [\n 'M', x, y,\n 'm', -radius, 0,\n 'a', radius, radius, 0, 1, 0, radius * 2, 0,\n 'a', radius, radius, 0, 1, 0, -radius * 2, 0\n ].join(' ');\n return d;\n}\n/**\n * Function to show the Spinner.\n * @private\n * @param {HTMLElement} container - The container.\n * @returns {void}\n */\nexport function showSpinner(container) {\n showHideSpinner(container, false);\n container = null;\n}\n/**\n * @param {HTMLElement} container - The container.\n * @param {boolean} isHide - To show or hide.\n * @returns {void}\n */\nfunction showHideSpinner(container, isHide) {\n var spinnerWrap;\n if (container) {\n spinnerWrap = container.classList.contains(CLS_SPINWRAP) ? container :\n container.querySelector('.' + CLS_SPINWRAP);\n }\n if (container && spinnerWrap) {\n var inner = spinnerWrap.querySelector('.' + CLS_SPININWRAP);\n // eslint-disable-next-line max-len\n var spinCheck = isHide ? !spinnerWrap.classList.contains(CLS_SPINTEMPLATE) && !spinnerWrap.classList.contains(CLS_HIDESPIN) :\n !spinnerWrap.classList.contains(CLS_SPINTEMPLATE) && !spinnerWrap.classList.contains(CLS_SHOWSPIN);\n if (spinCheck) {\n var svgEle = spinnerWrap.querySelector('svg');\n if (isNullOrUndefined(svgEle)) {\n return;\n }\n var id = svgEle.getAttribute('id');\n globalTimeOut[\"\" + id].isAnimate = !isHide;\n switch (globalTimeOut[\"\" + id].type) {\n case 'Material':\n // eslint-disable-next-line\n isHide ? clearTimeout(globalTimeOut[id].timeOut) : startMatAnimate(inner, id, globalTimeOut[id].radius);\n break;\n case 'Bootstrap':\n // eslint-disable-next-line\n isHide ? clearTimeout(globalTimeOut[id].timeOut) : animateBootstrap(inner);\n break;\n }\n }\n // eslint-disable-next-line\n isHide ? classList(spinnerWrap, [CLS_HIDESPIN], [CLS_SHOWSPIN]) : classList(spinnerWrap, [CLS_SHOWSPIN], [CLS_HIDESPIN]);\n container = null;\n }\n}\n/**\n * Function to hide the Spinner.\n * @private\n * @param {HTMLElement} container - Specify the target of the Spinner.\n * @returns {void}\n */\nexport function hideSpinner(container) {\n showHideSpinner(container, true);\n container = null;\n}\n/**\n * Function to change the Spinners in a page globally from application end.\n * ```\n * E.g : setSpinner({ cssClass: 'custom-css'; type: 'Material' });\n * ```\n * @private\n * @param {SetSpinnerArgs} args - The args.\n * @param {createElementParams} internalCreateElement - The internalCreateElement.\n * @returns {void}\n */\nexport function setSpinner(args, internalCreateElement) {\n var makeElement = !isNullOrUndefined(internalCreateElement) ? internalCreateElement : createElement;\n if (args.template !== undefined) {\n spinTemplate = args.template;\n if (args.template !== undefined) {\n spinCSSClass = args.cssClass;\n }\n }\n var container = document.querySelectorAll('.' + CLS_SPINWRAP);\n for (var index = 0; index < container.length; index++) {\n ensureTemplate(args.template, container[parseInt(index.toString(), 10)], args.type, args.cssClass, makeElement);\n }\n}\n/**\n * @param {string} template - The template.\n * @param {HTMLElement} container - The container.\n * @param {string} theme - The theme.\n * @param {string} cssClass - The cssClass.\n * @param {createElementParams} makeEle - The makeEle.\n * @returns {void}\n */\nfunction ensureTemplate(template, container, theme, cssClass, makeEle) {\n if (isNullOrUndefined(template) && !container.classList.contains(CLS_SPINTEMPLATE)) {\n replaceTheme(container, theme, cssClass, makeEle);\n if (container.classList.contains(CLS_SHOWSPIN)) {\n container.classList.remove(CLS_SHOWSPIN);\n showSpinner(container);\n }\n else {\n container.classList.remove(CLS_HIDESPIN);\n hideSpinner(container);\n }\n }\n else {\n spinTemplate = template;\n if (!isNullOrUndefined(cssClass)) {\n spinCSSClass = cssClass;\n }\n }\n}\n/**\n * @param {HTMLElement} container - The container.\n * @param {string} theme - The theme.\n * @param {string} cssClass - The cssClass.\n * @param {createElementParams} makeEle - The makeEle.\n * @returns {void}\n */\nfunction replaceTheme(container, theme, cssClass, makeEle) {\n if (!isNullOrUndefined(cssClass)) {\n container.classList.add(cssClass);\n }\n var svgElement = container.querySelector('svg');\n var radius = theme === 'Bootstrap' ? parseFloat(svgElement.style.height) : parseFloat(svgElement.style.height) / 2;\n var classNames = svgElement.getAttribute('class');\n var svgClassList = classNames.split(/\\s/);\n if (svgClassList.indexOf('e-spin-material') >= 0) {\n var id = svgElement.getAttribute('id');\n clearTimeout(globalTimeOut[\"\" + id].timeOut);\n }\n setTheme(theme, container, radius, makeEle);\n}\n","/**\n * The `BlazorUIAdaptor` module is used to handle the UI update of native components.\n * @hidden\n */\nvar BlazorUiAdaptor = /** @class */ (function () {\n /**\n * Initialize the constructor of blazorUIadapater.\n *\n * @param { PdfViewer } pdfviewer - Specified PdfViewer class.\n * @param { PdfViewerBase } pdfViewerBase - The pdfViewerBase.\n */\n function BlazorUiAdaptor(pdfviewer, pdfViewerBase) {\n this.pdfViewer = null;\n this.pdfViewerBase = null;\n /**\n * @private\n */\n this.totalPageElement = null;\n this.currentPageBoxElementContainer = null;\n this.currentPageBoxElement = null;\n this.firstPageElement = null;\n this.previousPageElement = null;\n this.nextPageElement = null;\n this.lastPageElement = null;\n this.zommOutElement = null;\n this.zoomInElement = null;\n this.zoomDropDownElement = null;\n this.selectToolElement = null;\n this.handToolElement = null;\n this.undoElement = null;\n this.redoElement = null;\n this.commentElement = null;\n this.submitFormButton = null;\n this.searchElement = null;\n this.annotationElement = null;\n this.printElement = null;\n this.downloadElement = null;\n this.highlightElement = null;\n this.underlineElement = null;\n this.strikeThroughElement = null;\n this.shapeElement = null;\n this.calibrateElement = null;\n this.stampElement = null;\n this.freeTextElement = null;\n this.signatureElement = null;\n this.inkElement = null;\n this.annotationFontSizeInputElement = null;\n this.annotationFontFamilyInputElement = null;\n this.annotationColorElement = null;\n this.annotationStrokeColorElement = null;\n this.annotationThicknessElement = null;\n this.annotationOpacityElement = null;\n this.annotationFontColorElement = null;\n this.annotationFontFamilyElement = null;\n this.annotationFontSizeElement = null;\n this.annotationTextAlignElement = null;\n this.annotationTextColorElement = null;\n this.annotationTextPropertiesElement = null;\n this.annotationDeleteElement = null;\n this.annotationCloseElement = null;\n this.annotationCommentPanelElement = null;\n this.mobileToolbarContainerElement = null;\n this.mobileSearchPreviousOccurenceElement = null;\n this.mobileSearchNextOccurenceElement = null;\n this.cssClass = 'e-overlay';\n this.disableClass = ' e-overlay';\n this.editAnnotationButtonElement = null;\n this.pdfViewer = pdfviewer;\n this.pdfViewerBase = pdfViewerBase;\n this.findToolbarElements();\n }\n BlazorUiAdaptor.prototype.findToolbarElements = function () {\n this.totalPageElement = this.pdfViewerBase.getElement('_totalPage').children[0];\n this.currentPageBoxElementContainer = this.pdfViewerBase.getElement('_currentPageInput');\n this.currentPageBoxElement = this.pdfViewerBase.getElement('_currentPageInput').children[0].children[0];\n this.firstPageElement = this.pdfViewerBase.getElement('_firstPage');\n this.previousPageElement = this.pdfViewerBase.getElement('_previousPage');\n this.nextPageElement = this.pdfViewerBase.getElement('_nextPage');\n this.lastPageElement = this.pdfViewerBase.getElement('_lastPage');\n this.zommOutElement = this.pdfViewerBase.getElement('_zoomOut');\n this.zoomInElement = this.pdfViewerBase.getElement('_zoomIn');\n this.zoomDropDownElement = this.pdfViewerBase.getElement('_zoomDropDown');\n this.selectToolElement = this.pdfViewerBase.getElement('_selectTool');\n this.handToolElement = this.pdfViewerBase.getElement('_handTool');\n this.undoElement = this.pdfViewerBase.getElement('_undo');\n this.redoElement = this.pdfViewerBase.getElement('_redo');\n this.commentElement = this.pdfViewerBase.getElement('_comment');\n this.submitFormButton = this.pdfViewerBase.getElement('_submitFormButton');\n this.searchElement = this.pdfViewerBase.getElement('_search');\n this.annotationElement = this.pdfViewerBase.getElement('_annotation');\n this.editAnnotationButtonElement = this.annotationElement.children[0];\n this.editAnnotationButtonElement.classList.add('e-pv-tbar-btn');\n this.printElement = this.pdfViewerBase.getElement('_print');\n this.downloadElement = this.pdfViewerBase.getElement('_download');\n this.highlightElement = this.pdfViewerBase.getElement('_highLight');\n this.underlineElement = this.pdfViewerBase.getElement('_underline');\n this.strikeThroughElement = this.pdfViewerBase.getElement('_strikethrough');\n this.shapeElement = this.pdfViewerBase.getElement('_annotation_shapes');\n this.calibrateElement = this.pdfViewerBase.getElement('_annotation_calibrate');\n this.stampElement = this.pdfViewerBase.getElement('_annotation_stamp');\n this.freeTextElement = this.pdfViewerBase.getElement('_annotation_freeTextEdit');\n this.signatureElement = this.pdfViewerBase.getElement('_annotation_signature');\n this.inkElement = this.pdfViewerBase.getElement('_annotation_ink');\n // tslint:disable-next-line:max-line-length\n this.annotationFontSizeInputElement = this.pdfViewerBase.getElement('_annotation_fontsize').children[0].children[0];\n // tslint:disable-next-line:max-line-length\n this.annotationFontFamilyInputElement = this.pdfViewerBase.getElement('_annotation_fontname').children[0].children[0];\n this.annotationColorElement = this.pdfViewerBase.getElement('_annotation_color');\n this.annotationStrokeColorElement = this.pdfViewerBase.getElement('_annotation_stroke');\n this.annotationThicknessElement = this.pdfViewerBase.getElement('_annotation_thickness');\n this.annotationOpacityElement = this.pdfViewerBase.getElement('_annotation_opacity');\n this.annotationFontColorElement = this.pdfViewerBase.getElement('_annotation_textcolor');\n this.annotationFontFamilyElement = this.pdfViewerBase.getElement('_annotation_fontname');\n this.annotationFontSizeElement = this.pdfViewerBase.getElement('_annotation_fontsize');\n this.annotationTextAlignElement = this.pdfViewerBase.getElement('_annotation_textalign');\n this.annotationTextColorElement = this.pdfViewerBase.getElement('_annotation_textcolor');\n this.annotationTextPropertiesElement = this.pdfViewerBase.getElement('_annotation_textproperties');\n this.annotationDeleteElement = this.pdfViewerBase.getElement('_annotation_delete');\n this.annotationCommentPanelElement = this.pdfViewerBase.getElement('_annotation_commentPanel');\n this.annotationCloseElement = this.pdfViewerBase.getElement('_annotation_close');\n this.mobileToolbarContainerElement = this.pdfViewerBase.getElement('_mobileToolbarContainer');\n this.mobileSearchPreviousOccurenceElement = this.pdfViewerBase.getElement('_prev_occurrence');\n this.mobileSearchNextOccurenceElement = this.pdfViewerBase.getElement('_next_occurrence');\n };\n /**\n * Update the total page.\n * @returns {void}\n */\n BlazorUiAdaptor.prototype.updateTotalPage = function () {\n this.totalPageElement.textContent = this.pdfViewer.localeObj.getConstant('of') + this.pdfViewerBase.pageCount.toString();\n };\n /**\n * Update current page.\n * @param {number} pageNumber - The pageNumber.\n * @returns {void}\n */\n BlazorUiAdaptor.prototype.updateCurrentPage = function (pageNumber) {\n this.currentPageBoxElement.value = pageNumber.toString();\n };\n /**\n * Load the PDF document.\n * @returns {void}\n */\n BlazorUiAdaptor.prototype.loadDocument = function () {\n if (this.pdfViewer.enableNavigation) {\n this.currentPageBoxElementContainer.classList.remove(this.cssClass);\n this.currentPageBoxElement.value = '1';\n this.totalPageElement.textContent = this.pdfViewer.localeObj.getConstant('of') + this.pdfViewerBase.pageCount.toString();\n if (!this.isEnabled(this.firstPageElement)) {\n this.firstPageElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.previousPageElement)) {\n this.previousPageElement.className += this.disableClass;\n }\n this.nextPageElement.classList.remove(this.cssClass);\n this.lastPageElement.classList.remove(this.cssClass);\n if (this.pdfViewerBase.pageCount === 1) {\n if (!this.nextPageElement.classList.contains(this.cssClass)) {\n this.nextPageElement.className += this.disableClass;\n }\n if (!this.lastPageElement.classList.contains(this.cssClass)) {\n this.lastPageElement.className += this.disableClass;\n }\n }\n }\n if (this.pdfViewer.enableMagnification) {\n this.zoomInElement.classList.remove(this.cssClass);\n this.zommOutElement.classList.remove(this.cssClass);\n this.zoomDropDownElement.classList.remove(this.cssClass);\n }\n if (this.pdfViewer.enableTextSelection) {\n this.selectToolElement.classList.remove(this.cssClass);\n this.selectItem(this.pdfViewer.toolbar.SelectToolElement);\n }\n this.handToolElement.classList.remove(this.cssClass);\n if (this.pdfViewer.enableStickyNotesAnnotation) {\n this.commentElement.classList.remove(this.cssClass);\n }\n if (this.pdfViewer.enableTextSearch) {\n this.searchElement.classList.remove(this.cssClass);\n }\n if (this.pdfViewer.isFormFieldDocument) {\n this.submitFormButton.classList.remove(this.cssClass);\n }\n if (this.pdfViewer.enableAnnotation && this.pdfViewer.enableAnnotationToolbar) {\n this.annotationElement.classList.remove(this.cssClass);\n }\n if (this.pdfViewer.enablePrint) {\n this.printElement.classList.remove(this.cssClass);\n }\n if (this.pdfViewer.enableDownload) {\n this.downloadElement.classList.remove(this.cssClass);\n }\n if (this.pdfViewer.enableAnnotation && this.pdfViewer.enableTextMarkupAnnotation) {\n this.highlightElement.classList.remove(this.cssClass);\n this.underlineElement.classList.remove(this.cssClass);\n this.strikeThroughElement.classList.remove(this.cssClass);\n }\n if (this.pdfViewer.enableAnnotation && this.pdfViewer.enableShapeAnnotation) {\n this.shapeElement.classList.remove(this.cssClass);\n }\n if (this.pdfViewer.enableAnnotation && this.pdfViewer.enableMeasureAnnotation) {\n this.calibrateElement.classList.remove(this.cssClass);\n }\n if (this.pdfViewer.enableAnnotation && this.pdfViewer.enableStampAnnotations) {\n this.stampElement.classList.remove(this.cssClass);\n }\n if (this.pdfViewer.enableFreeText) {\n this.freeTextElement.classList.remove(this.cssClass);\n }\n if (this.pdfViewer.enableHandwrittenSignature) {\n this.signatureElement.classList.remove(this.cssClass);\n }\n if (this.pdfViewer.enableInkAnnotation) {\n this.inkElement.classList.remove(this.cssClass);\n }\n if (this.pdfViewer.enableCommentPanel) {\n this.annotationCommentPanelElement.classList.remove(this.cssClass);\n }\n };\n BlazorUiAdaptor.prototype.selectItem = function (element) {\n if (element) {\n element.classList.add(\"e-pv-select\");\n }\n };\n BlazorUiAdaptor.prototype.deselectItem = function (element) {\n if (element) {\n element.classList.remove(\"e-pv-select\");\n }\n };\n BlazorUiAdaptor.prototype.showAnnotationToolbar = function (isToolbarVisible) {\n this.pdfViewer.toolbar.annotationToolbarModule.adjustViewer(isToolbarVisible[0]);\n if (isToolbarVisible[0]) {\n this.pdfViewer.toolbar.selectItem(this.editAnnotationButtonElement);\n }\n else {\n this.pdfViewer.toolbar.deSelectItem(this.editAnnotationButtonElement);\n this.pdfViewerBase.focusViewerContainer();\n }\n };\n BlazorUiAdaptor.prototype.closeAnnotationToolbar = function () {\n this.pdfViewer.toolbar.annotationToolbarModule.adjustViewer(false);\n this.pdfViewer.toolbar.deSelectItem(this.editAnnotationButtonElement);\n this.pdfViewerBase.navigationPane.closeCommentPanelContainer();\n };\n /**\n * Reset the toolbar.\n * @returns {void}\n */\n BlazorUiAdaptor.prototype.resetToolbar = function () {\n if (this.pdfViewer.enableToolbar) {\n this.currentPageBoxElement.value = '0';\n this.totalPageElement.textContent = this.pdfViewer.localeObj.getConstant('of') + '0';\n if (!this.isEnabled(this.currentPageBoxElementContainer)) {\n this.currentPageBoxElementContainer.className += this.disableClass;\n }\n if (!this.isEnabled(this.firstPageElement)) {\n this.firstPageElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.previousPageElement)) {\n this.previousPageElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.nextPageElement)) {\n this.nextPageElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.lastPageElement)) {\n this.lastPageElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.zoomInElement)) {\n this.zoomInElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.zommOutElement)) {\n this.zommOutElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.zoomDropDownElement)) {\n this.zoomDropDownElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.selectToolElement)) {\n this.selectToolElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.handToolElement)) {\n this.handToolElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.undoElement)) {\n this.undoElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.redoElement)) {\n this.redoElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.commentElement)) {\n this.commentElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.searchElement)) {\n this.searchElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.submitFormButton)) {\n this.submitFormButton.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationElement)) {\n this.annotationElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.printElement)) {\n this.printElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.downloadElement)) {\n this.downloadElement.className += this.disableClass;\n }\n }\n if (this.pdfViewer.enableAnnotationToolbar) {\n if (!this.isEnabled(this.highlightElement)) {\n this.highlightElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.underlineElement)) {\n this.underlineElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.strikeThroughElement)) {\n this.strikeThroughElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.shapeElement)) {\n this.shapeElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.calibrateElement)) {\n this.calibrateElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.stampElement)) {\n this.stampElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.freeTextElement)) {\n this.freeTextElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.signatureElement)) {\n this.signatureElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.inkElement)) {\n this.inkElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationFontFamilyElement)) {\n this.annotationFontFamilyElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationFontSizeElement)) {\n this.annotationFontSizeElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationTextColorElement)) {\n this.annotationTextColorElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationTextAlignElement)) {\n this.annotationTextAlignElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationTextPropertiesElement)) {\n this.annotationTextPropertiesElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationColorElement)) {\n this.annotationColorElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationStrokeColorElement)) {\n this.annotationStrokeColorElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationThicknessElement)) {\n this.annotationThicknessElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationOpacityElement)) {\n this.annotationOpacityElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationDeleteElement)) {\n this.annotationDeleteElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationCommentPanelElement)) {\n this.annotationCommentPanelElement.className += this.disableClass;\n }\n }\n };\n /**\n * When annotation selection changed.\n * @param {boolean} currentPageNumber - The current page number.\n * @returns {void}\n */\n BlazorUiAdaptor.prototype.EnableDeleteOption = function (isEnable) {\n if (this.annotationDeleteElement !== null) {\n if (isEnable) {\n this.annotationDeleteElement.classList.remove(this.cssClass);\n }\n else {\n if (!this.isEnabled(this.annotationDeleteElement)) {\n this.annotationDeleteElement.className += this.disableClass;\n }\n }\n }\n };\n /**\n * when the page changes.\n * @param {number} currentPageNumber - The current page number.\n * @returns {void}\n */\n BlazorUiAdaptor.prototype.pageChanged = function (currentPageNumber) {\n if (this.pdfViewer.enableNavigation) {\n this.currentPageBoxElement.value = currentPageNumber.toString();\n }\n if (currentPageNumber === this.pdfViewer.pageCount) {\n if (!this.isEnabled(this.nextPageElement)) {\n this.nextPageElement.className += this.disableClass;\n }\n this.previousPageElement.classList.remove(this.cssClass);\n if (!this.isEnabled(this.lastPageElement)) {\n this.lastPageElement.className += this.disableClass;\n }\n this.firstPageElement.classList.remove(this.cssClass);\n }\n if (currentPageNumber < this.pdfViewer.pageCount && currentPageNumber !== 1) {\n this.firstPageElement.classList.remove(this.cssClass);\n this.previousPageElement.classList.remove(this.cssClass);\n this.nextPageElement.classList.remove(this.cssClass);\n this.lastPageElement.classList.remove(this.cssClass);\n }\n if (currentPageNumber === 1) {\n this.nextPageElement.classList.remove(this.cssClass);\n this.lastPageElement.classList.remove(this.cssClass);\n if (!this.isEnabled(this.firstPageElement)) {\n this.firstPageElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.previousPageElement)) {\n this.previousPageElement.className += this.disableClass;\n }\n }\n };\n /**\n * @param {string} item - The current item.\n * @param {boolean} enable - To enable the item or not.\n * @returns {void}\n */\n BlazorUiAdaptor.prototype.updateUndoRedoButton = function (item, enable) {\n if (item === 'undo') {\n if (enable) {\n this.undoElement.classList.remove(this.cssClass);\n }\n else {\n if (!this.isEnabled(this.undoElement)) {\n this.undoElement.className += this.disableClass;\n }\n }\n }\n if (item === 'redo') {\n if (enable) {\n this.redoElement.classList.remove(this.cssClass);\n }\n else {\n if (!this.isEnabled(this.redoElement)) {\n this.redoElement.className += this.disableClass;\n }\n }\n }\n };\n /**\n * @returns {void}\n */\n BlazorUiAdaptor.prototype.disableUndoRedoButton = function () {\n if (!this.isEnabled(this.undoElement)) {\n this.undoElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.redoElement)) {\n this.redoElement.className += this.disableClass;\n }\n };\n /**\n * @returns {void}\n */\n BlazorUiAdaptor.prototype.enableTextMarkupAnnotationPropertiesTools = function (isEnable) {\n if (isEnable) {\n this.annotationColorElement.classList.remove(this.cssClass);\n this.annotationOpacityElement.classList.remove(this.cssClass);\n }\n else {\n if (!this.isEnabled(this.annotationOpacityElement)) {\n this.annotationOpacityElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationColorElement)) {\n this.annotationColorElement.className += this.disableClass;\n }\n }\n if (!this.isEnabled(this.annotationFontColorElement)) {\n this.annotationFontColorElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationFontFamilyElement)) {\n this.annotationFontFamilyElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationFontSizeElement)) {\n this.annotationFontSizeElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationTextAlignElement)) {\n this.annotationTextAlignElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationTextPropertiesElement)) {\n this.annotationTextPropertiesElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationStrokeColorElement)) {\n this.annotationStrokeColorElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationThicknessElement)) {\n this.annotationThicknessElement.className += this.disableClass;\n }\n };\n /**\n * @param {boolean} isEnable - To enable the item or not.\n * @param {boolean} isProperitiesChange - To enable the item or not.\n * @returns {void}\n */\n BlazorUiAdaptor.prototype.enableAnnotationPropertiesTool = function (isEnable, isProperitiesChange) {\n if (isProperitiesChange) {\n if (isEnable) {\n this.annotationColorElement.classList.remove(this.cssClass);\n this.annotationStrokeColorElement.classList.remove(this.cssClass);\n this.annotationThicknessElement.classList.remove(this.cssClass);\n this.annotationOpacityElement.classList.remove(this.cssClass);\n if (this.pdfViewer.enableShapeLabel) {\n this.annotationFontColorElement.classList.remove(this.cssClass);\n this.annotationFontFamilyElement.classList.remove(this.cssClass);\n this.annotationFontSizeElement.classList.remove(this.cssClass);\n }\n if (!this.isEnabled(this.annotationTextAlignElement)) {\n this.annotationTextAlignElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationTextPropertiesElement)) {\n this.annotationTextPropertiesElement.className += this.disableClass;\n }\n }\n else {\n if (!this.isEnabled(this.annotationColorElement)) {\n this.annotationColorElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationStrokeColorElement)) {\n this.annotationStrokeColorElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationThicknessElement)) {\n this.annotationThicknessElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationOpacityElement)) {\n this.annotationOpacityElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationDeleteElement)) {\n this.annotationDeleteElement.className += this.disableClass;\n }\n }\n }\n };\n /**\n * @param {boolean} isEnable - To enable the item or not.\n * @param {boolean} isProperitiesChange - To enable the item or not.\n * @returns {void}\n */\n BlazorUiAdaptor.prototype.enableFreeTextAnnotationPropertiesTools = function (isEnable, isProperitiesChange) {\n if (isProperitiesChange && isEnable) {\n this.annotationColorElement.classList.remove(this.cssClass);\n this.annotationStrokeColorElement.classList.remove(this.cssClass);\n this.annotationThicknessElement.classList.remove(this.cssClass);\n this.annotationOpacityElement.classList.remove(this.cssClass);\n this.annotationFontColorElement.classList.remove(this.cssClass);\n this.annotationFontFamilyElement.classList.remove(this.cssClass);\n this.annotationFontSizeElement.classList.remove(this.cssClass);\n this.annotationTextAlignElement.classList.remove(this.cssClass);\n this.annotationTextPropertiesElement.classList.remove(this.cssClass);\n this.annotationDeleteElement.classList.remove(this.cssClass);\n this.annotationCommentPanelElement.classList.remove(this.cssClass);\n }\n };\n /**\n * @param {boolean} isEnable - To enable the item or not.\n * @param {boolean} isPropertiesChange - To enable the item or not.\n * @returns {void}\n */\n BlazorUiAdaptor.prototype.enableStampAnnotationPropertiesTools = function (isEnable, isPropertiesChange) {\n if (isEnable) {\n this.annotationOpacityElement.classList.remove(this.cssClass);\n this.annotationDeleteElement.classList.remove(this.cssClass);\n this.annotationCommentPanelElement.classList.remove(this.cssClass);\n }\n else {\n if (!this.isEnabled(this.annotationOpacityElement)) {\n this.annotationOpacityElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationDeleteElement)) {\n this.annotationDeleteElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationCommentPanelElement)) {\n this.annotationCommentPanelElement.className += this.disableClass;\n }\n }\n if (!this.isEnabled(this.annotationColorElement)) {\n this.annotationColorElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationStrokeColorElement)) {\n this.annotationStrokeColorElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationThicknessElement)) {\n this.annotationThicknessElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationOpacityElement)) {\n this.annotationOpacityElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationFontColorElement)) {\n this.annotationFontColorElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationFontFamilyElement)) {\n this.annotationFontFamilyElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationFontSizeElement)) {\n this.annotationFontSizeElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationTextAlignElement)) {\n this.annotationTextAlignElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationTextPropertiesElement)) {\n this.annotationTextPropertiesElement.className += this.disableClass;\n }\n };\n /**\n * @param {boolean} isEnable - To enable the item or not.\n * @param {boolean} isProperitiesChange - To enable the item or not.\n * @returns {void}\n */\n BlazorUiAdaptor.prototype.enableSignaturePropertiesTools = function (isEnable, isProperitiesChange) {\n if (isEnable) {\n this.annotationStrokeColorElement.classList.remove(this.cssClass);\n this.annotationThicknessElement.classList.remove(this.cssClass);\n this.annotationOpacityElement.classList.remove(this.cssClass);\n this.annotationDeleteElement.classList.remove(this.cssClass);\n this.annotationCommentPanelElement.classList.remove(this.cssClass);\n }\n else {\n if (!this.isEnabled(this.annotationStrokeColorElement)) {\n this.annotationStrokeColorElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationThicknessElement)) {\n this.annotationThicknessElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationOpacityElement)) {\n this.annotationOpacityElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationDeleteElement)) {\n this.annotationDeleteElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationCommentPanelElement)) {\n this.annotationCommentPanelElement.className += this.disableClass;\n }\n }\n if (!this.isEnabled(this.annotationColorElement)) {\n this.annotationColorElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationFontColorElement)) {\n this.annotationFontColorElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationFontFamilyElement)) {\n this.annotationFontFamilyElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationFontSizeElement)) {\n this.annotationFontSizeElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationTextAlignElement)) {\n this.annotationTextAlignElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationTextPropertiesElement)) {\n this.annotationTextPropertiesElement.className += this.disableClass;\n }\n };\n /**\n * @returns {void}\n */\n BlazorUiAdaptor.prototype.annotationAdd = function () {\n if (!this.isEnabled(this.annotationColorElement)) {\n this.annotationColorElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationStrokeColorElement)) {\n this.annotationStrokeColorElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationThicknessElement)) {\n this.annotationThicknessElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationOpacityElement)) {\n this.annotationOpacityElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationFontColorElement)) {\n this.annotationFontColorElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationFontFamilyElement)) {\n this.annotationFontFamilyElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationFontSizeElement)) {\n this.annotationFontSizeElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationTextAlignElement)) {\n this.annotationTextAlignElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationTextPropertiesElement)) {\n this.annotationTextPropertiesElement.className += this.disableClass;\n }\n };\n /**\n * @returns {void}\n */\n BlazorUiAdaptor.prototype.annotationUnSelect = function () {\n if (!this.isEnabled(this.annotationColorElement)) {\n this.annotationColorElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationStrokeColorElement)) {\n this.annotationStrokeColorElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationThicknessElement)) {\n this.annotationThicknessElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationOpacityElement)) {\n this.annotationOpacityElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationFontColorElement)) {\n this.annotationFontColorElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationFontFamilyElement)) {\n this.annotationFontFamilyElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationFontSizeElement)) {\n this.annotationFontSizeElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationTextAlignElement)) {\n this.annotationTextAlignElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationTextPropertiesElement)) {\n this.annotationTextPropertiesElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationDeleteElement)) {\n this.annotationDeleteElement.className += this.disableClass;\n }\n };\n /**\n * @param {string} annotationType - The annotationType.\n * @returns {void}\n */\n BlazorUiAdaptor.prototype.annotationSelect = function (annotationType) {\n if (annotationType === 'FreeText') {\n this.annotationColorElement.classList.remove(this.cssClass);\n this.annotationStrokeColorElement.classList.remove(this.cssClass);\n this.annotationThicknessElement.classList.remove(this.cssClass);\n this.annotationOpacityElement.classList.remove(this.cssClass);\n this.annotationFontColorElement.classList.remove(this.cssClass);\n this.annotationFontFamilyElement.classList.remove(this.cssClass);\n this.annotationFontSizeElement.classList.remove(this.cssClass);\n this.annotationTextAlignElement.classList.remove(this.cssClass);\n this.annotationTextPropertiesElement.classList.remove(this.cssClass);\n }\n if (annotationType === 'Shape' || annotationType === 'Measure') {\n this.annotationColorElement.classList.remove(this.cssClass);\n this.annotationStrokeColorElement.classList.remove(this.cssClass);\n this.annotationThicknessElement.classList.remove(this.cssClass);\n this.annotationOpacityElement.classList.remove(this.cssClass);\n if (!this.isEnabled(this.annotationFontColorElement)) {\n this.annotationFontColorElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationFontFamilyElement)) {\n this.annotationFontFamilyElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationFontSizeElement)) {\n this.annotationFontSizeElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationTextAlignElement)) {\n this.annotationTextAlignElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationTextPropertiesElement)) {\n this.annotationTextPropertiesElement.className += this.disableClass;\n }\n }\n if (annotationType === 'TextMarkup') {\n this.annotationColorElement.classList.remove(this.cssClass);\n if (!this.isEnabled(this.annotationStrokeColorElement)) {\n this.annotationStrokeColorElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationThicknessElement)) {\n this.annotationThicknessElement.className += this.disableClass;\n }\n this.annotationOpacityElement.classList.remove(this.cssClass);\n if (!this.isEnabled(this.annotationFontColorElement)) {\n this.annotationFontColorElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationFontFamilyElement)) {\n this.annotationFontFamilyElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationFontSizeElement)) {\n this.annotationFontSizeElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationTextAlignElement)) {\n this.annotationTextAlignElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.annotationTextPropertiesElement)) {\n this.annotationTextPropertiesElement.className += this.disableClass;\n }\n }\n this.annotationDeleteElement.classList.remove(this.cssClass);\n this.annotationCommentPanelElement.classList.remove(this.cssClass);\n };\n /**\n * @param {string} fontFamily - The fontFamily.\n * @returns {void}\n */\n BlazorUiAdaptor.prototype.updateFontFamilyInIcon = function (fontFamily) {\n this.annotationFontFamilyInputElement.value = fontFamily;\n };\n /**\n * @param {number} fontSize - The fontSize.\n * @returns {void}\n */\n BlazorUiAdaptor.prototype.updateFontSizeInIcon = function (fontSize) {\n var fontValue = fontSize.toString() + 'px';\n this.annotationFontSizeInputElement.value = fontValue;\n };\n /**\n * @param {boolean} isEnable - To enable or disable.\n * @returns {void}\n */\n BlazorUiAdaptor.prototype.enableSearchItems = function (isEnable) {\n if (isEnable) {\n this.mobileSearchPreviousOccurenceElement.classList.remove(this.cssClass);\n this.mobileSearchNextOccurenceElement.classList.remove(this.cssClass);\n }\n else {\n if (!this.isEnabled(this.mobileSearchPreviousOccurenceElement)) {\n this.mobileSearchPreviousOccurenceElement.className += this.disableClass;\n }\n if (!this.isEnabled(this.mobileSearchNextOccurenceElement)) {\n this.mobileSearchNextOccurenceElement.className += this.disableClass;\n }\n }\n };\n /**\n * @param {boolean} isTapHidden - To enable or disable.\n * @returns {void}\n */\n BlazorUiAdaptor.prototype.tapOnMobileDevice = function (isTapHidden) {\n if (this.mobileToolbarContainerElement != null) {\n if (isTapHidden) {\n this.mobileToolbarContainerElement.style.display = 'none';\n }\n else {\n this.mobileToolbarContainerElement.style.display = 'block';\n }\n }\n };\n /**\n * @param {HTMLElement} element - The HTMLElement.\n * @returns {boolean} - Returns trur or false.\n */\n BlazorUiAdaptor.prototype.isEnabled = function (element) {\n return element.classList.contains(this.cssClass);\n };\n return BlazorUiAdaptor;\n}());\nexport { BlazorUiAdaptor };\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { createElement, Browser, isNullOrUndefined, isBlazor, Internationalization } from '@syncfusion/ej2-base';\nimport { Dialog } from '@syncfusion/ej2-popups';\nimport { TextLayer, ContextMenu, Signature, PdfFormFieldBase } from '../index';\nimport { NavigationPane } from './navigation-pane';\nimport { NumericTextBox } from '@syncfusion/ej2-inputs';\nimport { AjaxHandler } from '../index';\nimport { Point, Rect, identityMatrix, transformPointByMatrix, contains, rotateMatrix } from '@syncfusion/ej2-drawings';\nimport { SelectTool, MoveTool, ResizeTool, ConnectTool, NodeDrawingTool, PolygonDrawingTool, LineTool, RotateTool, StampTool, InkDrawingTool } from '../drawing/tools';\nimport { Selector } from '../drawing/selector';\nimport { ActiveElements, findActiveElement } from '../drawing/action';\nimport { renderAdornerLayer } from '../drawing/dom-util';\nimport { AnnotationDataFormat } from './types';\nimport { cloneObject } from '../drawing/drawing-util';\nimport { BlazorContextMenu } from './blazor-context-menu';\nimport { createSpinner, showSpinner, hideSpinner } from './spinner';\nimport { BlazorUiAdaptor } from './blazor-ui-adaptor';\n/**\n * The `PdfViewerBase` module is used to handle base methods of PDF viewer.\n *\n * @hidden\n */\nvar PdfViewerBase = /** @class */ (function () {\n /**\n * Initialize the constructor of PDFViewerBase\n *\n * @param { PdfViewer } viewer - Specified PdfViewer class.\n */\n function PdfViewerBase(viewer) {\n var _this = this;\n /**\n * @private\n */\n this.pageSize = [];\n /**\n * @private\n */\n this.pageCount = 0;\n /**\n * @private\n */\n this.isReRenderRequired = true;\n /**\n * @private\n */\n this.currentPageNumber = 0;\n /**\n * @private\n */\n this.activeElements = new ActiveElements();\n /**\n * @private\n */\n this.mouseDownEvent = null;\n /**\n * @private\n */\n this.isDocumentLoaded = false;\n /**\n * @private\n */\n this.renderedPagesList = [];\n /**\n * @private\n */\n this.pageGap = 8;\n /**\n * @private\n */\n this.signatureAdded = false;\n /**\n * @private\n */\n this.isFreeTextSelected = false;\n this.pageLeft = 5;\n this.sessionLimit = 1000;\n this.pageStopValue = 300;\n /**\n * @private\n */\n this.toolbarHeight = 56;\n this.pageLimit = 0;\n this.previousPage = 0;\n this.isViewerMouseDown = false;\n this.isViewerMouseWheel = false;\n this.scrollPosition = 0;\n this.sessionStorage = [];\n /**\n * @private\n */\n this.isLoadedFormFieldAdded = false;\n this.pointerCount = 0;\n this.pointersForTouch = [];\n /**\n * @private\n */\n this.isPasswordAvailable = false;\n /**\n * @private\n */\n this.passwordData = '';\n /**\n * @private\n */\n this.reRenderedCount = 0;\n this.mouseX = 0;\n this.mouseY = 0;\n /**\n * @private\n */\n this.mouseLeft = 0;\n /**\n * @private\n */\n this.mouseTop = 0;\n this.touchClientX = 0;\n this.touchClientY = 0;\n this.previousTime = 0;\n this.currentTime = 0;\n this.isTouchScrolled = false;\n this.isLongTouchPropagated = false;\n // eslint-disable-next-line\n this.longTouchTimer = null;\n this.isViewerContainerDoubleClick = false;\n // eslint-disable-next-line\n this.dblClickTimer = null;\n /**\n * @private\n */\n this.pinchZoomStorage = [];\n /**\n * @private\n */\n this.isTextSelectionDisabled = false;\n /**\n * @private\n */\n this.isPanMode = false;\n this.dragX = 0;\n this.dragY = 0;\n this.isScrollbarMouseDown = false;\n this.scrollX = 0;\n this.scrollY = 0;\n this.ispageMoved = false;\n this.isThumb = false;\n this.isTapHidden = false;\n // eslint-disable-next-line\n this.singleTapTimer = null;\n this.tapCount = 0;\n this.inputTapCount = 0;\n /**\n * @private\n */\n this.isInitialLoaded = false;\n this.annotationPageList = [];\n this.importPageList = [];\n /**\n * @private\n */\n this.isImportAction = false;\n this.isImportedAnnotation = false;\n /**\n * @private\n */\n this.isAnnotationCollectionRemoved = false;\n /**\n * @private\n */\n this.tool = null;\n // eslint-disable-next-line\n this.action = 'Select';\n /**\n * @private\n */\n this.eventArgs = null;\n /**\n * @private\n */\n this.inAction = false;\n /**\n * @private\n */\n this.isMouseDown = false;\n /**\n * @private\n */\n this.isStampMouseDown = false;\n /**\n * @private\n */\n this.stampAdded = false;\n /**\n * @private\n */\n this.customStampCount = 0;\n /**\n * @private\n */\n this.isDynamicStamp = false;\n /**\n * @private\n */\n this.isMixedSizeDocument = false;\n /**\n * @private\n */\n this.highestWidth = 0;\n /**\n * @private\n */\n this.highestHeight = 0;\n /**\n * @private\n */\n this.customStampCollection = [];\n /**\n * @private\n */\n this.isAlreadyAdded = false;\n /**\n * @private\n */\n this.isWebkitMobile = false;\n /**\n * @private\n */\n this.isFreeTextContextMenu = false;\n /**\n * @private\n */\n this.isSelection = false;\n /**\n * @private\n */\n this.isAddAnnotation = false;\n /**\n * @private\n */\n // eslint-disable-next-line\n this.annotationComments = null;\n /**\n * @private\n */\n this.isToolbarSignClicked = false;\n /**\n * @private\n */\n this.signatureCount = 0;\n /**\n * @private\n */\n this.isSignatureAdded = false;\n /**\n * @private\n */\n this.isNewSignatureAdded = false;\n /**\n * @private\n */\n this.isInitialPageMode = false;\n /**\n * @private\n */\n // eslint-disable-next-line\n this.documentAnnotationCollections = null;\n /**\n * @private\n */\n this.annotationRenderredList = [];\n /**\n * @private\n */\n // eslint-disable-next-line\n this.annotationStorage = {};\n /**\n * @private\n */\n // eslint-disable-next-line\n this.formFieldStorage = {};\n /**\n * @private\n */\n this.isStorageExceed = false;\n /**\n * @private\n */\n this.isFormStorageExceed = false;\n /**\n * @private\n */\n this.isNewStamp = false;\n /**\n * @private\n */\n // eslint-disable-next-line\n this.downloadCollections = {};\n /**\n * @private\n */\n this.isAnnotationAdded = false;\n /**\n * @private\n */\n // eslint-disable-next-line\n this.annotationEvent = null;\n /**\n * @private\n */\n this.isAnnotationDrawn = false;\n /**\n * @private\n */\n this.isAnnotationSelect = false;\n /**\n * @private\n */\n this.isAnnotationMouseDown = false;\n /**\n * @private\n */\n this.isAnnotationMouseMove = false;\n /**\n * @private\n */\n this.validateForm = false;\n /**\n * @private\n */\n this.isMinimumZoom = false;\n /**\n * @private\n */\n this.documentLoaded = false;\n this.tileRenderCount = 0;\n this.tileRequestCount = 0;\n /**\n * @private\n */\n this.isTileImageRendered = false;\n this.isDataExits = false;\n this.requestLists = [];\n this.tilerequestLists = [];\n this.textrequestLists = [];\n this.renderThumbnailImages = false;\n /**\n * @private\n */\n this.isInkAdded = false;\n /**\n * @private\n */\n this.inkCount = 0;\n /**\n * @private\n */\n this.isAddedSignClicked = false;\n /**\n * @private\n */\n this.imageCount = 0;\n /**\n * @private\n */\n this.isMousedOver = false;\n /**\n * @private\n */\n this.isFormFieldSelect = false;\n /**\n * @private\n */\n this.isFormFieldMouseDown = false;\n /**\n * @private\n */\n this.isFormFieldMouseMove = false;\n /**\n * @private\n */\n this.isFormFieldMousedOver = false;\n /**\n * @private\n */\n this.isPassword = false;\n /**\n * @private\n */\n // eslint-disable-next-line\n this.digitalSignaturePages = [];\n this.isDrawnCompletely = false;\n /**\n * @private\n */\n this.isAddComment = false;\n /**\n * @private\n */\n this.drawSignatureWithTool = false;\n /**\n * @private\n */\n // eslint-disable-next-line\n this.formFieldCollection = [];\n /**\n * @private\n */\n // eslint-disable-next-line\n this.nonFillableFields = {};\n /**\n * @private\n */\n this.isInitialField = false;\n /**\n * @private\n */\n this.isTouchDesignerMode = false;\n /**\n * @private\n */\n this.isPrint = false;\n /**\n * @private\n */\n this.isJsonImported = false;\n /**\n * @private\n */\n this.isJsonExported = false;\n /**\n * @private\n */\n this.isPageRotated = false;\n this.downloadFileName = '';\n /**\n * @private\n */\n // eslint-disable-next-line\n this.isFocusField = false;\n /**\n * @private\n */\n // eslint-disable-next-line\n this.isTouchPad = false;\n /**\n * @private\n */\n // eslint-disable-next-line\n this.isMacGestureActive = false;\n /**\n * @private\n */\n // eslint-disable-next-line\n this.macGestureStartScale = 0;\n /**\n * @private\n */\n // eslint-disable-next-line\n this.zoomInterval = 5;\n /**\n * @private\n */\n // eslint-disable-next-line\n this.focusField = [];\n /**\n * EJ2CORE-813 - This flag is represent current device is 'iPad' or 'iPhone' or'iPod' device.\n * @private\n */\n // eslint-disable-next-line\n this.isDeviceiOS = (['iPad Simulator', 'iPhone Simulator', 'iPod Simulator', 'iPad', 'iPhone', 'iPod'].includes(navigator.platform) || (navigator.userAgent.includes(\"Mac\") && \"ontouchend\" in document));\n /**\n * @private\n */\n // eslint-disable-next-line\n this.isMacSafari = navigator.userAgent.indexOf(\"Safari\") > -1 && navigator.userAgent.indexOf(\"Chrome\") === -1 && !this.isDeviceiOS;\n /**\n * @returns {void}\n */\n this.clearSessionStorage = function () {\n var documentId = '';\n if (Browser.isIE || Browser.info.name === 'edge') {\n documentId = decodeURI(window.sessionStorage.getItem('hashId'));\n }\n else {\n documentId = window.sessionStorage.getItem('hashId');\n }\n var documentLiveCount = window.sessionStorage.getItem('documentLiveCount');\n if (documentId !== null) {\n // eslint-disable-next-line max-len\n var jsonObject = { hashId: documentId, documentLiveCount: documentLiveCount, action: 'Unload', elementId: _this.pdfViewer.element.id };\n var actionName = window.sessionStorage.getItem('unload');\n var serviceUrl = window.sessionStorage.getItem('serviceURL');\n if (serviceUrl && serviceUrl !== 'undefined') {\n // eslint-disable-next-line\n var browserSupportsKeepalive = 'keepalive' in new Request('');\n if (browserSupportsKeepalive) {\n // eslint-disable-next-line\n var headerValue = _this.setUnloadRequestHeaders();\n var credentialsData = _this.pdfViewer.ajaxRequestSettings.withCredentials ? 'include' : 'omit';\n fetch(serviceUrl + '/' + actionName, {\n method: 'POST',\n credentials: credentialsData,\n headers: headerValue,\n body: JSON.stringify(jsonObject)\n });\n }\n }\n else if (isBlazor()) {\n _this.clearCache(actionName, jsonObject, _this);\n }\n }\n window.sessionStorage.removeItem(_this.documentId + '_annotations_textMarkup');\n window.sessionStorage.removeItem(_this.documentId + '_annotations_shape');\n window.sessionStorage.removeItem(_this.documentId + '_annotations_shape_measure');\n window.sessionStorage.removeItem(_this.documentId + '_annotations_stamp');\n window.sessionStorage.removeItem(_this.documentId + '_annotations_sticky');\n window.sessionStorage.removeItem(_this.documentId + '_annotations_freetext');\n window.sessionStorage.removeItem(_this.documentId + '_formfields');\n window.sessionStorage.removeItem(_this.documentId + '_formDesigner');\n window.sessionStorage.removeItem(_this.documentId + '_annotations_sign');\n window.sessionStorage.removeItem(_this.documentId + '_pagedata');\n window.sessionStorage.removeItem('hashId');\n window.sessionStorage.removeItem('documentLiveCount');\n window.sessionStorage.removeItem('currentDocument');\n window.sessionStorage.removeItem('serviceURL');\n window.sessionStorage.removeItem('unload');\n };\n /**\n * @private\n * @param {MouseEvent} event - Mouse event.\n * @returns {void}\n */\n this.onWindowResize = function (event) {\n var proxy = null;\n proxy = _this;\n if (_this.pdfViewer.enableRtl) {\n // eslint-disable-next-line max-len\n proxy.viewerContainer.style.right = (proxy.navigationPane.sideBarToolbar ? proxy.navigationPane.getViewerContainerLeft() : 0) + 'px';\n // eslint-disable-next-line max-len\n proxy.viewerContainer.style.left = (proxy.navigationPane.commentPanelContainer ? proxy.navigationPane.commentPanelContainer.offsetWidth : 0) + 'px';\n }\n else {\n // eslint-disable-next-line max-len\n proxy.viewerContainer.style.left = (proxy.navigationPane.sideBarToolbar ? proxy.navigationPane.getViewerContainerLeft() : 0) + 'px';\n // eslint-disable-next-line max-len\n proxy.viewerContainer.style.right = (proxy.navigationPane.commentPanelContainer ? proxy.navigationPane.commentPanelContainer.offsetWidth : 0) + 'px';\n }\n // eslint-disable-next-line\n var viewerElementWidth = (proxy.pdfViewer.element.clientWidth > 0 ? proxy.pdfViewer.element.clientWidth : proxy.pdfViewer.element.style.width);\n // eslint-disable-next-line\n var viewerWidth = (viewerElementWidth - (proxy.navigationPane.sideBarToolbar ? proxy.navigationPane.getViewerContainerLeft() : 0) - (proxy.navigationPane.commentPanelContainer ? proxy.navigationPane.getViewerContainerRight() : 0));\n proxy.viewerContainer.style.width = viewerWidth + 'px';\n if (proxy.pdfViewer.toolbarModule) {\n // eslint-disable-next-line\n var toolbarContainer = isBlazor() ? proxy.pdfViewer.element.querySelector('.e-pv-toolbar') : proxy.getElement('_toolbarContainer');\n var toolbarHeight = 0;\n var formDesignerToolbarHeight = 0;\n if (toolbarContainer) {\n toolbarHeight = toolbarContainer.getBoundingClientRect().height;\n }\n if (proxy.isAnnotationToolbarHidden() || (Browser.isDevice && !_this.pdfViewer.enableDesktopMode)) {\n if (toolbarHeight === 0) {\n if (_this.navigationPane.isNavigationToolbarVisible) {\n // eslint-disable-next-line\n var navigationToolbar = proxy.getElement('_navigationToolbar');\n toolbarHeight = navigationToolbar.getBoundingClientRect().height;\n }\n }\n if (!proxy.isFormDesignerToolbarHidded()) {\n var formDesignerToolbar = proxy.getElement('_formdesigner_toolbar');\n formDesignerToolbarHeight = formDesignerToolbar ? formDesignerToolbar.getBoundingClientRect().height : 0;\n }\n // eslint-disable-next-line max-len\n proxy.viewerContainer.style.height = proxy.updatePageHeight(proxy.pdfViewer.element.getBoundingClientRect().height, toolbarHeight + formDesignerToolbarHeight);\n }\n else {\n // eslint-disable-next-line\n var annotationToolbarContainer = isBlazor() ? proxy.pdfViewer.element.querySelector('.e-pv-annotation-toolbar') : proxy.getElement('_annotation_toolbar');\n var annotationToolbarHeight = 0;\n if (annotationToolbarContainer) {\n annotationToolbarHeight = annotationToolbarContainer.getBoundingClientRect().height;\n }\n // eslint-disable-next-line max-len\n proxy.viewerContainer.style.height = proxy.updatePageHeight(proxy.pdfViewer.element.getBoundingClientRect().height, toolbarHeight + annotationToolbarHeight);\n }\n }\n else {\n proxy.viewerContainer.style.height = proxy.updatePageHeight(proxy.pdfViewer.element.getBoundingClientRect().height, 0);\n }\n if (proxy.pdfViewer.bookmarkViewModule && (Browser.isDevice && !_this.pdfViewer.enableDesktopMode)) {\n var bookmarkContainer = proxy.getElement('_bookmarks_container');\n if (bookmarkContainer) {\n bookmarkContainer.style.height = proxy.updatePageHeight(proxy.pdfViewer.element.getBoundingClientRect().height, 0);\n }\n }\n if (proxy.viewerContainer.style.height === '0px') {\n if (proxy.pdfViewer.height.toString() === 'auto') {\n proxy.pdfViewer.height = 500;\n proxy.viewerContainer.style.height = proxy.pdfViewer.height + 'px';\n }\n else {\n proxy.viewerContainer.style.height = proxy.pdfViewer.element.style.height;\n }\n }\n if (proxy.viewerContainer.style.width === '0px') {\n if (proxy.pdfViewer.width.toString() === 'auto') {\n proxy.pdfViewer.width = 500;\n proxy.viewerContainer.style.width = proxy.pdfViewer.width + 'px';\n }\n else {\n proxy.viewerContainer.style.width = proxy.pdfViewer.element.style.width;\n }\n }\n proxy.pageContainer.style.width = proxy.viewerContainer.clientWidth + 'px';\n if (proxy.viewerContainer.clientWidth === 0) {\n proxy.pageContainer.style.width = proxy.pdfViewer.element.style.width;\n }\n if (!isBlazor()) {\n if (proxy.pdfViewer.toolbarModule) {\n // eslint-disable-next-line max-len\n proxy.pdfViewer.toolbarModule.onToolbarResize((proxy.navigationPane.sideBarToolbar ? proxy.navigationPane.getViewerMainContainerWidth() : proxy.pdfViewer.element.clientWidth));\n }\n }\n if (_this.pdfViewer.enableToolbar && _this.pdfViewer.thumbnailViewModule) {\n proxy.pdfViewer.thumbnailViewModule.gotoThumbnailImage(proxy.currentPageNumber - 1);\n }\n if (proxy.pdfViewer.textSearchModule && (!Browser.isDevice || _this.pdfViewer.enableDesktopMode)) {\n proxy.pdfViewer.textSearchModule.textSearchBoxOnResize();\n }\n if (viewerWidth !== 0) {\n if (!proxy.navigationPane.isBookmarkListOpen) {\n proxy.updateZoomValue();\n }\n }\n if (Browser.isDevice && !_this.pdfViewer.enableDesktopMode) {\n proxy.mobileScrollerContainer.style.left = (viewerWidth - parseFloat(proxy.mobileScrollerContainer.style.width)) + 'px';\n proxy.mobilePageNoContainer.style.left = (viewerWidth / 2) - (parseFloat(proxy.mobilePageNoContainer.style.width) / 2) + 'px';\n proxy.mobilePageNoContainer.style.top = (proxy.pdfViewer.element.clientHeight / 2) + 'px';\n proxy.updateMobileScrollerPosition();\n }\n else {\n proxy.navigationPane.setResizeIconTop();\n proxy.navigationPane.setCommentPanelResizeIconTop();\n if (event && event.type === 'resize') {\n proxy.signatureModule.updateCanvasSize();\n }\n }\n if (proxy.navigationPane.sideBarToolbar) {\n proxy.navigationPane.sideBarToolbar.style.height = proxy.viewerContainer.style.height;\n }\n };\n /**\n * @param {MouseEvent} event - The MouseEvent.\n * @returns {void}\n */\n this.viewerContainerOnMousedown = function (event) {\n _this.isFreeTextContextMenu = false;\n var isUpdate = false;\n _this.isSelection = true;\n var target = event.target;\n if (event.button === 0 && !_this.getPopupNoteVisibleStatus() && !_this.isClickedOnScrollBar(event, false)) {\n _this.isViewerMouseDown = true;\n // eslint-disable-next-line\n if (event.detail === 1 && target.className !== 'e-pdfviewer-formFields' && target.className !== 'free-text-input') {\n isUpdate = true;\n _this.focusViewerContainer(true);\n }\n _this.scrollPosition = _this.viewerContainer.scrollTop / _this.getZoomFactor();\n _this.mouseX = event.clientX;\n _this.mouseY = event.clientY;\n _this.mouseLeft = event.clientX;\n _this.mouseTop = event.clientY;\n // eslint-disable-next-line\n var isIE = !!document.documentMode;\n if (_this.pdfViewer.textSelectionModule && !_this.isClickedOnScrollBar(event, true) && !_this.isTextSelectionDisabled) {\n if (!isIE && target.className !== 'e-pdfviewer-formFields' && target.className !== 'e-pdfviewer-ListBox' && target.className !== 'e-pv-formfield-dropdown'\n && target.className !== 'e-pv-formfield-listbox') {\n event.preventDefault();\n }\n if (target.className !== 'e-pv-droplet') {\n _this.pdfViewer.textSelectionModule.clearTextSelection();\n }\n }\n }\n if (_this.isClickedOnScrollBar(event, false)) {\n _this.isViewerMouseDown = true;\n }\n if (_this.isPanMode) {\n _this.dragX = event.pageX;\n _this.dragY = event.pageY;\n // eslint-disable-next-line max-len\n if (_this.viewerContainer.contains(event.target) && (event.target !== _this.viewerContainer) && (event.target !== _this.pageContainer) && _this.isPanMode) {\n _this.viewerContainer.style.cursor = 'grabbing';\n }\n }\n if (_this.isShapeBasedAnnotationsEnabled() && (_this.isAnnotationDrawn || !(target.className === 'e-pv-page-container' || (target.className === 'foreign-object' && isNaN(_this.activeElements.activePageID))))) {\n _this.diagramMouseDown(event);\n }\n if (_this.pdfViewer.annotation && _this.pdfViewer.annotation.stickyNotesAnnotationModule.accordionContainer) {\n if (!isUpdate) {\n _this.pdfViewer.annotationModule.stickyNotesAnnotationModule.isEditableElement = false;\n _this.updateCommentPanel();\n isUpdate = true;\n }\n }\n if (isBlazor()) {\n _this.mouseDownHandler(event);\n }\n };\n /**\n * @param {MouseEvent} event - The MouseEvent.\n * @returns {void}\n */\n this.viewerContainerOnMouseup = function (event) {\n if (!_this.getPopupNoteVisibleStatus()) {\n if (_this.isViewerMouseDown) {\n if (_this.scrollHoldTimer) {\n clearTimeout(_this.scrollHoldTimer);\n _this.scrollHoldTimer = null;\n }\n if ((_this.scrollPosition * _this.getZoomFactor()) !== _this.viewerContainer.scrollTop) {\n _this.pageViewScrollChanged(_this.currentPageNumber);\n }\n }\n var isSignatureFieldReadOnly = false;\n if (event.target) {\n if (event.target.className == 'e-pv-show-designer-name' && event.target.id.split('_', 1) != '') {\n isSignatureFieldReadOnly = document.getElementById(event.target.id.split('_', 1)).disabled;\n }\n if (event.target.className == 'foreign-object' && event.target.children[0]) {\n isSignatureFieldReadOnly = event.target.children[0].disabled;\n }\n }\n if (isSignatureFieldReadOnly && _this.pdfViewer.annotation) {\n _this.pdfViewer.annotation.clearSelection();\n }\n if (_this.isShapeBasedAnnotationsEnabled() && !isSignatureFieldReadOnly && (_this.isAnnotationDrawn || _this.action !== \"DrawTool\")) {\n _this.diagramMouseUp(event);\n if (_this.pdfViewer.annotation) {\n _this.pdfViewer.annotation.onAnnotationMouseUp();\n }\n }\n if (_this.pdfViewer.selectedItems.formFields.length > 0) {\n // eslint-disable-next-line max-len\n if (!isNullOrUndefined(_this.pdfViewer.toolbar) && !isNullOrUndefined(_this.pdfViewer.toolbar.formDesignerToolbarModule) && !Browser.isDevice) {\n _this.pdfViewer.toolbar.formDesignerToolbarModule.showHideDeleteIcon(true);\n }\n }\n else {\n // eslint-disable-next-line max-len\n if (!isNullOrUndefined(_this.pdfViewer.toolbar) && !isNullOrUndefined(_this.pdfViewer.toolbar.formDesignerToolbarModule) && !Browser.isDevice) {\n _this.pdfViewer.toolbar.formDesignerToolbarModule.showHideDeleteIcon(false);\n }\n }\n _this.isSelection = false;\n // eslint-disable-next-line max-len\n var commentElement = document.getElementById(_this.pdfViewer.element.id + '_commantPanel');\n if (commentElement && commentElement.style.display === 'block') {\n if (_this.pdfViewer.selectedItems) {\n if (_this.pdfViewer.selectedItems.annotations.length !== 0) {\n // eslint-disable-next-line\n var accordionExpand = document.getElementById(_this.pdfViewer.element.id + '_accordionContainer' + _this.pdfViewer.currentPageNumber);\n if (accordionExpand) {\n accordionExpand.ej2_instances[0].expandItem(true);\n }\n // eslint-disable-next-line\n var commentsDiv = document.getElementById(_this.pdfViewer.selectedItems.annotations[0].annotName);\n if (commentsDiv) {\n if (!commentsDiv.classList.contains('e-pv-comments-border')) {\n commentsDiv.firstChild.click();\n }\n }\n }\n }\n }\n if (event.button === 0 && !_this.isClickedOnScrollBar(event, false)) {\n // 0 is for left button.\n var eventTarget_1 = event.target;\n var offsetX = event.clientX;\n var offsetY = event.clientY;\n var zoomFactor = _this.getZoomFactor();\n var pageIndex = _this.currentPageNumber;\n if (eventTarget_1) {\n // eslint-disable-next-line\n var pageString = eventTarget_1.id.split('_text_')[1] || eventTarget_1.id.split('_textLayer_')[1] || eventTarget_1.id.split('_annotationCanvas_')[1] || eventTarget_1.id.split('_pageDiv_')[1] || eventTarget_1.id.split('_freeText_')[1] || eventTarget_1.id.split('_')[1];\n // eslint-disable-next-line\n pageIndex = parseInt(pageString);\n if (isNaN(pageIndex)) {\n var formFieldsTargetId = _this.pdfViewer.formFieldCollection.filter(function (targetFormField) { return (targetFormField.id == eventTarget_1.id) || (targetFormField.id == eventTarget_1.id.split('_')[0]); });\n if (formFieldsTargetId.length > 0) {\n pageIndex = formFieldsTargetId[0].pageIndex;\n }\n }\n }\n var pageDiv = _this.getElement('_pageDiv_' + pageIndex);\n if (pageDiv) {\n var pageCurrentRect = pageDiv.getBoundingClientRect();\n offsetX = (event.clientX - pageCurrentRect.left) / zoomFactor;\n offsetY = (event.clientY - pageCurrentRect.top) / zoomFactor;\n }\n // eslint-disable-next-line max-len\n if (eventTarget_1 && eventTarget_1.classList && !eventTarget_1.classList.contains('e-pv-hyperlink') && !eventTarget_1.classList.contains('e-pv-page-container')) {\n // eslint-disable-next-line\n _this.pdfViewer.firePageClick(offsetX, offsetY, pageIndex + 1);\n if (_this.pdfViewer.formFieldsModule && !_this.pdfViewer.formDesignerModule) {\n _this.pdfViewer.formFieldsModule.removeFocus();\n }\n }\n if (_this.isTextMarkupAnnotationModule() && !_this.isToolbarInkClicked) {\n _this.pdfViewer.annotationModule.textMarkupAnnotationModule.onTextMarkupAnnotationMouseUp(event);\n }\n if (_this.pdfViewer.formDesignerModule && !_this.pdfViewer.annotationModule) {\n _this.pdfViewer.formDesignerModule.updateCanvas(pageIndex);\n }\n // eslint-disable-next-line max-len\n if (_this.viewerContainer.contains(event.target) && (event.target !== _this.viewerContainer) && (event.target !== _this.pageContainer) && _this.isPanMode) {\n _this.viewerContainer.style.cursor = 'move';\n _this.viewerContainer.style.cursor = '-webkit-grab';\n _this.viewerContainer.style.cursor = '-moz-grab';\n _this.viewerContainer.style.cursor = 'grab';\n }\n }\n _this.isViewerMouseDown = false;\n }\n };\n /**\n * @param {any} event - The Wheel event.\n * @returns {void}\n */\n this.detectTouchPad = function (event) {\n // eslint-disable-next-line max-len\n _this.isTouchPad = event.wheelDeltaY ? (event.wheelDeltaY === (event.deltaY * -3) ? true : Math.abs(event.deltaY) < 60) : (event.deltaMode === 0);\n };\n /**\n * @param {any} event - The Wheel event.\n * @returns {void}\n */\n this.handleMacGestureStart = function (event) {\n event.preventDefault();\n event.stopPropagation();\n _this.macGestureStartScale = _this.pdfViewer.magnification.zoomFactor;\n };\n /**\n * @param {any} event - The Wheel event.\n * @returns {void}\n */\n this.handleMacGestureChange = function (event) {\n event.preventDefault();\n event.stopPropagation();\n var macX = event.clientX;\n var macY = event.clientY;\n var scale = Number((_this.macGestureStartScale * event.scale).toFixed(2));\n if (!_this.isMacGestureActive) {\n _this.isMacGestureActive = true;\n _this.pdfViewer.magnification.initiateMouseZoom(macX, macY, scale * 100);\n setTimeout(function () {\n _this.isMacGestureActive = false;\n }, 50);\n }\n };\n /**\n * @param {any} event - The Wheel event.\n * @returns {void}\n */\n this.handleMacGestureEnd = function (event) {\n event.preventDefault();\n event.stopPropagation();\n };\n /**\n * @param {WheelEvent} event - The MouseEvent.\n * @returns {void}\n */\n this.viewerContainerOnMouseWheel = function (event) {\n _this.isViewerMouseWheel = true;\n if (_this.getRerenderCanvasCreated()) {\n event.preventDefault();\n }\n if (event.ctrlKey) {\n var zoomDifference = 25;\n if (_this.pdfViewer.magnification.zoomFactor < 1) {\n zoomDifference = 10;\n }\n if (_this.pdfViewer.magnification.zoomFactor >= 2) {\n zoomDifference = 50;\n }\n if (_this.isTouchPad && !_this.isMacSafari) {\n zoomDifference = zoomDifference / _this.zoomInterval;\n }\n // eslint-disable-next-line\n if (event.wheelDelta > 0) {\n _this.pdfViewer.magnification.initiateMouseZoom(event.x, event.y, (_this.pdfViewer.magnification.zoomFactor * 100) + zoomDifference);\n }\n else {\n _this.pdfViewer.magnification.initiateMouseZoom(event.x, event.y, (_this.pdfViewer.magnification.zoomFactor * 100) - zoomDifference);\n }\n _this.isTouchPad = false;\n }\n if (_this.pdfViewer.magnificationModule) {\n _this.pdfViewer.magnificationModule.pageRerenderOnMouseWheel();\n if (event.ctrlKey) {\n event.preventDefault();\n }\n _this.pdfViewer.magnificationModule.fitPageScrollMouseWheel(event);\n }\n if (_this.pdfViewer.textSelectionModule && !_this.isTextSelectionDisabled) {\n if (_this.isViewerMouseDown) {\n if (!event.target.classList.contains('e-pv-text')) {\n _this.pdfViewer.textSelectionModule.textSelectionOnMouseWheel(_this.currentPageNumber - 1);\n }\n }\n }\n };\n /**\n * @param {KeyboardEvent} event - The KeyboardEvent.\n * @returns {void}\n */\n this.onWindowKeyDown = function (event) {\n var isMac = navigator.platform.match(/(Mac|iPhone|iPod|iPad)/i) ? true : false;\n var isCommandKey = isMac ? event.metaKey : false;\n if ((_this.isFreeTextAnnotationModule() && _this.pdfViewer.annotationModule\n && (_this.pdfViewer.annotationModule.freeTextAnnotationModule.isInuptBoxInFocus === true\n || _this.pdfViewer.annotationModule.inputElementModule.isInFocus === true))) {\n return;\n }\n if (!event.ctrlKey || !isCommandKey) {\n switch (event.keyCode) {\n case 46:\n _this.DeleteKeyPressed(event);\n break;\n case 27:\n if (_this.pdfViewer.toolbar) {\n _this.pdfViewer.toolbar.addInkAnnotation();\n _this.pdfViewer.toolbar.deSelectCommentAnnotation();\n _this.pdfViewer.toolbar.updateStampItems();\n if (_this.pdfViewer.toolbar.annotationToolbarModule) {\n if (isBlazor()) {\n _this.pdfViewer.toolbar.annotationToolbarModule.deselectAllItemsInBlazor();\n }\n else {\n _this.pdfViewer.toolbar.annotationToolbarModule.deselectAllItems();\n }\n }\n if (_this.pdfViewer.isFormDesignerToolbarVisible && document.getElementById('FormField_helper_html_element')) {\n var formFieldElement = document.getElementById('FormField_helper_html_element');\n if (formFieldElement) {\n formFieldElement.remove();\n }\n }\n _this.pdfViewer.tool = '';\n _this.focusViewerContainer();\n }\n break;\n case 13:\n if (_this.pdfViewer.formDesignerModule) {\n if ((event.type === 'keydown' && event.keyCode === 13)) {\n if (event.target && (event.target.id || event.target.tabIndex) && _this.pdfViewer.formFieldCollections) {\n var fieldId = void 0;\n var currentTarget = event.target;\n if ((event.target.tabIndex && !event.target.id)) {\n currentTarget = event.target.parentElement;\n fieldId = currentTarget.id.split(\"_content_html_element\")[0];\n }\n else {\n currentTarget = event.target;\n fieldId = currentTarget.id.split(\"_\")[0];\n }\n for (var i = 0; i < _this.pdfViewer.formFieldCollections.length; i++) {\n var formfield = _this.pdfViewer.formFieldCollections[i];\n if (fieldId === formfield.id && (formfield.type === 'SignatureField' || formfield.type === 'InitialField')) {\n _this.pdfViewer.fireFormFieldClickEvent('formFieldClicked', _this.pdfViewer.formFieldCollections[i]);\n event.preventDefault();\n }\n }\n }\n }\n }\n break;\n case 32:\n if (_this.pdfViewer.formDesignerModule) {\n if ((event.type === 'keydown' && event.keyCode === 32)) {\n if (event.target && event.target.id && _this.pdfViewer.formFields) {\n for (var i = 0; i < _this.pdfViewer.formFields.length; i++) {\n var formField = _this.pdfViewer.formFields[i];\n if (event.target.id.split(\"_\")[0] === formField.id && (formField.formFieldAnnotationType === \"Checkbox\")) {\n _this.pdfViewer.formDesignerModule.setCheckBoxState(event);\n event.preventDefault();\n break;\n }\n }\n }\n }\n }\n break;\n case 9:\n if (event.target && (event.target.id || event.target.tabIndex) && _this.pdfViewer.formFieldCollections) {\n {\n var nextField = void 0;\n var fieldIndex = void 0;\n var currentTarget_1 = event.target;\n var id_1;\n if ((event.target.tabIndex && !event.target.id)) {\n currentTarget_1 = event.target.parentElement;\n id_1 = currentTarget_1.id.split(\"_content_html_element\")[0];\n }\n else {\n currentTarget_1 = event.target;\n id_1 = currentTarget_1.id.split(\"_input\")[0];\n }\n if (_this.pdfViewer.formDesignerModule) {\n if ((event.shiftKey && event.key === \"Tab\")) {\n fieldIndex = _this.pdfViewer.formFieldCollections.findIndex(function (field) { return field.id === id_1; });\n nextField = fieldIndex > 0 ? _this.pdfViewer.formFieldCollections[fieldIndex - 1] : _this.pdfViewer.formFieldCollections[_this.pdfViewer.formFieldCollections.length - 1];\n }\n else {\n fieldIndex = _this.pdfViewer.formFieldCollections.findIndex(function (field) { return field.id === id_1; });\n nextField = fieldIndex + 1 < _this.pdfViewer.formFieldCollections.length ? _this.pdfViewer.formFieldCollections[fieldIndex + 1] : _this.pdfViewer.formFieldCollections[0];\n }\n _this.pdfViewer.focusFormField(nextField);\n event.preventDefault();\n }\n if (!_this.pdfViewer.formDesigner) {\n if (!(currentTarget_1.className === 'e-pdfviewer-formFields')) {\n if ((event.shiftKey && event.key === \"Tab\")) {\n fieldIndex = _this.pdfViewer.formFieldCollections.findIndex(function (field) { return field.id === currentTarget_1.id; });\n nextField = fieldIndex > 0 ? _this.pdfViewer.formFieldCollections[fieldIndex - 1] : _this.pdfViewer.formFieldCollections[_this.pdfViewer.formFieldCollections.length - 1];\n }\n else {\n fieldIndex = _this.pdfViewer.formFieldCollections.findIndex(function (field) { return field.id === currentTarget_1.id; });\n nextField = fieldIndex + 1 < _this.pdfViewer.formFieldCollections.length ? _this.pdfViewer.formFieldCollections[fieldIndex + 1] : _this.pdfViewer.formFieldCollections[0];\n }\n _this.pdfViewer.focusFormField(nextField);\n event.preventDefault();\n }\n }\n }\n }\n if (event.target && event.target.id && _this.pdfViewer.formFields) {\n for (var i = 0; i < _this.pdfViewer.formFields.length; i++) {\n var formField_1 = _this.pdfViewer.formFields[parseInt(i.toString(), 10)];\n if (event.target.id === formField_1.id) {\n // eslint-disable-next-line\n var field = {\n value: formField_1.value, fontFamily: formField_1.fontFamily, fontSize: formField_1.fontSize, fontStyle: formField_1.fontStyle,\n // eslint-disable-next-line\n color: formField_1.color, backgroundColor: formField_1.backgroundColor, alignment: formField_1.alignment, isReadonly: formField_1.isReadonly, visibility: formField_1.visibility,\n // eslint-disable-next-line\n maxLength: formField_1.maxLength, isRequired: formField_1.isRequired, isPrint: formField_1.isPrint, rotation: formField_1.rotateAngle, tooltip: formField_1.tooltip,\n // eslint-disable-next-line\n options: formField_1.options, isChecked: formField_1.isChecked, isSelected: formField_1.isSelected\n };\n _this.pdfViewer.fireFocusOutFormField(field, formField_1.pageIndex);\n }\n }\n }\n break;\n }\n }\n };\n /**\n * @param {KeyboardEvent} event - The KeyboardEvent.\n * @returns {void}\n */\n this.viewerContainerOnKeyDown = function (event) {\n var isMac = navigator.platform.match(/(Mac|iPhone|iPod|iPad)/i) ? true : false;\n var isCommandKey = isMac ? event.metaKey : false;\n if ((_this.isFreeTextAnnotationModule() && _this.pdfViewer.annotationModule\n && (_this.pdfViewer.annotationModule.freeTextAnnotationModule.isInuptBoxInFocus === true\n || _this.pdfViewer.annotationModule.inputElementModule.isInFocus === true))) {\n return;\n }\n if (event.ctrlKey || isCommandKey) {\n // add keycodes if shift key is used.\n if ((event.shiftKey && !isMac) || (isMac && !event.shiftKey)) {\n switch (event.keyCode) {\n case 38: // up arrow\n case 33: // page up\n event.preventDefault();\n if (_this.currentPageNumber !== 1) {\n _this.updateScrollTop(0);\n }\n break;\n case 40: // down arrow\n case 34: // page down\n event.preventDefault();\n if (_this.currentPageNumber !== _this.pageCount) {\n _this.updateScrollTop(_this.pageCount - 1);\n }\n break;\n default:\n break;\n }\n }\n switch (event.keyCode) {\n case 79: // o key\n if (_this.pdfViewer.toolbarModule && _this.pdfViewer.enableToolbar) {\n _this.pdfViewer.toolbarModule.openFileDialogBox(event);\n }\n break;\n case 67: // c key\n if (_this.pdfViewer.textSelectionModule && _this.pdfViewer.enableTextSelection && !_this.isTextSelectionDisabled) {\n event.preventDefault();\n _this.pdfViewer.textSelectionModule.copyText();\n }\n if (_this.pdfViewer.selectedItems.annotations.length || _this.pdfViewer.selectedItems.formFields.length) {\n _this.pdfViewer.copy();\n _this.contextMenuModule.previousAction = 'Copy';\n }\n break;\n case 70: // f key\n if (_this.pdfViewer.textSearchModule && _this.pdfViewer.enableTextSearch) {\n event.preventDefault();\n _this.pdfViewer.toolbarModule.textSearchButtonHandler();\n }\n break;\n case 80: // p key\n if (_this.pdfViewer.printModule && _this.pdfViewer.enablePrint) {\n event.preventDefault();\n _this.pdfViewer.print.print();\n }\n break;\n case 90: //z key\n if (_this.pdfViewer.annotationModule) {\n _this.pdfViewer.annotationModule.undo();\n }\n break;\n case 88: //x key\n if (_this.pdfViewer.selectedItems.annotations.length || _this.pdfViewer.selectedItems.formFields.length) {\n _this.pdfViewer.cut();\n _this.contextMenuModule.previousAction = 'Cut';\n }\n break;\n case 89: //y key\n if (_this.pdfViewer.annotationModule) {\n _this.pdfViewer.annotationModule.redo();\n }\n break;\n case 86: //v key\n // eslint-disable-next-line max-len\n if ((_this.pdfViewer.annotation && _this.pdfViewer.annotation.isShapeCopied) || (_this.pdfViewer.formFields && _this.pdfViewer.formDesigner && _this.pdfViewer.formDesigner.isShapeCopied)) {\n var isSearchboxDialogOpen = void 0;\n var searchBoxId = document.getElementById(_this.pdfViewer.element.id + \"_search_box\");\n if (searchBoxId) {\n isSearchboxDialogOpen = searchBoxId.style.display !== \"none\";\n }\n if (!isSearchboxDialogOpen && _this.pdfViewer.formDesigner && !_this.pdfViewer.formDesigner.isPropertyDialogOpen) {\n _this.pdfViewer.paste();\n _this.contextMenuModule.previousAction = 'Paste';\n }\n }\n break;\n default:\n break;\n }\n }\n else {\n switch (event.keyCode) {\n case 46:\n _this.DeleteKeyPressed(event);\n break;\n }\n }\n if (_this.pdfViewer.magnificationModule) {\n _this.pdfViewer.magnificationModule.magnifyBehaviorKeyDown(event);\n }\n };\n /**\n * @param {MouseEvent} event - The MouseEvent.\n * @returns {void}\n */\n this.viewerContainerOnMousemove = function (event) {\n _this.mouseX = event.clientX;\n _this.mouseY = event.clientY;\n // eslint-disable-next-line\n var isIE = !!document.documentMode;\n var target = event.target;\n if (_this.action === 'Drag') {\n event.preventDefault();\n }\n // eslint-disable-next-line max-len\n if (_this.isViewerMouseDown && !(_this.action === 'Perimeter' || _this.action === 'Polygon' || _this.action === 'Line' || _this.action === 'DrawTool' || _this.action === 'Distance')) {\n // eslint-disable-next-line max-len\n if (_this.pdfViewer.textSelectionModule && _this.pdfViewer.enableTextSelection && !_this.isTextSelectionDisabled && !_this.getPopupNoteVisibleStatus()) {\n // text selection won't perform if we start the selection from hyperlink content by commenting this line.\n // this region block the toc/hyperlink navigation on sometimes.\n // if ((event.target as HTMLElement).classList.contains('e-pv-hyperlink') && this.pdfViewer.linkAnnotationModule) {\n // this.pdfViewer.linkAnnotationModule.modifyZindexForHyperlink((event.target as HTMLElement), true);\n // }\n if (!isIE) {\n if (event.target.className != 'e-pdfviewer-formFields')\n event.preventDefault();\n _this.mouseX = event.clientX;\n _this.mouseY = event.clientY;\n // eslint-disable-next-line\n var annotationModule = _this.pdfViewer.annotationModule;\n // eslint-disable-next-line max-len\n if (annotationModule && annotationModule.textMarkupAnnotationModule && annotationModule.textMarkupAnnotationModule.isDropletClicked && annotationModule.textMarkupAnnotationModule.isEnableTextMarkupResizer(annotationModule.textMarkupAnnotationModule.currentTextMarkupAddMode)) {\n annotationModule.textMarkupAnnotationModule.textSelect(event.target, _this.mouseX, _this.mouseY);\n }\n else {\n _this.pdfViewer.textSelectionModule.textSelectionOnMouseMove(event.target, _this.mouseX, _this.mouseY);\n }\n }\n else {\n var selection = window.getSelection();\n if (!selection.type && !selection.isCollapsed && selection.anchorNode !== null) {\n _this.pdfViewer.textSelectionModule.isTextSelection = true;\n }\n }\n }\n else if (_this.skipPreventDefault(target)) {\n event.preventDefault();\n }\n }\n if (_this.isTextMarkupAnnotationModule() && !_this.getPopupNoteVisibleStatus()) {\n _this.pdfViewer.annotationModule.textMarkupAnnotationModule.onTextMarkupAnnotationMouseMove(event);\n }\n if (_this.isPanMode) {\n _this.panOnMouseMove(event);\n }\n if (_this.isShapeBasedAnnotationsEnabled()) {\n var canvas = void 0;\n // eslint-disable-next-line max-len\n if (event.target && (event.target.id.indexOf('_text') > -1 || (event.target.parentElement.classList.contains('foreign-object')) || event.target.id.indexOf('_annotationCanvas') > -1 || event.target.classList.contains('e-pv-hyperlink')) && _this.pdfViewer.annotation || event.target.classList.contains('e-pdfviewer-formFields')) {\n var pageIndex = _this.pdfViewer.annotation.getEventPageNumber(event);\n var diagram = document.getElementById(_this.pdfViewer.element.id + '_annotationCanvas_' + pageIndex);\n if (diagram) {\n var canvas1 = diagram.getBoundingClientRect();\n var left = canvas1.x ? canvas1.x : canvas1.left;\n var top_1 = canvas1.y ? canvas1.y : canvas1.top;\n // eslint-disable-next-line max-len\n if (_this.pdfViewer.annotationModule.stampAnnotationModule.currentStampAnnotation && _this.pdfViewer.annotationModule.stampAnnotationModule.currentStampAnnotation.shapeAnnotationType === 'Image') {\n canvas = new Rect(left, top_1, canvas1.width - 10, canvas1.height - 10);\n }\n else {\n canvas = new Rect(left + 1, top_1 + 1, canvas1.width - 3, canvas1.height - 3);\n }\n }\n }\n else if (!_this.pdfViewer.annotationModule && _this.pdfViewer.formDesignerModule) {\n var pageIndex = _this.pdfViewer.formDesignerModule.getEventPageNumber(event);\n var diagram = document.getElementById(_this.pdfViewer.element.id + '_annotationCanvas_' + pageIndex);\n if (diagram) {\n var canvas1 = diagram.getBoundingClientRect();\n var left = canvas1.x ? canvas1.x : canvas1.left;\n var top_2 = canvas1.y ? canvas1.y : canvas1.top;\n canvas = new Rect(left + 10, top_2 + 10, canvas1.width - 10, canvas1.height - 10);\n }\n }\n // eslint-disable-next-line max-len\n var stampModule = _this.pdfViewer.annotationModule ? _this.pdfViewer.annotationModule.stampAnnotationModule : null;\n if (canvas && canvas.containsPoint({ x: _this.mouseX, y: _this.mouseY }) && !(stampModule && stampModule.isStampAnnotSelected)) {\n _this.diagramMouseMove(event);\n _this.annotationEvent = event;\n }\n else {\n _this.diagramMouseLeave(event);\n if (_this.isAnnotationDrawn) {\n _this.diagramMouseUp(event);\n _this.isAnnotationAdded = true;\n }\n }\n if (_this.pdfViewer.enableStampAnnotations) {\n if (stampModule && stampModule.isStampAnnotSelected) {\n _this.pdfViewer.tool = 'Stamp';\n _this.tool = new StampTool(_this.pdfViewer, _this);\n _this.isMouseDown = true;\n stampModule.isStampAnnotSelected = false;\n stampModule.isNewStampAnnot = true;\n }\n }\n if (_this.isSignatureAdded && _this.pdfViewer.enableHandwrittenSignature) {\n _this.pdfViewer.tool = 'Stamp';\n _this.tool = new StampTool(_this.pdfViewer, _this);\n _this.isMouseDown = true;\n _this.isSignatureAdded = false;\n _this.isNewSignatureAdded = true;\n }\n }\n };\n /**\n * @param {MouseEvent} event - The MouseEvent.\n * @returns {void}\n */\n this.panOnMouseMove = function (event) {\n var isStampMode = false;\n // eslint-disable-next-line max-len\n if (_this.action === 'Ink' || _this.action === \"Line\" || _this.action === 'Perimeter' || _this.action === 'Polygon' || _this.action === 'DrawTool' || _this.action === 'Drag' || _this.action.indexOf('Rotate') !== -1 || _this.action.indexOf('Resize') !== -1) {\n isStampMode = true;\n }\n // eslint-disable-next-line max-len\n if (_this.viewerContainer.contains(event.target) && (event.target !== _this.viewerContainer) && (event.target !== _this.pageContainer) && !isStampMode) {\n if (_this.isViewerMouseDown) {\n var deltaX = _this.dragX - event.pageX;\n var deltaY = _this.dragY - event.pageY;\n _this.viewerContainer.scrollTop = _this.viewerContainer.scrollTop + deltaY;\n _this.viewerContainer.scrollLeft = _this.viewerContainer.scrollLeft + deltaX;\n _this.viewerContainer.style.cursor = 'move';\n _this.viewerContainer.style.cursor = '-webkit-grabbing';\n _this.viewerContainer.style.cursor = '-moz-grabbing';\n _this.viewerContainer.style.cursor = 'grabbing';\n _this.dragX = event.pageX;\n _this.dragY = event.pageY;\n }\n else {\n if (!_this.navigationPane.isNavigationPaneResized) {\n _this.viewerContainer.style.cursor = 'move';\n _this.viewerContainer.style.cursor = '-webkit-grab';\n _this.viewerContainer.style.cursor = '-moz-grab';\n _this.viewerContainer.style.cursor = 'grab';\n }\n }\n }\n else {\n if (!_this.navigationPane.isNavigationPaneResized) {\n _this.viewerContainer.style.cursor = 'auto';\n }\n }\n };\n /**\n * @param {MouseEvent} event - The MouseEvent.\n * @returns {void}\n */\n this.viewerContainerOnMouseLeave = function (event) {\n if (_this.isViewerMouseDown) {\n if (_this.pdfViewer.textSelectionModule && !_this.isTextSelectionDisabled) {\n _this.pdfViewer.textSelectionModule.textSelectionOnMouseLeave(event);\n }\n }\n if (_this.pdfViewer.textSelectionModule && _this.pdfViewer.textSelectionModule.isTextSelection) {\n event.preventDefault();\n }\n if (_this.action === 'Ink') {\n _this.diagramMouseUp(event);\n _this.isAnnotationAdded = true;\n }\n };\n /**\n * @param {MouseEvent} event - The MouseEvent.\n * @returns {void}\n */\n this.viewerContainerOnMouseEnter = function (event) {\n if (_this.pdfViewer.textSelectionModule && !_this.isTextSelectionDisabled) {\n _this.pdfViewer.textSelectionModule.clear();\n }\n };\n /**\n * @param {MouseEvent} event - The MouseEvent.\n * @returns {void}\n */\n this.viewerContainerOnMouseOver = function (event) {\n // eslint-disable-next-line\n var isIE = !!document.documentMode;\n if (_this.isViewerMouseDown) {\n if (!isIE) {\n event.preventDefault();\n }\n }\n };\n /**\n * @param {MouseEvent} event - The MouseEvent.\n * @returns {void}\n */\n this.viewerContainerOnClick = function (event) {\n if (event.type === 'dblclick') {\n if (_this.pdfViewer.textSelectionModule && !_this.isTextSelectionDisabled && !_this.getCurrentTextMarkupAnnotation()) {\n if (event.target.classList.contains('e-pv-text')) {\n _this.isViewerContainerDoubleClick = true;\n if (!_this.getTextMarkupAnnotationMode()) {\n var pageNumber = parseFloat(event.target.id.split('_')[2]);\n _this.pdfViewer.fireTextSelectionStart(pageNumber + 1);\n }\n _this.pdfViewer.textSelectionModule.selectAWord(event.target, event.clientX, event.clientY, false);\n if (_this.pdfViewer.contextMenuSettings.contextMenuAction === 'MouseUp') {\n _this.pdfViewer.textSelectionModule.calculateContextMenuPosition(event.clientY, event.clientX);\n }\n if (!_this.getTextMarkupAnnotationMode()) {\n _this.pdfViewer.textSelectionModule.maintainSelectionOnZoom(true, false);\n _this.dblClickTimer = setTimeout(function () {\n _this.applySelection();\n }, 100);\n _this.pdfViewer.textSelectionModule.fireTextSelectEnd();\n }\n else if (_this.isTextMarkupAnnotationModule() && _this.getTextMarkupAnnotationMode()) {\n // eslint-disable-next-line max-len\n _this.pdfViewer.annotationModule.textMarkupAnnotationModule.drawTextMarkupAnnotations(_this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAddMode);\n }\n }\n }\n else if (_this.getCurrentTextMarkupAnnotation()) {\n // this.pdfViewer.annotationModule.showAnnotationPopup(event);\n }\n if (_this.action && (_this.action === 'Perimeter' || _this.action === 'Polygon') && _this.tool) {\n _this.eventArgs.position = _this.currentPosition;\n _this.getMouseEventArgs(_this.currentPosition, _this.eventArgs, event, _this.eventArgs.source);\n var ctrlKey = _this.isMetaKey(event);\n var info = { ctrlKey: event.ctrlKey, shiftKey: event.shiftKey };\n _this.eventArgs.info = info;\n _this.eventArgs.clickCount = event.detail;\n _this.tool.mouseUp(_this.eventArgs, true);\n }\n if (_this.pdfViewer.selectedItems ||\n (_this.pdfViewer.annotation && _this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation)) {\n if (_this.pdfViewer.selectedItems.annotations.length !== 0) {\n // eslint-disable-next-line\n var currentAnnotation = _this.pdfViewer.selectedItems.annotations[0];\n // eslint-disable-next-line max-len\n if (_this.pdfViewer.annotationModule && !currentAnnotation.formFieldAnnotationType) {\n // eslint-disable-next-line max-len\n _this.pdfViewer.annotationModule.annotationSelect(currentAnnotation.annotName, currentAnnotation.pageIndex, currentAnnotation, null, true);\n if (_this.pdfViewer.annotationModule.freeTextAnnotationModule.isInuptBoxInFocus === false) {\n if (_this.isFreeTextAnnotation(_this.pdfViewer.selectedItems.annotations) === true) {\n var elmtPosition = {};\n elmtPosition.x = _this.pdfViewer.selectedItems.annotations[0].bounds.x;\n elmtPosition.y = _this.pdfViewer.selectedItems.annotations[0].bounds.y;\n // eslint-disable-next-line max-len\n _this.pdfViewer.annotation.freeTextAnnotationModule.addInuptElemet(elmtPosition, _this.pdfViewer.selectedItems.annotations[0]);\n }\n else if (_this.pdfViewer.selectedItems.annotations[0].enableShapeLabel === true) {\n var elmtPosition = {};\n elmtPosition.x = _this.pdfViewer.selectedItems.annotations[0].bounds.x;\n elmtPosition.y = _this.pdfViewer.selectedItems.annotations[0].bounds.y;\n // eslint-disable-next-line max-len\n _this.pdfViewer.annotation.inputElementModule.editLabel(elmtPosition, _this.pdfViewer.selectedItems.annotations[0]);\n }\n else {\n // eslint-disable-next-line\n var accordionExpand = document.getElementById(_this.pdfViewer.element.id + '_accordionContainer' + _this.pdfViewer.currentPageNumber);\n if (accordionExpand) {\n accordionExpand.ej2_instances[0].expandItem(true);\n }\n // eslint-disable-next-line\n var commentsDiv = document.getElementById(_this.pdfViewer.selectedItems.annotations[0].annotName);\n if (commentsDiv) {\n if (!commentsDiv.classList.contains('e-pv-comments-border')) {\n commentsDiv.firstChild.click();\n }\n }\n }\n }\n }\n }\n else {\n // eslint-disable-next-line max-len\n var annotation = _this.pdfViewer.annotation;\n var annotationModule = _this.pdfViewer.annotationModule;\n if (annotation && annotationModule.textMarkupAnnotationModule && annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation) {\n // eslint-disable-next-line\n var annotation_1 = _this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation;\n // eslint-disable-next-line max-len\n _this.pdfViewer.annotationModule.annotationSelect(annotation_1.annotName, _this.pdfViewer.annotationModule.textMarkupAnnotationModule.selectTextMarkupCurrentPage, annotation_1, null, true);\n // eslint-disable-next-line\n var accordionExpand = document.getElementById(_this.pdfViewer.element.id + '_accordionContainer' + _this.currentPageNumber);\n if (accordionExpand) {\n accordionExpand.ej2_instances[0].expandItem(true);\n }\n // eslint-disable-next-line\n var comments = document.getElementById(annotation_1.annotName);\n if (comments) {\n comments.firstChild.click();\n }\n }\n }\n }\n if (_this.pdfViewer.designerMode && _this.pdfViewer.selectedItems.formFields.length > 0) {\n var eventArgs = { name: \"formFieldDoubleClick\", field: _this.pdfViewer.selectedItems.formFields[0], cancel: false };\n _this.pdfViewer.fireFormFieldDoubleClickEvent(eventArgs);\n if (!eventArgs.cancel) {\n _this.pdfViewer.formDesigner.createPropertiesWindow();\n }\n }\n }\n else {\n if (event.detail === 3) {\n if (_this.isViewerContainerDoubleClick) {\n clearTimeout(_this.dblClickTimer);\n _this.isViewerContainerDoubleClick = false;\n }\n if (_this.pdfViewer.textSelectionModule && !_this.isTextSelectionDisabled && !_this.getTextMarkupAnnotationMode()) {\n _this.pdfViewer.textSelectionModule.selectEntireLine(event);\n _this.pdfViewer.textSelectionModule.maintainSelectionOnZoom(true, false);\n _this.pdfViewer.textSelectionModule.fireTextSelectEnd();\n _this.applySelection();\n }\n }\n }\n };\n /**\n * @param {DragEvent} event - The DragEvent.\n * @returns {void}\n */\n this.viewerContainerOnDragStart = function (event) {\n // eslint-disable-next-line\n var isIE = !!document.documentMode;\n if (!isIE) {\n event.preventDefault();\n }\n };\n // eslint-disable-next-line\n this.viewerContainerOnContextMenuClick = function (event) {\n _this.isViewerMouseDown = false;\n };\n // eslint-disable-next-line\n this.onWindowMouseUp = function (event) {\n _this.isFreeTextContextMenu = false;\n _this.isNewStamp = false;\n _this.signatureAdded = false;\n // eslint-disable-next-line\n var annotationModule = _this.pdfViewer.annotationModule;\n // eslint-disable-next-line max-len\n if (annotationModule && annotationModule.textMarkupAnnotationModule && annotationModule.textMarkupAnnotationModule.isEnableTextMarkupResizer(annotationModule.textMarkupAnnotationModule.currentTextMarkupAddMode)) {\n // eslint-disable-next-line\n var modules = annotationModule.textMarkupAnnotationModule;\n modules.isLeftDropletClicked = false;\n modules.isDropletClicked = false;\n modules.isRightDropletClicked = false;\n if (!modules.currentTextMarkupAnnotation && window.getSelection().anchorNode === null) {\n modules.showHideDropletDiv(true);\n }\n else if (!modules.currentTextMarkupAnnotation && modules.currentTextMarkupAddMode === '') {\n modules.isTextMarkupAnnotationMode = false;\n }\n }\n if (!_this.getPopupNoteVisibleStatus()) {\n if (event.button === 0) {\n // eslint-disable-next-line max-len\n if (_this.isNewFreeTextAnnotation()) {\n if (_this.pdfViewer.textSelectionModule && !_this.isTextSelectionDisabled && !_this.getTextMarkupAnnotationMode()) {\n // eslint-disable-next-line max-len\n if (event.detail === 1 && !_this.viewerContainer.contains(event.target) && !_this.contextMenuModule.contextMenuElement.contains(event.target)) {\n if (window.getSelection().anchorNode !== null) {\n _this.pdfViewer.textSelectionModule.textSelectionOnMouseup(event);\n }\n }\n // eslint-disable-next-line\n var target = event.target;\n if (_this.viewerContainer.contains(event.target) && target.className !== 'e-pdfviewer-formFields' && target.className !== 'e-pv-formfield-input') {\n if (!_this.isClickedOnScrollBar(event, true) && !_this.isScrollbarMouseDown) {\n _this.pdfViewer.textSelectionModule.textSelectionOnMouseup(event);\n }\n else {\n if (window.getSelection().anchorNode !== null) {\n _this.pdfViewer.textSelectionModule.applySpanForSelection();\n }\n }\n }\n }\n else if (_this.getTextMarkupAnnotationMode()) {\n // eslint-disable-next-line\n var viewerElement = _this.pdfViewer.element;\n // eslint-disable-next-line\n var targetElement = event.target;\n if (viewerElement && targetElement) {\n if (viewerElement.id.split('_')[0] === targetElement.id.split('_')[0]) {\n // eslint-disable-next-line max-len\n _this.pdfViewer.annotationModule.textMarkupAnnotationModule.drawTextMarkupAnnotations(_this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAddMode);\n }\n }\n }\n }\n }\n else if (event.button === 2) {\n if (_this.viewerContainer.contains(event.target) && _this.skipPreventDefault(event.target)) {\n if (_this.checkIsNormalText()) {\n window.getSelection().removeAllRanges();\n }\n }\n }\n if (_this.isViewerMouseDown) {\n _this.isViewerMouseDown = false;\n if (_this.pdfViewer.textSelectionModule && !_this.isTextSelectionDisabled) {\n _this.pdfViewer.textSelectionModule.clear();\n _this.pdfViewer.textSelectionModule.selectionStartPage = null;\n }\n event.preventDefault();\n event.stopPropagation();\n return false;\n }\n else {\n return true;\n }\n }\n };\n /**\n * @param {TouchEvent} event - The DragEvent.\n * @returns {void}\n */\n this.onWindowTouchEnd = function (event) {\n _this.signatureAdded = false;\n // eslint-disable-next-line max-len\n if (!_this.pdfViewer.element.contains(event.target) && !_this.contextMenuModule.contextMenuElement.contains(event.target)) {\n if (_this.pdfViewer.textSelectionModule && !_this.isTextSelectionDisabled) {\n _this.pdfViewer.textSelectionModule.clearTextSelection();\n }\n }\n };\n /**\n * @param {TouchEvent} event - The TouchEvent.\n * @returns {void}\n */\n this.viewerContainerOnTouchStart = function (event) {\n var touchPoints = event.touches;\n if (_this.pdfViewer.magnificationModule) {\n _this.pdfViewer.magnificationModule.setTouchPoints(touchPoints[0].clientX, touchPoints[0].clientY);\n }\n var target = event.target;\n // eslint-disable-next-line max-len\n if (touchPoints.length === 1 && !(target.classList.contains('e-pv-hyperlink')) && _this.skipPreventDefault(target)) {\n _this.preventTouchEvent(event);\n }\n if (event.touches.length === 1 && _this.isTextMarkupAnnotationModule() && !_this.getPopupNoteVisibleStatus()) {\n if (!_this.isToolbarInkClicked) {\n _this.pdfViewer.annotationModule.textMarkupAnnotationModule.onTextMarkupAnnotationTouchEnd(event);\n }\n }\n _this.touchClientX = touchPoints[0].clientX;\n _this.touchClientY = touchPoints[0].clientY;\n _this.scrollY = touchPoints[0].clientY;\n _this.previousTime = new Date().getTime();\n // eslint-disable-next-line max-len\n if (touchPoints.length === 1 && !(event.target.classList.contains('e-pv-touch-select-drop') || event.target.classList.contains('e-pv-touch-ellipse'))) {\n if ((Browser.isDevice && !_this.pdfViewer.enableDesktopMode) && _this.pageCount > 0 && !_this.isThumb && !(event.target.classList.contains('e-pv-hyperlink'))) {\n _this.handleTaps(touchPoints, event);\n }\n if (!isBlazor() || !Browser.isDevice || _this.pdfViewer.enableDesktopMode) {\n _this.handleTextBoxTaps(touchPoints);\n }\n var designerMode = _this.isDesignerMode(target);\n if (designerMode) {\n _this.contextMenuModule.close();\n // event.preventDefault();\n if (!_this.isLongTouchPropagated) {\n _this.longTouchTimer = setTimeout(function () {\n if (!_this.isMoving) {\n _this.isTouchDesignerMode = true;\n /* eslint-disable-next-line security/detect-non-literal-fs-filename */\n _this.contextMenuModule.open(_this.touchClientY, _this.touchClientX, _this.viewerContainer);\n }\n }, 1000);\n }\n _this.isLongTouchPropagated = true;\n _this.isMoving = false;\n }\n else if ((_this.pdfViewer.textSelectionModule && !_this.isTextSelectionDisabled)) {\n _this.pdfViewer.textSelectionModule.clearTextSelection();\n _this.contextMenuModule.close();\n // event.preventDefault();\n if (!_this.isLongTouchPropagated) {\n _this.longTouchTimer = setTimeout(function () {\n _this.viewerContainerOnLongTouch(event);\n }, 1000);\n }\n _this.isLongTouchPropagated = true;\n }\n }\n // eslint-disable-next-line\n var toolbarModule = _this.pdfViewer.toolbarModule ? _this.pdfViewer.toolbarModule.annotationToolbarModule : 'null';\n if (target.classList.contains('e-pv-text') && (!toolbarModule || !toolbarModule.textMarkupToolbarElement || toolbarModule.textMarkupToolbarElement.children.length === 0)) {\n target.classList.add('e-pv-text-selection-none');\n }\n _this.diagramMouseDown(event);\n // eslint-disable-next-line max-len\n if (_this.action === 'Perimeter' || _this.action === 'Polygon' || _this.action === 'DrawTool' || _this.action === 'Drag' || _this.action.indexOf('Rotate') !== -1 || _this.action.indexOf('Resize') !== -1) {\n event.preventDefault();\n }\n };\n /**\n * @param {TouchEvent} event - The TouchEvent.\n * @returns {void}\n */\n this.viewerContainerOnLongTouch = function (event) {\n _this.touchClientX = event.touches[0].clientX;\n _this.touchClientY = event.touches[0].clientY;\n event.preventDefault();\n if (_this.pdfViewer.textSelectionModule) {\n var target = event.target;\n if (target.classList.contains('e-pv-text-selection-none')) {\n target.classList.remove('e-pv-text-selection-none');\n }\n _this.pdfViewer.textSelectionModule.initiateTouchSelection(event, _this.touchClientX, _this.touchClientY);\n if (Browser.isDevice && !_this.pdfViewer.enableDesktopMode) {\n clearTimeout(_this.singleTapTimer);\n _this.tapCount = 0;\n }\n }\n };\n /**\n * @param {PointerEvent} event - The PointerEvent.\n * @returns {void}\n */\n this.viewerContainerOnPointerDown = function (event) {\n if (event.pointerType === 'touch') {\n _this.pointerCount++;\n if (_this.pointerCount <= 2) {\n event.preventDefault();\n _this.pointersForTouch.push(event);\n if (_this.pointerCount === 2) {\n _this.pointerCount = 0;\n }\n if (_this.pdfViewer.magnificationModule) {\n _this.pdfViewer.magnificationModule.setTouchPoints(event.clientX, event.clientY);\n }\n }\n }\n };\n /**\n * @param {TouchEvent} event - The TouchEvent.\n * @returns {void}\n */\n this.viewerContainerOnTouchMove = function (event) {\n if (_this.action === 'Drag') {\n _this.isMoving = true;\n }\n if (Browser.isDevice && !_this.pdfViewer.enableDesktopMode) {\n clearTimeout(_this.singleTapTimer);\n _this.singleTapTimer = null;\n _this.tapCount = 0;\n }\n _this.preventTouchEvent(event);\n if (_this.isToolbarInkClicked) {\n event.preventDefault();\n }\n var touchPoints = event.touches;\n if (_this.pdfViewer.magnificationModule) {\n _this.isTouchScrolled = true;\n if (touchPoints.length > 1 && _this.pageCount > 0) {\n if (Browser.isDevice && !_this.pdfViewer.enableDesktopMode) {\n _this.isTouchScrolled = false;\n }\n if (_this.pdfViewer.enablePinchZoom) {\n // eslint-disable-next-line max-len\n _this.pdfViewer.magnificationModule.initiatePinchMove(touchPoints[0].clientX, touchPoints[0].clientY, touchPoints[1].clientX, touchPoints[1].clientY);\n }\n }\n else if (touchPoints.length === 1 && _this.getPagesPinchZoomed()) {\n if (Browser.isDevice && !_this.pdfViewer.enableDesktopMode) {\n _this.isTouchScrolled = false;\n }\n _this.pdfViewer.magnificationModule.pinchMoveScroll();\n }\n }\n _this.mouseX = touchPoints[0].clientX;\n _this.mouseY = touchPoints[0].clientY;\n var canvas;\n // eslint-disable-next-line max-len\n if (event.target && (event.target.id.indexOf('_text') > -1 || event.target.id.indexOf('_annotationCanvas') > -1 || event.target.classList.contains('e-pv-hyperlink')) && _this.pdfViewer.annotation) {\n var pageIndex = _this.pdfViewer.annotation.getEventPageNumber(event);\n var diagram = document.getElementById(_this.pdfViewer.element.id + '_annotationCanvas_' + pageIndex);\n if (diagram) {\n var canvas1 = diagram.getBoundingClientRect();\n var left = canvas1.x ? canvas1.x : canvas1.left;\n var top_3 = canvas1.y ? canvas1.y : canvas1.top;\n canvas = new Rect(left + 10, top_3 + 10, canvas1.width - 10, canvas1.height - 10);\n }\n }\n if (canvas && canvas.containsPoint({ x: _this.mouseX, y: _this.mouseY }) || _this.action === 'Ink') {\n _this.diagramMouseMove(event);\n _this.annotationEvent = event;\n }\n else {\n _this.diagramMouseLeave(event);\n if (_this.isAnnotationDrawn) {\n _this.diagramMouseUp(event);\n _this.isAnnotationAdded = true;\n }\n }\n touchPoints = null;\n };\n /**\n * @param {PointerEvent} event - The TouchEvent.\n * @returns {void}\n */\n this.viewerContainerOnPointerMove = function (event) {\n if (event.pointerType === 'touch' && _this.pageCount > 0) {\n event.preventDefault();\n if (_this.pointersForTouch.length === 2) {\n for (var i = 0; i < _this.pointersForTouch.length; i++) {\n if (event.pointerId === _this.pointersForTouch[parseInt(i.toString(), 10)].pointerId) {\n _this.pointersForTouch[parseInt(i.toString(), 10)] = event;\n break;\n }\n }\n if (_this.pdfViewer.magnificationModule && _this.pdfViewer.enablePinchZoom) {\n // eslint-disable-next-line max-len\n _this.pdfViewer.magnificationModule.initiatePinchMove(_this.pointersForTouch[0].clientX, _this.pointersForTouch[0].clientY, _this.pointersForTouch[1].clientX, _this.pointersForTouch[1].clientY);\n }\n }\n }\n };\n /**\n * @param {TouchEvent} event - The TouchEvent.\n * @returns {void}\n */\n this.viewerContainerOnTouchEnd = function (event) {\n if (_this.pdfViewer.magnificationModule) {\n _this.pdfViewer.magnificationModule.pinchMoveEnd();\n }\n if (event.cancelable && !event.target.classList.contains('e-pv-touch-ellipse') && _this.pdfViewer.textSelectionModule && _this.pdfViewer.textSelectionModule.isTextSelection) {\n event.preventDefault();\n }\n _this.isLongTouchPropagated = false;\n clearInterval(_this.longTouchTimer);\n _this.longTouchTimer = null;\n if ((Browser.isDevice && !_this.pdfViewer.enableDesktopMode) && _this.isTouchScrolled) {\n _this.currentTime = new Date().getTime();\n var duration = _this.currentTime - _this.previousTime;\n // eslint-disable-next-line\n var difference = _this.scrollY - event.changedTouches[0].pageY;\n // eslint-disable-next-line\n var speed = (difference) / (duration);\n if (Math.abs(speed) > 1.5) {\n // eslint-disable-next-line\n var scrollTop = (difference) + ((duration) * speed);\n if (scrollTop > 0) {\n _this.viewerContainer.scrollTop += scrollTop;\n _this.updateMobileScrollerPosition();\n }\n }\n }\n _this.diagramMouseUp(event);\n _this.renderStampAnnotation(event);\n if (!Browser.isDevice) {\n _this.focusViewerContainer();\n }\n };\n /**\n * @param {PointerEvent} event - The PointerEvent.\n * @returns {void}\n */\n this.viewerContainerOnPointerEnd = function (event) {\n if (event.pointerType === 'touch') {\n event.preventDefault();\n if (_this.pdfViewer.magnificationModule) {\n _this.pdfViewer.magnificationModule.pinchMoveEnd();\n }\n _this.pointersForTouch = [];\n _this.pointerCount = 0;\n }\n };\n // eslint-disable-next-line\n this.viewerContainerOnScroll = function (event) {\n var proxy = null;\n proxy = _this;\n var allowServerDataBind = proxy.pdfViewer.allowServerDataBinding;\n proxy.pdfViewer.enableServerDataBinding(false);\n var scrollposX = 0;\n var scrollposY = 0;\n if (event.touches && (Browser.isDevice && !_this.pdfViewer.enableDesktopMode)) {\n // eslint-disable-next-line\n var ratio = (_this.viewerContainer.scrollHeight - _this.viewerContainer.clientHeight) / (_this.viewerContainer.clientHeight - _this.toolbarHeight);\n if (_this.isThumb) {\n _this.ispageMoved = true;\n event.preventDefault();\n _this.mobilePageNoContainer.style.display = 'block';\n scrollposX = event.touches[0].pageX - _this.scrollX;\n scrollposY = event.touches[0].pageY - _this.viewerContainer.offsetTop;\n _this.viewerContainer.scrollTop = scrollposY * ratio;\n // eslint-disable-next-line\n var containerValue = event.touches[0].pageY;\n // eslint-disable-next-line\n var toolbarHeight = _this.pdfViewer.toolbarModule ? 0 : 50;\n if (_this.viewerContainer.scrollTop !== 0 && ((containerValue) <= (_this.viewerContainer.clientHeight - toolbarHeight))) {\n _this.mobileScrollerContainer.style.top = containerValue + 'px';\n }\n }\n else if (event.touches[0].target.className !== 'e-pv-touch-ellipse') {\n if (!(_this.isWebkitMobile && (Browser.isDevice && !_this.pdfViewer.enableDesktopMode))) {\n _this.mobilePageNoContainer.style.display = 'none';\n scrollposY = _this.touchClientY - event.touches[0].pageY;\n scrollposX = _this.touchClientX - event.touches[0].pageX;\n _this.viewerContainer.scrollTop = _this.viewerContainer.scrollTop + (scrollposY);\n _this.viewerContainer.scrollLeft = _this.viewerContainer.scrollLeft + (scrollposX);\n }\n // eslint-disable-next-line\n _this.updateMobileScrollerPosition();\n _this.touchClientY = event.touches[0].pageY;\n _this.touchClientX = event.touches[0].pageX;\n }\n }\n if (_this.scrollHoldTimer) {\n clearTimeout(_this.scrollHoldTimer);\n }\n var pageIndex = _this.currentPageNumber;\n _this.scrollHoldTimer = null;\n _this.contextMenuModule.close();\n var verticalScrollValue = _this.viewerContainer.scrollTop;\n // eslint-disable-next-line max-len\n for (var i = 0; i < _this.pageCount; i++) {\n if (_this.pageSize[parseInt(i.toString(), 10)] != null) {\n var pageHeight = _this.getPageHeight(i);\n if (pageHeight < 150) {\n _this.pageStopValue = 75;\n }\n else if (pageHeight >= 150 && pageHeight < 300) {\n _this.pageStopValue = 125;\n }\n else if (pageHeight >= 300 && pageHeight < 500) {\n _this.pageStopValue = 200;\n }\n else {\n _this.pageStopValue = 300;\n }\n // eslint-disable-next-line max-len\n if ((verticalScrollValue + _this.pageStopValue) <= (_this.getPageTop(i) + pageHeight)) {\n _this.currentPageNumber = i + 1;\n _this.pdfViewer.currentPageNumber = i + 1;\n break;\n }\n }\n }\n // eslint-disable-next-line max-len\n if (_this.pdfViewer.magnificationModule && _this.pdfViewer.magnificationModule.fitType === 'fitToPage' && _this.currentPageNumber > 0) {\n if (_this.pageSize[_this.currentPageNumber - 1]) {\n if (!_this.isPanMode && (!Browser.isDevice && _this.pdfViewer.enableDesktopMode)) {\n _this.viewerContainer.scrollTop = _this.pageSize[_this.currentPageNumber - 1].top * _this.getZoomFactor();\n }\n }\n }\n _this.renderElementsVirtualScroll(_this.currentPageNumber);\n // eslint-disable-next-line max-len\n if (!_this.isViewerMouseDown && !_this.getPinchZoomed() && !_this.getPinchScrolled() && !_this.getPagesPinchZoomed() || _this.isViewerMouseWheel) {\n _this.pageViewScrollChanged(_this.currentPageNumber);\n _this.isViewerMouseWheel = false;\n }\n else {\n _this.showPageLoadingIndicator(_this.currentPageNumber - 1, false);\n }\n if (_this.pdfViewer.toolbarModule) {\n if (!isBlazor()) {\n _this.pdfViewer.toolbarModule.updateCurrentPage(_this.currentPageNumber);\n }\n _this.viewerContainer.setAttribute('aria-labelledby', _this.pdfViewer.element.id + '_pageDiv_' + (_this.currentPageNumber - 1));\n if (!isBlazor()) {\n if (!Browser.isDevice || _this.pdfViewer.enableDesktopMode) {\n _this.pdfViewer.toolbarModule.updateNavigationButtons();\n }\n }\n }\n if (Browser.isDevice && !_this.pdfViewer.enableDesktopMode) {\n _this.mobileSpanContainer.innerHTML = _this.currentPageNumber.toString();\n _this.mobilecurrentPageContainer.innerHTML = _this.currentPageNumber.toString();\n }\n if (pageIndex !== _this.currentPageNumber) {\n if (proxy.pdfViewer.thumbnailViewModule && (!Browser.isDevice || _this.pdfViewer.enableDesktopMode)) {\n proxy.pdfViewer.thumbnailViewModule.gotoThumbnailImage(proxy.currentPageNumber - 1);\n proxy.pdfViewer.thumbnailViewModule.isThumbnailClicked = false;\n }\n _this.pdfViewer.firePageChange(pageIndex);\n }\n if (_this.pdfViewer.magnificationModule) {\n if (!_this.isPanMode && (!Browser.isDevice && _this.pdfViewer.enableDesktopMode)) {\n _this.pdfViewer.magnificationModule.updatePagesForFitPage(_this.currentPageNumber - 1);\n }\n }\n var currentPage = _this.getElement('_pageDiv_' + (_this.currentPageNumber - 1));\n if (currentPage) {\n currentPage.style.visibility = 'visible';\n }\n if (_this.isViewerMouseDown) {\n if (_this.getRerenderCanvasCreated() && !_this.isPanMode) {\n _this.pdfViewer.magnificationModule.clearIntervalTimer();\n }\n // eslint-disable-next-line\n var data = _this.getStoredData(_this.currentPageNumber);\n if (data) {\n _this.isDataExits = true;\n _this.initiatePageViewScrollChanged();\n _this.isDataExits = false;\n }\n else {\n // eslint-disable-next-line max-len\n var timer = _this.pdfViewer.scrollSettings.delayPageRequestTimeOnScroll ? _this.pdfViewer.scrollSettings.delayPageRequestTimeOnScroll : 100;\n _this.scrollHoldTimer = setTimeout(function () {\n _this.initiatePageViewScrollChanged();\n }, timer);\n }\n }\n if (_this.pdfViewer.annotation && _this.navigationPane.commentPanelContainer) {\n _this.pdfViewer.annotation.stickyNotesAnnotationModule.updateCommentPanelScrollTop(_this.currentPageNumber);\n }\n // eslint-disable-next-line max-len\n if ((Browser.isDevice && !_this.pdfViewer.enableDesktopMode) && event.touches && event.touches[0].target.className !== 'e-pv-touch-ellipse') {\n setTimeout(function () {\n _this.updateMobileScrollerPosition();\n }, 500);\n }\n proxy.pdfViewer.enableServerDataBinding(allowServerDataBind, true);\n };\n this.pdfViewer = viewer;\n this.navigationPane = new NavigationPane(this.pdfViewer, this);\n this.textLayer = new TextLayer(this.pdfViewer, this);\n this.signatureModule = new Signature(this.pdfViewer, this);\n this.isWebkitMobile = /Chrome/.test(navigator.userAgent) || /Google Inc/.test(navigator.vendor) || (navigator.userAgent.indexOf('Safari') !== -1);\n }\n /**\n * @private\n * @returns {void}\n */\n PdfViewerBase.prototype.initializeComponent = function () {\n var element = document.getElementById(this.pdfViewer.element.id);\n if (element) {\n this.blazorUIAdaptor = isBlazor() ? new BlazorUiAdaptor(this.pdfViewer, this) : null;\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n this.pdfViewer.element.classList.add('e-pv-mobile-view');\n }\n var controlWidth = '100%';\n var toolbarDiv = void 0;\n this.viewerMainContainer = isBlazor() ? element.querySelector('.e-pv-viewer-main-container') : createElement('div', { id: this.pdfViewer.element.id + '_viewerMainContainer', className: 'e-pv-viewer-main-container' });\n this.viewerContainer = isBlazor() ? element.querySelector('.e-pv-viewer-container') : createElement('div', { id: this.pdfViewer.element.id + '_viewerContainer', className: 'e-pv-viewer-container', attrs: { 'aria-label': 'pdfviewer scroll view' } });\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n this.createMobilePageNumberContainer();\n }\n // eslint-disable-next-line\n this.viewerContainer.tabIndex = 0;\n if (this.pdfViewer.enableRtl) {\n this.viewerContainer.style.direction = 'rtl';\n }\n element.style.touchAction = 'pan-x pan-y';\n this.setMaximumHeight(element);\n this.mainContainer = isBlazor() ? element.querySelector('.e-pv-main-container') : createElement('div', { id: this.pdfViewer.element.id + '_mainContainer', className: 'e-pv-main-container' });\n this.mainContainer.appendChild(this.viewerMainContainer);\n element.appendChild(this.mainContainer);\n this.applyViewerHeight(this.mainContainer);\n if (this.pdfViewer.toolbarModule) {\n this.navigationPane.initializeNavigationPane();\n toolbarDiv = this.pdfViewer.toolbarModule.intializeToolbar(controlWidth);\n }\n else {\n if (isBlazor()) {\n this.navigationPane.initializeNavigationPane();\n toolbarDiv = this.pdfViewer.element.querySelector('.e-pv-toolbar');\n if (!this.pdfViewer.enableToolbar) {\n this.toolbarHeight = 0;\n toolbarDiv.style.display = 'none';\n }\n if (!this.pdfViewer.enableNavigationToolbar && ((Browser.isDevice && this.pdfViewer.enableDesktopMode) || (!Browser.isDevice))) {\n this.navigationPane.sideBarToolbar.style.display = 'none';\n this.navigationPane.sideBarToolbarSplitter.style.display = 'none';\n if (this.navigationPane.isBookmarkOpen || this.navigationPane.isThumbnailOpen) {\n this.navigationPane.updateViewerContainerOnClose();\n }\n }\n }\n }\n if (toolbarDiv) {\n this.viewerContainer.style.height = this.updatePageHeight(this.pdfViewer.element.getBoundingClientRect().height, 56);\n }\n else {\n this.viewerContainer.style.height = this.updatePageHeight(this.pdfViewer.element.getBoundingClientRect().height, 0);\n }\n var viewerWidth = this.pdfViewer.element.clientWidth;\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n viewerWidth = viewerWidth - (this.navigationPane.sideBarToolbar ? this.navigationPane.getViewerContainerLeft() : 0) -\n (this.navigationPane.commentPanelContainer ? this.navigationPane.getViewerContainerRight() : 0);\n }\n this.viewerContainer.style.width = viewerWidth + 'px';\n this.viewerMainContainer.appendChild(this.viewerContainer);\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n this.mobileScrollerContainer.style.left = (viewerWidth - parseFloat(this.mobileScrollerContainer.style.width)) + 'px';\n this.mobilePageNoContainer.style.left = (viewerWidth / 2) - (parseFloat(this.mobilePageNoContainer.style.width) / 2) + 'px';\n this.mobilePageNoContainer.style.top = (this.pdfViewer.element.clientHeight / 2) + 'px';\n this.mobilePageNoContainer.style.display = 'none';\n this.mobilePageNoContainer.appendChild(this.mobilecurrentPageContainer);\n this.mobilePageNoContainer.appendChild(this.mobilenumberContainer);\n this.mobilePageNoContainer.appendChild(this.mobiletotalPageContainer);\n this.viewerContainer.appendChild(this.mobilePageNoContainer);\n this.viewerMainContainer.appendChild(this.mobileScrollerContainer);\n this.mobileScrollerContainer.appendChild(this.mobileSpanContainer);\n }\n this.pageContainer = createElement('div', { id: this.pdfViewer.element.id + '_pageViewContainer', className: 'e-pv-page-container', attrs: { 'tabindex': '0', 'aria-label': 'pdfviewer Page View' } });\n if (this.pdfViewer.enableRtl) {\n this.pageContainer.style.direction = 'ltr';\n }\n this.viewerContainer.appendChild(this.pageContainer);\n this.pageContainer.style.width = this.viewerContainer.clientWidth + 'px';\n if (toolbarDiv && this.pdfViewer.thumbnailViewModule && (!Browser.isDevice || this.pdfViewer.enableDesktopMode)) {\n this.pdfViewer.thumbnailViewModule.createThumbnailContainer();\n }\n this.createPrintPopup();\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n this.createGoToPagePopup();\n }\n var waitingPopup = createElement('div', { id: this.pdfViewer.element.id + '_loadingIndicator' });\n this.viewerContainer.appendChild(waitingPopup);\n createSpinner({ target: waitingPopup, cssClass: 'e-spin-center' });\n this.setLoaderProperties(waitingPopup);\n if (isBlazor()) {\n this.contextMenuModule = new BlazorContextMenu(this.pdfViewer, this);\n // eslint-disable-next-line\n var spinnerElement = document.getElementsByClassName(this.pdfViewer.element.id + '_spinner');\n if (spinnerElement && spinnerElement[0] && (!spinnerElement[0].classList.contains('e-spin-hide'))) {\n spinnerElement[0].classList.remove('e-spin-show');\n spinnerElement[0].classList.add('e-spin-hide');\n }\n }\n else {\n this.contextMenuModule = new ContextMenu(this.pdfViewer, this);\n }\n this.contextMenuModule.createContextMenu();\n this.createFileInputElement();\n this.wireEvents();\n if (this.pdfViewer.textSearchModule && (!Browser.isDevice || this.pdfViewer.enableDesktopMode)) {\n this.pdfViewer.textSearchModule.createTextSearchBox();\n }\n if (this.pdfViewer.documentPath) {\n if (isBlazor()) {\n this.pdfViewer._dotnetInstance.invokeMethodAsync('LoadDocumentFromClient', this.pdfViewer.documentPath);\n }\n else {\n this.pdfViewer.load(this.pdfViewer.documentPath, null);\n }\n }\n if (this.pdfViewer.annotationModule) {\n this.pdfViewer.annotationModule.initializeCollection();\n }\n }\n if (Browser.isDevice && this.pdfViewer.enableDesktopMode && this.pdfViewer.toolbarModule) {\n this.pdfViewer.interactionMode = 'Pan';\n }\n };\n PdfViewerBase.prototype.createMobilePageNumberContainer = function () {\n this.mobilePageNoContainer = createElement('div', { id: this.pdfViewer.element.id + '_mobilepagenoContainer', className: 'e-pv-mobilepagenoscroll-container' });\n this.mobilecurrentPageContainer = createElement('span', { id: this.pdfViewer.element.id + '_mobilecurrentpageContainer', className: 'e-pv-mobilecurrentpage-container' });\n this.mobilenumberContainer = createElement('span', { id: this.pdfViewer.element.id + '_mobiledashedlineContainer', className: 'e-pv-mobiledashedline-container' });\n this.mobiletotalPageContainer = createElement('span', { id: this.pdfViewer.element.id + '_mobiletotalpageContainer', className: 'e-pv-mobiletotalpage-container' });\n this.mobileScrollerContainer = createElement('div', { id: this.pdfViewer.element.id + '_mobilescrollContainer', className: 'e-pv-mobilescroll-container' });\n this.mobileSpanContainer = createElement('span', { id: this.pdfViewer.element.id + '_mobilespanContainer', className: 'e-pv-mobilespanscroll-container' });\n this.mobileSpanContainer.innerHTML = '1';\n this.mobilecurrentPageContainer.innerHTML = '1';\n this.mobilenumberContainer.innerHTML = '―――――';\n this.mobileScrollerContainer.style.cssFloat = 'right';\n this.mobileScrollerContainer.style.width = '40px';\n this.mobileScrollerContainer.style.height = '32px';\n this.mobileScrollerContainer.style.zIndex = '100';\n this.mobilePageNoContainer.style.width = '120px';\n this.mobilePageNoContainer.style.height = '100px';\n this.mobilePageNoContainer.style.zIndex = '100';\n this.mobilePageNoContainer.style.position = 'fixed';\n this.mobileScrollerContainer.addEventListener('touchstart', this.mobileScrollContainerDown.bind(this));\n this.mobileScrollerContainer.addEventListener('touchend', this.mobileScrollContainerEnd.bind(this));\n this.mobileScrollerContainer.style.display = 'none';\n };\n /**\n * @private\n * @param {string} documentData - file name or base64 string.\n * @param {string} password - password of the PDF document.\n * @returns {void}\n */\n PdfViewerBase.prototype.initiatePageRender = function (documentData, password) {\n this.loadedData = documentData;\n this.documentId = this.createGUID();\n if (this.viewerContainer) {\n this.viewerContainer.scrollTop = 0;\n }\n this.showLoadingIndicator(true);\n this.hashId = ' ';\n this.isFileName = false;\n this.saveDocumentInfo();\n if (this.pdfViewer.interactionMode === 'Pan') {\n this.initiatePanning();\n }\n documentData = this.checkDocumentData(documentData);\n this.setFileName();\n if (this.pdfViewer.downloadFileName) {\n this.downloadFileName = this.pdfViewer.downloadFileName;\n }\n else {\n this.downloadFileName = this.pdfViewer.fileName;\n }\n var jsonObject = this.constructJsonObject(documentData, password);\n this.createAjaxRequest(jsonObject, documentData, password);\n };\n /**\n * @private\n */\n PdfViewerBase.prototype.initiateLoadDocument = function (documentId, isFileName, fileName) {\n if (documentId) {\n this.documentId = documentId;\n }\n if (this.viewerContainer) {\n this.viewerContainer.scrollTop = 0;\n }\n this.showLoadingIndicator(true);\n this.hashId = ' ';\n this.isFileName = isFileName;\n this.saveDocumentInfo();\n if (this.pdfViewer.interactionMode === 'Pan') {\n this.initiatePanning();\n }\n this.setFileName();\n if (this.pdfViewer.fileName === null) {\n if (isFileName && fileName) {\n this.pdfViewer.fileName = fileName;\n this.jsonDocumentId = this.pdfViewer.fileName;\n }\n else {\n this.pdfViewer.fileName = 'undefined.pdf';\n this.jsonDocumentId = null;\n }\n }\n if (this.pdfViewer.downloadFileName) {\n this.downloadFileName = this.pdfViewer.downloadFileName;\n }\n else {\n this.downloadFileName = this.pdfViewer.fileName;\n }\n };\n /**\n * @private\n */\n PdfViewerBase.prototype.loadSuccess = function (documentDetails, password) {\n // eslint-disable-next-line\n var data = documentDetails;\n if (data) {\n if (typeof data !== 'object') {\n try {\n data = JSON.parse(data);\n }\n catch (error) {\n this.onControlError(500, data, this.pdfViewer.serverActionSettings.load);\n data = null;\n }\n }\n if (data) {\n while (typeof data !== 'object') {\n data = JSON.parse(data);\n // eslint-disable-next-line\n if (typeof parseInt(data) === 'number' && !isNaN(parseInt(data))) {\n // eslint-disable-next-line\n data = parseInt(data);\n break;\n }\n }\n if (data.StatusText && (data.StatusText === 'File Does not Exist')) {\n this.showLoadingIndicator(false);\n }\n // eslint-disable-next-line\n if (data.uniqueId === this.documentId || (typeof parseInt(data) === 'number' && !isNaN(parseInt(data)))) {\n this.pdfViewer.fireAjaxRequestSuccess(this.pdfViewer.serverActionSettings.load, data);\n this.requestSuccess(data, null, password);\n }\n }\n }\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.mobileScrollContainerDown = function (event) {\n this.ispageMoved = false;\n this.isThumb = true;\n if (this.isTextMarkupAnnotationModule()) {\n // eslint-disable-next-line max-len\n if (this.pdfViewer.annotationModule.textMarkupAnnotationModule.selectTextMarkupCurrentPage != null && (Browser.isDevice && !this.pdfViewer.enableDesktopMode)) {\n var pageNumber = this.pdfViewer.annotationModule.textMarkupAnnotationModule.selectTextMarkupCurrentPage;\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.selectTextMarkupCurrentPage = null;\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.clearAnnotationSelection(pageNumber);\n this.pdfViewer.toolbar.showToolbar(true);\n }\n }\n this.mobileScrollerContainer.addEventListener('touchmove', this.viewerContainerOnScroll.bind(this), true);\n };\n /**\n * @private\n * @param {MouseEvent} e - default mouse event.\n * @returns {PointModel} - retuns the bounds.\n */\n PdfViewerBase.prototype.relativePosition = function (e) {\n // eslint-disable-next-line\n var currentRect = this.viewerContainer.getBoundingClientRect();\n var left = e.clientX - currentRect.left;\n var top = e.clientY - currentRect.top;\n return { x: left, y: top };\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.setMaximumHeight = function (element) {\n // eslint-disable-next-line\n var currentRect = element.getBoundingClientRect();\n if ((!Browser.isDevice || this.pdfViewer.enableDesktopMode) || (currentRect && currentRect.height === 0)) {\n element.style.minHeight = '500px';\n }\n this.updateWidth();\n this.updateHeight();\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.applyViewerHeight = function (element) {\n // eslint-disable-next-line\n var currentRect = element.getBoundingClientRect();\n if ((Browser.isDevice && !this.pdfViewer.enableDesktopMode) && currentRect && currentRect.height === 0) {\n element.style.minHeight = '500px';\n }\n };\n /**\n * @private\n * @returns {void}\n */\n PdfViewerBase.prototype.updateWidth = function () {\n if (this.pdfViewer.width.toString() !== 'auto') {\n // eslint-disable-next-line\n this.pdfViewer.element.style.width = this.pdfViewer.width;\n }\n };\n /**\n * @private\n * @returns {void}\n */\n PdfViewerBase.prototype.updateHeight = function () {\n if (this.pdfViewer.height.toString() !== 'auto') {\n // eslint-disable-next-line\n this.pdfViewer.element.style.height = this.pdfViewer.height;\n }\n };\n /**\n * @private\n * @returns {void}\n */\n PdfViewerBase.prototype.updateViewerContainer = function () {\n var sideBarContentContainer = this.getElement('_sideBarContentContainer');\n if (sideBarContentContainer && sideBarContentContainer.style.display === 'none') {\n this.navigationPane.updateViewerContainerOnClose();\n }\n else if (sideBarContentContainer && sideBarContentContainer.style.display === 'block') {\n this.navigationPane.updateViewerContainerOnExpand();\n }\n else {\n this.updateViewerContainerSize();\n }\n // eslint-disable-next-line\n var toolbarModule = this.pdfViewer.toolbarModule;\n if (toolbarModule) {\n if (isBlazor()) {\n if (this.pdfViewer.enableToolbar || this.pdfViewer.enableAnnotationToolbar) {\n this.pdfViewer._dotnetInstance.invokeMethodAsync('RefreshToolbarItems');\n }\n }\n else {\n if (this.pdfViewer.enableToolbar) {\n toolbarModule.toolbar.refreshOverflow();\n }\n if (this.pdfViewer.enableAnnotationToolbar && toolbarModule.annotationToolbarModule) {\n toolbarModule.annotationToolbarModule.toolbar.refreshOverflow();\n }\n }\n }\n };\n PdfViewerBase.prototype.updateViewerContainerSize = function () {\n this.viewerContainer.style.width = this.pdfViewer.element.clientWidth + 'px';\n this.pageContainer.style.width = this.viewerContainer.offsetWidth + 'px';\n this.updateZoomValue();\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.mobileScrollContainerEnd = function (event) {\n if (!this.ispageMoved) {\n this.goToPagePopup.show();\n }\n this.isThumb = false;\n this.ispageMoved = false;\n this.mobileScrollerContainer.removeEventListener('touchmove', this.viewerContainerOnScroll.bind(this), true);\n this.mobilePageNoContainer.style.display = 'none';\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.createAjaxRequest = function (jsonObject, documentData, password) {\n var proxy = null;\n proxy = this;\n if (this.pdfViewer.serverActionSettings) {\n this.loadRequestHandler = new AjaxHandler(this.pdfViewer);\n this.loadRequestHandler.url = this.pdfViewer.serviceUrl + '/' + this.pdfViewer.serverActionSettings.load;\n this.loadRequestHandler.responseType = 'json';\n this.loadRequestHandler.mode = true;\n // eslint-disable-next-line\n jsonObject['action'] = 'Load';\n // eslint-disable-next-line\n jsonObject['elementId'] = this.pdfViewer.element.id;\n this.loadRequestHandler.send(jsonObject);\n // eslint-disable-next-line\n this.loadRequestHandler.onSuccess = function (result) {\n // eslint-disable-next-line\n var data = result.data;\n if (data) {\n if (typeof data !== 'object') {\n try {\n data = JSON.parse(data);\n }\n catch (error) {\n proxy.onControlError(500, data, this.pdfViewer.serverActionSettings.load);\n data = null;\n }\n }\n if (data) {\n while (typeof data !== 'object') {\n data = JSON.parse(data);\n // eslint-disable-next-line\n if (typeof parseInt(data) === 'number' && !isNaN(parseInt(data))) {\n // eslint-disable-next-line\n data = parseInt(data);\n break;\n }\n }\n // eslint-disable-next-line\n if (data.uniqueId === proxy.documentId || (typeof parseInt(data) === 'number' && !isNaN(parseInt(data)))) {\n proxy.updateFormFieldName(data);\n proxy.pdfViewer.fireAjaxRequestSuccess(this.pdfViewer.serverActionSettings.load, data);\n proxy.requestSuccess(data, documentData, password);\n }\n }\n }\n else {\n proxy.showLoadingIndicator(false);\n proxy.openImportExportNotificationPopup(proxy.pdfViewer.localeObj.getConstant('Import PDF Failed'));\n }\n };\n // eslint-disable-next-line\n this.loadRequestHandler.onFailure = function (result) {\n var statusString = result.status.toString().split('')[0];\n if (statusString === '4' && result.status.toString() !== \"404\") {\n proxy.openNotificationPopup('Client error');\n }\n else {\n proxy.openNotificationPopup();\n }\n proxy.showLoadingIndicator(false);\n proxy.pdfViewer.fireAjaxRequestFailed(result.status, result.statusText, proxy.pdfViewer.serverActionSettings.load);\n };\n // eslint-disable-next-line\n this.loadRequestHandler.onError = function (result) {\n proxy.openNotificationPopup();\n proxy.showLoadingIndicator(false);\n // eslint-disable-next-line\n proxy.pdfViewer.fireAjaxRequestFailed(result.status, result.statusText, proxy.pdfViewer.serverActionSettings.load);\n };\n }\n };\n // EJ2-60380 - As of now, in form designer the element name is taken fromfield.ActualFieldName (with hypen) but for\n // Form fields it is taken from field.FieldName (without hypen).\n // For this reason when user taken the form feilds on button click, name of the form feilds are different with and without form designer module\n // eslint-disable-next-line\n PdfViewerBase.prototype.updateFormFieldName = function (data) {\n if (data && data.PdfRenderedFormFields && data.PdfRenderedFormFields.length > 0) {\n var field = void 0;\n for (var i = 0; i < data.PdfRenderedFormFields.length; i++) {\n field = data.PdfRenderedFormFields[parseInt(i.toString(), 10)];\n if (field) {\n if (field.ActualFieldName) {\n field.FieldName = field.ActualFieldName;\n }\n }\n }\n }\n };\n /**\n * @private\n * @param {string} errorString - The message to be displayed.\n * @returns {void}\n */\n PdfViewerBase.prototype.openNotificationPopup = function (errorString) {\n var _this = this;\n if (this.pdfViewer.showNotificationDialog) {\n if (errorString === 'Client error') {\n if (isBlazor()) {\n var promise = this.pdfViewer._dotnetInstance.invokeMethodAsync('GetLocaleText', 'PdfViewer_Clienterror');\n promise.then(function (value) {\n _this.textLayer.createNotificationPopup(value);\n });\n }\n else {\n this.textLayer.createNotificationPopup(this.pdfViewer.localeObj.getConstant('Client error'));\n }\n }\n else {\n if (isBlazor()) {\n var promise = this.pdfViewer._dotnetInstance.invokeMethodAsync('GetLocaleText', 'PdfViewer_Servererror');\n promise.then(function (value) {\n _this.textLayer.createNotificationPopup(value);\n });\n }\n else {\n this.textLayer.createNotificationPopup(this.pdfViewer.localeObj.getConstant('Server error'));\n }\n }\n if (this.getElement('_notify')) {\n this.getElement('_notify').classList.add('e-pv-notification-large-content');\n }\n }\n };\n /**\n * @private\n * @param {string} errorString - The message to be shown.\n * @returns {void}\n */\n PdfViewerBase.prototype.showNotificationPopup = function (errorString) {\n if (!this.pdfViewer.showNotificationDialog && errorString !== '') {\n this.textLayer.createNotificationPopup(errorString);\n if (this.getElement('_notify')) {\n this.getElement('_notify').classList.add('e-pv-notification-large-content');\n }\n }\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.requestSuccess = function (data, documentData, password) {\n if (data && data.pageCount !== undefined) {\n if (isBlazor() && this.isPassword) {\n this.isPassword = false;\n this.isPasswordAvailable = false;\n this.pdfViewer._dotnetInstance.invokeMethodAsync('ClosePasswordDialog');\n }\n if (password && password != '') {\n this.passwordData = password;\n }\n this.pdfViewer.allowServerDataBinding = false;\n this.pageCount = data.pageCount;\n this.pdfViewer.pageCount = data.pageCount;\n this.hashId = data.hashId;\n this.documentLiveCount = data.documentLiveCount;\n this.isAnnotationCollectionRemoved = false;\n this.saveDocumentHashData();\n this.saveFormfieldsData(data);\n this.pdfViewer.allowServerDataBinding = true;\n this.digitalSignaturePages = data.digitalSignaturePages;\n this.pageRender(data);\n // eslint-disable-next-line\n var pageData = { pageCount: data.pageCount, pageSizes: data.pageSizes };\n window.sessionStorage.setItem(this.documentId + '_pagedata', JSON.stringify(pageData));\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n this.mobileScrollerContainer.style.display = '';\n // eslint-disable-next-line\n var toolbarHeight = this.pdfViewer.toolbarModule ? this.toolbarHeight : 0;\n this.mobileScrollerContainer.style.top = (toolbarHeight) + 'px';\n }\n this.restrictionList = data.RestrictionSummary;\n this.RestrictionEnabled(this.restrictionList, false);\n }\n else {\n this.pageCount = 0;\n this.currentPageNumber = 0;\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n this.mobileScrollerContainer.style.display = 'none';\n }\n if (data === 4) {\n if (!isBlazor()) {\n // 4 is error code for encrypted document.\n this.renderPasswordPopup(documentData, password);\n }\n }\n else if (data === 3) {\n if (!isBlazor()) {\n // 3 is error code for corrupted document.\n this.renderCorruptPopup();\n }\n }\n if (this.pdfViewer.toolbarModule) {\n this.pdfViewer.toolbarModule.updateToolbarItems();\n }\n }\n // eslint-disable-next-line\n var annotationModule = this.pdfViewer.annotationModule;\n // eslint-disable-next-line max-len\n if (annotationModule && annotationModule.textMarkupAnnotationModule && annotationModule.textMarkupAnnotationModule.isEnableTextMarkupResizer(annotationModule.textMarkupAnnotationModule.currentTextMarkupAddMode)) {\n annotationModule.textMarkupAnnotationModule.createAnnotationSelectElement();\n }\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.RestrictionEnabled = function (restrictionSummary, isEnable) {\n if (restrictionSummary) {\n for (var i = 0; i < restrictionSummary.length; i++) {\n this.EnableRestriction(restrictionSummary[parseInt(i.toString(), 10)], isEnable);\n if (!isBlazor()) {\n if (this.pdfViewer.toolbarModule) {\n this.pdfViewer.toolbarModule.DisableToolbarItems(restrictionSummary[parseInt(i.toString(), 10)], isEnable);\n }\n }\n else {\n if (this.pdfViewer.toolbarModule) {\n this.pdfViewer._dotnetInstance.invokeMethodAsync('RestrictToolbarItems', restrictionSummary, isEnable);\n }\n }\n }\n }\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.EnableRestriction = function (restrictionSummary, isEnable) {\n switch (restrictionSummary) {\n case 'Print':\n this.pdfViewer.enablePrint = isEnable;\n break;\n case 'CopyContent':\n this.pdfViewer.enableTextSelection = isEnable;\n break;\n case 'FillFields':\n this.pdfViewer.enableFormFields = isEnable;\n this.enableFormFieldButton(isEnable);\n break;\n case 'EditAnnotations':\n this.pdfViewer.enableAnnotation = isEnable;\n break;\n }\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.pageRender = function (data) {\n this.document = null;\n this.passwordDialogReset();\n if (this.passwordPopup) {\n this.passwordPopup.hide();\n }\n var pageIndex = 0;\n this.initPageDiv(data);\n this.currentPageNumber = pageIndex + 1;\n this.pdfViewer.currentPageNumber = pageIndex + 1;\n this.previousZoomValue = this.pdfViewer.zoomValue;\n var isZoomMode = false;\n if (this.pdfViewer.magnificationModule) {\n this.pdfViewer.magnificationModule.isAutoZoom = true;\n if (this.pdfViewer.zoomValue && this.pdfViewer.zoomValue > 0) {\n if (this.pdfViewer.zoomValue !== 100) {\n isZoomMode = true;\n }\n this.isInitialPageMode = true;\n this.pdfViewer.magnification.zoomTo(this.pdfViewer.zoomValue);\n }\n if (this.pdfViewer.zoomMode === 'FitToWidth') {\n this.isInitialPageMode = true;\n this.pdfViewer.magnificationModule.fitToWidth();\n }\n else if (this.pdfViewer.zoomMode === 'FitToPage') {\n this.isInitialPageMode = true;\n this.pdfViewer.magnificationModule.fitToPage();\n }\n this.documentLoaded = true;\n this.pdfViewer.magnificationModule.isInitialLoading = true;\n this.onWindowResize();\n this.documentLoaded = false;\n this.pdfViewer.magnificationModule.isInitialLoading = false;\n }\n this.isDocumentLoaded = true;\n // eslint-disable-next-line\n var viewPortWidth = 816;\n // eslint-disable-next-line radix\n viewPortWidth = parseInt(viewPortWidth);\n var pageWidth = this.pageSize[parseInt(pageIndex.toString(), 10)].width;\n if (this.renderedPagesList.indexOf(pageIndex) === -1 && !isZoomMode) {\n this.createRequestForRender(pageIndex);\n var pageNumber = pageIndex + 1;\n if (pageNumber < this.pageCount) {\n this.createRequestForRender(pageNumber);\n pageNumber = pageNumber + 1;\n }\n if (this.pageSize[parseInt(pageNumber.toString(), 10)]) {\n var pageTop = this.getPageTop(pageNumber);\n var viewerHeight = this.viewerContainer.clientHeight;\n while (viewerHeight > pageTop) {\n if (this.pageSize[parseInt(pageNumber.toString(), 10)]) {\n this.renderPageElement(pageNumber);\n this.createRequestForRender(pageNumber);\n pageTop = this.getPageTop(pageNumber);\n pageNumber = pageNumber + 1;\n }\n else {\n break;\n }\n }\n }\n }\n this.showLoadingIndicator(false);\n if (!isBlazor()) {\n if (this.pdfViewer.toolbarModule) {\n this.pdfViewer.toolbarModule.uploadedDocumentName = null;\n this.pdfViewer.toolbarModule.updateCurrentPage(this.currentPageNumber);\n this.pdfViewer.toolbarModule.updateToolbarItems();\n if (this.pdfViewer.toolbar && this.pdfViewer.toolbar.annotationToolbarModule) {\n this.pdfViewer.toolbar.annotationToolbarModule.enableAnnotationAddTools(true);\n }\n // eslint-disable-next-line max-len\n this.viewerContainer.setAttribute('aria-labelledby', this.pdfViewer.element.id + '_pageDiv_' + (this.currentPageNumber - 1));\n }\n }\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n this.mobileSpanContainer.innerHTML = this.currentPageNumber.toString();\n this.mobilecurrentPageContainer.innerHTML = this.currentPageNumber.toString();\n }\n };\n PdfViewerBase.prototype.renderPasswordPopup = function (documentData, password) {\n var _this = this;\n if (!isBlazor()) {\n if (!this.isPasswordAvailable) {\n if (this.isFileName) {\n this.document = documentData;\n }\n else {\n this.document = 'data:application/pdf;base64,' + documentData;\n }\n this.isPasswordAvailable = true;\n this.createPasswordPopup();\n this.pdfViewer.fireDocumentLoadFailed(true, null);\n this.passwordPopup.show();\n }\n else {\n this.pdfViewer.fireDocumentLoadFailed(true, password);\n this.promptElement.classList.add('e-pv-password-error');\n this.promptElement.textContent = this.pdfViewer.localeObj.getConstant('Invalid Password');\n this.promptElement.focus();\n if (this.isFileName) {\n this.document = documentData;\n }\n else {\n this.document = 'data:application/pdf;base64,' + documentData;\n }\n this.passwordPopup.show();\n }\n }\n else {\n // eslint-disable-next-line\n var promptElement_1 = document.getElementById(this.pdfViewer.element.id + '_prompt');\n var promise = this.pdfViewer._dotnetInstance.invokeMethodAsync('GetLocaleText', 'PdfViewer_EnterPassword');\n promise.then(function (value) {\n promptElement_1.textContent = value;\n });\n // eslint-disable-next-line\n var passwordInput_1 = document.querySelector('#' + this.pdfViewer.element.id + '_password_input');\n passwordInput_1.addEventListener('keyup', function () {\n if (passwordInput_1.value === '') {\n _this.passwordDialogReset();\n }\n });\n passwordInput_1.addEventListener('focus', function () {\n passwordInput_1.parentElement.classList.add('e-input-focus');\n });\n passwordInput_1.addEventListener('blur', function () {\n passwordInput_1.parentElement.classList.remove('e-input-focus');\n });\n if (!this.isPasswordAvailable) {\n if (this.isFileName) {\n this.document = documentData;\n }\n else {\n this.document = 'data:application/pdf;base64,' + documentData;\n }\n this.isPasswordAvailable = true;\n this.pdfViewer.fireDocumentLoadFailed(true, null);\n }\n else {\n this.pdfViewer.fireDocumentLoadFailed(true, password);\n promptElement_1.classList.add('e-pv-password-error');\n var promise_1 = this.pdfViewer._dotnetInstance.invokeMethodAsync('GetLocaleText', 'PdfViewer_InvalidPassword');\n promise_1.then(function (value) {\n promptElement_1.textContent = value;\n });\n promptElement_1.focus();\n if (this.isFileName) {\n this.document = documentData;\n }\n else {\n this.document = 'data:application/pdf;base64,' + documentData;\n }\n }\n this.pdfViewer._dotnetInstance.invokeMethodAsync('OpenPasswordDialog');\n }\n };\n PdfViewerBase.prototype.renderCorruptPopup = function () {\n this.pdfViewer.fireDocumentLoadFailed(false, null);\n this.documentId = null;\n if (this.pdfViewer.showNotificationDialog) {\n if (!isBlazor()) {\n this.createCorruptedPopup();\n this.corruptPopup.show();\n }\n else {\n this.pdfViewer._dotnetInstance.invokeMethodAsync('OpenCorruptedDialog');\n }\n }\n };\n PdfViewerBase.prototype.constructJsonObject = function (documentData, password) {\n var jsonObject;\n if (password) {\n this.isPasswordAvailable = true;\n this.passwordData = password;\n // eslint-disable-next-line max-len\n jsonObject = { document: documentData, password: password, zoomFactor: \"1\", isFileName: this.isFileName.toString(), uniqueId: this.documentId, showDigitalSignatureAppearance: this.pdfViewer.showDigitalSignatureAppearance };\n }\n else {\n this.isPasswordAvailable = false;\n this.passwordData = '';\n jsonObject = { document: documentData, zoomFactor: \"1\", isFileName: this.isFileName.toString(), uniqueId: this.documentId, hideEmptyDigitalSignatureFields: this.pdfViewer.hideEmptyDigitalSignatureFields, showDigitalSignatureAppearance: this.pdfViewer.showDigitalSignatureAppearance };\n }\n return jsonObject;\n };\n PdfViewerBase.prototype.checkDocumentData = function (documentData) {\n var base64String = documentData.split('base64,')[1];\n if (base64String === undefined) {\n this.isFileName = true;\n this.jsonDocumentId = documentData;\n if (this.pdfViewer.fileName === null) {\n // eslint-disable-next-line max-len\n var documentStringArray = (documentData.indexOf('\\\\') !== -1) ? documentData.split('\\\\') : documentData.split('/');\n this.pdfViewer.fileName = documentStringArray[documentStringArray.length - 1];\n this.jsonDocumentId = this.pdfViewer.fileName;\n base64String = documentData;\n }\n }\n else {\n this.jsonDocumentId = null;\n }\n return base64String;\n };\n PdfViewerBase.prototype.setFileName = function () {\n if (this.pdfViewer.fileName === null) {\n if (this.pdfViewer.toolbarModule && this.pdfViewer.toolbarModule.uploadedDocumentName) {\n this.pdfViewer.fileName = this.pdfViewer.toolbarModule.uploadedDocumentName;\n this.jsonDocumentId = this.pdfViewer.fileName;\n }\n else {\n this.pdfViewer.fileName = 'undefined.pdf';\n this.jsonDocumentId = null;\n }\n }\n };\n PdfViewerBase.prototype.saveDocumentInfo = function () {\n window.sessionStorage.setItem('currentDocument', this.documentId);\n window.sessionStorage.setItem('serviceURL', this.pdfViewer.serviceUrl);\n if (this.pdfViewer.serverActionSettings) {\n window.sessionStorage.setItem('unload', this.pdfViewer.serverActionSettings.unload);\n }\n };\n PdfViewerBase.prototype.saveDocumentHashData = function () {\n var hashId = '';\n if (Browser.isIE || Browser.info.name === 'edge') {\n hashId = encodeURI(this.hashId);\n }\n else {\n hashId = this.hashId;\n }\n window.sessionStorage.setItem('hashId', hashId);\n if (this.documentLiveCount) {\n window.sessionStorage.setItem('documentLiveCount', this.documentLiveCount.toString());\n }\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.saveFormfieldsData = function (data) {\n this.pdfViewer.isFormFieldDocument = false;\n this.enableFormFieldButton(false);\n if (data && data.PdfRenderedFormFields && data.PdfRenderedFormFields.length > 0) {\n if (this.formfieldvalue) {\n if (this.pdfViewer.formFieldsModule) {\n this.setItemInSessionStorage(this.formfieldvalue, '_formfields');\n }\n this.formfieldvalue = null;\n }\n else if (this.pdfViewer.formFieldsModule) {\n for (var i = 0; i < data.PdfRenderedFormFields.length; i++) {\n if (data.PdfRenderedFormFields[parseInt(i.toString(), 10)].FieldName == '') {\n data.PdfRenderedFormFields.splice(i, 1);\n }\n }\n this.setItemInSessionStorage(data.PdfRenderedFormFields, '_formfields');\n }\n if (this.pdfViewer.enableFormFields && this.pdfViewer.formFieldsModule) {\n this.pdfViewer.formFieldsModule.formFieldCollections();\n }\n if (this.pdfViewer.formFieldCollections.length > 0) {\n this.pdfViewer.isFormFieldDocument = true;\n this.enableFormFieldButton(true);\n }\n }\n };\n /**\n * @param {boolean} isEnable - Enable or disable the toolbar itema.\n * @returns {void}\n * @private\n */\n PdfViewerBase.prototype.enableFormFieldButton = function (isEnable) {\n if (isEnable) {\n this.pdfViewer.isFormFieldDocument = true;\n }\n if (this.pdfViewer.toolbarModule && this.pdfViewer.toolbarModule.submitItem) {\n this.pdfViewer.toolbarModule.toolbar.enableItems(this.pdfViewer.toolbarModule.submitItem.parentElement, isEnable);\n }\n };\n PdfViewerBase.prototype.updateWaitingPopup = function (pageNumber) {\n if (this.pageSize[parseInt(pageNumber.toString(), 10)].top != null) {\n // eslint-disable-next-line max-len\n var pageCurrentRect = this.getElement('_pageDiv_' + pageNumber).getBoundingClientRect();\n var waitingPopup = this.getElement('_pageDiv_' + pageNumber).firstChild.firstChild;\n if (pageCurrentRect.top < 0) {\n if (this.toolbarHeight + (this.viewerContainer.clientHeight / 2) - pageCurrentRect.top < pageCurrentRect.height) {\n waitingPopup.style.top = ((this.viewerContainer.clientHeight / 2) - pageCurrentRect.top) - this.toolbarHeight + 'px';\n }\n else {\n if (this.toolbarHeight + (pageCurrentRect.bottom / 2) - pageCurrentRect.top < pageCurrentRect.height) {\n waitingPopup.style.top = ((pageCurrentRect.bottom / 2) - pageCurrentRect.top) - this.toolbarHeight + 'px';\n }\n }\n }\n else {\n waitingPopup.style.top = this.viewerContainer.clientHeight / 2 + 'px';\n }\n if ((Browser.isDevice && !this.pdfViewer.enableDesktopMode) && pageCurrentRect.width > this.viewerContainer.clientWidth) {\n waitingPopup.style.left = (this.viewerContainer.clientWidth / 2) + (this.viewerContainer.scrollLeft) + 'px';\n }\n else if (this.getZoomFactor() > 1.25 && pageCurrentRect.width > this.viewerContainer.clientWidth) {\n waitingPopup.style.left = this.viewerContainer.clientWidth / 2 + 'px';\n }\n else {\n waitingPopup.style.left = pageCurrentRect.width / 2 + 'px';\n }\n }\n };\n /**\n * @private\n * @returns {number} - returned the page value.\n */\n PdfViewerBase.prototype.getActivePage = function (isPageNumber) {\n if (this.activeElements && !isNullOrUndefined(this.activeElements.activePageID)) {\n if (isPageNumber) {\n return this.activeElements.activePageID + 1;\n }\n else {\n return this.activeElements.activePageID;\n }\n }\n else {\n if (isPageNumber) {\n return this.currentPageNumber;\n }\n else {\n return this.currentPageNumber - 1;\n }\n }\n };\n PdfViewerBase.prototype.createWaitingPopup = function (pageNumber) {\n // eslint-disable-next-line max-len\n var waitingPopup = document.getElementById(this.pdfViewer.element.id + '_pageDiv_' + pageNumber);\n if (waitingPopup) {\n createSpinner({ target: waitingPopup });\n this.setLoaderProperties(waitingPopup);\n }\n };\n PdfViewerBase.prototype.showLoadingIndicator = function (isShow) {\n var waitingPopup = this.getElement('_loadingIndicator');\n if (waitingPopup) {\n if (isShow) {\n waitingPopup.style.display = 'block';\n showSpinner(waitingPopup);\n }\n else {\n waitingPopup.style.display = 'none';\n hideSpinner(waitingPopup);\n }\n }\n };\n PdfViewerBase.prototype.showPageLoadingIndicator = function (pageIndex, isShow) {\n var waitingPopup = this.getElement('_pageDiv_' + pageIndex);\n if (waitingPopup != null) {\n if (isShow) {\n showSpinner(waitingPopup);\n }\n else {\n hideSpinner(waitingPopup);\n }\n this.updateWaitingPopup(pageIndex);\n }\n };\n /**\n * @param {boolean} isShow - Show or hide print loading indicator.\n * @returns {void}\n * @private\n */\n PdfViewerBase.prototype.showPrintLoadingIndicator = function (isShow) {\n var printWaitingPopup = this.getElement('_printLoadingIndicator');\n if (printWaitingPopup != null) {\n if (isShow) {\n this.printMainContainer.style.display = 'block';\n showSpinner(printWaitingPopup);\n }\n else {\n this.printMainContainer.style.display = 'none';\n hideSpinner(printWaitingPopup);\n }\n }\n };\n PdfViewerBase.prototype.setLoaderProperties = function (element) {\n var spinnerElement = element.firstChild.firstChild.firstChild;\n if (spinnerElement) {\n spinnerElement.style.height = '48px';\n spinnerElement.style.width = '48px';\n spinnerElement.style.transformOrigin = '24px 24px 24px';\n }\n };\n /**\n * @param {number} pageNumber - Specify the pageNumber.\n * @returns {void}\n * @private\n */\n PdfViewerBase.prototype.updateScrollTop = function (pageNumber) {\n var _this = this;\n // eslint-disable-next-line\n if (this.pageSize[pageNumber] != null) {\n this.renderElementsVirtualScroll(pageNumber);\n this.viewerContainer.scrollTop = this.getPageTop(pageNumber);\n if (this.renderedPagesList.indexOf(pageNumber) === -1) {\n this.createRequestForRender(pageNumber);\n }\n setTimeout(function () {\n var currentPageNumber = pageNumber + 1;\n if (currentPageNumber !== _this.currentPageNumber) {\n _this.pdfViewer.currentPageNumber = currentPageNumber;\n _this.currentPageNumber = currentPageNumber;\n if (_this.pdfViewer.toolbarModule) {\n _this.pdfViewer.toolbarModule.updateCurrentPage(currentPageNumber);\n }\n }\n }, 100);\n }\n };\n /**\n * @private\n * @returns {number} - Returns the zoom factor value.\n */\n PdfViewerBase.prototype.getZoomFactor = function () {\n if (this.pdfViewer.magnificationModule) {\n return this.pdfViewer.magnificationModule.zoomFactor;\n }\n else {\n // default value\n return 1;\n }\n };\n /**\n * @private\n * @returns {boolean} - Returns whether the pinch zoom is performed or not.\n */\n PdfViewerBase.prototype.getPinchZoomed = function () {\n if (this.pdfViewer.magnificationModule) {\n return this.pdfViewer.magnificationModule.isPinchZoomed;\n }\n else {\n // default value\n return false;\n }\n };\n /**\n * @private\n * @returns {boolean} -Returns whether the zoom is performed or not.\n */\n PdfViewerBase.prototype.getMagnified = function () {\n if (this.pdfViewer.magnificationModule) {\n return this.pdfViewer.magnificationModule.isMagnified;\n }\n else {\n // default value\n return false;\n }\n };\n PdfViewerBase.prototype.getPinchScrolled = function () {\n if (this.pdfViewer.magnificationModule) {\n return this.pdfViewer.magnificationModule.isPinchScrolled;\n }\n else {\n // default value\n return false;\n }\n };\n PdfViewerBase.prototype.getPagesPinchZoomed = function () {\n if (this.pdfViewer.magnificationModule) {\n return this.pdfViewer.magnificationModule.isPagePinchZoomed;\n }\n else {\n // default value\n return false;\n }\n };\n PdfViewerBase.prototype.getPagesZoomed = function () {\n if (this.pdfViewer.magnificationModule) {\n return this.pdfViewer.magnificationModule.isPagesZoomed;\n }\n else {\n // default value\n return false;\n }\n };\n PdfViewerBase.prototype.getRerenderCanvasCreated = function () {\n if (this.pdfViewer.magnificationModule) {\n return this.pdfViewer.magnificationModule.isRerenderCanvasCreated;\n }\n else {\n // default value\n return false;\n }\n };\n /**\n * @private\n * @returns {string} - retrun the docuumentid.\n */\n PdfViewerBase.prototype.getDocumentId = function () {\n return this.documentId;\n };\n /**\n * @private\n * @returns {void}\n */\n PdfViewerBase.prototype.download = function () {\n if (this.pageCount > 0) {\n this.createRequestForDownload();\n }\n };\n /**\n * @private\n * @returns {promise} - Returns the blob object.\n */\n PdfViewerBase.prototype.saveAsBlob = function () {\n var _this = this;\n if (this.pageCount > 0) {\n return new Promise(function (resolve, reject) {\n _this.saveAsBlobRequest().then(function (value) {\n resolve(value);\n });\n });\n }\n return null;\n };\n PdfViewerBase.prototype.saveAsBlobRequest = function () {\n var _this = this;\n var proxy = null;\n proxy = this;\n var promise = new Promise(function (resolve, reject) {\n // eslint-disable-next-line\n var jsonObject = proxy.constructJsonDownload();\n _this.dowonloadRequestHandler = new AjaxHandler(_this.pdfViewer);\n _this.dowonloadRequestHandler.url = proxy.pdfViewer.serviceUrl + '/' + proxy.pdfViewer.serverActionSettings.download;\n _this.dowonloadRequestHandler.responseType = 'text';\n _this.dowonloadRequestHandler.send(jsonObject);\n // eslint-disable-next-line\n _this.dowonloadRequestHandler.onSuccess = function (result) {\n // eslint-disable-next-line\n var data = result.data;\n if (data) {\n if (typeof data === 'object') {\n data = JSON.parse(data);\n }\n if (typeof data !== 'object' && data.indexOf('data:application/pdf') === -1) {\n proxy.onControlError(500, data, proxy.pdfViewer.serverActionSettings.download);\n data = null;\n }\n if (data) {\n proxy.pdfViewer.fireAjaxRequestSuccess(proxy.pdfViewer.serverActionSettings.download, data);\n var blobUrl = proxy.createBlobUrl(data.split('base64,')[1], 'application/pdf');\n resolve(blobUrl);\n }\n }\n };\n // eslint-disable-next-line\n _this.dowonloadRequestHandler.onFailure = function (result) {\n proxy.pdfViewer.fireAjaxRequestFailed(result.status, result.statusText, proxy.pdfViewer.serverActionSettings.download);\n };\n // eslint-disable-next-line\n _this.dowonloadRequestHandler.onError = function (result) {\n proxy.openNotificationPopup();\n proxy.pdfViewer.fireAjaxRequestFailed(result.status, result.statusText, proxy.pdfViewer.serverActionSettings.download);\n };\n });\n return promise;\n };\n /**\n * @param {boolean} isTriggerEvent - check to trigger the event.\n * @returns {void}\n * @private\n */\n PdfViewerBase.prototype.clear = function (isTriggerEvent) {\n var proxy = this;\n var pdfViewer = proxy.pdfViewer;\n var printModule = pdfViewer.printModule;\n var textSearchModule = pdfViewer.textSearchModule;\n var bookmarkViewModule = pdfViewer.bookmarkViewModule;\n var thumbnailViewModule = pdfViewer.thumbnailView;\n var annotationModule = pdfViewer.annotation;\n var magnificationModule = pdfViewer.magnificationModule;\n var textSelectionModule = pdfViewer.textSelectionModule;\n var formFieldsModule = pdfViewer.formFieldsModule;\n var signatureModule = proxy.signatureModule;\n proxy.isPasswordAvailable = false;\n proxy.isDocumentLoaded = false;\n proxy.isInitialLoaded = false;\n proxy.isImportAction = false;\n proxy.annotationPageList = [];\n proxy.annotationComments = null;\n pdfViewer.annotationCollection = [];\n pdfViewer.signatureCollection = [];\n pdfViewer.formFieldCollection = [];\n proxy.isAnnotationCollectionRemoved = false;\n proxy.documentAnnotationCollections = null;\n proxy.isDrawnCompletely = false;\n proxy.annotationRenderredList = [];\n proxy.isImportAction = false;\n proxy.isImportedAnnotation = false;\n proxy.importedAnnotation = [];\n proxy.isStorageExceed = false;\n proxy.annotationStorage = {};\n proxy.formFieldStorage = {};\n proxy.downloadCollections = {};\n proxy.annotationEvent = null;\n proxy.highestWidth = 0;\n proxy.highestHeight = 0;\n proxy.requestLists = [];\n proxy.tilerequestLists = [];\n proxy.isToolbarInkClicked = false;\n pdfViewer.formFieldCollections = [];\n proxy.passwordData = '';\n proxy.isFocusField = false;\n proxy.focusField = [];\n proxy.updateDocumentEditedProperty(false);\n pdfViewer.clipboardData.clipObject = {};\n if (pdfViewer.formDesignerModule) {\n pdfViewer.formDesignerModule.formFieldIndex = 0;\n if (proxy.activeElements) {\n pdfViewer.clearSelection(proxy.activeElements.activePageID);\n }\n pdfViewer.zIndexTable = [];\n }\n proxy.initiateTextSelectMode();\n proxy.RestrictionEnabled(proxy.restrictionList, true);\n proxy.restrictionList = null;\n if (!Browser.isDevice || pdfViewer.enableDesktopMode) {\n if (proxy.navigationPane.sideBarToolbar) {\n proxy.navigationPane.clear();\n }\n }\n if (!isBlazor() && Browser.isDevice || !pdfViewer.enableDesktopMode) {\n proxy.navigationPane.clear();\n }\n if (thumbnailViewModule) {\n thumbnailViewModule.clear();\n }\n if (bookmarkViewModule) {\n bookmarkViewModule.clear();\n }\n if (magnificationModule) {\n magnificationModule.isMagnified = false;\n magnificationModule.clearIntervalTimer();\n }\n if (textSelectionModule) {\n textSelectionModule.clearTextSelection();\n }\n if (textSearchModule) {\n textSearchModule.resetTextSearch();\n }\n if (annotationModule) {\n annotationModule.clear();\n annotationModule.initializeCollection();\n }\n if (formFieldsModule) {\n formFieldsModule.readOnlyCollection = [];\n formFieldsModule.signatureFieldCollection = [];\n formFieldsModule.renderedPageList = [];\n formFieldsModule.currentTarget = null;\n }\n if (signatureModule) {\n signatureModule.signaturecollection = [];\n signatureModule.outputcollection = [];\n signatureModule.signAnnotationIndex = [];\n }\n if (proxy.pageSize) {\n proxy.pageSize = [];\n }\n if (proxy.renderedPagesList) {\n proxy.renderedPagesList = [];\n }\n if (proxy.pageContainer) {\n while (proxy.pageContainer.hasChildNodes()) {\n proxy.pageContainer.removeChild(proxy.pageContainer.lastChild);\n }\n }\n if (proxy.pageCount > 0) {\n proxy.unloadDocument(proxy);\n // eslint-disable-next-line\n proxy.textLayer.characterBound = new Array();\n proxy.loadRequestHandler && proxy.loadRequestHandler.clear();\n proxy.virtualLoadRequestHandler && proxy.virtualLoadRequestHandler.clear();\n proxy.pageRequestHandler && proxy.pageRequestHandler.clear();\n proxy.dowonloadRequestHandler && proxy.dowonloadRequestHandler.clear();\n proxy.importAnnotationRequestHandler && proxy.importAnnotationRequestHandler.clear();\n proxy.exportAnnotationRequestHandler && proxy.exportAnnotationRequestHandler.clear();\n proxy.importFormFieldsRequestHandler && proxy.importFormFieldsRequestHandler.clear();\n proxy.exportFormFieldsRequestHandler && proxy.exportFormFieldsRequestHandler.clear();\n if (printModule && printModule.printRequestHandler) {\n printModule.printRequestHandler.clear();\n }\n }\n proxy.windowSessionStorageClear();\n if (proxy.pinchZoomStorage) {\n proxy.pinchZoomStorage = [];\n }\n if ((proxy.previousZoomValue || proxy.previousZoomValue === 0) && proxy.previousZoomValue !== pdfViewer.zoomValue) {\n pdfViewer.zoomValue = proxy.previousZoomValue;\n }\n if (isTriggerEvent && proxy.pageCount > 0) {\n pdfViewer.fireDocumentUnload(this.pdfViewer.fileName);\n }\n this.pdfViewer.fileName = null;\n };\n /**\n * @private\n * @returns {void}\n */\n PdfViewerBase.prototype.destroy = function () {\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n this.pdfViewer.element.classList.remove('e-pv-mobile-view');\n }\n this.unWireEvents();\n this.clear(false);\n this.pageContainer.parentNode ? this.pageContainer.parentNode.removeChild(this.pageContainer) : null;\n this.viewerContainer.parentNode ? this.viewerContainer.parentNode.removeChild(this.viewerContainer) : null;\n if (this.contextMenuModule) {\n var contextMenuElement = this.contextMenuModule.contextMenuElement;\n contextMenuElement && contextMenuElement.ej2_instances && contextMenuElement.ej2_instances.length > 0 ? this.contextMenuModule.destroy() : null;\n }\n if (this.pdfViewer.toolbarModule) {\n this.navigationPane.destroy();\n }\n var measureElement = document.getElementById('measureElement');\n if (measureElement) {\n measureElement = undefined;\n }\n };\n /**\n * @param {PdfViewerBase} proxy - PdfviewerBase class.\n * @returns {void}\n * @private\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.unloadDocument = function (proxy) {\n var documentId = '';\n if (Browser.isIE || Browser.info.name === 'edge') {\n documentId = decodeURI(window.sessionStorage.getItem('hashId'));\n }\n else {\n documentId = proxy.hashId ? proxy.hashId : window.sessionStorage.getItem('hashId');\n }\n var documentLiveCount = window.sessionStorage.getItem('documentLiveCount');\n if (documentId !== null) {\n // eslint-disable-next-line max-len\n var jsonObject = { hashId: documentId, documentLiveCount: documentLiveCount, action: 'Unload', elementId: proxy.pdfViewer.element.id };\n var actionName = window.sessionStorage.getItem('unload');\n if (window.sessionStorage.getItem('serviceURL') && window.sessionStorage.getItem('serviceURL') !== 'undefined') {\n try {\n // eslint-disable-next-line\n var browserSupportsKeepalive = 'keepalive' in new Request('');\n if (browserSupportsKeepalive) {\n // eslint-disable-next-line\n var headerValue = this.setUnloadRequestHeaders();\n var credentialsData = this.pdfViewer.ajaxRequestSettings.withCredentials ? 'include' : 'omit';\n fetch(window.sessionStorage.getItem('serviceURL') + '/' + actionName, {\n method: 'POST',\n credentials: credentialsData,\n headers: headerValue,\n body: JSON.stringify(jsonObject)\n });\n }\n }\n catch (error) {\n this.unloadRequestHandler = new AjaxHandler(this.pdfViewer);\n this.unloadRequestHandler.send(jsonObject);\n }\n }\n else if (isBlazor()) {\n this.clearCache(actionName, jsonObject, proxy);\n }\n }\n if (this.pdfViewer.magnificationModule) {\n this.pdfViewer.magnificationModule.zoomFactor = 1;\n }\n this.formFieldCollection = [];\n this.textrequestLists = [];\n window.sessionStorage.removeItem('hashId');\n window.sessionStorage.removeItem('documentLiveCount');\n if (this.documentId) {\n window.sessionStorage.removeItem(this.documentId + '_formfields');\n window.sessionStorage.removeItem(this.documentId + '_formDesigner');\n window.sessionStorage.removeItem(this.documentId + '_annotations_shape');\n window.sessionStorage.removeItem(this.documentId + '_annotations_shape_measure');\n window.sessionStorage.removeItem(this.documentId + '_annotations_stamp');\n window.sessionStorage.removeItem(this.documentId + '_annotations_sticky');\n window.sessionStorage.removeItem(this.documentId + '_annotations_textMarkup');\n window.sessionStorage.removeItem(this.documentId + '_annotations_freetext');\n window.sessionStorage.removeItem(this.documentId + '_formfields');\n window.sessionStorage.removeItem(this.documentId + '_annotations_sign');\n window.sessionStorage.removeItem(this.documentId + '_annotations_ink');\n window.sessionStorage.removeItem(this.documentId + '_pagedata');\n for (var i = 0; i < this.sessionStorage.length; i++) {\n window.sessionStorage.removeItem(this.sessionStorage[parseInt(i.toString(), 10)]);\n }\n }\n };\n PdfViewerBase.prototype.clearCache = function (actionName, jsonObject, proxy) {\n this.unloadRequestHandler = new AjaxHandler(this.pdfViewer);\n this.unloadRequestHandler.url = window.sessionStorage.getItem('serviceURL') + '/' + actionName;\n this.unloadRequestHandler.mode = false;\n this.unloadRequestHandler.responseType = null;\n this.unloadRequestHandler.send(jsonObject);\n // eslint-disable-next-line\n this.unloadRequestHandler.onSuccess = function (result) {\n // eslint-disable-next-line\n var data = result.data;\n if (data) {\n if (typeof data !== 'object') {\n if (data.indexOf('Document') === -1) {\n proxy.onControlError(500, data, actionName);\n data = null;\n }\n }\n if (data) {\n proxy.pdfViewer.fireAjaxRequestSuccess(proxy.pdfViewer.serverActionSettings.unload, data);\n }\n }\n };\n // eslint-disable-next-line\n this.unloadRequestHandler.onFailure = function (result) {\n proxy.pdfViewer.fireAjaxRequestFailed(result.status, result.statusText, actionName);\n };\n // eslint-disable-next-line\n this.unloadRequestHandler.onError = function (result) {\n proxy.pdfViewer.fireAjaxRequestFailed(result.status, result.statusText, actionName);\n };\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.setUnloadRequestHeaders = function () {\n // eslint-disable-next-line\n var myHeaders = new Headers();\n myHeaders.append('Content-Type', 'application/json;charset=UTF-8');\n for (var i = 0; i < this.pdfViewer.ajaxRequestSettings.ajaxHeaders.length; i++) {\n // eslint-disable-next-line max-len\n myHeaders.append(this.pdfViewer.ajaxRequestSettings.ajaxHeaders[parseInt(i.toString(), 10)].headerName, this.pdfViewer.ajaxRequestSettings.ajaxHeaders[parseInt(i.toString(), 10)].headerValue);\n }\n return myHeaders;\n };\n PdfViewerBase.prototype.windowSessionStorageClear = function () {\n window.sessionStorage.removeItem('currentDocument');\n window.sessionStorage.removeItem('serviceURL');\n window.sessionStorage.removeItem('unload');\n for (var i = 0; i < this.sessionStorage.length; i++) {\n window.sessionStorage.removeItem(this.sessionStorage[parseInt(i.toString(), 10)]);\n }\n };\n PdfViewerBase.prototype.updateCommentPanel = function () {\n // eslint-disable-next-line\n var moreOptionsButton = document.querySelectorAll('.e-pv-more-options-button');\n for (var i = 0; i < moreOptionsButton.length; i++) {\n moreOptionsButton[parseInt(i.toString(), 10)].style.visibility = 'hidden';\n }\n // eslint-disable-next-line\n var commentTextBox = document.querySelectorAll('.e-pv-new-comments-div');\n for (var j = 0; j < commentTextBox.length; j++) {\n commentTextBox[parseInt(j.toString(), 10)].style.display = 'none';\n }\n // eslint-disable-next-line\n var commentContainer = document.querySelectorAll('.e-pv-comments-border');\n for (var j = 0; j < commentContainer.length; j++) {\n commentContainer[parseInt(j.toString(), 10)].classList.remove('e-pv-comments-border');\n }\n // eslint-disable-next-line\n var editableElement = document.querySelectorAll('.e-editable-inline');\n for (var j = 0; j < editableElement.length; j++) {\n editableElement[parseInt(j.toString(), 10)].style.display = 'none';\n }\n // eslint-disable-next-line\n var commentSelect = document.querySelectorAll('.e-pv-comments-select');\n for (var z = 0; z < commentSelect.length; z++) {\n commentSelect[parseInt(z.toString(), 10)].classList.remove('e-pv-comments-select');\n }\n // eslint-disable-next-line\n var commentsDiv = document.querySelectorAll('.e-pv-comments-div');\n for (var j = 0; j < commentsDiv.length; j++) {\n commentsDiv[parseInt(j.toString(), 10)].style.minHeight = 60 + 'px';\n }\n };\n /**\n * @param {boolean} isMouseDown - check whether the mouse down is triggered.\n * @returns {void}\n * @private\n */\n PdfViewerBase.prototype.focusViewerContainer = function (isMouseDown) {\n var scrollX = window.scrollX;\n var scrollY = window.scrollY;\n // eslint-disable-next-line\n var parentNode = this.getScrollParent(this.viewerContainer);\n var scrollNodeX = 0;\n var scrollNodeY = 0;\n if (parentNode !== null) {\n scrollNodeX = parentNode.scrollLeft;\n scrollNodeY = parentNode.scrollTop;\n }\n this.viewerContainer.focus();\n if (this.currentPageNumber > 0) {\n this.viewerContainer.setAttribute('aria-labelledby', this.pdfViewer.element.id + '_pageDiv_' + (this.currentPageNumber - 1));\n }\n if (this.pdfViewer.annotation && this.pdfViewer.annotation.stickyNotesAnnotationModule.accordionContainer) {\n this.updateCommentPanel();\n }\n // eslint-disable-next-line max-len\n if ((navigator.userAgent.indexOf('MSIE') !== -1 || navigator.appVersion.indexOf('Trident/') > -1 || navigator.userAgent.indexOf('Edge') !== -1) && parentNode !== null) {\n parentNode.scrollLeft = scrollNodeX;\n parentNode.scrollTop = scrollNodeY;\n }\n else if (parentNode !== null) {\n parentNode.scrollTo(scrollNodeX, scrollNodeY);\n }\n window.scrollTo(scrollX, scrollY);\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.getScrollParent = function (node) {\n if (node === null || node.nodeName === 'HTML') {\n return null;\n }\n var style = getComputedStyle(node);\n if (this.viewerContainer.id !== node.id && (style.overflowY === 'scroll' || style.overflowY === 'auto')) {\n return node;\n }\n else {\n return this.getScrollParent(node.parentNode);\n }\n };\n PdfViewerBase.prototype.createCorruptedPopup = function () {\n var _this = this;\n // eslint-disable-next-line max-len\n var popupElement = createElement('div', { id: this.pdfViewer.element.id + '_corrupted_popup', className: 'e-pv-corrupted-popup' });\n this.pageContainer.appendChild(popupElement);\n this.corruptPopup = new Dialog({\n showCloseIcon: true, closeOnEscape: true, isModal: true,\n // eslint-disable-next-line max-len\n header: '
    ' + this.pdfViewer.localeObj.getConstant('File Corrupted') + '
    ', visible: false,\n // eslint-disable-next-line max-len\n buttons: [{ buttonModel: { content: this.pdfViewer.localeObj.getConstant('OK'), isPrimary: true }, click: this.closeCorruptPopup.bind(this) }],\n target: this.pdfViewer.element, beforeClose: function () {\n _this.corruptPopup.destroy();\n _this.getElement('_corrupted_popup').remove();\n _this.corruptPopup = null;\n var waitingPopup = _this.getElement('_loadingIndicator');\n if (waitingPopup != null) {\n hideSpinner(waitingPopup);\n }\n }\n });\n if (this.pdfViewer.enableRtl) {\n // eslint-disable-next-line max-len\n this.corruptPopup.content = '
    ' + this.pdfViewer.localeObj.getConstant('File Corrupted Content') + '
    ';\n this.corruptPopup.enableRtl = true;\n }\n else {\n // eslint-disable-next-line max-len\n this.corruptPopup.content = '
    ' + this.pdfViewer.localeObj.getConstant('File Corrupted Content') + '
    ';\n }\n this.corruptPopup.appendTo(popupElement);\n };\n /**\n * @private\n * @returns {void}\n */\n PdfViewerBase.prototype.hideLoadingIndicator = function () {\n var waitingPopup = this.getElement('_loadingIndicator');\n if (waitingPopup !== null) {\n hideSpinner(waitingPopup);\n }\n };\n PdfViewerBase.prototype.closeCorruptPopup = function () {\n this.corruptPopup.hide();\n var waitingPopup = this.getElement('_loadingIndicator');\n if (waitingPopup !== null) {\n hideSpinner(waitingPopup);\n }\n };\n PdfViewerBase.prototype.createPrintPopup = function () {\n var element = document.getElementById(this.pdfViewer.element.id);\n this.printMainContainer = createElement('div', {\n id: this.pdfViewer.element.id + '_printcontainer',\n className: 'e-pv-print-popup-container'\n });\n element.appendChild(this.printMainContainer);\n this.printMainContainer.style.display = 'none';\n var printWaitingPopup = createElement('div', {\n id: this.pdfViewer.element.id + '_printLoadingIndicator',\n className: 'e-pv-print-loading-container'\n });\n this.printMainContainer.appendChild(printWaitingPopup);\n createSpinner({ target: printWaitingPopup, cssClass: 'e-spin-center' });\n this.setLoaderProperties(printWaitingPopup);\n };\n PdfViewerBase.prototype.createGoToPagePopup = function () {\n var _this = this;\n // eslint-disable-next-line max-len\n var popupElement = createElement('div', { id: this.pdfViewer.element.id + '_goTopage_popup', className: 'e-pv-gotopage-popup' });\n this.goToPageElement = createElement('span', { id: this.pdfViewer.element.id + '_prompt' });\n this.goToPageElement.textContent = this.pdfViewer.localeObj.getConstant('Enter pagenumber');\n popupElement.appendChild(this.goToPageElement);\n var inputContainer = createElement('span', { className: 'e-pv-text-input' });\n // eslint-disable-next-line max-len\n this.goToPageInput = createElement('input', { id: this.pdfViewer.element.id + '_page_input', className: 'e-input' });\n this.goToPageInput.type = 'text';\n this.goToPageInput.style.maxWidth = '80%';\n this.pageNoContainer = createElement('span', { className: '.e-pv-number-ofpages' });\n inputContainer.appendChild(this.goToPageInput);\n inputContainer.appendChild(this.pageNoContainer);\n popupElement.appendChild(inputContainer);\n this.pageContainer.appendChild(popupElement);\n this.goToPagePopup = new Dialog({\n showCloseIcon: true, closeOnEscape: false, isModal: true,\n header: this.pdfViewer.localeObj.getConstant('GoToPage'), visible: false, buttons: [\n {\n buttonModel: { content: this.pdfViewer.localeObj.getConstant('Cancel') },\n click: this.GoToPageCancelClick.bind(this)\n },\n // eslint-disable-next-line max-len\n {\n buttonModel: { content: this.pdfViewer.localeObj.getConstant('Apply'), disabled: true, cssClass: 'e-pv-gotopage-apply-btn', isPrimary: true },\n click: this.GoToPageApplyClick.bind(this)\n }\n ], close: this.closeGoToPagePopUp.bind(this)\n });\n if (this.pdfViewer.enableRtl) {\n this.goToPagePopup.enableRtl = true;\n }\n this.goToPagePopup.appendTo(popupElement);\n if (!isBlazor()) {\n var goToPageTextBox = new NumericTextBox({ format: '##', showSpinButton: false });\n goToPageTextBox.appendTo(this.goToPageInput);\n }\n this.goToPageInput.addEventListener('keyup', function () {\n // eslint-disable-next-line\n var inputValue = _this.goToPageInput.value;\n if (inputValue !== '' && parseFloat(inputValue) > 0 && (_this.pdfViewer.pageCount + 1) > parseFloat(inputValue)) {\n _this.EnableApplyButton();\n }\n else {\n _this.DisableApplyButton();\n }\n });\n };\n PdfViewerBase.prototype.closeGoToPagePopUp = function () {\n this.goToPageInput.value = '';\n this.DisableApplyButton();\n };\n PdfViewerBase.prototype.EnableApplyButton = function () {\n // eslint-disable-next-line\n var popupElements = document.getElementsByClassName('e-pv-gotopage-apply-btn')[0];\n popupElements.removeAttribute('disabled');\n };\n PdfViewerBase.prototype.DisableApplyButton = function () {\n // eslint-disable-next-line\n var popupElements = document.getElementsByClassName('e-pv-gotopage-apply-btn')[0];\n popupElements.setAttribute('disabled', true);\n };\n PdfViewerBase.prototype.GoToPageCancelClick = function () {\n this.goToPagePopup.hide();\n };\n PdfViewerBase.prototype.GoToPageApplyClick = function () {\n this.goToPagePopup.hide();\n // eslint-disable-next-line\n var pageNumber = this.goToPageInput.value;\n this.pdfViewer.navigation.goToPage(pageNumber);\n this.updateMobileScrollerPosition();\n };\n /**\n * @private\n * @returns {void}\n */\n PdfViewerBase.prototype.updateMobileScrollerPosition = function () {\n if ((Browser.isDevice && !this.pdfViewer.enableDesktopMode) && this.mobileScrollerContainer) {\n // eslint-disable-next-line\n var ratio = (this.viewerContainer.scrollHeight - this.viewerContainer.clientHeight) / (this.viewerContainer.clientHeight - 56);\n // eslint-disable-next-line\n var differenceRatio = (this.viewerContainer.scrollTop) / ratio;\n // eslint-disable-next-line\n var toolbarHeight = this.pdfViewer.toolbarModule ? this.toolbarHeight : 0;\n this.mobileScrollerContainer.style.top = (toolbarHeight + differenceRatio) + 'px';\n }\n };\n PdfViewerBase.prototype.createPasswordPopup = function () {\n var _this = this;\n // eslint-disable-next-line max-len\n var popupElement = createElement('div', { id: this.pdfViewer.element.id + '_password_popup', className: 'e-pv-password-popup', attrs: { 'tabindex': '-1' } });\n this.promptElement = createElement('span', { id: this.pdfViewer.element.id + '_prompt', attrs: { 'tabindex': '-1' } });\n this.promptElement.textContent = this.pdfViewer.localeObj.getConstant('Enter Password');\n popupElement.appendChild(this.promptElement);\n var inputContainer = createElement('span', { className: 'e-input-group e-pv-password-input' });\n // eslint-disable-next-line max-len\n this.passwordInput = createElement('input', { id: this.pdfViewer.element.id + '_password_input', className: 'e-input' });\n this.passwordInput.type = 'password';\n this.passwordInput.name = 'Required';\n inputContainer.appendChild(this.passwordInput);\n popupElement.appendChild(inputContainer);\n this.pageContainer.appendChild(popupElement);\n this.passwordPopup = new Dialog({\n showCloseIcon: true, closeOnEscape: false, isModal: true,\n header: this.pdfViewer.localeObj.getConstant('Password Protected'), visible: false,\n close: this.passwordCancel.bind(this), target: this.pdfViewer.element, beforeClose: function () {\n _this.passwordPopup.destroy();\n _this.getElement('_password_popup').remove();\n _this.passwordPopup = null;\n var waitingPopup = _this.getElement('_loadingIndicator');\n if (waitingPopup != null) {\n hideSpinner(waitingPopup);\n }\n }\n });\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n this.passwordPopup.buttons = [\n {\n buttonModel: { content: this.pdfViewer.localeObj.getConstant('OK'), isPrimary: true },\n click: this.applyPassword.bind(this)\n },\n { buttonModel: { content: this.pdfViewer.localeObj.getConstant('Cancel') }, click: this.passwordCancelClick.bind(this) }\n ];\n }\n else {\n this.passwordPopup.buttons = [\n { buttonModel: { content: this.pdfViewer.localeObj.getConstant('Cancel') }, click: this.passwordCancelClick.bind(this) },\n {\n buttonModel: { content: this.pdfViewer.localeObj.getConstant('OK'), isPrimary: true },\n click: this.applyPassword.bind(this)\n }\n ];\n }\n if (this.pdfViewer.enableRtl) {\n this.passwordPopup.enableRtl = true;\n }\n this.passwordPopup.appendTo(popupElement);\n this.passwordInput.addEventListener('keyup', function () {\n if (_this.passwordInput.value === '') {\n _this.passwordDialogReset();\n }\n });\n this.passwordInput.addEventListener('focus', function () {\n _this.passwordInput.parentElement.classList.add('e-input-focus');\n });\n this.passwordInput.addEventListener('blur', function () {\n _this.passwordInput.parentElement.classList.remove('e-input-focus');\n });\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.passwordCancel = function (args) {\n if (args.isInteraction) {\n this.clear(false);\n this.passwordDialogReset();\n this.passwordInput.value = '';\n }\n var waitingPopup = this.getElement('_loadingIndicator');\n if (waitingPopup !== null) {\n hideSpinner(waitingPopup);\n }\n };\n PdfViewerBase.prototype.passwordCancelClick = function () {\n this.clear(false);\n this.passwordDialogReset();\n this.passwordPopup.hide();\n var waitingPopup = this.getElement('_loadingIndicator');\n if (waitingPopup !== null) {\n hideSpinner(waitingPopup);\n }\n };\n PdfViewerBase.prototype.passwordDialogReset = function () {\n if (!isBlazor()) {\n if (this.promptElement) {\n this.promptElement.classList.remove('e-pv-password-error');\n this.promptElement.textContent = this.pdfViewer.localeObj.getConstant('Enter Password');\n this.passwordInput.value = '';\n }\n }\n };\n /**\n * @private\n * @returns {void}\n */\n PdfViewerBase.prototype.applyPassword = function () {\n if (!isBlazor()) {\n var password = this.passwordInput.value;\n if (!isNullOrUndefined(password) && password.length > 0) {\n this.pdfViewer.load(this.document, password);\n }\n }\n this.focusViewerContainer();\n };\n PdfViewerBase.prototype.createFileInputElement = function () {\n if (Browser.isDevice || !this.pdfViewer.enableDesktopMode) {\n // eslint-disable-next-line max-len\n if (this.pdfViewer.enableAnnotationToolbar && this.pdfViewer.toolbarModule && this.pdfViewer.toolbarModule.annotationToolbarModule) {\n this.pdfViewer.toolbarModule.annotationToolbarModule.createCustomStampElement();\n }\n if (this.signatureModule) {\n this.signatureModule.createSignatureFileElement();\n }\n }\n };\n PdfViewerBase.prototype.wireEvents = function () {\n var _this = this;\n this.viewerContainer.addEventListener('scroll', this.viewerContainerOnScroll, true);\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n this.viewerContainer.addEventListener('touchmove', this.viewerContainerOnScroll, true);\n }\n this.viewerContainer.addEventListener('mousedown', this.viewerContainerOnMousedown);\n this.viewerContainer.addEventListener('mouseup', this.viewerContainerOnMouseup);\n this.viewerContainer.addEventListener(\"wheel\", this.detectTouchPad, false);\n this.viewerContainer.addEventListener('wheel', this.viewerContainerOnMouseWheel);\n if (this.isMacSafari) {\n window.addEventListener('gesturestart', function (e) { return e.preventDefault(); });\n window.addEventListener('gesturechange', function (e) { return e.preventDefault(); });\n window.addEventListener('gestureend', function (e) { return e.preventDefault(); });\n this.viewerContainer.addEventListener('gesturestart', this.handleMacGestureStart, false);\n this.viewerContainer.addEventListener('gesturechange', this.handleMacGestureChange, false);\n this.viewerContainer.addEventListener('gestureend', this.handleMacGestureEnd, false);\n }\n this.viewerContainer.addEventListener('mousemove', this.viewerContainerOnMousemove);\n this.viewerContainer.addEventListener('mouseleave', this.viewerContainerOnMouseLeave);\n this.viewerContainer.addEventListener('mouseenter', this.viewerContainerOnMouseEnter);\n this.viewerContainer.addEventListener('mouseover', this.viewerContainerOnMouseOver);\n this.viewerContainer.addEventListener('click', this.viewerContainerOnClick);\n this.viewerContainer.addEventListener('dblclick', this.viewerContainerOnClick);\n this.viewerContainer.addEventListener('dragstart', this.viewerContainerOnDragStart);\n this.pdfViewer.element.addEventListener('keydown', this.viewerContainerOnKeyDown);\n window.addEventListener('keydown', this.onWindowKeyDown);\n window.addEventListener('mouseup', this.onWindowMouseUp);\n window.addEventListener('touchend', this.onWindowTouchEnd);\n this.unload = function () { return _this.unloadDocument(_this); };\n window.addEventListener('unload', this.unload);\n window.addEventListener('beforeunload', this.clearSessionStorage);\n window.addEventListener('resize', this.onWindowResize);\n // eslint-disable-next-line max-len\n if (navigator.userAgent.indexOf('MSIE') !== -1 || navigator.userAgent.indexOf('Edge') !== -1 || navigator.userAgent.indexOf('Trident') !== -1) {\n this.viewerContainer.addEventListener('pointerdown', this.viewerContainerOnPointerDown);\n this.viewerContainer.addEventListener('pointermove', this.viewerContainerOnPointerMove);\n this.viewerContainer.addEventListener('pointerup', this.viewerContainerOnPointerEnd);\n this.viewerContainer.addEventListener('pointerleave', this.viewerContainerOnPointerEnd);\n }\n else {\n this.viewerContainer.addEventListener('touchstart', this.viewerContainerOnTouchStart);\n if (this.isWebkitMobile && this.isDeviceiOS) {\n // eslint-disable-next-line max-len\n this.viewerContainer.addEventListener(\"touchmove\", function (e) { if (e.scale !== 1) {\n e.preventDefault();\n } }, { passive: false });\n }\n this.viewerContainer.addEventListener('touchmove', this.viewerContainerOnTouchMove);\n this.viewerContainer.addEventListener('touchend', this.viewerContainerOnTouchEnd);\n this.viewerContainer.addEventListener('touchleave', this.viewerContainerOnTouchEnd);\n this.viewerContainer.addEventListener('touchcancel', this.viewerContainerOnTouchEnd);\n }\n };\n PdfViewerBase.prototype.unWireEvents = function () {\n this.viewerContainer.removeEventListener('scroll', this.viewerContainerOnScroll, true);\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n this.viewerContainer.removeEventListener('touchmove', this.viewerContainerOnScroll, true);\n }\n this.viewerContainer.removeEventListener('mousedown', this.viewerContainerOnMousedown);\n this.viewerContainer.removeEventListener('mouseup', this.viewerContainerOnMouseup);\n this.viewerContainer.removeEventListener(\"wheel\", this.detectTouchPad, false);\n this.viewerContainer.removeEventListener('wheel', this.viewerContainerOnMouseWheel);\n if (this.isMacSafari) {\n window.removeEventListener('gesturestart', function (e) { return e.preventDefault(); });\n window.removeEventListener('gesturechange', function (e) { return e.preventDefault(); });\n window.removeEventListener('gestureend', function (e) { return e.preventDefault(); });\n this.viewerContainer.removeEventListener('gesturestart', this.handleMacGestureStart, false);\n this.viewerContainer.removeEventListener('gesturechange', this.handleMacGestureChange, false);\n this.viewerContainer.removeEventListener('gestureend', this.handleMacGestureEnd, false);\n }\n this.viewerContainer.removeEventListener('mousemove', this.viewerContainerOnMousemove);\n this.viewerContainer.removeEventListener('mouseleave', this.viewerContainerOnMouseLeave);\n this.viewerContainer.removeEventListener('mouseenter', this.viewerContainerOnMouseEnter);\n this.viewerContainer.removeEventListener('mouseover', this.viewerContainerOnMouseOver);\n this.viewerContainer.removeEventListener('click', this.viewerContainerOnClick);\n this.viewerContainer.removeEventListener('dragstart', this.viewerContainerOnDragStart);\n this.viewerContainer.removeEventListener('contextmenu', this.viewerContainerOnContextMenuClick);\n this.pdfViewer.element.removeEventListener('keydown', this.viewerContainerOnKeyDown);\n window.addEventListener('keydown', this.onWindowKeyDown);\n window.removeEventListener('mouseup', this.onWindowMouseUp);\n window.removeEventListener('unload', this.unload);\n window.removeEventListener('resize', this.onWindowResize);\n // eslint-disable-next-line max-len\n if (navigator.userAgent.indexOf('MSIE') !== -1 || navigator.userAgent.indexOf('Edge') !== -1 || navigator.userAgent.indexOf('Trident') !== -1) {\n this.viewerContainer.removeEventListener('pointerdown', this.viewerContainerOnPointerDown);\n this.viewerContainer.removeEventListener('pointermove', this.viewerContainerOnPointerMove);\n this.viewerContainer.removeEventListener('pointerup', this.viewerContainerOnPointerEnd);\n this.viewerContainer.removeEventListener('pointerleave', this.viewerContainerOnPointerEnd);\n }\n else {\n this.viewerContainer.removeEventListener('touchstart', this.viewerContainerOnTouchStart);\n if (this.isWebkitMobile && this.isDeviceiOS) {\n // eslint-disable-next-line max-len\n this.viewerContainer.removeEventListener(\"touchmove\", function (e) { if (e.scale !== 1) {\n e.preventDefault();\n } }, false);\n }\n this.viewerContainer.removeEventListener('touchmove', this.viewerContainerOnTouchMove);\n this.viewerContainer.removeEventListener('touchend', this.viewerContainerOnTouchEnd);\n this.viewerContainer.removeEventListener('touchleave', this.viewerContainerOnTouchEnd);\n this.viewerContainer.removeEventListener('touchcancel', this.viewerContainerOnTouchEnd);\n }\n };\n /**\n * @private\n * @returns {void}\n */\n PdfViewerBase.prototype.updateZoomValue = function () {\n if (this.pdfViewer.magnificationModule) {\n if (this.pdfViewer.magnificationModule.isAutoZoom) {\n this.pdfViewer.magnificationModule.fitToAuto();\n }\n else if (this.pdfViewer.zoomMode !== 'FitToWidth' && this.pdfViewer.magnificationModule.fitType === 'fitToWidth') {\n this.pdfViewer.magnificationModule.fitToWidth();\n }\n else if (this.pdfViewer.magnificationModule.fitType === 'fitToPage') {\n this.pdfViewer.magnificationModule.fitToPage();\n }\n }\n for (var i = 0; i < this.pageCount; i++) {\n this.applyLeftPosition(i);\n }\n };\n /**\n * @private\n * @param {any} annotation - The annotation type of any.\n * @returns {void}\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.updateFreeTextProperties = function (annotation) {\n if (this.pdfViewer.enableShapeLabel) {\n if (this.pdfViewer.shapeLabelSettings.fillColor) {\n annotation.labelFillColor = this.pdfViewer.shapeLabelSettings.fillColor;\n }\n if (this.pdfViewer.shapeLabelSettings.fontColor) {\n annotation.fontColor = this.pdfViewer.shapeLabelSettings.fontColor;\n }\n if (this.pdfViewer.shapeLabelSettings.fontSize) {\n annotation.fontSize = this.pdfViewer.shapeLabelSettings.fontSize;\n }\n if (this.pdfViewer.shapeLabelSettings.fontFamily) {\n annotation.fontFamily = this.pdfViewer.shapeLabelSettings.fontFamily;\n }\n if (this.pdfViewer.shapeLabelSettings.opacity) {\n annotation.labelOpacity = this.pdfViewer.shapeLabelSettings.opacity;\n }\n if (this.pdfViewer.shapeLabelSettings.labelContent) {\n annotation.labelContent = this.pdfViewer.shapeLabelSettings.labelContent;\n }\n }\n };\n /**\n * @private\n * @param {MouseEvent} event - The mouse event.\n * @returns {void}\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.mouseDownHandler = function (event) {\n var isEnableDelete = false;\n var isCancel;\n var hidenItems = [];\n var disabledItems = [];\n if (event && event.target) {\n this.mouseDownEvent = event;\n this.contextMenuModule.currentTarget = event.target;\n }\n if (this.pdfViewer.annotationModule) {\n isEnableDelete = this.pdfViewer.annotationModule.isEnableDelete();\n }\n if (!isEnableDelete) {\n disabledItems.push('DeleteContext');\n }\n if (this.pdfViewer.contextMenuOption === 'None') {\n isCancel = true;\n }\n else if (this.pdfViewer.textSelectionModule || this.isShapeBasedAnnotationsEnabled()) {\n if (event) {\n var isClickWithinSelectionBounds = this.isClickWithinSelectionBounds(event);\n // eslint-disable-next-line max-len\n if (this.pdfViewer.annotationModule && this.pdfViewer.annotationModule.freeTextAnnotationModule && this.pdfViewer.annotationModule.freeTextAnnotationModule.isInuptBoxInFocus) {\n this.isFreeTextContextMenu = true;\n // eslint-disable-next-line max-len\n if (this.pdfViewer.annotation.freeTextAnnotationModule && !this.pdfViewer.annotation.freeTextAnnotationModule.isTextSelected) {\n disabledItems.push('Cut');\n disabledItems.push('Copy');\n }\n // eslint-disable-next-line max-len\n if (this.pdfViewer.annotation.freeTextAnnotationModule && this.pdfViewer.annotation.freeTextAnnotationModule.selectedText === '') {\n disabledItems.push('Paste');\n }\n hidenItems.push('HighlightContext');\n hidenItems.push('UnderlineContext');\n hidenItems.push('StrikethroughContext');\n hidenItems.push('ScaleRatio');\n hidenItems.push('Properties');\n hidenItems.push('Comment');\n hidenItems.push('DeleteContext');\n }\n else if (isClickWithinSelectionBounds && this.pdfViewer.textSelectionModule) {\n // eslint-disable-next-line max-len\n if ((!event.target.classList.contains('e-pv-maintaincontent') && event.target.classList.contains('e-pv-text') || event.target.classList.contains('e-pv-text-layer'))) {\n if (this.checkIsNormalText()) {\n isCancel = true;\n }\n // eslint-disable-next-line max-len\n }\n else if ((Browser.isIE || Browser.info.name === 'edge') && event.target.classList.contains('e-pv-page-container')) {\n isCancel = true;\n }\n hidenItems.push('Cut');\n hidenItems.push('Paste');\n hidenItems.push('DeleteContext');\n hidenItems.push('ScaleRatio');\n hidenItems.push('Comment');\n hidenItems.push('Properties');\n // eslint-disable-next-line max-len\n }\n else if (this.pdfViewer.selectedItems.annotations.length !== 0 && (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'HandWrittenSignature' || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'SignatureText' || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'SignatureImage')) {\n this.shapeMenuItems(hidenItems, disabledItems, false, true);\n // eslint-disable-next-line max-len\n }\n else if (this.pdfViewer.selectedItems.annotations.length !== 0 && this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType !== 'Path') {\n this.shapeMenuItems(hidenItems, disabledItems, true);\n }\n else {\n // eslint-disable-next-line max-len\n if (this.pdfViewer.annotation && this.pdfViewer.annotation.isShapeCopied && (event.target.classList.contains('e-pv-text-layer') ||\n event.target.classList.contains('e-pv-text')) && !this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation) {\n hidenItems.push('Properties');\n this.shapeMenuItems(hidenItems, disabledItems, false);\n // eslint-disable-next-line max-len\n }\n else if (this.isCalibrateAnnotationModule() && this.pdfViewer.annotationModule.measureAnnotationModule.currentAnnotationMode) {\n hidenItems.push('HighlightContext');\n hidenItems.push('UnderlineContext');\n hidenItems.push('StrikethroughContext');\n hidenItems.push('Properties');\n disabledItems.push('Cut');\n disabledItems.push('Copy');\n disabledItems.push('Paste');\n disabledItems.push('DeleteContext');\n disabledItems.push('Comment');\n // eslint-disable-next-line max-len\n }\n else if (this.pdfViewer.annotationModule && this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation) {\n hidenItems.push('HighlightContext');\n hidenItems.push('UnderlineContext');\n hidenItems.push('StrikethroughContext');\n hidenItems.push('Properties');\n hidenItems.push('Cut');\n hidenItems.push('Copy');\n hidenItems.push('Paste');\n hidenItems.push('ScaleRatio');\n }\n else {\n isCancel = true;\n }\n }\n }\n else if (this.pdfViewer.textSelectionModule && (this.pdfViewer.contextMenuOption === 'MouseUp')) {\n hidenItems.push('Cut');\n hidenItems.push('Paste');\n hidenItems.push('DeleteContext');\n hidenItems.push('ScaleRatio');\n hidenItems.push('Comment');\n hidenItems.push('Properties');\n }\n else if (this.pdfViewer.selectedItems.annotations.length === 0) {\n hidenItems.push('Cut');\n hidenItems.push('Paste');\n hidenItems.push('DeleteContext');\n hidenItems.push('ScaleRatio');\n hidenItems.push('Properties');\n }\n if (!this.pdfViewer.enableCommentPanel) {\n disabledItems.push('Comment');\n }\n }\n else {\n isCancel = true;\n }\n var eventArgs = { hidenItems: hidenItems, disabledItems: disabledItems, isCancel: isCancel };\n this.pdfViewer._dotnetInstance.invokeMethodAsync('MouseDownHandler', eventArgs);\n };\n /**\n * @private\n * @param {string} selectedMenu - The selected menu.\n * @returns {void}\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.OnItemSelected = function (selectedMenu) {\n // eslint-disable-next-line\n var target = this.contextMenuModule.currentTarget;\n switch (selectedMenu) {\n case this.pdfViewer.localeObj.getConstant('Copy'):\n this.CopyItemSelected();\n break;\n case this.pdfViewer.localeObj.getConstant('Highlight context'):\n this.TextMarkUpSelected('Highlight');\n break;\n case this.pdfViewer.localeObj.getConstant('Underline context'):\n this.TextMarkUpSelected('Underline');\n break;\n case this.pdfViewer.localeObj.getConstant('Strikethrough context'):\n this.TextMarkUpSelected('Strikethrough');\n break;\n case this.pdfViewer.localeObj.getConstant('Properties'):\n this.PropertiesItemSelected();\n break;\n case this.pdfViewer.localeObj.getConstant('Cut'):\n this.CutItemSelected(target);\n break;\n case this.pdfViewer.localeObj.getConstant('Paste'):\n this.pasteItemSelected(target);\n break;\n case this.pdfViewer.localeObj.getConstant('Delete Context'):\n this.DeleteItemSelected();\n break;\n case this.pdfViewer.localeObj.getConstant('Scale Ratio'):\n this.ScaleRatioSelected();\n break;\n case this.pdfViewer.localeObj.getConstant('Comment'):\n this.CommentItemSelected();\n break;\n default:\n break;\n }\n };\n PdfViewerBase.prototype.CommentItemSelected = function () {\n if (this.pdfViewer.annotation) {\n this.pdfViewer.annotation.showCommentsPanel();\n if (this.pdfViewer.selectedItems.annotations.length !== 0 ||\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation) {\n // eslint-disable-next-line\n var currentAnnotation = void 0;\n if (this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation) {\n currentAnnotation = this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation;\n }\n else {\n currentAnnotation = this.pdfViewer.selectedItems.annotations[0];\n }\n // eslint-disable-next-line\n var accordionExpand = document.getElementById(this.pdfViewer.element.id + '_accordionContainer' + this.pdfViewer.currentPageNumber);\n if (accordionExpand) {\n accordionExpand.ej2_instances[0].expandItem(true);\n }\n // eslint-disable-next-line\n var commentsDiv = document.getElementById(currentAnnotation.annotName);\n if (commentsDiv) {\n if (!commentsDiv.classList.contains('e-pv-comments-border')) {\n commentsDiv.firstChild.click();\n }\n }\n }\n }\n };\n PdfViewerBase.prototype.ScaleRatioSelected = function () {\n if (this.isCalibrateAnnotationModule()) {\n this.pdfViewer.annotation.measureAnnotationModule.createScaleRatioWindow();\n }\n };\n PdfViewerBase.prototype.DeleteItemSelected = function () {\n if (this.pdfViewer.formDesignerModule && this.pdfViewer.selectedItems.formFields.length !== 0) {\n this.pdfViewer.formDesignerModule.deleteFormField(this.pdfViewer.selectedItems.formFields[0].id);\n }\n else if (this.pdfViewer.annotation) {\n this.pdfViewer.annotation.deleteAnnotation();\n }\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.pasteItemSelected = function (target) {\n // eslint-disable-next-line max-len\n if (this.isFreeTextContextMenu || (this.pdfViewer.annotationModule && this.pdfViewer.annotationModule.freeTextAnnotationModule.isInuptBoxInFocus) && (target && target.className === 'free-text-input' && target.tagName === 'TEXTAREA')) {\n this.pdfViewer.annotation.freeTextAnnotationModule.pasteSelectedText(target);\n this.contextMenuModule.close();\n }\n else {\n this.pdfViewer.paste();\n this.contextMenuModule.previousAction = 'Paste';\n }\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.CutItemSelected = function (target) {\n // eslint-disable-next-line max-len\n if (this.isFreeTextContextMenu || (this.pdfViewer.annotationModule && this.pdfViewer.annotationModule.freeTextAnnotationModule.isInuptBoxInFocus) && (target && target.className === 'free-text-input' && target.tagName === 'TEXTAREA')) {\n this.pdfViewer.annotation.freeTextAnnotationModule.cutSelectedText(target);\n this.contextMenuModule.close();\n }\n else if (this.pdfViewer.selectedItems.annotations.length === 1) {\n var pageIndex = this.pdfViewer.selectedItems.annotations[0].pageIndex;\n this.pdfViewer.cut();\n this.contextMenuModule.previousAction = 'Cut';\n }\n else if (this.pdfViewer.selectedItems.formFields.length === 1) {\n this.pdfViewer.cut();\n this.contextMenuModule.previousAction = 'Cut';\n }\n };\n PdfViewerBase.prototype.CopyItemSelected = function () {\n var isSkip = false;\n // eslint-disable-next-line max-len\n if (this.isFreeTextContextMenu || (this.pdfViewer.annotationModule && this.pdfViewer.annotationModule.freeTextAnnotationModule.isInuptBoxInFocus)) {\n this.pdfViewer.annotation.freeTextAnnotationModule.copySelectedText();\n this.contextMenuModule.close();\n isSkip = true;\n }\n else if (this.pdfViewer.textSelectionModule) {\n this.pdfViewer.textSelectionModule.copyText();\n this.contextMenuModule.close();\n }\n if (this.pdfViewer.selectedItems.annotations.length && !isSkip) {\n this.pdfViewer.copy();\n this.contextMenuModule.previousAction = 'Copy';\n }\n else if (this.pdfViewer.selectedItems.formFields.length > 0) {\n this.pdfViewer.copy();\n this.contextMenuModule.previousAction = 'Copy';\n }\n };\n PdfViewerBase.prototype.PropertiesItemSelected = function () {\n // eslint-disable-next-line max-len\n if (this.pdfViewer.selectedItems.annotations.length !== 0 && (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Line' || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'LineWidthArrowHead' ||\n this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Distance')) {\n this.pdfViewer.annotation.createPropertiesWindow();\n // eslint-disable-next-line max-len\n }\n else if (this.pdfViewer.selectedItems.formFields.length !== 0 && this.pdfViewer.selectedItems.formFields[0].formFieldAnnotationType) {\n this.pdfViewer.formDesigner.createPropertiesWindow();\n }\n };\n PdfViewerBase.prototype.TextMarkUpSelected = function (type) {\n if (this.pdfViewer.annotation && this.pdfViewer.annotation.textMarkupAnnotationModule) {\n this.pdfViewer.annotation.textMarkupAnnotationModule.isSelectionMaintained = false;\n this.pdfViewer.annotation.textMarkupAnnotationModule.drawTextMarkupAnnotations(type);\n this.pdfViewer.annotation.textMarkupAnnotationModule.isTextMarkupAnnotationMode = false;\n this.pdfViewer.annotation.textMarkupAnnotationModule.currentTextMarkupAddMode = '';\n this.pdfViewer.annotation.textMarkupAnnotationModule.isSelectionMaintained = true;\n }\n };\n PdfViewerBase.prototype.shapeMenuItems = function (hidenItems, disabledItems, enableProperties, isSignature) {\n if (this.pdfViewer.annotation && !this.pdfViewer.annotation.isShapeCopied) {\n disabledItems.push('Paste');\n }\n hidenItems.push('HighlightContext');\n hidenItems.push('UnderlineContext');\n hidenItems.push('StrikethroughContext');\n hidenItems.push('ScaleRatio');\n if (enableProperties) {\n // eslint-disable-next-line max-len\n if (!(this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Line' || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'LineWidthArrowHead' ||\n this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Distance')) {\n hidenItems.push('Properties');\n }\n }\n else if (isSignature) {\n hidenItems.push('Properties');\n hidenItems.push('Comment');\n }\n else {\n hidenItems.push('Cut');\n hidenItems.push('Copy');\n hidenItems.push('DeleteContext');\n hidenItems.push('Comment');\n }\n };\n PdfViewerBase.prototype.checkIsRtlText = function (text) {\n // eslint-disable-next-line max-len\n var ltrChars = 'A-Za-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02B8\\\\u0300-\\\\u0590\\\\u0800-\\\\u1FFF' + '\\\\u2C00-\\\\uFB1C\\\\uFDFE-\\\\uFE6F\\\\uFEFD-\\\\uFFFF';\n var rtlChars = '\\\\u0591-\\\\u07FF\\\\uFB1D-\\\\uFDFD\\\\uFE70-\\\\uFEFC';\n // eslint-disable-next-line\n var rtlDirCheck = new RegExp('^[^' + ltrChars + ']*[' + rtlChars + ']');\n return rtlDirCheck.test(text);\n };\n /**\n * @private\n * @param {any} event - Specifies the event.\n * @returns {boolean} - retruned the beolean value.\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.isClickWithinSelectionBounds = function (event) {\n var bounds;\n var isWithin = false;\n var diCount = 5;\n var negativeCount = ((this.currentPageNumber - diCount) < 0) ? 0 : this.currentPageNumber - diCount;\n var positiveCount = ((this.currentPageNumber - diCount) > this.pageCount) ? this.pageCount : this.currentPageNumber + diCount;\n if (this.pdfViewer.textSelectionModule) {\n for (var i = negativeCount; i < positiveCount; i++) {\n if (i >= 0) {\n bounds = this.pdfViewer.textSelectionModule.getCurrentSelectionBounds(i);\n if (bounds) {\n var currentBound = bounds;\n if (this.getHorizontalValue(currentBound.left, i) < event.clientX && this.getHorizontalValue(currentBound.right, i) >\n event.clientX && this.getVerticalValue(currentBound.top, i) < event.clientY &&\n this.getVerticalValue(currentBound.bottom, i) > event.clientY) {\n isWithin = true;\n break;\n }\n }\n }\n }\n if ((Browser.isIE || Browser.info.name === 'edge') && bounds) {\n isWithin = true;\n }\n }\n return isWithin;\n };\n PdfViewerBase.prototype.getHorizontalClientValue = function (value) {\n var pageDiv = this.getElement('_pageDiv_' + (this.currentPageNumber - 1));\n var pageBounds = pageDiv.getBoundingClientRect();\n return (value - pageBounds.left);\n };\n PdfViewerBase.prototype.getVerticalClientValue = function (value) {\n var pageDiv = this.getElement('_pageDiv_' + (this.currentPageNumber - 1));\n var pageBounds = pageDiv.getBoundingClientRect();\n return (value - pageBounds.top);\n };\n PdfViewerBase.prototype.getHorizontalValue = function (value, pageNumber) {\n var pageDiv = this.getElement('_pageDiv_' + (pageNumber || this.currentPageNumber - 1));\n var pageBounds = pageDiv.getBoundingClientRect();\n return (value * this.getZoomFactor()) + pageBounds.left;\n };\n PdfViewerBase.prototype.getVerticalValue = function (value, pageNumber) {\n var pageDiv = this.getElement('_pageDiv_' + (pageNumber || this.currentPageNumber - 1));\n var pageBounds = pageDiv.getBoundingClientRect();\n return (value * this.getZoomFactor()) + pageBounds.top;\n };\n /**\n * @private\n * @returns {boolean} - retruned the beolean value.\n */\n PdfViewerBase.prototype.checkIsNormalText = function () {\n var isText = true;\n var currentText = '';\n // eslint-disable-next-line\n var textSelectionModule = this.pdfViewer.textSelectionModule;\n if (textSelectionModule && textSelectionModule.selectionRangeArray && textSelectionModule.selectionRangeArray.length === 1) {\n currentText = textSelectionModule.selectionRangeArray[0].textContent;\n }\n else if (window.getSelection() && window.getSelection().anchorNode) {\n currentText = window.getSelection().toString();\n }\n if (currentText !== '' && this.checkIsRtlText(currentText)) {\n isText = false;\n }\n return isText;\n };\n PdfViewerBase.prototype.DeleteKeyPressed = function (event) {\n if (event.srcElement.parentElement.classList && !event.srcElement.parentElement.classList.contains(\"e-input-focus\")) {\n event.preventDefault();\n event.stopPropagation();\n }\n var isSearchboxDialogOpen;\n var searchBoxId = document.getElementById(this.pdfViewer.element.id + \"_search_box\");\n if (searchBoxId) {\n isSearchboxDialogOpen = searchBoxId.style.display !== \"none\";\n }\n if (this.pdfViewer.formDesignerModule && !this.pdfViewer.formDesigner.isPropertyDialogOpen && this.pdfViewer.designerMode && this.pdfViewer.selectedItems.formFields.length !== 0 && !isSearchboxDialogOpen) {\n this.pdfViewer.formDesignerModule.deleteFormField(this.pdfViewer.selectedItems.formFields[0].id);\n }\n else if (this.pdfViewer.annotation && !this.pdfViewer.designerMode && event.srcElement.parentElement.classList && !event.srcElement.parentElement.classList.contains(\"e-input-focus\")) {\n if (this.isTextMarkupAnnotationModule() && !this.getPopupNoteVisibleStatus() && !isSearchboxDialogOpen) {\n this.pdfViewer.annotationModule.deleteAnnotation();\n }\n if (this.pdfViewer.selectedItems.annotations.length > 0) {\n // eslint-disable-next-line\n var annotation = this.pdfViewer.selectedItems.annotations[0];\n var isReadOnly = true;\n var type = annotation.shapeAnnotationType;\n if (type === 'Path' || annotation.formFieldAnnotationType === 'SignatureField' || annotation.formFieldAnnotationType === 'InitialField' || type === 'HandWrittenSignature' || type === 'SignatureText' || type === 'SignatureImage') {\n var inputFields = document.getElementById(annotation.id);\n if (inputFields && inputFields.disabled) {\n isReadOnly = true;\n }\n }\n if (!isReadOnly) {\n if (annotation.annotationSettings && annotation.annotationSettings.isLock) {\n if (this.pdfViewer.annotationModule.checkAllowedInteractions('Delete', annotation)) {\n this.pdfViewer.remove(annotation);\n this.pdfViewer.renderSelector(this.pdfViewer.annotation.getEventPageNumber(event));\n }\n }\n else {\n this.pdfViewer.remove(annotation);\n this.pdfViewer.renderSelector(this.pdfViewer.annotation.getEventPageNumber(event));\n }\n }\n }\n }\n };\n /**\n * @private\n * @returns {void}\n */\n PdfViewerBase.prototype.initiatePanning = function () {\n this.isPanMode = true;\n this.textLayer.modifyTextCursor(false);\n this.disableTextSelectionMode();\n if (this.pdfViewer.toolbar && this.pdfViewer.toolbar.annotationToolbarModule) {\n this.pdfViewer.toolbar.annotationToolbarModule.deselectAllItems();\n }\n };\n /**\n * @private\n * @returns {void}\n */\n PdfViewerBase.prototype.initiateTextSelectMode = function () {\n this.isPanMode = false;\n if (this.viewerContainer) {\n this.viewerContainer.style.cursor = 'auto';\n if (this.pdfViewer.textSelectionModule) {\n this.textLayer.modifyTextCursor(true);\n this.pdfViewer.textSelectionModule.enableTextSelectionMode();\n }\n if ((!Browser.isDevice || this.pdfViewer.enableDesktopMode) && !isBlazor()) {\n this.enableAnnotationAddTools(true);\n }\n }\n };\n /**\n * @private\n * @returns {void}\n */\n PdfViewerBase.prototype.initiateTextSelection = function () {\n if (this.pdfViewer.toolbar && !this.pdfViewer.toolbar.isSelectionToolDisabled) {\n this.initiateTextSelectMode();\n this.pdfViewer.toolbar.updateInteractionTools(true);\n }\n };\n PdfViewerBase.prototype.enableAnnotationAddTools = function (isEnable) {\n if (this.pdfViewer.toolbarModule) {\n if (this.pdfViewer.toolbarModule.annotationToolbarModule) {\n this.pdfViewer.toolbarModule.annotationToolbarModule.enableAnnotationAddTools(isEnable);\n }\n }\n };\n PdfViewerBase.prototype.applySelection = function () {\n if (window.getSelection().anchorNode !== null) {\n this.pdfViewer.textSelectionModule.applySpanForSelection();\n }\n this.isViewerContainerDoubleClick = false;\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.isDesignerMode = function (target) {\n var isDesignerMode = false;\n if (this.pdfViewer.selectedItems.annotations.length !== 0 && (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'HandWrittenSignature' || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'SignatureText' || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'SignatureImage')) {\n isDesignerMode = true;\n // eslint-disable-next-line max-len\n }\n else if (this.pdfViewer.selectedItems.annotations.length !== 0 && this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType !== 'Path') {\n isDesignerMode = true;\n // eslint-disable-next-line max-len\n }\n else if (this.pdfViewer.selectedItems.formFields.length !== 0 && this.pdfViewer.selectedItems.formFields[0].formFieldAnnotationType && this.pdfViewer.designerMode) {\n isDesignerMode = true;\n }\n else {\n // eslint-disable-next-line max-len\n if (this.pdfViewer.annotation && this.pdfViewer.annotation.isShapeCopied && (target.classList.contains('e-pv-text-layer') ||\n // eslint-disable-next-line max-len\n target.classList.contains('e-pv-text')) && !this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation) {\n isDesignerMode = true;\n // eslint-disable-next-line max-len\n }\n else if (this.pdfViewer.formDesigner && this.pdfViewer.formDesigner.isShapeCopied && (target.classList.contains('e-pv-text-layer') ||\n target.classList.contains('e-pv-text'))) {\n isDesignerMode = true;\n }\n }\n this.designerModetarget = target;\n return isDesignerMode;\n };\n PdfViewerBase.prototype.handleTaps = function (touchPoints, event) {\n var _this = this;\n //EJ2CORE-813 - Implemented focus removing logic for iOS devices\n if (this.isDeviceiOS) {\n var obj = findActiveElement(event, this, this.pdfViewer);\n // eslint-disable-next-line\n var isRemoveFocus_1 = !this.pdfViewer.annotation.freeTextAnnotationModule.isNewFreeTextAnnot && (obj && this.pdfViewer.selectedItems.annotations[0] ? obj.id !== this.pdfViewer.selectedItems.annotations[0].id : true) && document.activeElement.classList.contains('free-text-input') && this.isFreeTextAnnotation(this.pdfViewer.selectedItems.annotations);\n if (!this.singleTapTimer) {\n this.singleTapTimer = setTimeout(function () {\n if (isRemoveFocus_1) {\n _this.pdfViewer.clearSelection(_this.pdfViewer.selectedItems.annotations[0].pageIndex);\n _this.focusViewerContainer(true);\n }\n _this.onSingleTap(touchPoints);\n // eslint-disable-next-line\n }, 300);\n this.tapCount++;\n }\n else {\n if (this.pdfViewer.enablePinchZoom) {\n this.tapCount++;\n clearTimeout(this.singleTapTimer);\n this.singleTapTimer = null;\n this.onDoubleTap(touchPoints);\n }\n }\n }\n else {\n if (!this.singleTapTimer) {\n this.singleTapTimer = setTimeout(function () {\n _this.onSingleTap(touchPoints);\n // eslint-disable-next-line\n }, 300);\n this.tapCount++;\n }\n else {\n if (this.pdfViewer.enablePinchZoom) {\n this.tapCount++;\n clearTimeout(this.singleTapTimer);\n this.singleTapTimer = null;\n this.onDoubleTap(touchPoints);\n }\n }\n }\n };\n PdfViewerBase.prototype.handleTextBoxTaps = function (touchPoints) {\n var _this = this;\n setTimeout(function () {\n _this.inputTapCount = 0;\n }, 300);\n this.inputTapCount++;\n //EJ2CORE-813 - Removing timer function for iOS Devices\n if (this.isDeviceiOS) {\n // eslint-disable-next-line\n this.onTextBoxDoubleTap(touchPoints);\n }\n else {\n var timer = setTimeout(function () {\n _this.onTextBoxDoubleTap(touchPoints);\n }, 200);\n }\n if (this.inputTapCount > 2) {\n this.inputTapCount = 0;\n }\n };\n PdfViewerBase.prototype.onTextBoxDoubleTap = function (touches) {\n var target = touches[0].target;\n if (this.inputTapCount === 2) {\n if (this.pdfViewer.selectedItems.annotations.length !== 0) {\n if (this.pdfViewer.annotationModule) {\n var currentAnnotation = this.pdfViewer.selectedItems.annotations[0];\n //EJ2CORE-813 - Removing focus from all active free text elements before focusing on free text annotation on iOS devices\n if (this.isDeviceiOS && document.activeElement.classList.contains('free-text-input') && (this.isFreeTextAnnotation(this.pdfViewer.selectedItems.annotations))) {\n this.focusViewerContainer(true);\n }\n this.pdfViewer.annotationModule.annotationSelect(currentAnnotation.annotName, currentAnnotation.pageIndex, currentAnnotation, null, true);\n }\n if (this.isFreeTextAnnotation(this.pdfViewer.selectedItems.annotations) && !(this.pdfViewer.annotationModule.freeTextAnnotationModule.isInuptBoxInFocus)) {\n var elmtPosition = {};\n elmtPosition.x = this.pdfViewer.selectedItems.annotations[0].bounds.x;\n elmtPosition.y = this.pdfViewer.selectedItems.annotations[0].bounds.y;\n var targetAnnotation = void 0;\n if (this.pdfViewer.selectedItems.annotations[0].id == 'diagram_helper') {\n targetAnnotation = this.pdfViewer.nameTable[this.eventArgs.source.id];\n }\n else {\n targetAnnotation = this.pdfViewer.selectedItems.annotations[0];\n }\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.freeTextAnnotationModule.addInuptElemet(elmtPosition, targetAnnotation);\n }\n else if (this.pdfViewer.selectedItems.annotations[0] && this.pdfViewer.selectedItems.annotations[0].enableShapeLabel && !(this.pdfViewer.annotationModule.freeTextAnnotationModule.isInuptBoxInFocus)) {\n var elmtPosition = {};\n elmtPosition.x = this.pdfViewer.selectedItems.annotations[0].bounds.x;\n elmtPosition.y = this.pdfViewer.selectedItems.annotations[0].bounds.y;\n this.pdfViewer.annotation.inputElementModule.editLabel(elmtPosition, this.pdfViewer.selectedItems.annotations[0]);\n }\n }\n }\n };\n PdfViewerBase.prototype.onSingleTap = function (touches) {\n var target = touches[0].target;\n var isFormfields = false;\n this.singleTapTimer = null;\n if (target && (target.classList.contains('e-pdfviewer-formFields')\n || target.classList.contains('e-pdfviewer-ListBox') || target.classList.contains('e-pdfviewer-signatureformfields'))) {\n isFormfields = true;\n }\n if (!this.isLongTouchPropagated && !this.navigationPane.isNavigationToolbarVisible && !isFormfields) {\n if (this.pdfViewer.toolbarModule) {\n if ((this.touchClientX >= touches[0].clientX - 10) && (this.touchClientX <= touches[0].clientX + 10) &&\n (this.touchClientY >= touches[0].clientY - 10) && (this.touchClientY <= touches[0].clientY + 10)) {\n if (!this.isTapHidden) {\n if (isBlazor()) {\n // eslint-disable-next-line max-len\n this.viewerContainer.scrollTop -= this.pdfViewer.element.querySelector('.e-pv-mobile-toolbar').clientHeight * this.getZoomFactor();\n }\n if (this.pdfViewer.toolbar.moreDropDown) {\n var dropDown = this.getElement('_more_option-popup');\n if (dropDown.firstElementChild) {\n dropDown.classList.remove('e-popup-open');\n dropDown.classList.add('e-popup-close');\n dropDown.removeChild(dropDown.firstElementChild);\n }\n }\n }\n else {\n if (isBlazor()) {\n // eslint-disable-next-line max-len\n this.viewerContainer.scrollTop += this.pdfViewer.element.querySelector('.e-pv-mobile-toolbar').clientHeight * this.getZoomFactor();\n }\n }\n if (this.isTapHidden && (Browser.isDevice && !this.pdfViewer.enableDesktopMode)) {\n this.mobileScrollerContainer.style.display = '';\n this.updateMobileScrollerPosition();\n // eslint-disable-next-line max-len\n }\n else if ((Browser.isDevice && !this.pdfViewer.enableDesktopMode) && this.getSelectTextMarkupCurrentPage() == null) {\n this.mobileScrollerContainer.style.display = 'none';\n }\n if (this.getSelectTextMarkupCurrentPage() == null) {\n if (!isBlazor()) {\n if (this.pdfViewer.enableToolbar) {\n this.pdfViewer.toolbarModule.showToolbar(true);\n }\n }\n else {\n //this.pdfViewer._dotnetInstance.invokeMethodAsync('TapOnMobileDevice', this.isTapHidden);\n this.blazorUIAdaptor.tapOnMobileDevice(this.isTapHidden);\n }\n this.isTapHidden = !this.isTapHidden;\n }\n }\n this.tapCount = 0;\n }\n }\n };\n PdfViewerBase.prototype.onDoubleTap = function (touches) {\n var target = touches[0].target;\n var isFormfields = false;\n if (target && (target.classList.contains('e-pdfviewer-formFields')\n || target.classList.contains('e-pdfviewer-ListBox') || target.classList.contains('e-pdfviewer-signatureformfields'))) {\n isFormfields = true;\n }\n if (this.tapCount === 2 && !isFormfields) {\n this.tapCount = 0;\n /**\n * Sometimes the values gets differ by some decimal points. So converted the decimal points values to Integer values.\n */\n // eslint-disable-next-line\n if ((this.touchClientX >= parseInt((touches[0].clientX - 10).toString())) && (this.touchClientX <= touches[0].clientX + 10) &&\n (this.touchClientY >= touches[0].clientY - 10) && (this.touchClientY <= touches[0].clientY + 30)) {\n if (this.pdfViewer.magnification && this.pdfViewer.selectedItems.annotations.length !== 1) {\n this.pdfViewer.magnification.onDoubleTapMagnification();\n }\n this.viewerContainer.style.height = this.updatePageHeight(this.pdfViewer.element.getBoundingClientRect().height, this.toolbarHeight);\n this.isTapHidden = false;\n clearTimeout(this.singleTapTimer);\n this.singleTapTimer = null;\n }\n }\n };\n PdfViewerBase.prototype.preventTouchEvent = function (event) {\n if (this.pdfViewer.textSelectionModule) {\n // eslint-disable-next-line max-len\n if (!this.isPanMode && this.pdfViewer.enableTextSelection && !this.isTextSelectionDisabled && this.getSelectTextMarkupCurrentPage() == null) {\n if (!(this.isWebkitMobile && (Browser.isDevice && !this.pdfViewer.enableDesktopMode))) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n }\n };\n PdfViewerBase.prototype.renderStampAnnotation = function (event) {\n if (this.pdfViewer.annotation) {\n var zoomFactor = this.getZoomFactor();\n var pageIndex = this.pdfViewer.annotation.getEventPageNumber(event);\n var pageDiv = this.getElement('_pageDiv_' + pageIndex);\n if (this.pdfViewer.enableStampAnnotations) {\n var stampModule = this.pdfViewer.annotationModule.stampAnnotationModule;\n if (stampModule && stampModule.isStampAnnotSelected) {\n if (pageDiv) {\n var pageCurrentRect = pageDiv.getBoundingClientRect();\n // eslint-disable-next-line max-len\n if (event.type === 'touchend' && this.pdfViewer.annotationModule.stampAnnotationModule.currentStampAnnotation.shapeAnnotationType === 'Image') {\n var currentStampObj = this.pdfViewer.annotationModule.stampAnnotationModule.currentStampAnnotation;\n currentStampObj.pageIndex = pageIndex;\n currentStampObj.bounds.x = (event.changedTouches[0].clientX - pageCurrentRect.left) / zoomFactor;\n currentStampObj.bounds.y = (event.changedTouches[0].clientY - pageCurrentRect.top) / zoomFactor;\n stampModule.updateDeleteItems(pageIndex, currentStampObj, currentStampObj.opacity);\n this.pdfViewer.add(currentStampObj);\n var canvas = document.getElementById(this.pdfViewer.element.id + '_annotationCanvas_' + pageIndex);\n this.pdfViewer.renderDrawing(canvas, pageIndex);\n }\n else {\n // eslint-disable-next-line max-len\n stampModule.renderStamp((event.changedTouches[0].clientX - pageCurrentRect.left) / zoomFactor, (event.changedTouches[0].clientY - pageCurrentRect.top) / zoomFactor, null, null, pageIndex, null, null, null, null);\n }\n stampModule.isStampAnnotSelected = false;\n }\n }\n this.pdfViewer.annotation.onAnnotationMouseDown();\n }\n if (this.pdfViewer.enableHandwrittenSignature && this.isSignatureAdded && pageDiv) {\n var pageCurrentRect = pageDiv.getBoundingClientRect();\n this.currentSignatureAnnot.pageIndex = pageIndex;\n // eslint-disable-next-line max-len\n this.signatureModule.renderSignature((event.changedTouches[0].clientX - pageCurrentRect.left) / zoomFactor, (event.changedTouches[0].clientY - pageCurrentRect.top) / zoomFactor);\n this.isSignatureAdded = false;\n }\n if (event.touches.length === 1 && this.isTextMarkupAnnotationModule() && !this.getPopupNoteVisibleStatus()) {\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.onTextMarkupAnnotationTouchEnd(event);\n }\n }\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.initPageDiv = function (pageValues) {\n if (!isBlazor()) {\n if (this.pdfViewer.toolbarModule) {\n this.pdfViewer.toolbarModule.updateTotalPage();\n }\n }\n if ((Browser.isDevice && !this.pdfViewer.enableDesktopMode) && this.mobiletotalPageContainer) {\n this.mobiletotalPageContainer.innerHTML = this.pageCount.toString();\n this.pageNoContainer.innerHTML = '(1-' + this.pageCount.toString() + ')';\n }\n if (this.pageCount > 0) {\n var topValue = 0;\n var pageLimit = 0;\n this.isMixedSizeDocument = false;\n if (this.pageCount > 100) {\n // to render 100 pages intially.\n pageLimit = 100;\n this.pageLimit = pageLimit;\n }\n else {\n pageLimit = this.pageCount;\n }\n var isPortrait = false;\n var isLandscape = false;\n var differentPageSize = false;\n for (var i = 0; i < pageLimit; i++) {\n if (typeof pageValues.pageSizes[parseInt(i.toString(), 10)] !== 'object') {\n var pageSize = pageValues.pageSizes[parseInt(i.toString(), 10)].split(',');\n if (pageValues.pageSizes[i - 1] !== null && i !== 0) {\n var previousPageHeight = pageValues.pageSizes[i - 1].split(',');\n topValue = this.pageGap + parseFloat(previousPageHeight[1]) + topValue;\n }\n else {\n topValue = this.pageGap;\n }\n var size = { width: parseFloat(pageSize[0]), height: parseFloat(pageSize[1]), top: topValue };\n this.pageSize.push(size);\n }\n else {\n if (pageValues.pageSizes[i - 1] !== null && i !== 0) {\n // eslint-disable-next-line\n var previousPageHeight = pageValues.pageSizes[i - 1];\n topValue = this.pageGap + parseFloat(previousPageHeight.Height) + topValue;\n }\n else {\n topValue = this.pageGap;\n }\n var size = { width: pageValues.pageSizes[parseInt(i.toString(), 10)].Width, height: pageValues.pageSizes[parseInt(i.toString(), 10)].Height, top: topValue };\n this.pageSize.push(size);\n }\n if (this.pageSize[parseInt(i.toString(), 10)].height > this.pageSize[parseInt(i.toString(), 10)].width) {\n isPortrait = true;\n }\n if (this.pageSize[parseInt(i.toString(), 10)].width > this.pageSize[parseInt(i.toString(), 10)].height) {\n isLandscape = true;\n }\n if (i > 0 && this.pageSize[parseInt(i.toString(), 10)].width !== this.pageSize[i - 1].width) {\n differentPageSize = true;\n }\n var pageWidth = this.pageSize[parseInt(i.toString(), 10)].width;\n if (pageWidth > this.highestWidth) {\n this.highestWidth = pageWidth;\n }\n var pageHeight = this.pageSize[parseInt(i.toString(), 10)].height;\n if (pageHeight > this.highestHeight) {\n this.highestHeight = pageHeight;\n }\n }\n if ((isPortrait && isLandscape) || differentPageSize) {\n this.isMixedSizeDocument = true;\n }\n var limit = this.pageCount < 10 ? this.pageCount : 10;\n for (var i = 0; i < limit; i++) {\n this.renderPageContainer(i, this.getPageWidth(i), this.getPageHeight(i), this.getPageTop(i));\n }\n // eslint-disable-next-line max-len\n this.pageContainer.style.height = this.getPageTop(this.pageSize.length - 1) + this.getPageHeight(this.pageSize.length - 1) + 'px';\n this.pageContainer.style.position = 'relative';\n if (this.pageLimit === 100) {\n var pageDiv = this.getElement('_pageDiv_' + this.pageLimit);\n if (pageDiv === null && this.pageLimit < this.pageCount) {\n Promise.all([this.renderPagesVirtually()]);\n }\n }\n }\n };\n PdfViewerBase.prototype.renderElementsVirtualScroll = function (pageNumber) {\n var lowerLimit = 1;\n var higherLimit = 3;\n if (this.pageStopValue <= 200) {\n lowerLimit = 4;\n higherLimit = 4;\n }\n else {\n lowerLimit = 2;\n higherLimit = 3;\n }\n var pageValue = pageNumber + lowerLimit;\n if (pageValue > this.pageCount) {\n pageValue = this.pageCount;\n }\n for (var i = pageNumber - 1; i <= pageValue; i++) {\n if (i !== -1) {\n this.renderPageElement(i);\n }\n }\n var lowerPageValue = pageNumber - 3;\n if (lowerPageValue < 0) {\n lowerPageValue = 0;\n }\n for (var i = pageNumber - 1; i >= lowerPageValue; i--) {\n if (i !== -1) {\n this.renderPageElement(i);\n }\n }\n for (var j = 0; j < this.pageCount; j++) {\n if (!((lowerPageValue <= j) && (j <= pageValue))) {\n var pageDiv = this.getElement('_pageDiv_' + j);\n var pageCanvas = this.getElement('_pageCanvas_' + j);\n var textLayer = this.getElement('_textLayer_' + j);\n if (pageCanvas) {\n pageCanvas.parentNode.removeChild(pageCanvas);\n if (textLayer) {\n if (this.pdfViewer.textSelectionModule && textLayer.childNodes.length !== 0 && !this.isTextSelectionDisabled) {\n this.pdfViewer.textSelectionModule.maintainSelectionOnScroll(j, true);\n }\n textLayer.parentNode.removeChild(textLayer);\n }\n var indexInArray = this.renderedPagesList.indexOf(j);\n if (indexInArray !== -1) {\n this.renderedPagesList.splice(indexInArray, 1);\n }\n }\n if (pageDiv) {\n pageDiv.parentNode.removeChild(pageDiv);\n var indexInArray = this.renderedPagesList.indexOf(j);\n if (indexInArray !== -1) {\n this.renderedPagesList.splice(indexInArray, 1);\n }\n }\n }\n }\n if (isBlazor())\n this.pdfViewer._dotnetInstance.invokeMethodAsync('UpdateCurrentPageNumber', this.currentPageNumber);\n };\n PdfViewerBase.prototype.renderPageElement = function (i) {\n var pageDiv = this.getElement('_pageDiv_' + i);\n var canvas = this.getElement('_pageCanvas_' + i);\n if (canvas == null && pageDiv == null && i < this.pageSize.length) {\n // eslint-disable-next-line\n this.renderPageContainer(i, this.getPageWidth(i), this.getPageHeight(i), this.getPageTop(i));\n }\n };\n PdfViewerBase.prototype.renderPagesVirtually = function () {\n return __awaiter(this, void 0, void 0, function () {\n var proxy;\n var _this = this;\n return __generator(this, function (_a) {\n proxy = this;\n setTimeout(function () {\n _this.initiateRenderPagesVirtually(proxy);\n }, 500);\n return [2 /*return*/];\n });\n });\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.initiateRenderPagesVirtually = function (proxy) {\n var jsonObject = { hashId: proxy.hashId, isCompletePageSizeNotReceived: true, action: 'VirtualLoad', elementId: proxy.pdfViewer.element.id, uniqueId: proxy.documentId, password: proxy.passwordData };\n if (proxy.jsonDocumentId) {\n // eslint-disable-next-line\n jsonObject.documentId = proxy.jsonDocumentId;\n }\n this.virtualLoadRequestHandler = new AjaxHandler(this.pdfViewer);\n this.virtualLoadRequestHandler.url = proxy.pdfViewer.serviceUrl + '/' + proxy.pdfViewer.serverActionSettings.load;\n this.virtualLoadRequestHandler.responseType = 'json';\n this.virtualLoadRequestHandler.mode = true;\n this.virtualLoadRequestHandler.send(jsonObject);\n // eslint-disable-next-line\n this.virtualLoadRequestHandler.onSuccess = function (result) {\n // eslint-disable-next-line\n var data = result.data;\n if (data) {\n if (typeof data !== 'object') {\n try {\n data = JSON.parse(data);\n }\n catch (error) {\n proxy.onControlError(500, data, 'VirtualLoad');\n }\n }\n }\n if (data) {\n while (typeof data !== 'object') {\n data = JSON.parse(data);\n }\n if (proxy.documentId === data.uniqueId) {\n proxy.pdfViewer.fireAjaxRequestSuccess('VirtualLoad', data);\n // eslint-disable-next-line\n var pageValues = data;\n if (proxy.pageSize[proxy.pageLimit - 1]) {\n var topValue = proxy.pageSize[proxy.pageLimit - 1].top;\n for (var i = proxy.pageLimit; i < proxy.pageCount; i++) {\n if (typeof (pageValues.pageSizes[parseInt(i.toString(), 10)]) !== 'object') {\n var pageSize = pageValues.pageSizes[parseInt(i.toString(), 10)].split(',');\n if (proxy.pageSize[i - 1] !== null && i !== 0) {\n var previousPageHeight = proxy.pageSize[i - 1].height;\n topValue = proxy.pageGap + parseFloat(previousPageHeight) + topValue;\n }\n var size = { width: parseFloat(pageSize[0]), height: parseFloat(pageSize[1]), top: topValue };\n proxy.pageSize.push(size);\n }\n else {\n if (proxy.pageSize[i - 1] !== null && i !== 0) {\n var previousPageHeight = proxy.pageSize[i - 1].height;\n topValue = proxy.pageGap + parseFloat(previousPageHeight) + topValue;\n }\n var size = { width: parseFloat(pageValues.pageSizes[parseInt(i.toString(), 10)].Width), height: parseFloat(pageValues.pageSizes[parseInt(i.toString(), 10)].Height), top: topValue };\n proxy.pageSize.push(size);\n }\n }\n // eslint-disable-next-line max-len\n proxy.pageContainer.style.height = proxy.getPageTop(proxy.pageSize.length - 1) + proxy.getPageHeight(proxy.pageSize.length - 1) + 'px';\n // eslint-disable-next-line\n var pageData = window.sessionStorage.getItem(proxy.documentId + '_pagedata');\n if (proxy.pageCount > 100) {\n proxy.pdfViewer.fireDocumentLoad(pageData);\n var linkAnnotationModule = proxy.pdfViewer.linkAnnotationModule;\n if (linkAnnotationModule && linkAnnotationModule.linkAnnotation && linkAnnotationModule.linkAnnotation.length > 0 && linkAnnotationModule.linkPage.length > 0) {\n linkAnnotationModule.renderDocumentLink(linkAnnotationModule.linkAnnotation, linkAnnotationModule.linkPage, linkAnnotationModule.annotationY, proxy.currentPageNumber - 1);\n }\n }\n }\n }\n }\n };\n // eslint-disable-next-line\n this.virtualLoadRequestHandler.onFailure = function (result) {\n proxy.pdfViewer.fireAjaxRequestFailed(result.status, result.statusText);\n };\n // eslint-disable-next-line\n this.virtualLoadRequestHandler.onError = function (result) {\n proxy.openNotificationPopup();\n proxy.pdfViewer.fireAjaxRequestFailed(result.status, result.statusText);\n };\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.tileRenderPage = function (data, pageIndex) {\n var _this = this;\n var proxy = null;\n proxy = this;\n if (data && this.pageSize[parseInt(pageIndex.toString(), 10)]) {\n var pageWidth = this.getPageWidth(pageIndex);\n var pageHeight = this.getPageHeight(pageIndex);\n // eslint-disable-next-line max-len\n var canvas_1 = this.getElement('_pageCanvas_' + pageIndex);\n var pageDiv_1 = this.getElement('_pageDiv_' + pageIndex);\n var tileX = data.tileX ? data.tileX : 0;\n var tileY = data.tileY ? data.tileY : 0;\n if (pageDiv_1) {\n pageDiv_1.style.width = pageWidth + 'px';\n pageDiv_1.style.height = pageHeight + 'px';\n pageDiv_1.style.background = '#fff';\n pageDiv_1.style.top = this.getPageTop(pageIndex) + 'px';\n if (this.pdfViewer.enableRtl) {\n pageDiv_1.style.right = this.updateLeftPosition(pageIndex) + 'px';\n }\n else {\n pageDiv_1.style.left = this.updateLeftPosition(pageIndex) + 'px';\n }\n }\n if (canvas_1) {\n canvas_1.style.background = '#fff';\n }\n var imageData = data['image'];\n var zoomFactor = this.retrieveCurrentZoomFactor();\n if (this.isReRenderRequired) {\n if (data.zoomFactor) {\n zoomFactor = data.zoomFactor;\n }\n var currentString = this.documentId + '_' + pageIndex + '_' + zoomFactor + '_' + data.tileX + '_' + data.tileY;\n // eslint-disable-next-line max-len\n this.tilerequestLists.push(currentString);\n // eslint-disable-next-line\n var matrix = data['transformationMatrix'];\n // eslint-disable-next-line\n var width = data['width'];\n if (imageData) {\n var tileX_1 = data.tileX ? data.tileX : 0;\n var tileY_1 = data.tileY ? data.tileY : 0;\n var scaleFactor = (!isNullOrUndefined(data.scaleFactor)) ? data.scaleFactor : 1.5;\n var image_1 = document.getElementById(this.pdfViewer.element.id + '_tileimg_' + pageIndex + '_' + this.getZoomFactor() + '_' + tileX_1 + '_' + tileY_1);\n if (!image_1) {\n image_1 = new Image();\n image_1.id = this.pdfViewer.element.id + '_tileimg_' + pageIndex + '_' + this.getZoomFactor() + '_' + tileX_1 + '_' + tileY_1;\n if (pageDiv_1) {\n pageDiv_1.append(image_1);\n }\n }\n image_1.src = imageData;\n image_1.setAttribute('alt', '');\n image_1.onload = function () {\n proxy.showPageLoadingIndicator(pageIndex, false);\n proxy.tileRenderCount = proxy.tileRenderCount + 1;\n if ((tileX_1 === 0) && (tileY_1 === 0)) {\n if (pageIndex === 0 && _this.isDocumentLoaded) {\n proxy.renderPDFInformations();\n proxy.isInitialLoaded = true;\n // eslint-disable-next-line\n var pageData = window.sessionStorage.getItem(proxy.documentId + '_pagedata');\n if (proxy.pageCount <= 100) {\n proxy.pdfViewer.fireDocumentLoad(pageData);\n }\n proxy.isDocumentLoaded = false;\n if (proxy.pdfViewer.textSearch && proxy.pdfViewer.isExtractText) {\n proxy.pdfViewer.textSearchModule.getPDFDocumentTexts();\n }\n }\n }\n if (proxy.tileRenderCount === proxy.tileRequestCount) {\n if (proxy.isTextMarkupAnnotationModule()) {\n proxy.pdfViewer.annotationModule.textMarkupAnnotationModule.rerenderAnnotations(pageIndex);\n }\n if (canvas_1) {\n canvas_1.style.display = 'none';\n canvas_1.src = '#';\n }\n var oldPageDiv = document.querySelectorAll('img[id*=\"' + proxy.pdfViewer.element.id + '_oldCanvas\"]');\n for (var i = 0; i < oldPageDiv.length; i++) {\n pageDiv_1.removeChild(oldPageDiv[parseInt(i.toString(), 10)]);\n }\n proxy.isTileImageRendered = false;\n proxy.tileRenderCount = 0;\n if (proxy.pdfViewer.magnificationModule) {\n proxy.pdfViewer.magnificationModule.rerenderCountIncrement();\n }\n proxy.isDrawnCompletely = true;\n }\n image_1.setAttribute('alt', 'Page ' + (pageIndex + 1));\n };\n var currentImageWidth = (((width * this.getZoomFactor()) / zoomFactor) / scaleFactor);\n var matrixElements = matrix.Elements ? matrix.Elements : matrix.Values;\n var currentImageTop = (((matrixElements[5] * this.getZoomFactor()) / zoomFactor) / scaleFactor);\n var currentImageLeft = (((matrixElements[4] * this.getZoomFactor()) / zoomFactor) / scaleFactor);\n image_1.width = currentImageWidth;\n image_1.style.width = currentImageWidth + 'px';\n image_1.style.top = currentImageTop + 'px';\n image_1.style.left = currentImageLeft + 'px';\n image_1.style.position = 'absolute';\n }\n if ((tileX === 0) && (tileY === 0)) {\n this.onPageRender(data, pageIndex, pageDiv_1);\n }\n }\n else {\n var oldCanvases = document.querySelectorAll('img[id*=\"' + proxy.pdfViewer.element.id + '_tileimg_' + pageIndex + '_\"]');\n var _loop_1 = function (l) {\n var tileImgId = oldCanvases[parseInt(l.toString(), 10)].id.split('_');\n var zoomFactor_1 = proxy.retrieveCurrentZoomFactor();\n // eslint-disable-next-line\n var tileData = JSON.parse(proxy.getWindowSessionStorageTile(pageIndex, parseFloat(tileImgId[tileImgId.length - 2]), parseFloat(tileImgId[tileImgId.length - 1]), zoomFactor_1));\n if (tileData && tileData.zoomFactor) {\n zoomFactor_1 = tileData.zoomFactor;\n }\n if (parseFloat(tileImgId[tileImgId.length - 4]) === pageIndex) {\n var node_1 = oldCanvases[parseInt(l.toString(), 10)];\n // Make sure it's really an Element\n if (node_1.nodeType == Node.ELEMENT_NODE) {\n node_1.onload = function () {\n proxy.showPageLoadingIndicator(pageIndex, false);\n proxy.tileRenderCount = proxy.tileRenderCount + 1;\n if ((tileX_2 === 0) && (tileY_2 === 0)) {\n if (pageIndex === 0 && _this.isDocumentLoaded) {\n _this.renderPDFInformations();\n _this.isInitialLoaded = true;\n // eslint-disable-next-line\n var pageData = window.sessionStorage.getItem(proxy.documentId + '_pagedata');\n if (proxy.pageCount <= 100) {\n proxy.pdfViewer.fireDocumentLoad(pageData);\n }\n proxy.isDocumentLoaded = false;\n if (proxy.pdfViewer.textSearch && proxy.pdfViewer.isExtractText) {\n proxy.pdfViewer.textSearchModule.getPDFDocumentTexts();\n }\n }\n }\n if (proxy.tileRenderCount === proxy.tileRequestCount) {\n canvas_1.style.display = 'none';\n canvas_1.src = '#';\n if (proxy.isTextMarkupAnnotationModule()) {\n proxy.pdfViewer.annotationModule.textMarkupAnnotationModule.rerenderAnnotations(pageIndex);\n }\n var oldPageDiv = document.querySelectorAll('img[id*=\"' + proxy.pdfViewer.element.id + '_oldCanvas\"]');\n for (var i = 0; i < oldPageDiv.length; i++) {\n pageDiv_1.removeChild(oldPageDiv[parseInt(i.toString(), 10)]);\n }\n proxy.isTileImageRendered = false;\n proxy.tileRenderCount = 0;\n if (proxy.pdfViewer.magnificationModule) {\n proxy.pdfViewer.magnificationModule.rerenderCountIncrement();\n }\n proxy.isDrawnCompletely = true;\n }\n node_1.setAttribute('alt', 'Page ' + (pageIndex + 1));\n };\n if (tileData)\n node_1.src = tileData.image;\n }\n }\n };\n for (var l = 0; l < oldCanvases.length; l++) {\n _loop_1(l);\n }\n var tileX_2 = data.tileX ? data.tileX : 0;\n var tileY_2 = data.tileY ? data.tileY : 0;\n if ((tileX_2 === 0) && (tileY_2 === 0)) {\n this.onPageRender(data, pageIndex, pageDiv_1);\n }\n }\n }\n };\n PdfViewerBase.prototype.renderTileCanvas = function (pageWidth, pageHeight, pageIndex, pageDiv, zoomFactor, scaleFactor) {\n var pageCanvas = this.getElement('_pageTileCanvas_' + pageIndex);\n if (!pageCanvas) {\n pageCanvas = createElement('canvas', { id: this.pdfViewer.element.id + '_pageTileCanvas_' + pageIndex, className: 'e-pv-pageTile-canvas' });\n pageCanvas.style.width = pageWidth + 'px';\n pageCanvas.style.height = pageHeight + 'px';\n pageCanvas.style.display = 'none';\n pageCanvas.style.backgroundColor = '#fff';\n if (this.isMixedSizeDocument && this.highestWidth > 0) {\n pageCanvas.style.marginLeft = 'auto';\n pageCanvas.style.marginRight = 'auto';\n }\n pageDiv.appendChild(pageCanvas);\n }\n return pageCanvas;\n };\n PdfViewerBase.prototype.calculateImageWidth = function (pageWidth, zoomFactor, scaleFactor, imageWidth) {\n var width = (pageWidth / this.getZoomFactor()) * zoomFactor * scaleFactor;\n // eslint-disable-next-line\n if ((parseInt(imageWidth.toString())) === (parseInt(width.toString()))) {\n imageWidth = width;\n }\n imageWidth = ((imageWidth * this.getZoomFactor()) / zoomFactor);\n return imageWidth;\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.renderPage = function (data, pageIndex, imageSource) {\n var _this = this;\n var proxy = this;\n if (data && this.pageSize[parseInt(pageIndex.toString(), 10)]) {\n var pageWidth = this.getPageWidth(pageIndex);\n var pageHeight = this.getPageHeight(pageIndex);\n // eslint-disable-next-line max-len\n var canvas_2 = this.getElement('_pageCanvas_' + pageIndex);\n var pageDiv_2 = this.getElement('_pageDiv_' + pageIndex);\n if (pageDiv_2) {\n pageDiv_2.style.width = pageWidth + 'px';\n pageDiv_2.style.height = pageHeight + 'px';\n pageDiv_2.style.top = this.getPageTop(pageIndex) + 'px';\n if (this.pdfViewer.enableRtl) {\n pageDiv_2.style.right = this.updateLeftPosition(pageIndex) + 'px';\n }\n else {\n pageDiv_2.style.left = this.updateLeftPosition(pageIndex) + 'px';\n }\n }\n if (canvas_2) {\n canvas_2.style.background = '#fff';\n canvas_2.style.display = 'block';\n canvas_2.style.width = pageWidth + 'px';\n canvas_2.style.height = pageHeight + 'px';\n if (pageWidth < parseFloat(pageDiv_2.style.width)) {\n pageDiv_2.style.boxShadow = 'none';\n }\n // eslint-disable-next-line\n var imageData = this.renderThumbnailImages ? imageSource : data['image'];\n if (imageData) {\n canvas_2.onload = function () {\n var oldCanvases = document.querySelectorAll('img[id*=\"' + proxy.pdfViewer.element.id + '_tileimg_' + pageIndex + '_\"]');\n var pageCanvas = proxy.getElement('_pageDiv_' + pageIndex);\n for (var i = 0; i < oldCanvases.length; i++) {\n var tileImgId = oldCanvases[parseInt(i.toString(), 10)].id.split('_');\n if (parseFloat(tileImgId[tileImgId.length - 3]) != proxy.getZoomFactor())\n pageCanvas.removeChild(oldCanvases[parseInt(i.toString(), 10)]);\n }\n var oldPageDiv = document.querySelectorAll('img[id*=\"' + proxy.pdfViewer.element.id + '_oldCanvas\"]');\n for (var i = 0; i < oldPageDiv.length; i++) {\n pageDiv_2.removeChild(oldPageDiv[parseInt(i.toString(), 10)]);\n }\n if (_this.pdfViewer.magnificationModule) {\n _this.pdfViewer.magnificationModule.rerenderCountIncrement();\n }\n _this.showPageLoadingIndicator(pageIndex, false);\n if (pageIndex === 0 && _this.isDocumentLoaded) {\n _this.renderPDFInformations();\n _this.isInitialLoaded = true;\n // eslint-disable-next-line\n var pageData = window.sessionStorage.getItem(_this.documentId + '_pagedata');\n if (_this.pageCount <= 100) {\n _this.pdfViewer.fireDocumentLoad(pageData);\n }\n _this.isDocumentLoaded = false;\n if (_this.pdfViewer.textSearch && _this.pdfViewer.isExtractText) {\n _this.pdfViewer.textSearchModule.getPDFDocumentTexts();\n }\n }\n if (_this.pdfViewer.magnificationModule) {\n _this.pdfViewer.magnificationModule.pushImageObjects(canvas_2);\n }\n canvas_2.setAttribute('alt', 'Page ' + (pageIndex + 1));\n };\n canvas_2.src = imageData;\n }\n this.onPageRender(data, pageIndex, pageDiv_2);\n }\n }\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.onPageRender = function (data, pageIndex, pageDiv) {\n // eslint-disable-next-line\n var aElement = pageDiv && pageDiv.getElementsByTagName('a');\n var isAnnotationRendered = false;\n if (aElement && aElement.length !== 0) {\n for (var index = aElement.length - 1; index >= 0; index--) {\n aElement[parseInt(index.toString(), 10)].parentNode.removeChild(aElement[parseInt(index.toString(), 10)]);\n }\n }\n if (this.pdfViewer.textSearchModule || this.pdfViewer.textSelectionModule || this.pdfViewer.annotationModule) {\n this.renderTextContent(data, pageIndex);\n }\n if (this.pdfViewer.formFieldsModule && !this.pdfViewer.magnificationModule.isFormFieldPageZoomed) {\n this.pdfViewer.formFieldsModule.renderFormFields(pageIndex, false);\n }\n if (this.pdfViewer.formDesignerModule && !this.isDocumentLoaded) {\n this.pdfViewer.formDesignerModule.rerenderFormFields(pageIndex);\n }\n if (this.pdfViewer.formFieldsModule && !this.isDocumentLoaded && !this.pdfViewer.formDesignerModule) {\n this.pdfViewer.formFieldsModule.renderFormFields(pageIndex, false);\n }\n if (this.pdfViewer.formDesignerModule && this.isDocumentLoaded && this.pdfViewer.magnificationModule.isFormFieldPageZoomed) {\n this.pdfViewer.formFieldsModule.renderFormFields(pageIndex, false);\n this.pdfViewer.magnificationModule.isFormFieldPageZoomed = false;\n }\n if (this.pdfViewer.enableHyperlink && this.pdfViewer.linkAnnotationModule) {\n this.pdfViewer.linkAnnotationModule.renderHyperlinkContent(data, pageIndex);\n }\n if (this.pdfViewer.textSelectionModule && !this.isTextSelectionDisabled) {\n this.pdfViewer.textSelectionModule.applySelectionRangeOnScroll(pageIndex);\n }\n if (this.documentAnnotationCollections) {\n var isAnnotationAdded = false;\n for (var i = 0; i < this.annotationRenderredList.length; i++) {\n if (this.annotationRenderredList[parseInt(i.toString(), 10)] === pageIndex) {\n isAnnotationAdded = true;\n }\n }\n // eslint-disable-next-line\n var pageAnnotations = this.documentAnnotationCollections[pageIndex];\n if (pageAnnotations && !isAnnotationAdded) {\n data.shapeAnnotation = pageAnnotations.shapeAnnotation;\n data.measureShapeAnnotation = pageAnnotations.measureShapeAnnotation;\n data.textMarkupAnnotation = pageAnnotations.textMarkupAnnotation;\n data.freeTextAnnotation = pageAnnotations.freeTextAnnotation;\n data.stampAnnotations = pageAnnotations.stampAnnotations;\n data.stickyNotesAnnotation = pageAnnotations.stickyNotesAnnotation;\n data.signatureInkAnnotation = pageAnnotations.signatureInkAnnotation;\n this.annotationRenderredList.push(pageIndex);\n }\n }\n if (this.isImportAction) {\n // eslint-disable-next-line\n var pageAnnotations = this.checkDocumentCollectionData(pageIndex);\n if (pageAnnotations) {\n data.shapeAnnotation = pageAnnotations.shapeAnnotation;\n data.measureShapeAnnotation = pageAnnotations.measureShapeAnnotation;\n data.textMarkupAnnotation = pageAnnotations.textMarkupAnnotation;\n data.freeTextAnnotation = pageAnnotations.freeTextAnnotation;\n data.stampAnnotations = pageAnnotations.stampAnnotations;\n data.stickyNotesAnnotation = pageAnnotations.stickyNotesAnnotation;\n data.signatureInkAnnotation = pageAnnotations.signatureInkAnnotation;\n isAnnotationRendered = true;\n }\n }\n if (this.pdfViewer.annotationModule && (this.isTextMarkupAnnotationModule() || this.isShapeBasedAnnotationsEnabled())) {\n if (this.isStampAnnotationModule()) {\n // eslint-disable-next-line\n var stampData = data['stampAnnotations'];\n if (isAnnotationRendered) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stampAnnotationModule.renderStampAnnotations(stampData, pageIndex, null, true);\n }\n else {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stampAnnotationModule.renderStampAnnotations(stampData, pageIndex);\n }\n }\n if (isAnnotationRendered) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.renderAnnotations(pageIndex, data.shapeAnnotation, data.measureShapeAnnotation, data.textMarkupAnnotation, null, true);\n }\n else {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.renderAnnotations(pageIndex, data.shapeAnnotation, data.measureShapeAnnotation, data.textMarkupAnnotation);\n }\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.renderStickyNotesAnnotations(data.stickyNotesAnnotation, pageIndex);\n }\n if (this.pdfViewer.formDesignerModule && !this.pdfViewer.annotationModule) {\n this.pdfViewer.formDesignerModule.updateCanvas(pageIndex);\n }\n if (this.pdfViewer.textSearchModule) {\n if (this.pdfViewer.textSearchModule.isTextSearch) {\n this.pdfViewer.textSearchModule.highlightOtherOccurrences(pageIndex);\n }\n }\n if (this.isShapeBasedAnnotationsEnabled()) {\n var canvas1 = this.getElement('_annotationCanvas_' + pageIndex);\n var commonStyle = 'position:absolute;top:0px;left:0px;overflow:hidden;pointer-events:none;z-index:1000';\n if (canvas1) {\n var bounds = canvas1.getBoundingClientRect();\n renderAdornerLayer(bounds, commonStyle, canvas1, pageIndex, this.pdfViewer);\n this.pdfViewer.renderSelector(pageIndex, this.pdfViewer.annotationSelectorSettings);\n }\n }\n if (this.pdfViewer.annotationModule) {\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.selectCommentsAnnotation(pageIndex);\n }\n if (this.isFreeTextAnnotationModule() && data.freeTextAnnotation) {\n if (isAnnotationRendered) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.freeTextAnnotationModule.renderFreeTextAnnotations(data.freeTextAnnotation, pageIndex);\n }\n else {\n this.pdfViewer.annotationModule.freeTextAnnotationModule.renderFreeTextAnnotations(data.freeTextAnnotation, pageIndex);\n }\n }\n if (this.isInkAnnotationModule() && data && data.signatureInkAnnotation) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.inkAnnotationModule.renderExistingInkSignature(data.signatureInkAnnotation, pageIndex, isAnnotationRendered);\n }\n // eslint-disable-next-line max-len\n if (this.pdfViewer.annotationModule && this.pdfViewer.annotationModule.isAnnotationSelected && this.pdfViewer.annotationModule.annotationPageIndex === pageIndex) {\n this.pdfViewer.annotationModule.selectAnnotationFromCodeBehind();\n }\n this.isLoadedFormFieldAdded = false;\n };\n /**\n * @private\n * @param {number} pageIndex - page index for rendering the annotation.\n * @returns {void}\n */\n PdfViewerBase.prototype.renderAnnotations = function (pageIndex, isAddedProgrammatically) {\n // eslint-disable-next-line\n var data = {};\n if (this.documentAnnotationCollections) {\n var isAnnotationAdded = false;\n for (var i = 0; i < this.annotationRenderredList.length; i++) {\n if (this.annotationRenderredList[parseInt(i.toString(), 10)] === pageIndex) {\n isAnnotationAdded = true;\n }\n }\n // eslint-disable-next-line\n var pageAnnotations = this.documentAnnotationCollections[pageIndex];\n if (pageAnnotations && !isAnnotationAdded) {\n data.shapeAnnotation = pageAnnotations.shapeAnnotation;\n data.measureShapeAnnotation = pageAnnotations.measureShapeAnnotation;\n data.textMarkupAnnotation = pageAnnotations.textMarkupAnnotation;\n data.freeTextAnnotation = pageAnnotations.freeTextAnnotation;\n data.stampAnnotations = pageAnnotations.stampAnnotations;\n data.stickyNotesAnnotation = pageAnnotations.stickyNotesAnnotation;\n data.signatureAnnotation = pageAnnotations.signatureAnnotation;\n data.signatureInkAnnotation = pageAnnotations.signatureInkAnnotation;\n this.annotationRenderredList.push(pageIndex);\n }\n }\n if (this.isAnnotationCollectionRemoved) {\n data.shapeAnnotation = [];\n data.measureShapeAnnotation = [];\n data.textMarkupAnnotation = [];\n data.freeTextAnnotation = [];\n data.stampAnnotations = [];\n data.stickyNotesAnnotation = [];\n data.signatureInkAnnotation = [];\n }\n if (this.isTextMarkupAnnotationModule() || this.isShapeBasedAnnotationsEnabled()) {\n if (this.isStampAnnotationModule()) {\n // eslint-disable-next-line\n var stampData = data['stampAnnotations'];\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stampAnnotationModule.renderStampAnnotations(stampData, pageIndex);\n }\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.renderAnnotations(pageIndex, data.shapeAnnotation, data.measureShapeAnnotation, data.textMarkupAnnotation);\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.renderStickyNotesAnnotations(data.stickyNotesAnnotation, pageIndex);\n }\n if (this.pdfViewer.textSearchModule) {\n if (this.pdfViewer.textSearchModule.isTextSearch) {\n this.pdfViewer.textSearchModule.highlightOtherOccurrences(pageIndex);\n }\n }\n if (this.isImportAction) {\n var isAnnotationAdded = false;\n for (var i = 0; i < this.annotationPageList.length; i++) {\n if (this.annotationPageList[parseInt(i.toString(), 10)] === pageIndex) {\n isAnnotationAdded = true;\n }\n }\n if (!isAnnotationAdded) {\n if (this.importedAnnotation) {\n this.drawPageAnnotations(this.importedAnnotation, pageIndex, true);\n this.annotationPageList[this.annotationPageList.length] = pageIndex;\n }\n }\n }\n if (this.isShapeBasedAnnotationsEnabled()) {\n var canvas1 = this.getElement('_annotationCanvas_' + pageIndex);\n var commonStyle = 'position:absolute;top:0px;left:0px;overflow:hidden;pointer-events:none;z-index:1000';\n if (canvas1) {\n var bounds = canvas1.getBoundingClientRect();\n renderAdornerLayer(bounds, commonStyle, canvas1, pageIndex, this.pdfViewer);\n this.pdfViewer.renderSelector(pageIndex);\n }\n }\n if (this.pdfViewer.annotationModule) {\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.selectCommentsAnnotation(pageIndex);\n }\n if (this.isFreeTextAnnotationModule() && data.freeTextAnnotation) {\n this.pdfViewer.annotationModule.freeTextAnnotationModule.renderFreeTextAnnotations(data.freeTextAnnotation, pageIndex, undefined);\n }\n if (data && data.signatureAnnotation) {\n this.signatureModule.renderExistingSignature(data.signatureAnnotation, pageIndex, false);\n }\n if (this.isInkAnnotationModule() && data && data.signatureInkAnnotation) {\n this.pdfViewer.annotationModule.inkAnnotationModule.renderExistingInkSignature(data.signatureInkAnnotation, pageIndex, false);\n }\n if (this.pdfViewer.annotationModule && this.pdfViewer.annotationModule.isAnnotationSelected) {\n this.pdfViewer.annotationModule.selectAnnotationFromCodeBehind();\n }\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.renderTextContent = function (data, pageIndex) {\n // eslint-disable-next-line\n var texts = data['textContent'];\n // eslint-disable-next-line\n var bounds = data['textBounds'];\n // eslint-disable-next-line\n var rotation = data['rotation'];\n var rtldoc = data.documentTextCollection ? this.checkIsRtlText(data.documentTextCollection[0][pageIndex].PageText) : this.checkIsRtlText(data.pageText);\n var textLayer = this.getElement('_textLayer_' + pageIndex);\n if (!textLayer) {\n // eslint-disable-next-line max-len\n textLayer = this.textLayer.addTextLayer(pageIndex, this.getPageWidth(pageIndex), this.getPageHeight(pageIndex), this.getElement('_pageDiv_' + pageIndex));\n }\n if (textLayer && texts && bounds) {\n textLayer.style.display = 'block';\n if (textLayer.childNodes.length === 0) {\n this.textLayer.renderTextContents(pageIndex, texts, bounds, rotation, rtldoc);\n }\n else {\n this.textLayer.resizeTextContents(pageIndex, texts, bounds, rotation, true);\n }\n }\n };\n PdfViewerBase.prototype.renderPageContainer = function (pageNumber, pageWidth, pageHeight, topValue) {\n // eslint-disable-next-line max-len\n var pageDiv = createElement('div', { id: this.pdfViewer.element.id + '_pageDiv_' + pageNumber, className: 'e-pv-page-div', attrs: { 'tabindex': '-1' } });\n pageDiv.style.width = pageWidth + 'px';\n pageDiv.style.height = pageHeight + 'px';\n if (this.pdfViewer.enableRtl) {\n pageDiv.style.right = this.updateLeftPosition(pageNumber) + 'px';\n }\n else {\n pageDiv.style.left = this.updateLeftPosition(pageNumber) + 'px';\n }\n pageDiv.style.top = topValue + 'px';\n this.pageContainer.appendChild(pageDiv);\n this.pageContainer.style.width = this.viewerContainer.clientWidth + 'px';\n this.createWaitingPopup(pageNumber);\n this.orderPageDivElements(pageDiv, pageNumber);\n this.renderPageCanvas(pageDiv, pageWidth, pageHeight, pageNumber, 'block');\n if ((Browser.isDevice && !this.pdfViewer.enableDesktopMode) && !this.isThumb) {\n this.updateMobileScrollerPosition();\n }\n };\n PdfViewerBase.prototype.renderPDFInformations = function () {\n if (this.pdfViewer.thumbnailViewModule && (!Browser.isDevice || this.pdfViewer.enableDesktopMode)) {\n this.pdfViewer.thumbnailViewModule.createRequestForThumbnails();\n }\n if (this.pdfViewer.bookmarkViewModule) {\n this.pdfViewer.bookmarkViewModule.createRequestForBookmarks();\n }\n if (this.pdfViewer.annotationModule) {\n if (this.pdfViewer.toolbarModule) {\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.initializeAcccordionContainer();\n }\n if (this.pdfViewer.isCommandPanelOpen) {\n this.pdfViewer.annotation.showCommentsPanel();\n }\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.createRequestForComments();\n }\n };\n PdfViewerBase.prototype.orderPageDivElements = function (pageDiv, pageIndex) {\n var nextElement = this.getElement('_pageDiv_' + (pageIndex + 1));\n if (nextElement) {\n this.pageContainer.insertBefore(pageDiv, nextElement);\n }\n else {\n this.pageContainer.appendChild(pageDiv);\n }\n };\n /**\n * @param pageDiv\n * @param pageWidth\n * @param pageHeight\n * @param pageNumber\n * @param displayMode\n * @param pageDiv\n * @param pageWidth\n * @param pageHeight\n * @param pageNumber\n * @param displayMode\n * @param pageDiv\n * @param pageWidth\n * @param pageHeight\n * @param pageNumber\n * @param displayMode\n * @private\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.renderPageCanvas = function (pageDiv, pageWidth, pageHeight, pageNumber, displayMode) {\n if (pageDiv) {\n // eslint-disable-next-line\n var pageCanvas = this.getElement('_pageCanvas_' + pageNumber);\n if (pageCanvas) {\n pageCanvas.width = pageWidth;\n pageCanvas.height = pageHeight;\n pageCanvas.style.display = 'block';\n if (this.isMixedSizeDocument && this.highestWidth > 0) {\n pageCanvas.style.marginLeft = 'auto';\n pageCanvas.style.marginRight = 'auto';\n }\n }\n else {\n // eslint-disable-next-line max-len\n pageCanvas = createElement('img', { id: this.pdfViewer.element.id + '_pageCanvas_' + pageNumber, className: 'e-pv-page-canvas' });\n pageCanvas.width = pageWidth;\n pageCanvas.height = pageHeight;\n pageCanvas.style.display = displayMode;\n if (this.isMixedSizeDocument && this.highestWidth > 0) {\n pageCanvas.style.marginLeft = 'auto';\n pageCanvas.style.marginRight = 'auto';\n }\n pageDiv.appendChild(pageCanvas);\n }\n pageCanvas.setAttribute('alt', '');\n if (this.pdfViewer.annotationModule && this.pdfViewer.annotation) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.createAnnotationLayer(pageDiv, pageWidth, pageHeight, pageNumber, displayMode);\n }\n if (this.pdfViewer.textSearchModule || this.pdfViewer.textSelectionModule || this.pdfViewer.annotationModule) {\n this.textLayer.addTextLayer(pageNumber, pageWidth, pageHeight, pageDiv);\n }\n if (this.pdfViewer.formDesignerModule && !this.pdfViewer.annotationModule) {\n this.pdfViewer.formDesignerModule.createAnnotationLayer(pageDiv, pageWidth, pageHeight, pageNumber, displayMode);\n }\n return pageCanvas;\n }\n };\n /**\n * @private\n * @param {any} pageCanvas - The canvas for rendering the page.\n * @param {any} pageNumber - The page number for adding styles.\n * @returns {void}\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.applyElementStyles = function (pageCanvas, pageNumber) {\n if (this.isMixedSizeDocument && pageCanvas) {\n var canvasElement = document.getElementById(this.pdfViewer.element.id + '_pageCanvas_' + pageNumber);\n var oldCanvas = document.getElementById(this.pdfViewer.element.id + '_oldCanvas_' + pageNumber);\n if (pageCanvas && canvasElement && canvasElement.offsetLeft > 0) {\n pageCanvas.style.marginLeft = canvasElement.offsetLeft + 'px';\n pageCanvas.style.marginRight = canvasElement.offsetLeft + 'px';\n }\n else if (oldCanvas && oldCanvas.offsetLeft > 0) {\n pageCanvas.style.marginLeft = oldCanvas.offsetLeft + 'px';\n pageCanvas.style.marginRight = oldCanvas.offsetLeft + 'px';\n }\n else {\n pageCanvas.style.marginLeft = 'auto';\n pageCanvas.style.marginRight = 'auto';\n }\n }\n };\n /**\n * @private\n * @param {number} pageIndex - page index for updating positon.\n * @returns {void}\n */\n PdfViewerBase.prototype.updateLeftPosition = function (pageIndex) {\n var leftPosition;\n var width = this.viewerContainer.getBoundingClientRect().width;\n if (width === 0) {\n width = parseFloat(this.pdfViewer.width.toString());\n }\n // eslint-disable-next-line max-len\n if (this.isMixedSizeDocument && this.highestWidth > 0) {\n if (this.viewerContainer.clientWidth > 0) {\n leftPosition = (this.viewerContainer.clientWidth - (this.highestWidth * this.getZoomFactor())) / 2;\n }\n else {\n leftPosition = (width - (this.highestWidth * this.getZoomFactor())) / 2;\n }\n var pageDiff = (this.highestWidth * this.getZoomFactor() - this.getPageWidth(pageIndex)) / 2;\n if (leftPosition > 0) {\n leftPosition += pageDiff;\n }\n else {\n leftPosition = pageDiff;\n }\n }\n else {\n if (this.viewerContainer.clientWidth > 0) {\n leftPosition = (this.viewerContainer.clientWidth - this.getPageWidth(pageIndex)) / 2;\n }\n else {\n leftPosition = (width - this.getPageWidth(pageIndex)) / 2;\n }\n }\n var isLandscape = false;\n if (this.pageSize[parseInt(pageIndex.toString(), 10)].width > this.pageSize[parseInt(pageIndex.toString(), 10)].height) {\n isLandscape = true;\n }\n // eslint-disable-next-line max-len\n if (leftPosition < 0 || (this.pdfViewer.magnificationModule ? ((this.pdfViewer.magnificationModule.isAutoZoom && this.getZoomFactor() < 1) || this.pdfViewer.magnificationModule.fitType === 'fitToWidth') : false)) {\n var leftValue = leftPosition;\n if (leftPosition > 0 && (Browser.isDevice && !this.pdfViewer.enableDesktopMode)) {\n // eslint-disable-next-line\n leftPosition = leftValue;\n }\n else {\n leftPosition = this.pageLeft;\n }\n if ((leftPosition > 0) && this.isMixedSizeDocument) {\n if (leftValue > 0) {\n leftPosition = leftValue;\n }\n }\n }\n return leftPosition;\n };\n /**\n * @private\n * @param {number} pageIndex - The page index for positon.\n * @returns {void}\n */\n PdfViewerBase.prototype.applyLeftPosition = function (pageIndex) {\n var leftPosition;\n if (this.pageSize[parseInt(pageIndex.toString(), 10)]) {\n if (this.isMixedSizeDocument && this.highestWidth > 0) {\n if (this.viewerContainer.clientWidth > 0) {\n // eslint-disable-next-line max-len\n leftPosition = (this.viewerContainer.clientWidth - (this.highestWidth * this.getZoomFactor())) / 2;\n }\n else {\n // eslint-disable-next-line max-len\n leftPosition = (this.viewerContainer.getBoundingClientRect().width - (this.highestWidth * this.getZoomFactor())) / 2;\n }\n var pageDiff = (this.highestWidth * this.getZoomFactor() - this.getPageWidth(pageIndex)) / 2;\n if (leftPosition > 0) {\n leftPosition += pageDiff;\n }\n else {\n leftPosition = pageDiff;\n }\n }\n else {\n if (this.viewerContainer.clientWidth > 0) {\n // eslint-disable-next-line max-len\n leftPosition = (this.viewerContainer.clientWidth - this.pageSize[parseInt(pageIndex.toString(), 10)].width * this.getZoomFactor()) / 2;\n }\n else {\n // eslint-disable-next-line max-len\n leftPosition = (this.viewerContainer.getBoundingClientRect().width - this.pageSize[parseInt(pageIndex.toString(), 10)].width * this.getZoomFactor()) / 2;\n }\n }\n var isLandscape = false;\n if (this.pageSize[parseInt(pageIndex.toString(), 10)].width > this.pageSize[parseInt(pageIndex.toString(), 10)].height) {\n isLandscape = true;\n }\n // eslint-disable-next-line max-len\n if (leftPosition < 0 || (this.pdfViewer.magnificationModule ? ((this.pdfViewer.magnificationModule.isAutoZoom && this.getZoomFactor() < 1) || this.pdfViewer.magnificationModule.fitType === 'fitToWidth') : false)) {\n var leftValue = leftPosition;\n leftPosition = this.pageLeft;\n // eslint-disable-next-line max-len\n if ((leftValue > 0) && this.isMixedSizeDocument) {\n leftPosition = leftValue;\n }\n }\n // eslint-disable-next-line max-len\n var pageDiv = document.getElementById(this.pdfViewer.element.id + '_pageDiv_' + pageIndex);\n if (pageDiv) {\n if (!this.pdfViewer.enableRtl) {\n pageDiv.style.left = leftPosition + 'px';\n }\n else {\n pageDiv.style.right = leftPosition + 'px';\n }\n }\n }\n };\n PdfViewerBase.prototype.updatePageHeight = function (viewerHeight, toolbarHeight) {\n return ((viewerHeight - toolbarHeight) / viewerHeight) * 100 + '%';\n };\n /**\n * @private\n * @param {Point} clientPoint - The user should provide a x, y coordinates.\n * @returns {number}\n */\n PdfViewerBase.prototype.getPageNumberFromClientPoint = function (clientPoint) {\n var pointX = clientPoint.x + this.viewerContainer.scrollLeft;\n var pointY = clientPoint.y + this.viewerContainer.scrollTop;\n for (var i = 0; i < this.pageCount; i++) {\n var pageTop = this.pageSize[parseInt(i.toString(), 10)].height + this.viewerContainer.scrollTop;\n if (pointY < (this.pageSize[parseInt(i.toString(), 10)].top + pageTop)) {\n var viewerContainerBounds = this.getElement('_pageViewContainer').getBoundingClientRect();\n var pageLeft = ((viewerContainerBounds.width - this.pageSize[parseInt(i.toString(), 10)].width) / 2) + viewerContainerBounds.x;\n var verticalScrollPosition = 0;\n if (pointY > this.pageSize[parseInt(i.toString(), 10)].top) {\n verticalScrollPosition = (pointY - this.pageSize[parseInt(i.toString(), 10)].top);\n }\n else {\n verticalScrollPosition = (this.pageSize[parseInt(i.toString(), 10)].top - pointY);\n }\n if (verticalScrollPosition > 0) {\n if (this.pageSize[parseInt(i.toString(), 10)] != null) {\n var pageHeight = this.getPageHeight(i);\n if (pageLeft >= 0) {\n if ((pointX < pageLeft) || (pointX > (pageLeft + (this.pageSize[parseInt(i.toString(), 10)].width)))) {\n return -1;\n }\n }\n if (verticalScrollPosition <= (this.getPageTop(i) + pageTop)) {\n return i + 1;\n }\n }\n }\n }\n }\n return -1;\n };\n /**\n * @private\n * @param {Point} clientPoint - The user should provide a x, y coordinates.\n * @param {number} pageNumber - We need to pass pageNumber.\n * @returns {Point}\n */\n PdfViewerBase.prototype.convertClientPointToPagePoint = function (clientPoint, pageNumber) {\n if (pageNumber !== -1) {\n var viewerContainerBounds = this.getElement('_pageViewContainer').getBoundingClientRect();\n var pageLeft = ((viewerContainerBounds.width - this.pageSize[pageNumber - 1].width) / 2) + viewerContainerBounds.x;\n var pagePoint = { x: (clientPoint.x + this.viewerContainer.scrollLeft) - pageLeft, y: (clientPoint.y + this.viewerContainer.scrollTop) - this.pageSize[pageNumber - 1].top };\n return pagePoint;\n }\n return null;\n };\n /**\n * @private\n * @param {Point} pagePoint - The user needs to provide a page x, y position.\n * @param {number} pageNumber - We need to pass pageNumber.\n * @returns {Point}\n */\n PdfViewerBase.prototype.convertPagePointToClientPoint = function (pagePoint, pageNumber) {\n if (pageNumber !== -1) {\n var viewerContainerBounds = this.getElement('_pageViewContainer').getBoundingClientRect();\n var pageLeft = ((viewerContainerBounds.width - this.pageSize[pageNumber - 1].width) / 2) + viewerContainerBounds.x;\n var clientPoint = { x: pagePoint.x + pageLeft, y: pagePoint.y + this.pageSize[pageNumber - 1].top };\n return clientPoint;\n }\n return null;\n };\n /**\n * @private\n * @param {Point} pagePoint - The user needs to provide a page x, y position.\n * @param {number} pageNumber - We need to pass pageNumber.\n * @returns {Point}\n */\n PdfViewerBase.prototype.convertPagePointToScrollingPoint = function (pagePoint, pageNumber) {\n if (pageNumber !== -1) {\n var scrollingPoint = { x: pagePoint.x + this.viewerContainer.scrollLeft, y: pagePoint.y + this.viewerContainer.scrollTop };\n return scrollingPoint;\n }\n return null;\n };\n PdfViewerBase.prototype.initiatePageViewScrollChanged = function () {\n if (this.scrollHoldTimer) {\n clearTimeout(this.scrollHoldTimer);\n }\n this.scrollHoldTimer = null;\n if ((this.scrollPosition * this.getZoomFactor()) !== this.viewerContainer.scrollTop) {\n this.scrollPosition = this.viewerContainer.scrollTop;\n this.pageViewScrollChanged(this.currentPageNumber);\n }\n };\n PdfViewerBase.prototype.renderCountIncrement = function () {\n if (this.pdfViewer.magnificationModule) {\n this.pdfViewer.magnificationModule.renderCountIncrement();\n }\n };\n /**\n * @private\n * @param {number} currentPageNumber - The current pagenumber.\n * @returns {void}\n */\n PdfViewerBase.prototype.pageViewScrollChanged = function (currentPageNumber) {\n if (this.isPanMode) {\n if (this.renderedPagesList.indexOf(currentPageNumber - 1) === -1) {\n this.reRenderedCount = 0;\n }\n }\n else {\n this.reRenderedCount = 0;\n }\n var currentPageIndex = currentPageNumber - 1;\n if (currentPageNumber !== this.previousPage && currentPageNumber <= this.pageCount) {\n var isSkip = false;\n if (this.isDataExits && !this.getStoredData(currentPageIndex)) {\n isSkip = true;\n }\n if (this.renderedPagesList.indexOf(currentPageIndex) === -1 && !this.getMagnified() && !isSkip) {\n this.renderCountIncrement();\n this.createRequestForRender(currentPageIndex);\n }\n }\n if (!(this.getMagnified() || this.getPagesPinchZoomed())) {\n var previous = currentPageIndex - 1;\n var isSkip = false;\n var canvas = this.getElement('_pageCanvas_' + previous);\n if (this.isDataExits && !this.getStoredData(previous)) {\n isSkip = true;\n }\n if (canvas !== null && !isSkip) {\n if (this.renderedPagesList.indexOf(previous) === -1 && !this.getMagnified()) {\n this.renderCountIncrement();\n this.createRequestForRender(previous);\n }\n }\n if (this.isMinimumZoom) {\n this.renderPreviousPagesInScroll(previous);\n }\n var next = currentPageIndex + 1;\n var pageHeight = 0;\n if (next < this.pageCount) {\n pageHeight = this.getPageHeight(next);\n var allowPageRendering = this.isMinimumZoom ? this.isMinimumZoom : this.renderedPagesList.indexOf(next) === -1;\n if (allowPageRendering && !this.getMagnified() && pageHeight) {\n this.createRequestForRender(next);\n this.renderCountIncrement();\n while (this.viewerContainer.clientHeight > pageHeight) {\n next = next + 1;\n if (next < this.pageCount) {\n this.renderPageElement(next);\n this.createRequestForRender(next);\n pageHeight += this.getPageHeight(next);\n this.renderCountIncrement();\n }\n else {\n break;\n }\n }\n }\n }\n }\n };\n PdfViewerBase.prototype.renderPreviousPagesInScroll = function (pageIndex) {\n var next = pageIndex - 1;\n var pageNumber = next - 1;\n if (next > 0) {\n if (this.renderedPagesList.indexOf(next) === -1 && !this.getMagnified()) {\n this.createRequestForRender(next);\n this.renderCountIncrement();\n }\n if (pageNumber > 0) {\n if (this.renderedPagesList.indexOf(pageNumber) === -1 && !this.getMagnified()) {\n this.createRequestForRender(pageNumber);\n this.renderCountIncrement();\n }\n }\n }\n };\n PdfViewerBase.prototype.downloadDocument = function (blobUrl) {\n // eslint-disable-next-line\n var Url = URL || webkitURL;\n blobUrl = Url.createObjectURL(blobUrl);\n var anchorElement = createElement('a');\n if (anchorElement.click) {\n anchorElement.href = blobUrl;\n anchorElement.target = '_parent';\n if ('download' in anchorElement) {\n anchorElement.download = this.downloadFileName;\n }\n (document.body || document.documentElement).appendChild(anchorElement);\n anchorElement.click();\n anchorElement.parentNode.removeChild(anchorElement);\n }\n else {\n if (window.top === window &&\n blobUrl.split('#')[0] === window.location.href.split('#')[0]) {\n var padCharacter = blobUrl.indexOf('?') === -1 ? '?' : '&';\n blobUrl = blobUrl.replace(/#|$/, padCharacter + '$&');\n }\n /* eslint-disable-next-line security/detect-non-literal-fs-filename */\n window.open(blobUrl, '_parent');\n }\n };\n PdfViewerBase.prototype.downloadExportFormat = function (blobUrl, annotationDataFormat, formFieldDataFormat, isForm) {\n var isJson = annotationDataFormat === 'Json' || formFieldDataFormat === 'Json';\n // eslint-disable-next-line max-len\n var extension = isJson ? '.json' : formFieldDataFormat === 'Fdf' ? '.fdf' : formFieldDataFormat === 'Xml' ? '.xml' : (annotationDataFormat === 'Xfdf' || formFieldDataFormat === 'Xfdf') ? '.xfdf' : null;\n if (!isNullOrUndefined(extension)) {\n // eslint-disable-next-line\n var Url = URL || webkitURL;\n blobUrl = Url.createObjectURL(blobUrl);\n var anchorElement = createElement('a');\n if (anchorElement.click) {\n anchorElement.href = blobUrl;\n anchorElement.target = '_parent';\n if ('download' in anchorElement) {\n if (this.pdfViewer.exportAnnotationFileName !== null) {\n anchorElement.download = this.pdfViewer.exportAnnotationFileName.split('.')[0] + extension;\n }\n else {\n anchorElement.download = this.pdfViewer.fileName.split('.')[0] + extension;\n }\n }\n (document.body || document.documentElement).appendChild(anchorElement);\n anchorElement.click();\n anchorElement.parentNode.removeChild(anchorElement);\n if (isForm) {\n this.pdfViewer.fireFormExportSuccess(blobUrl, anchorElement.download);\n }\n else {\n this.pdfViewer.fireExportSuccess(blobUrl, anchorElement.download);\n }\n }\n else if (isJson) {\n if (window.top === window &&\n blobUrl.split('#')[0] === window.location.href.split('#')[0]) {\n var padCharacter = blobUrl.indexOf('?') === -1 ? '?' : '&';\n blobUrl = blobUrl.replace(/#|$/, padCharacter + '$&');\n }\n /* eslint-disable-next-line security/detect-non-literal-fs-filename */\n window.open(blobUrl, '_parent');\n if (isForm) {\n this.pdfViewer.fireFormExportSuccess(blobUrl, this.pdfViewer.fileName.split('.')[0] + extension);\n }\n else {\n this.pdfViewer.fireExportSuccess(blobUrl, this.pdfViewer.fileName.split('.')[0] + extension);\n }\n }\n }\n };\n /**\n * @private\n * @param {string} data - The data for exporting the fields.\n * @returns {void}\n */\n PdfViewerBase.prototype.exportFormFields = function (data, formFieldDataFormat) {\n this.createRequestForExportFormfields(false, formFieldDataFormat, data);\n };\n /**\n * @param data\n * @param formFieldDataFormat\n * @private\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.importFormFields = function (data, formFieldDataFormat) {\n this.createRequestForImportingFormfields(data, formFieldDataFormat);\n };\n /**\n * @param {boolean} isObject\n * @param {FormFieldDataFormat} formFieldDataFormat\n * @param {string} data - The data for exporting the fields.\n * @private\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.createRequestForExportFormfields = function (isObject, formFieldDataFormat, data) {\n var _this = this;\n var proxy = null;\n proxy = this;\n var promise = new Promise(function (resolve, reject) {\n // eslint-disable-next-line\n var jsonObject = proxy.createFormfieldsJsonData();\n if (formFieldDataFormat === 'Json' || formFieldDataFormat === 'Fdf' || formFieldDataFormat === 'Xfdf' || formFieldDataFormat === \"Xml\") {\n jsonObject.formFieldDataFormat = formFieldDataFormat;\n proxy.pdfViewer.fireFormExportStarted(jsonObject);\n }\n jsonObject.action = 'ExportFormFields';\n // eslint-disable-next-line\n jsonObject['hashId'] = proxy.hashId;\n // eslint-disable-next-line\n jsonObject['fileName'] = proxy.pdfViewer.fileName;\n if (data && data !== '' && !isObject) {\n // eslint-disable-next-line\n jsonObject['filePath'] = data;\n }\n // eslint-disable-next-line\n jsonObject['elementId'] = _this.pdfViewer.element.id;\n // eslint-disable-next-line max-len\n if (proxy.jsonDocumentId) {\n // eslint-disable-next-line\n jsonObject.document = proxy.jsonDocumentId;\n }\n var formFieldsPageList = _this.getFormFieldsPageList(jsonObject[\"formDesigner\"]);\n jsonObject['formFieldsPageList'] = JSON.stringify(formFieldsPageList);\n jsonObject['isFormFieldAnnotationsExist'] = _this.isAnnotationsExist(jsonObject[\"formDesigner\"]) || _this.isFieldsDataExist(jsonObject[\"fieldsData\"]) || formFieldsPageList.length > 0;\n var url = proxy.pdfViewer.serviceUrl + '/' + proxy.pdfViewer.serverActionSettings.exportFormFields;\n proxy.exportFormFieldsRequestHandler = new AjaxHandler(_this.pdfViewer);\n proxy.exportFormFieldsRequestHandler.url = url;\n proxy.exportFormFieldsRequestHandler.mode = true;\n proxy.exportFormFieldsRequestHandler.responseType = 'text';\n proxy.exportFormFieldsRequestHandler.send(jsonObject);\n // eslint-disable-next-line\n proxy.exportFormFieldsRequestHandler.onSuccess = function (result) {\n // eslint-disable-next-line\n var data = result.data;\n if (data) {\n if (data) {\n proxy.pdfViewer.fireAjaxRequestSuccess(proxy.pdfViewer.serverActionSettings.exportFormFields, data);\n if (isObject) {\n // eslint-disable-next-line\n var annotationJson = decodeURIComponent(escape(atob(data.split(',')[1])));\n resolve(annotationJson);\n proxy.pdfViewer.fireFormExportSuccess(annotationJson, proxy.pdfViewer.fileName);\n }\n else if (data.split('base64,')[1]) {\n var blobUrl = proxy.createBlobUrl(data.split('base64,')[1], 'application/json');\n if (Browser.isIE || Browser.info.name === 'edge') {\n window.navigator.msSaveOrOpenBlob(blobUrl, proxy.pdfViewer.fileName.split('.')[0] + '.json');\n }\n else if (jsonObject.formFieldDataFormat === 'Json' || jsonObject.formFieldDataFormat === 'Fdf' || jsonObject.formFieldDataFormat === 'Xfdf' || jsonObject.formFieldDataFormat === 'Xml') {\n proxy.downloadExportFormat(blobUrl, null, formFieldDataFormat, true);\n }\n }\n }\n }\n };\n // eslint-disable-next-line\n proxy.exportFormFieldsRequestHandler.onFailure = function (result) {\n proxy.pdfViewer.fireFormExportFailed(jsonObject.pdfAnnotation, result.statusText);\n };\n // eslint-disable-next-line\n proxy.exportFormFieldsRequestHandler.onError = function (result) {\n proxy.pdfViewer.fireFormExportFailed(jsonObject.pdfAnnotation, result.statusText);\n };\n });\n if (isObject) {\n return promise;\n }\n else {\n return true;\n }\n };\n /**\n * @param {string} fileName - Gets the name of the file name for slicing the last index\n * @param {string} sliceBy - A type to slice the file name; example (\".\", \"_\")\n * @returns {string}\n * @private\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.getLastIndexValue = function (fileName, sliceBy) {\n var indexName = fileName.slice(fileName.lastIndexOf(sliceBy) + 1);\n return indexName;\n };\n /**\n * @param source\n * @private\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.createRequestForImportingFormfields = function (source, formFieldDataFormat) {\n var proxy = null;\n var index = \".\";\n proxy = this;\n // eslint-disable-next-line\n var jsonObject = {};\n var sourceName = this.getLastIndexValue(source, index);\n if (typeof source !== 'object' && (sourceName === 'json' || sourceName === 'fdf' || sourceName === 'xfdf' || sourceName === 'xml')) {\n jsonObject.data = source;\n jsonObject['fileName'] = proxy.pdfViewer.fileName;\n jsonObject.formFieldDataFormat = formFieldDataFormat;\n }\n else {\n jsonObject.formFieldDataFormat = formFieldDataFormat;\n if (formFieldDataFormat === 'Json') {\n jsonObject.data = JSON.stringify(source);\n }\n else {\n jsonObject.data = source;\n }\n }\n proxy.pdfViewer.fireFormImportStarted(source);\n // eslint-disable-next-line\n jsonObject.action = 'ImportFormFields';\n // eslint-disable-next-line\n jsonObject['hashId'] = proxy.hashId;\n // eslint-disable-next-line\n jsonObject['elementId'] = this.pdfViewer.element.id;\n // eslint-disable-next-line max-len\n if (proxy.jsonDocumentId) {\n // eslint-disable-next-line\n jsonObject.document = proxy.jsonDocumentId;\n }\n var url = proxy.pdfViewer.serviceUrl + '/' + proxy.pdfViewer.serverActionSettings.importFormFields;\n proxy.importFormFieldsRequestHandler = new AjaxHandler(this.pdfViewer);\n proxy.importFormFieldsRequestHandler.url = url;\n proxy.importFormFieldsRequestHandler.mode = true;\n proxy.importFormFieldsRequestHandler.responseType = 'text';\n proxy.importFormFieldsRequestHandler.send(jsonObject);\n // eslint-disable-next-line\n proxy.importFormFieldsRequestHandler.onSuccess = function (result) {\n // eslint-disable-next-line\n var data = result.data;\n if (data && data !== 'null') {\n if (typeof data !== 'object') {\n try {\n data = JSON.parse(data);\n if (typeof data !== 'object') {\n proxy.onControlError(500, data, proxy.pdfViewer.serverActionSettings.importFormFields);\n proxy.pdfViewer.fireFormImportFailed(source, result.statusText);\n data = null;\n }\n }\n catch (error) {\n proxy.pdfViewer.fireFormImportFailed(source, proxy.pdfViewer.localeObj.getConstant('File not found'));\n if (isBlazor()) {\n var promise = this.pdfViewer._dotnetInstance.invokeMethodAsync('GetLocaleText', 'PdfViewer_FileNotFound');\n promise.then(function (value) {\n proxy.openImportExportNotificationPopup(value);\n });\n }\n else {\n proxy.openImportExportNotificationPopup(proxy.pdfViewer.localeObj.getConstant('File not found'));\n }\n proxy.onControlError(500, data, proxy.pdfViewer.serverActionSettings.importFormFields);\n data = null;\n }\n }\n proxy.pdfViewer.fireAjaxRequestSuccess(proxy.pdfViewer.serverActionSettings.importFormFields, data);\n proxy.pdfViewer.fireFormImportSuccess(source);\n window.sessionStorage.removeItem(this.documentId + '_formfields');\n this.pdfViewer.formFieldsModule.removeExistingFormFields();\n window.sessionStorage.removeItem(this.documentId + '_formDesigner');\n proxy.saveFormfieldsData(data);\n for (var i = 0; i < proxy.renderedPagesList.length; i++) {\n this.pdfViewer.formFieldsModule.renderFormFields(proxy.renderedPagesList[parseInt(i.toString(), 10)], true);\n }\n }\n else {\n proxy.pdfViewer.fireFormImportFailed(source, result.statusText);\n if (isBlazor()) {\n var promise = this.pdfViewer._dotnetInstance.invokeMethodAsync('GetLocaleText', 'PdfViewer_FileNotFound');\n promise.then(function (value) {\n proxy.openImportExportNotificationPopup(value);\n });\n }\n else {\n proxy.openImportExportNotificationPopup(proxy.pdfViewer.localeObj.getConstant('File not found'));\n }\n }\n };\n // eslint-disable-next-line\n proxy.importFormFieldsRequestHandler.onFailure = function (result) {\n proxy.pdfViewer.fireFormImportFailed(source, result.statusText);\n };\n // eslint-disable-next-line\n proxy.importFormFieldsRequestHandler.onError = function (result) {\n proxy.pdfViewer.fireFormImportFailed(source, result.statusText);\n };\n };\n /**\n * @public\n * @returns {any} - Returns the Json data.\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.createFormfieldsJsonData = function () {\n // eslint-disable-next-line\n var jsonObject = {};\n if (this.pdfViewer.formDesignerModule) {\n var fieldsData = this.pdfViewer.formDesignerModule.downloadFormDesigner();\n // eslint-disable-next-line\n jsonObject['formDesigner'] = fieldsData;\n }\n else if (this.pdfViewer.formFieldsModule) {\n var fieldsData = this.pdfViewer.formFieldsModule.downloadFormFieldsData();\n // eslint-disable-next-line\n jsonObject['fieldsData'] = fieldsData;\n }\n return jsonObject;\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.constructJsonDownload = function () {\n // eslint-disable-next-line\n var jsonObject = { hashId: this.hashId };\n if (this.jsonDocumentId) {\n jsonObject.documentId = this.jsonDocumentId;\n }\n jsonObject.uniqueId = this.documentId;\n this.importPageList = [];\n if (this.pdfViewer.annotationModule) {\n this.saveImportedAnnotations();\n }\n if (this.isTextMarkupAnnotationModule()) {\n this.isJsonExported = false;\n // eslint-disable-next-line max-len\n var textMarkupAnnotationCollection = this.pdfViewer.annotationModule.textMarkupAnnotationModule.saveTextMarkupAnnotations();\n // eslint-disable-next-line\n jsonObject['textMarkupAnnotations'] = textMarkupAnnotationCollection;\n }\n if (this.isShapeAnnotationModule()) {\n this.isJsonExported = false;\n // eslint-disable-next-line max-len\n var shapeAnnotations = this.pdfViewer.annotationModule.shapeAnnotationModule.saveShapeAnnotations();\n // eslint-disable-next-line\n jsonObject['shapeAnnotations'] = shapeAnnotations;\n }\n if (this.isCalibrateAnnotationModule()) {\n this.isJsonExported = false;\n // eslint-disable-next-line max-len\n var calibrateAnnotations = this.pdfViewer.annotationModule.measureAnnotationModule.saveMeasureShapeAnnotations();\n // eslint-disable-next-line\n jsonObject['measureShapeAnnotations'] = calibrateAnnotations;\n }\n if (this.isStampAnnotationModule()) {\n // eslint-disable-next-line max-len\n var stampAnnotationCollection = this.pdfViewer.annotationModule.stampAnnotationModule.saveStampAnnotations();\n // eslint-disable-next-line\n jsonObject['stampAnnotations'] = stampAnnotationCollection;\n }\n if (this.isCommentAnnotationModule()) {\n // eslint-disable-next-line max-len\n var stickyAnnotationCollection = this.pdfViewer.annotationModule.stickyNotesAnnotationModule.saveStickyAnnotations();\n // eslint-disable-next-line\n jsonObject['stickyNotesAnnotation'] = stickyAnnotationCollection;\n }\n if (this.isImportAction) {\n var importList = JSON.stringify(this.importPageList);\n // eslint-disable-next-line\n jsonObject['importPageList'] = importList;\n }\n if (this.pdfViewer.formDesignerModule) {\n var fieldsData = this.pdfViewer.formDesignerModule.downloadFormDesigner();\n // eslint-disable-next-line\n jsonObject['formDesigner'] = fieldsData;\n }\n else if (this.pdfViewer.formFieldsModule) {\n var fieldsData = this.pdfViewer.formFieldsModule.downloadFormFieldsData();\n // eslint-disable-next-line\n jsonObject['fieldsData'] = fieldsData;\n }\n var signatureData = this.signatureModule.saveSignature();\n // eslint-disable-next-line\n jsonObject['signatureData'] = signatureData;\n if (this.pdfViewer.isSignatureEditable) {\n // eslint-disable-next-line\n jsonObject['isSignatureEdited'] = this.pdfViewer.isSignatureEditable;\n }\n if (this.isFreeTextAnnotationModule()) {\n // eslint-disable-next-line max-len\n var freeTextAnnotationCollection = this.pdfViewer.annotationModule.freeTextAnnotationModule.saveFreeTextAnnotations();\n // eslint-disable-next-line\n jsonObject['freeTextAnnotation'] = freeTextAnnotationCollection;\n }\n if (this.isInkAnnotationModule()) {\n var inkSignatureData = this.pdfViewer.annotationModule.inkAnnotationModule.saveInkSignature();\n // eslint-disable-next-line\n jsonObject['inkSignatureData'] = inkSignatureData;\n }\n // eslint-disable-next-line\n jsonObject['action'] = 'Download';\n // eslint-disable-next-line\n jsonObject['elementId'] = this.pdfViewer.element.id;\n if (this.pdfViewer.annotationModule) {\n var annotationsPageList = this.getAnnotationsPageList();\n jsonObject['isAnnotationsExist'] = this.isAnnotationsExist(jsonObject[\"textMarkupAnnotations\"]) || this.isAnnotationsExist(jsonObject[\"shapeAnnotations\"]) || this.isAnnotationsExist(jsonObject[\"measureShapeAnnotations\"]) || this.isAnnotationsExist(jsonObject[\"stampAnnotations\"]) || this.isAnnotationsExist(jsonObject[\"stickyNotesAnnotation\"]) || this.isAnnotationsExist(jsonObject[\"signatureData\"]) || this.isAnnotationsExist(jsonObject[\"freeTextAnnotation\"]) || this.isAnnotationsExist(jsonObject[\"inkSignatureData\"]) || annotationsPageList.length > 0;\n jsonObject['annotationsPageList'] = JSON.stringify(annotationsPageList);\n }\n if (this.pdfViewer.formDesignerModule || this.pdfViewer.formFieldsModule) {\n var formFieldsPageList = this.getFormFieldsPageList(jsonObject[\"formDesigner\"]);\n jsonObject['isFormFieldAnnotationsExist'] = this.isAnnotationsExist(jsonObject[\"formDesigner\"]) || this.isFieldsDataExist(jsonObject[\"fieldsData\"]) || formFieldsPageList.length > 0;\n jsonObject['formFieldsPageList'] = JSON.stringify(formFieldsPageList);\n }\n if (this.pdfViewer.annotationCollection) {\n jsonObject['annotationCollection'] = JSON.stringify(this.pdfViewer.annotationCollection);\n }\n return jsonObject;\n };\n /**\n * @private\n * @returns {boolean} - Returns whether annotation is present.\n */\n PdfViewerBase.prototype.isAnnotationsExist = function (annotationInfo) {\n // eslint-disable-next-line max-len\n return !isNullOrUndefined(annotationInfo) ? JSON.parse(annotationInfo).flat(1).length > 0 : false;\n };\n /**\n * @private\n * @returns {boolean} - Returns whether fields data is present.\n */\n PdfViewerBase.prototype.isFieldsDataExist = function (fieldsData) {\n // eslint-disable-next-line max-len\n return !isNullOrUndefined(fieldsData) ? Object.entries(JSON.parse(fieldsData)).length !== 0 : false;\n };\n /**\n * @private\n * @returns {boolean} - Returns annotations page number list.\n */\n PdfViewerBase.prototype.getAnnotationsPageList = function () {\n // eslint-disable-next-line max-len\n var annotCollection = this.pdfViewer.annotationCollection.map(function (a) { return a.pageNumber; });\n var annotActionCollection = this.pdfViewer.annotationModule.actionCollection.filter(function (value, index, self) { return value.annotation.propName !== \"formFields\" && value.annotation.formFieldAnnotationType == undefined; }).map(function (a) { return a.pageIndex; });\n var fullPageList = annotCollection.concat(annotActionCollection);\n return fullPageList.filter(function (value, index, self) { return self.indexOf(value) === index && value !== undefined; });\n };\n /**\n * @private\n * @returns {boolean} - Returns form fields page number list.\n */\n PdfViewerBase.prototype.getFormFieldsPageList = function (formDesignerData) {\n // eslint-disable-next-line max-len\n var formFieldsCollection = this.pdfViewer.formFieldCollection.map(function (item) {\n if (!isNullOrUndefined(item.properties)) {\n return item.properties.pageNumber;\n }\n else {\n return item.pageNumber + 1;\n }\n });\n var annotActionCollection = !isNullOrUndefined(this.pdfViewer.annotationModule) ? this.pdfViewer.annotationModule.actionCollection.filter(function (value, index, self) { return value.annotation.propName == \"formFields\" || value.annotation.formFieldAnnotationType != undefined; }).map(function (a) { return a.pageIndex; }) : [];\n var fullPageList = formFieldsCollection.concat(annotActionCollection);\n var designerDataList;\n if (!isNullOrUndefined(formDesignerData)) {\n designerDataList = JSON.parse(formDesignerData).map(function (item) {\n return item.FormField.pageNumber;\n });\n }\n var totalPageList = fullPageList.concat(designerDataList);\n return totalPageList.filter(function (value, index, self) { return self.indexOf(value) === index && value !== undefined; });\n };\n /**\n * @private\n * @param {string} annotationID - The annotationID.\n * @returns {any} - Returns collection of type.\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.checkFormFieldCollection = function (annotationID) {\n var isFormFieldAnnotation = false;\n // eslint-disable-next-line\n var formDesignerData = null;\n formDesignerData = this.getItemFromSessionStorage('_formDesigner');\n if (formDesignerData) {\n // eslint-disable-next-line\n var formFieldsData = JSON.parse(formDesignerData);\n for (var i = 0; i < formFieldsData.length; i++) {\n if (formFieldsData[parseInt(i.toString(), 10)].FormField.formFieldAnnotationType === 'RadioButton') {\n for (var j = 0; j < formFieldsData[parseInt(i.toString(), 10)].FormField.radiobuttonItem.length; j++) {\n if (annotationID === formFieldsData[parseInt(i.toString(), 10)].FormField.radiobuttonItem[parseInt(j.toString(), 10)].id.split('_')[0]) {\n isFormFieldAnnotation = true;\n break;\n }\n }\n }\n else if (formFieldsData[parseInt(i.toString(), 10)].Key.split('_')[0] === annotationID) {\n isFormFieldAnnotation = true;\n break;\n }\n }\n }\n return isFormFieldAnnotation;\n };\n /**\n * @private\n * @returns {boolean} - Returns whether freetext module is enabled.\n */\n PdfViewerBase.prototype.isFreeTextAnnotationModule = function () {\n // eslint-disable-next-line max-len\n if (this.pdfViewer.annotation) {\n if (this.pdfViewer.annotation && this.pdfViewer.annotation.freeTextAnnotationModule) {\n return true;\n }\n else {\n return false;\n }\n }\n else {\n return false;\n }\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.createRequestForDownload = function () {\n var proxy = null;\n proxy = this;\n proxy.pdfViewer.fireDownloadStart(proxy.downloadFileName);\n // eslint-disable-next-line\n var jsonObject = this.constructJsonDownload();\n if (proxy.digitalSignaturePages && proxy.digitalSignaturePages.length !== 0) {\n if (proxy.pdfViewer.isDocumentEdited) {\n jsonObject['digitalSignatureDocumentEdited'] = true;\n }\n else {\n jsonObject['digitalSignatureDocumentEdited'] = false;\n }\n }\n this.dowonloadRequestHandler = new AjaxHandler(this.pdfViewer);\n this.dowonloadRequestHandler.url = proxy.pdfViewer.serviceUrl + '/' + proxy.pdfViewer.serverActionSettings.download;\n this.dowonloadRequestHandler.responseType = 'text';\n if (this.validateForm && this.pdfViewer.enableFormFieldsValidation) {\n this.pdfViewer.fireValidatedFailed(proxy.pdfViewer.serverActionSettings.download);\n this.validateForm = false;\n }\n else {\n this.dowonloadRequestHandler.send(jsonObject);\n }\n // eslint-disable-next-line\n this.dowonloadRequestHandler.onSuccess = function (result) {\n // eslint-disable-next-line\n var data = result.data;\n if (data) {\n if (typeof data !== 'object' && data.indexOf('data:application/pdf') === -1) {\n proxy.onControlError(500, data, proxy.pdfViewer.serverActionSettings.download);\n data = null;\n }\n if (typeof data === 'object') {\n data = JSON.parse(data);\n }\n if (data) {\n if (proxy.pdfViewer.downloadFileName && (proxy.pdfViewer.downloadFileName !== proxy.downloadFileName)) {\n proxy.downloadFileName = proxy.pdfViewer.downloadFileName;\n }\n proxy.pdfViewer.fireAjaxRequestSuccess(proxy.pdfViewer.serverActionSettings.download, data);\n var blobUrl = proxy.createBlobUrl(data.split('base64,')[1], 'application/pdf');\n if (Browser.isIE || Browser.info.name === 'edge') {\n window.navigator.msSaveOrOpenBlob(blobUrl, proxy.downloadFileName);\n }\n else {\n proxy.downloadDocument(blobUrl);\n }\n proxy.pdfViewer.fireDownloadEnd(proxy.downloadFileName, data);\n }\n proxy.updateDocumentAnnotationCollections();\n }\n else {\n proxy.pdfViewer.fireDownloadEnd(proxy.downloadFileName, 'PDF Document saved in server side successfully');\n }\n };\n // eslint-disable-next-line\n this.dowonloadRequestHandler.onFailure = function (result) {\n proxy.pdfViewer.fireAjaxRequestFailed(result.status, result.statusText, proxy.pdfViewer.serverActionSettings.download);\n };\n // eslint-disable-next-line\n this.dowonloadRequestHandler.onError = function (result) {\n proxy.openNotificationPopup();\n proxy.pdfViewer.fireAjaxRequestFailed(result.status, result.statusText, proxy.pdfViewer.serverActionSettings.download);\n };\n };\n /**\n * @param pageWidth\n * @private\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.getTileCount = function (pageWidth) {\n if (pageWidth && typeof pageWidth === 'number') {\n var defaultWidth = 816;\n var tileCount = 1;\n if (this.getZoomFactor() > 2 && pageWidth <= 1200) {\n tileCount = 2;\n }\n else {\n tileCount = pageWidth / defaultWidth;\n }\n // eslint-disable-next-line radix\n var tileValue = parseInt(tileCount.toFixed());\n if (tileValue <= 0) {\n return 1;\n }\n else {\n if (this.pdfViewer.tileRenderingSettings.enableTileRendering) {\n return tileValue;\n }\n else {\n return 1;\n }\n }\n }\n else {\n return 1;\n }\n };\n PdfViewerBase.prototype.createRequestForRender = function (pageIndex) {\n var proxy = null;\n proxy = this;\n var canvas = proxy.getElement('_pageCanvas_' + pageIndex);\n var oldCanvas = proxy.getElement('_oldCanvas_' + pageIndex);\n if (this.pageSize && this.pageSize[parseInt(pageIndex.toString(), 10)]) {\n var pageWidth_1 = this.pageSize[parseInt(pageIndex.toString(), 10)].width;\n var pageHeight = this.pageSize[parseInt(pageIndex.toString(), 10)].height;\n var tilecanvas = this.getElement('_pageCanvas_' + pageIndex);\n // eslint-disable-next-line\n var viewPortWidth_1 = 1200; // On diving the value greater than 1200 we will get the tile count as 2.\n // eslint-disable-next-line\n var viewPortHeight = proxy.pdfViewer.element.clientHeight > 0 ? proxy.pdfViewer.element.clientHeight : proxy.pdfViewer.element.style.height;\n // eslint-disable-next-line radix\n viewPortWidth_1 = parseInt(viewPortWidth_1);\n // eslint-disable-next-line radix\n viewPortHeight = parseInt(viewPortHeight) ? parseInt(viewPortHeight) : 500; //we have applied minimum-height as 500.\n var noTileX = void 0;\n var noTileY = void 0;\n var thumbnailImageElement = void 0;\n var imageSource = void 0;\n var object = new Object();\n if ((this.isMinimumZoom && document.getElementById(this.pdfViewer.element.id + '_thumbnail_Selection_Ring_' + pageIndex))) {\n this.renderThumbnailImages = true;\n thumbnailImageElement = document.getElementById(this.pdfViewer.element.id + '_thumbnail_Selection_Ring_' + pageIndex).children[0];\n imageSource = thumbnailImageElement.src;\n }\n else {\n this.renderThumbnailImages = false;\n }\n var tileCount = this.getTileCount(pageWidth_1);\n if (canvas) {\n if (!isNaN(parseFloat(canvas.style.width)) || oldCanvas) {\n if (proxy.isInitialLoaded) {\n proxy.showPageLoadingIndicator(pageIndex, false);\n }\n }\n // eslint-disable-next-line\n var data = proxy.getStoredData(pageIndex);\n noTileX = noTileY = tileCount;\n var tileSettings = proxy.pdfViewer.tileRenderingSettings;\n if (tileSettings.enableTileRendering && tileSettings.x > 0 && tileSettings.y > 0) {\n if ((viewPortWidth_1 < pageWidth_1 || this.getZoomFactor() > 2)) {\n noTileX = tileSettings.x;\n noTileY = tileSettings.y;\n }\n }\n proxy.tileRequestCount = noTileX * noTileY;\n var zoomFactor = this.retrieveCurrentZoomFactor();\n var isPageRequestSent = void 0;\n if (tileCount === 1) {\n data = proxy.getStoredData(pageIndex);\n isPageRequestSent = proxy.pageRequestSent(pageIndex, 0, 0);\n }\n else {\n // eslint-disable-next-line\n var tileData = JSON.parse(proxy.getWindowSessionStorageTile(pageIndex, 0, 0, zoomFactor));\n if (tileData) {\n data = tileData;\n }\n }\n if (data && data.uniqueId === proxy.documentId && (data['image'] || this.isMinimumZoom)) {\n canvas.style.backgroundColor = '#fff';\n if ((proxy.pdfViewer.magnification && proxy.pdfViewer.magnification.isPinchZoomed) || !this.pageSize[parseInt(pageIndex.toString(), 10)]) {\n return;\n }\n var zoomFactor_2 = this.retrieveCurrentZoomFactor();\n if (zoomFactor_2 > 2 && pageWidth_1 <= 1200) {\n viewPortWidth_1 = 700;\n }\n else {\n viewPortWidth_1 = 1200;\n }\n if (!proxy.pdfViewer.tileRenderingSettings.enableTileRendering) {\n viewPortWidth_1 = 1200;\n }\n if ((viewPortWidth_1 >= pageWidth_1) || !proxy.pdfViewer.tileRenderingSettings.enableTileRendering) {\n if (this.renderThumbnailImages) {\n proxy.renderPage(data, pageIndex, imageSource);\n }\n else {\n proxy.renderPage(data, pageIndex);\n }\n }\n else {\n proxy.isTileImageRendered = true;\n proxy.tileRenderCount = 0;\n if (this.renderThumbnailImages) {\n proxy.renderPage(data, pageIndex, imageSource);\n }\n else {\n proxy.tileRenderPage(data, pageIndex);\n for (var k = 0; k < noTileX; k++) {\n for (var l = 0; l < noTileY; l++) {\n if (k === 0 && l === 0) {\n continue;\n }\n data = JSON.parse(this.getWindowSessionStorageTile(pageIndex, k, l, zoomFactor_2));\n if (data) {\n proxy.tileRenderPage(data, pageIndex);\n }\n }\n }\n }\n }\n data = null;\n }\n else if (data === null || !isPageRequestSent) {\n if (!this.renderThumbnailImages) {\n if (this.getPagesPinchZoomed()) {\n proxy.showPageLoadingIndicator(pageIndex, false);\n }\n else {\n proxy.showPageLoadingIndicator(pageIndex, true);\n }\n if (proxy.getPagesZoomed()) {\n if (proxy.isInitialLoaded) {\n proxy.showPageLoadingIndicator(pageIndex, false);\n }\n }\n }\n if (proxy.pdfViewer.magnification && proxy.pdfViewer.magnification.isPinchZoomed) {\n return;\n }\n if (!proxy.pdfViewer.tileRenderingSettings.enableTileRendering || this.renderThumbnailImages) {\n noTileX = 1;\n noTileY = 1;\n }\n proxy.tileRenderCount = 0;\n proxy.isTileImageRendered = true;\n for (var x = 0; x < noTileX; x++) {\n for (var y = 0; y < noTileY; y++) {\n var jsonObject = null;\n var zoomFactor_3 = this.retrieveCurrentZoomFactor();\n if (zoomFactor_3 > 2 && pageWidth_1 <= 1200) {\n viewPortWidth_1 = 700;\n }\n else {\n viewPortWidth_1 = 1200;\n }\n if (!proxy.pdfViewer.tileRenderingSettings.enableTileRendering) {\n viewPortWidth_1 = 1200;\n }\n if (this.renderThumbnailImages) {\n proxy.renderPage(object, pageIndex, imageSource);\n if (this.textrequestLists.indexOf(pageIndex) == -1) {\n jsonObject = { pageStartIndex: pageIndex, pageEndIndex: pageIndex + 1, documentId: proxy.getDocumentId(), hashId: proxy.hashId, action: 'RenderPdfTexts', elementId: proxy.pdfViewer.element.id, uniqueId: proxy.documentId };\n if (this.jsonDocumentId) {\n jsonObject.documentId = this.jsonDocumentId;\n }\n this.textRequestHandler = new AjaxHandler(this.pdfViewer);\n this.textRequestHandler.url = this.pdfViewer.serviceUrl + '/' + this.pdfViewer.serverActionSettings.renderTexts;\n this.textRequestHandler.responseType = 'json';\n this.textRequestHandler.send(jsonObject);\n this.textrequestLists.push(pageIndex);\n proxy.textRequestHandler.onSuccess = function (result) {\n // eslint-disable-next-line max-len\n if ((proxy.pdfViewer.magnification && proxy.pdfViewer.magnification.isPinchZoomed) || !proxy.pageSize[parseInt(pageIndex.toString(), 10)]) {\n return;\n }\n // eslint-disable-next-line\n var data = result.data;\n if (data) {\n if (typeof data !== 'object') {\n try {\n data = JSON.parse(data);\n }\n catch (error) {\n proxy.onControlError(500, data, proxy.pdfViewer.serverActionSettings.renderTexts);\n data = null;\n }\n }\n }\n if (data) {\n while (typeof data !== 'object') {\n data = JSON.parse(data);\n }\n if (data.documentTextCollection && data.uniqueId === proxy.documentId) {\n proxy.pdfViewer.fireAjaxRequestSuccess(proxy.pdfViewer.serverActionSettings.renderTexts, data);\n var pageNumber = (data.pageNumber !== undefined) ? data.pageNumber : pageIndex;\n proxy.storeWinData(data, pageNumber);\n proxy.renderPage(data, pageIndex);\n }\n }\n };\n // eslint-disable-next-line\n this.textRequestHandler.onFailure = function (result) {\n // eslint-disable-next-line max-len\n proxy.pdfViewer.fireAjaxRequestFailed(result.status, result.statusText, proxy.pdfViewer.serverActionSettings.renderTexts);\n };\n // eslint-disable-next-line\n this.textRequestHandler.onError = function (result) {\n proxy.openNotificationPopup();\n // eslint-disable-next-line max-len\n proxy.pdfViewer.fireAjaxRequestFailed(result.status, result.statusText, proxy.pdfViewer.serverActionSettings.renderTexts);\n };\n }\n }\n else {\n // eslint-disable-next-line max-len\n jsonObject = {\n xCoordinate: (x).toString(), yCoordinate: (y).toString(), viewPortWidth: (viewPortWidth_1).toString(), viewPortHeight: (viewPortHeight).toString(),\n pageNumber: (pageIndex).toString(), hashId: proxy.hashId, tilecount: (tileCount).toString(), tileXCount: (noTileX).toString(), tileYCount: (noTileY).toString(),\n // eslint-disable-next-line max-len\n zoomFactor: (zoomFactor_3).toString(), action: 'RenderPdfPages', uniqueId: this.documentId, elementId: proxy.pdfViewer.element.id, digitalSignaturePresent: proxy.digitalSignaturePresent(pageIndex)\n };\n if (this.jsonDocumentId) {\n // eslint-disable-next-line\n jsonObject.documentId = this.jsonDocumentId;\n }\n proxy.pageRequestHandler = new AjaxHandler(this.pdfViewer);\n // eslint-disable-next-line max-len\n proxy.pageRequestHandler.url = proxy.pdfViewer.serviceUrl + '/' + proxy.pdfViewer.serverActionSettings.renderPages;\n proxy.pageRequestHandler.responseType = 'json';\n proxy.pageRequestHandler.send(jsonObject);\n proxy.requestLists.push(proxy.documentId + '_' + pageIndex + '_' + x + '_' + y + '_' + zoomFactor_3);\n // eslint-disable-next-line\n proxy.pageRequestHandler.onSuccess = function (result) {\n // eslint-disable-next-line max-len\n if ((proxy.pdfViewer.magnification && proxy.pdfViewer.magnification.isPinchZoomed) || !proxy.pageSize[parseInt(pageIndex.toString(), 10)]) {\n return;\n }\n // eslint-disable-next-line\n var data = result.data;\n if (data) {\n if (typeof data !== 'object') {\n try {\n data = JSON.parse(data);\n }\n catch (error) {\n proxy.onControlError(500, data, proxy.pdfViewer.serverActionSettings.renderPages);\n data = null;\n }\n }\n }\n if (data) {\n while (typeof data !== 'object') {\n data = JSON.parse(data);\n }\n if (data.image && data.uniqueId === proxy.documentId) {\n var currentPageWidth = (data.pageWidth && data.pageWidth > 0) ? data.pageWidth : pageWidth_1;\n proxy.pdfViewer.fireAjaxRequestSuccess(proxy.pdfViewer.serverActionSettings.renderPages, data);\n var pageNumber = (data.pageNumber !== undefined) ? data.pageNumber : pageIndex;\n if ((viewPortWidth_1 >= currentPageWidth) || !proxy.pdfViewer.tileRenderingSettings.enableTileRendering) {\n proxy.storeWinData(data, pageNumber);\n }\n else {\n proxy.storeWinData(data, pageNumber, data.tileX, data.tileY);\n }\n if ((viewPortWidth_1 >= currentPageWidth) || !proxy.pdfViewer.tileRenderingSettings.enableTileRendering) {\n proxy.renderPage(data, pageNumber);\n }\n else {\n proxy.tileRenderPage(data, pageNumber);\n }\n }\n }\n };\n // eslint-disable-next-line\n this.pageRequestHandler.onFailure = function (result) {\n // eslint-disable-next-line max-len\n proxy.pdfViewer.fireAjaxRequestFailed(result.status, result.statusText, proxy.pdfViewer.serverActionSettings.renderPages);\n };\n // eslint-disable-next-line\n this.pageRequestHandler.onError = function (result) {\n proxy.openNotificationPopup();\n // eslint-disable-next-line max-len\n proxy.pdfViewer.fireAjaxRequestFailed(result.status, result.statusText, proxy.pdfViewer.serverActionSettings.renderPages);\n };\n }\n }\n }\n }\n if (this.renderedPagesList.indexOf(pageIndex) === -1) {\n proxy.renderedPagesList.push(pageIndex);\n }\n }\n }\n };\n /**\n * @private\n */\n PdfViewerBase.prototype.requestForTextExtraction = function (pageIndex, annotationObject) {\n var jsonObject;\n var proxy = this;\n jsonObject = { pageStartIndex: pageIndex, pageEndIndex: pageIndex + 1, documentId: proxy.getDocumentId(), hashId: proxy.hashId, action: 'RenderPdfTexts', elementId: proxy.pdfViewer.element.id, uniqueId: proxy.documentId };\n if (this.jsonDocumentId) {\n jsonObject.documentId = this.jsonDocumentId;\n }\n this.textRequestHandler = new AjaxHandler(this.pdfViewer);\n this.textRequestHandler.url = this.pdfViewer.serviceUrl + '/' + this.pdfViewer.serverActionSettings.renderTexts;\n this.textRequestHandler.responseType = 'json';\n this.textRequestHandler.send(jsonObject);\n this.textrequestLists.push(pageIndex);\n proxy.textRequestHandler.onSuccess = function (result) {\n // eslint-disable-next-line max-len\n if ((proxy.pdfViewer.magnification && proxy.pdfViewer.magnification.isPinchZoomed) || !proxy.pageSize[parseInt(pageIndex.toString(), 10)]) {\n return;\n }\n // eslint-disable-next-line\n var data = result.data;\n if (data) {\n if (typeof data !== 'object') {\n try {\n data = JSON.parse(data);\n }\n catch (error) {\n proxy.onControlError(500, data, proxy.pdfViewer.serverActionSettings.renderTexts);\n data = null;\n }\n }\n }\n if (data) {\n while (typeof data !== 'object') {\n data = JSON.parse(data);\n }\n if (data.documentTextCollection && data.uniqueId === proxy.documentId) {\n proxy.pdfViewer.fireAjaxRequestSuccess(proxy.pdfViewer.serverActionSettings.renderTexts, data);\n var pageNumber = (data.pageNumber !== undefined) ? data.pageNumber : pageIndex;\n proxy.storeWinData(data, pageNumber);\n if (!isNullOrUndefined(annotationObject)) {\n var markedBounds = annotationObject.bounds[0];\n var pageCharText = data.documentTextCollection[0][pageIndex].PageText.split('');\n var characterBounds = data.characterBounds;\n var textMarkupContent = proxy.textMarkUpContent(markedBounds, pageCharText, characterBounds);\n annotationObject.textMarkupContent = textMarkupContent;\n this.pdfViewer.annotationModule.storeAnnotations(pageIndex, annotationObject, '_annotations_textMarkup');\n }\n else {\n proxy.renderPage(data, pageIndex);\n }\n }\n }\n };\n // eslint-disable-next-line\n this.textRequestHandler.onFailure = function (result) {\n // eslint-disable-next-line max-len\n proxy.pdfViewer.fireAjaxRequestFailed(result.status, result.statusText, proxy.pdfViewer.serverActionSettings.renderTexts);\n };\n // eslint-disable-next-line\n this.textRequestHandler.onError = function (result) {\n proxy.openNotificationPopup();\n // eslint-disable-next-line max-len\n proxy.pdfViewer.fireAjaxRequestFailed(result.status, result.statusText, proxy.pdfViewer.serverActionSettings.renderTexts);\n };\n };\n /**\n * @private\n */\n PdfViewerBase.prototype.textMarkUpContent = function (markedBounds, pageCharText, characterBounds) {\n var textMarkupContent = '';\n for (var j = 0; j < characterBounds.length; j++) {\n var buffer = 0.5;\n if (characterBounds[j].Y >= markedBounds.Y - buffer && characterBounds[j].X >= markedBounds.X - buffer && characterBounds[j].Y <= markedBounds.Y + markedBounds.Height + buffer && characterBounds[j].X <= markedBounds.X + markedBounds.Width + buffer) {\n textMarkupContent += pageCharText[j];\n }\n }\n return textMarkupContent.replace((/(\\r\\n)/gm), '');\n };\n /**\n * @private\n * @returns {boolean}\n */\n PdfViewerBase.prototype.digitalSignaturePresent = function (pageIndex) {\n var digitalSignaturePresent = false;\n if (this.digitalSignaturePages && (this.digitalSignaturePages.length !== 0) && (this.digitalSignaturePages.indexOf(pageIndex) != -1)) {\n digitalSignaturePresent = true;\n }\n return digitalSignaturePresent;\n };\n PdfViewerBase.prototype.pageRequestSent = function (pageIndex, tileX, tileY) {\n var zoomFactor = this.retrieveCurrentZoomFactor();\n var currentString = this.documentId + '_' + pageIndex + '_' + tileX + '_' + tileY + '_' + zoomFactor;\n if (this.requestLists && this.requestLists.indexOf(currentString) > -1) {\n return true;\n }\n return false;\n };\n /**\n * @private\n * @param {string} status - The status message.\n * @param {string} errorMessage - The error message.\n * @param {string} action - The action.\n * @returns {void}\n */\n PdfViewerBase.prototype.onControlError = function (status, errorMessage, action) {\n this.openNotificationPopup();\n this.pdfViewer.fireAjaxRequestFailed(status, errorMessage, action);\n };\n /**\n * @param pageIndex\n * @private\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.getStoredData = function (pageIndex, isTextSearch) {\n var zoomFactor = this.retrieveCurrentZoomFactor();\n if (this.pdfViewer.restrictZoomRequest && !this.pdfViewer.tileRenderingSettings.enableTileRendering) {\n zoomFactor = 1;\n }\n // eslint-disable-next-line\n var storedData = this.getWindowSessionStorage(pageIndex, zoomFactor) ? this.getWindowSessionStorage(pageIndex, zoomFactor) : this.getPinchZoomPage(pageIndex);\n if (!storedData && isTextSearch) {\n // eslint-disable-next-line\n var storedTileData = this.getWindowSessionStorageTile(pageIndex, 0, 0, zoomFactor);\n if (storedTileData) {\n storedData = storedTileData;\n }\n }\n // eslint-disable-next-line\n var data = null;\n if (storedData) {\n // eslint-disable-next-line\n data = storedData;\n if (!this.isPinchZoomStorage) {\n data = JSON.parse(storedData);\n }\n this.isPinchZoomStorage = false;\n }\n return data;\n };\n /**\n * @private\n * @param {any} data - The data.\n * @param {number} pageIndex - The pageIndex.\n * @param {number} tileX - The tileX.\n * @param {number} tileY - The tileY.\n * @returns {void}\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.storeWinData = function (data, pageIndex, tileX, tileY) {\n var storeObject;\n if (!data['image']) {\n var pageItems = data.documentTextCollection[0][pageIndex];\n storeObject = {\n // eslint-disable-next-line\n textContent: data['textContent'], textBounds: data['textBounds'], pageText: pageItems.PageText, rotation: data['rotation'], uniqueId: data['uniqueId']\n };\n if (this.pageSize[parseInt(pageIndex.toString(), 10)]) {\n // eslint-disable-next-line\n this.pageSize[pageIndex].rotation = parseFloat(data['rotation']);\n }\n // eslint-disable-next-line\n this.textLayer.characterBound[pageIndex] = data['characterBounds'];\n }\n else {\n // eslint-disable-next-line\n var blobObj = this.createBlobUrl(data['image'].split('base64,')[1], 'image/png');\n // eslint-disable-next-line\n var Url = URL || webkitURL;\n var blobUrl = Url.createObjectURL(blobObj);\n // eslint-disable-next-line\n if ((isNaN(tileX) && isNaN(tileY)) || (tileX === 0 && tileY === 0)) {\n storeObject = {\n // eslint-disable-next-line\n image: blobUrl, transformationMatrix: data['transformationMatrix'], hyperlinks: data['hyperlinks'], hyperlinkBounds: data['hyperlinkBounds'], linkAnnotation: data['linkAnnotation'], linkPage: data['linkPage'], annotationLocation: data['annotationLocation'],\n // eslint-disable-next-line\n textContent: data['textContent'], width: data['width'], textBounds: data['textBounds'], pageText: data['pageText'], rotation: data['rotation'], scaleFactor: data['scaleFactor'], uniqueId: data['uniqueId'], zoomFactor: data['zoomFactor'], tileX: tileX, tileY: tileY\n };\n if (this.pageSize[parseInt(pageIndex.toString(), 10)]) {\n // eslint-disable-next-line\n this.pageSize[pageIndex].rotation = parseFloat(data['rotation']);\n }\n // eslint-disable-next-line\n this.textLayer.characterBound[pageIndex] = data['characterBounds'];\n }\n else {\n storeObject = {\n // eslint-disable-next-line\n image: blobUrl, transformationMatrix: data['transformationMatrix'], tileX: tileX, tileY: tileY, width: data['width'], zoomFactor: data['zoomFactor']\n };\n }\n }\n // eslint-disable-next-line\n var viewPortWidth = 816;\n var pageWidth = 0;\n if (this.pageSize[parseInt(pageIndex.toString(), 10)]) {\n pageWidth = this.pageSize[parseInt(pageIndex.toString(), 10)].width;\n }\n this.manageSessionStorage(pageIndex, storeObject, tileX, tileY);\n };\n /**\n * @private\n * @param {XMLHttpRequest} request - The Xml request.\n * @returns {void}\n */\n PdfViewerBase.prototype.setCustomAjaxHeaders = function (request) {\n for (var i = 0; i < this.pdfViewer.ajaxRequestSettings.ajaxHeaders.length; i++) {\n // eslint-disable-next-line max-len\n request.setRequestHeader(this.pdfViewer.ajaxRequestSettings.ajaxHeaders[parseInt(i.toString(), 10)].headerName, this.pdfViewer.ajaxRequestSettings.ajaxHeaders[parseInt(i.toString(), 10)].headerValue);\n }\n };\n /**\n * @private\n * @param {number} pageIndex - Page index.\n * @returns {object}\n */\n PdfViewerBase.prototype.getPinchZoomPage = function (pageIndex) {\n // eslint-disable-next-line\n for (var key in this.pinchZoomStorage) {\n // eslint-disable-next-line\n if (this.pinchZoomStorage.hasOwnProperty(key)) {\n /* eslint-disable-next-line security/detect-object-injection */\n if (this.pinchZoomStorage[key].index === pageIndex) {\n this.isPinchZoomStorage = true;\n /* eslint-disable-next-line security/detect-object-injection */\n return this.pinchZoomStorage[key].pinchZoomStorage;\n }\n }\n }\n return null;\n };\n /**\n * @private\n * @param {number} pageIndex - current page index.\n * @param {number} zoomFactor - cuurent zoom factor\n * @returns {string}\n */\n PdfViewerBase.prototype.getWindowSessionStorage = function (pageIndex, zoomFactor) {\n return window.sessionStorage.getItem(this.documentId + '_' + pageIndex + '_' + zoomFactor);\n };\n /**\n * @private\n * @param {number} pageIndex - current page index.\n * @param {number} tileX - cuurent tile x\n * @param {number} tileY - cuurent tile y\n * @param {number} zoomFactor - cuurent zoom factor\n * @returns {string}\n */\n PdfViewerBase.prototype.getWindowSessionStorageTile = function (pageIndex, tileX, tileY, zoomFactor) {\n return window.sessionStorage.getItem(this.documentId + '_' + pageIndex + '_' + tileX + '_' + tileY + '_' + zoomFactor);\n };\n /**\n * @private\n * @returns {number}\n */\n PdfViewerBase.prototype.retrieveCurrentZoomFactor = function () {\n var zoomFactor = this.getZoomFactor();\n if (this.pdfViewer.enableZoomOptimization) {\n if ((zoomFactor) <= 1) {\n zoomFactor = 1;\n }\n else if ((zoomFactor) > 1 && zoomFactor <= 2) {\n zoomFactor = 2;\n }\n else if ((zoomFactor) > 2 && zoomFactor <= 3) {\n zoomFactor = 3;\n }\n else if ((zoomFactor) > 3 && zoomFactor <= 4) {\n zoomFactor = 4;\n }\n return zoomFactor;\n }\n else {\n if (zoomFactor <= 0) {\n zoomFactor = 1;\n }\n return zoomFactor;\n }\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.manageSessionStorage = function (pageIndex, storeObject, tileX, tileY) {\n // eslint-disable-next-line\n var sessionSize = Math.round(JSON.stringify(window.sessionStorage).length / 1024);\n var maxSessionSize = 5000;\n if (sessionSize >= maxSessionSize) {\n if (!this.isStorageExceed) {\n // eslint-disable-next-line\n var annotationList = [];\n var formFieldsList = [];\n for (var i = 0; i < window.sessionStorage.length; i++) {\n if (window.sessionStorage.key(i) && window.sessionStorage.key(i).split('_')[3]) {\n if (window.sessionStorage.key(i).split('_')[3] === 'annotations') {\n // eslint-disable-next-line max-len\n this.annotationStorage[window.sessionStorage.key(i)] = window.sessionStorage.getItem(window.sessionStorage.key(i));\n annotationList.push(window.sessionStorage.key(i));\n }\n else if (window.sessionStorage.key(i).split('_')[3] === 'formfields') {\n // eslint-disable-next-line max-len\n this.formFieldStorage[window.sessionStorage.key(i)] = window.sessionStorage.getItem(window.sessionStorage.key(i));\n formFieldsList.push(window.sessionStorage.key(i));\n }\n else if (window.sessionStorage.key(i).split('_')[3] === 'formDesigner') {\n this.formFieldStorage[window.sessionStorage.key(i)] = window.sessionStorage.getItem(window.sessionStorage.key(i));\n formFieldsList.push(window.sessionStorage.key(i));\n }\n }\n }\n if (annotationList) {\n for (var i = 0; i < annotationList.length; i++) {\n window.sessionStorage.removeItem(annotationList[parseInt(i.toString(), 10)]);\n }\n }\n if (formFieldsList) {\n for (var i = 0; i < formFieldsList.length; i++) {\n window.sessionStorage.removeItem(formFieldsList[parseInt(i.toString(), 10)]);\n }\n }\n }\n this.isStorageExceed = true;\n sessionSize = Math.round(JSON.stringify(window.sessionStorage).length / 1024);\n if (sessionSize >= 5000) {\n var storageLength = window.sessionStorage.length;\n if (storageLength > 200) {\n storageLength = 200;\n }\n for (var i = 0; i < storageLength; i++) {\n if (window.sessionStorage.key(i) && window.sessionStorage.key(i).split('_')[3]) {\n if (window.sessionStorage.key(i).split('_')[3] !== 'annotations') {\n window.sessionStorage.removeItem(window.sessionStorage.key(i));\n }\n }\n }\n }\n }\n var zoomFactor = this.retrieveCurrentZoomFactor();\n if (isNaN(tileX) && isNaN(tileY)) {\n // eslint-disable-next-line max-len\n window.sessionStorage.setItem(this.documentId + '_' + pageIndex + '_' + zoomFactor, JSON.stringify(storeObject));\n this.sessionStorage.push(this.documentId + '_' + pageIndex + '_' + zoomFactor);\n }\n else {\n this.sessionStorage.push(this.documentId + '_' + pageIndex + '_' + tileX + '_' + tileY + '_' + zoomFactor);\n // eslint-disable-next-line max-len\n window.sessionStorage.setItem(this.documentId + '_' + pageIndex + '_' + tileX + '_' + tileY + '_' + zoomFactor, JSON.stringify(storeObject));\n }\n };\n PdfViewerBase.prototype.createBlobUrl = function (base64String, contentType) {\n var sliceSize = 512;\n var byteCharacters = atob(base64String);\n // eslint-disable-next-line\n var byteArrays = [];\n for (var offset = 0; offset < byteCharacters.length; offset += sliceSize) {\n var slice = byteCharacters.slice(offset, offset + sliceSize);\n // eslint-disable-next-line\n var byteNumbers = new Array(slice.length);\n for (var i = 0; i < slice.length; i++) {\n /* eslint-disable-next-line security/detect-object-injection */\n byteNumbers[i] = slice.charCodeAt(i);\n }\n // eslint-disable-next-line\n var byteArray = new Uint8Array(byteNumbers);\n byteArrays.push(byteArray);\n }\n // eslint-disable-next-line\n var blob = new Blob(byteArrays, { type: contentType });\n return blob;\n };\n PdfViewerBase.prototype.getRandomNumber = function () {\n // eslint-disable-next-line\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n // eslint-disable-next-line\n var random = Math.random() * 16 | 0, v = c == 'x' ? random : (random & 0x3 | 0x8);\n return random.toString(16);\n });\n };\n PdfViewerBase.prototype.createGUID = function () {\n // eslint-disable-next-line max-len\n return 'Sync_PdfViewer_' + this.getRandomNumber();\n };\n /**\n * @private\n * @param {MouseEvent} event - The mouse event.\n * @param {boolean} isNeedToSet - Is need to test.\n * @returns {boolean} - Returns true or false.\n */\n PdfViewerBase.prototype.isClickedOnScrollBar = function (event, isNeedToSet) {\n var isScrollBar = false;\n if (isNeedToSet) {\n this.setScrollDownValue(event.type, false);\n }\n // eslint-disable-next-line max-len\n if ((this.viewerContainer.clientWidth + this.viewerContainer.offsetLeft) < event.clientX && event.clientX < (this.viewerContainer.offsetWidth + this.viewerContainer.offsetLeft)) {\n isScrollBar = true;\n if (isNeedToSet) {\n this.setScrollDownValue(event.type, true);\n }\n }\n // eslint-disable-next-line max-len\n if ((this.viewerContainer.clientHeight + this.viewerContainer.offsetTop) < event.clientY && event.clientY < (this.viewerContainer.offsetHeight + this.viewerContainer.offsetTop)) {\n isScrollBar = true;\n if (isNeedToSet) {\n this.setScrollDownValue(event.type, true);\n }\n }\n return isScrollBar;\n };\n PdfViewerBase.prototype.setScrollDownValue = function (eventType, boolValue) {\n if (eventType === 'mousedown') {\n this.isScrollbarMouseDown = boolValue;\n }\n };\n /**\n * @private\n * @returns {void}\n */\n PdfViewerBase.prototype.disableTextSelectionMode = function () {\n this.isTextSelectionDisabled = true;\n this.viewerContainer.classList.remove('e-enable-text-selection');\n if (this.pdfViewer.textSelectionModule) {\n this.pdfViewer.textSelectionModule.clearTextSelection();\n }\n this.viewerContainer.classList.add('e-disable-text-selection');\n this.viewerContainer.addEventListener('selectstart', function () {\n return false;\n });\n };\n /**\n * @private\n * @param {string} idString - The Id string.\n * @returns {HTMLElement} - The html element.\n */\n PdfViewerBase.prototype.getElement = function (idString) {\n return document.getElementById(this.pdfViewer.element.id + idString);\n };\n /**\n * @private\n * @param {number} pageIndex - The pageIndex\n * @returns {number} - Returns number\n */\n PdfViewerBase.prototype.getPageWidth = function (pageIndex) {\n if (this.pageSize[parseInt(pageIndex.toString(), 10)]) {\n return this.pageSize[parseInt(pageIndex.toString(), 10)].width * this.getZoomFactor();\n }\n else {\n return 0;\n }\n };\n /**\n * @private\n * @param {number} pageIndex - The pageIndex\n * @returns {number} - Returns number\n */\n PdfViewerBase.prototype.getPageHeight = function (pageIndex) {\n if (this.pageSize[parseInt(pageIndex.toString(), 10)]) {\n return this.pageSize[parseInt(pageIndex.toString(), 10)].height * this.getZoomFactor();\n }\n else {\n return 0;\n }\n };\n /**\n * @private\n * @param {number} pageIndex - The pageIndex.\n * @returns {number} - Returns number\n */\n PdfViewerBase.prototype.getPageTop = function (pageIndex) {\n if (this.pageSize[parseInt(pageIndex.toString(), 10)]) {\n return this.pageSize[parseInt(pageIndex.toString(), 10)].top * this.getZoomFactor();\n }\n else {\n return 0;\n }\n };\n PdfViewerBase.prototype.isAnnotationToolbarHidden = function () {\n if (this.pdfViewer.toolbarModule.annotationToolbarModule) {\n return this.pdfViewer.toolbarModule.annotationToolbarModule.isToolbarHidden;\n }\n else {\n return true;\n }\n };\n PdfViewerBase.prototype.isFormDesignerToolbarHidded = function () {\n var formDesignerToolbar = this.pdfViewer.toolbarModule.formDesignerToolbarModule;\n if (formDesignerToolbar) {\n return formDesignerToolbar.isToolbarHidden;\n }\n else {\n return true;\n }\n };\n /**\n * @private\n * @returns {boolean} - Returns true or false.\n */\n PdfViewerBase.prototype.getTextMarkupAnnotationMode = function () {\n if (this.isTextMarkupAnnotationModule()) {\n return this.pdfViewer.annotationModule.textMarkupAnnotationModule.isTextMarkupAnnotationMode;\n }\n else {\n return false;\n }\n };\n PdfViewerBase.prototype.isNewFreeTextAnnotation = function () {\n // eslint-disable-next-line max-len\n if (this.pdfViewer.annotationModule && this.pdfViewer.annotationModule.freeTextAnnotationModule) {\n if (!this.pdfViewer.annotationModule.freeTextAnnotationModule.isNewFreeTextAnnot) {\n return true;\n }\n else {\n return false;\n }\n }\n else {\n return true;\n }\n };\n PdfViewerBase.prototype.getCurrentTextMarkupAnnotation = function () {\n if (this.isTextMarkupAnnotationModule()) {\n if (this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation) {\n return true;\n }\n else {\n return false;\n }\n }\n else {\n return false;\n }\n };\n /**\n * @private\n * @returns {number} - Returns page number.\n */\n PdfViewerBase.prototype.getSelectTextMarkupCurrentPage = function () {\n if (this.isTextMarkupAnnotationModule()) {\n return this.pdfViewer.annotationModule.textMarkupAnnotationModule.selectTextMarkupCurrentPage;\n }\n else {\n return null;\n }\n };\n /**\n * @private\n * @returns {boolean} - Retunrs true or false.\n */\n PdfViewerBase.prototype.getAnnotationToolStatus = function () {\n if (this.pdfViewer.toolbarModule) {\n return this.pdfViewer.toolbarModule.annotationToolbarModule.isAnnotationButtonsEnabled();\n }\n else {\n return false;\n }\n };\n /**\n * @private\n * @returns {boolean} - Retunrs true or false.\n */\n PdfViewerBase.prototype.getPopupNoteVisibleStatus = function () {\n if (this.pdfViewer.annotationModule) {\n return this.pdfViewer.annotationModule.isPopupNoteVisible;\n }\n else {\n return false;\n }\n };\n /**\n * @private\n * @returns {TextMarkupAnnotation} - TextMarkupAnnotation.\n */\n PdfViewerBase.prototype.isTextMarkupAnnotationModule = function () {\n if (this.pdfViewer.annotationModule) {\n return this.pdfViewer.annotationModule.textMarkupAnnotationModule;\n }\n else {\n return null;\n }\n };\n /**\n * @private\n * @returns {boolean} - Returns true or false.\n */\n PdfViewerBase.prototype.isShapeAnnotationModule = function () {\n if (this.pdfViewer.annotation) {\n if (this.pdfViewer.annotation && this.pdfViewer.annotation.shapeAnnotationModule) {\n return true;\n }\n else {\n return false;\n }\n }\n else {\n return false;\n }\n };\n /**\n * @private\n * @returns {boolean} - Retunrs true or false.\n */\n PdfViewerBase.prototype.isFormDesignerModule = function () {\n if (this.pdfViewer.formDesignerModule) {\n return true;\n }\n else {\n return false;\n }\n };\n /**\n * @private\n * @returns {boolean} - Retunrs true or false.\n */\n PdfViewerBase.prototype.isCalibrateAnnotationModule = function () {\n if (this.pdfViewer.annotation) {\n if (this.pdfViewer.annotation && this.pdfViewer.annotation.measureAnnotationModule) {\n return true;\n }\n else {\n return false;\n }\n }\n else {\n return false;\n }\n };\n /**\n * @private\n * @returns {boolean} - Retunrs true or false.\n */\n PdfViewerBase.prototype.isStampAnnotationModule = function () {\n if (this.pdfViewer.annotation) {\n if (this.pdfViewer.annotation && this.pdfViewer.annotation.stampAnnotationModule) {\n return true;\n }\n else {\n return false;\n }\n }\n else {\n return false;\n }\n };\n /**\n * @private\n * @returns {boolean} - Retunrs true or false.\n */\n PdfViewerBase.prototype.isInkAnnotationModule = function () {\n if (this.pdfViewer.annotation) {\n if (this.pdfViewer.annotation && this.pdfViewer.annotation.inkAnnotationModule) {\n return true;\n }\n else {\n return false;\n }\n }\n else {\n return false;\n }\n };\n /**\n * @private\n * @returns {boolean} - Retunrs true or false.\n */\n PdfViewerBase.prototype.isCommentAnnotationModule = function () {\n if (this.pdfViewer.annotation) {\n if (this.pdfViewer.annotation && this.pdfViewer.annotation.stickyNotesAnnotationModule) {\n return true;\n }\n else {\n return false;\n }\n }\n else {\n return false;\n }\n };\n /**\n * @private\n * @returns {boolean} - Retunrs true or false.\n */\n PdfViewerBase.prototype.isShapeBasedAnnotationsEnabled = function () {\n // eslint-disable-next-line max-len\n if (this.isShapeAnnotationModule() || this.isCalibrateAnnotationModule() || this.isStampAnnotationModule() || this.isCommentAnnotationModule() || this.isFormDesignerModule()) {\n return true;\n }\n else {\n return false;\n }\n };\n /**\n * @private\n * @param {MouseEvent | PointerEvent | TouchEvent} e - Returns event.\n * @returns {PointModel} - Returns points.\n */\n PdfViewerBase.prototype.getMousePosition = function (e) {\n var touchArg;\n var offsetX;\n var offsetY;\n var currentTarget = e.target.parentElement;\n if (e.type.indexOf('touch') !== -1) {\n touchArg = e;\n if (this.pdfViewer.annotation) {\n var pageDiv = this.getElement('_pageDiv_' + this.pdfViewer.annotation.getEventPageNumber(e));\n if (pageDiv) {\n var pageCurrentRect = pageDiv.getBoundingClientRect();\n offsetX = touchArg.changedTouches[0].clientX - pageCurrentRect.left;\n offsetY = touchArg.changedTouches[0].clientY - pageCurrentRect.top;\n }\n }\n }\n else {\n if (e.target.classList.contains('e-pv-hyperlink')) {\n offsetX = e.offsetX + e.target.offsetLeft;\n offsetY = e.offsetY + e.target.offsetTop;\n }\n else if (e.target.classList.contains('e-pv-text') && currentTarget) {\n var targetParentRect = currentTarget.getBoundingClientRect();\n offsetX = e.clientX - targetParentRect.left;\n offsetY = e.clientY - targetParentRect.top;\n // eslint-disable-next-line\n }\n else if (e.target && (e && e.path) && currentTarget && (currentTarget.classList.contains('foreign-object') || currentTarget.parentElement.classList.contains('foreign-object'))) {\n // eslint-disable-next-line\n var targetParentRect = void 0;\n if (e.path[4].className === 'e-pv-page-div') {\n targetParentRect = e.path[4].getBoundingClientRect();\n }\n else {\n for (var i = 0; i < e.path.length; i++) {\n if (e.path[parseInt(i.toString(), 10)].className === 'e-pv-page-div') {\n targetParentRect = e.path[parseInt(i.toString(), 10)].getBoundingClientRect();\n break;\n }\n }\n }\n offsetX = e.clientX - targetParentRect.left;\n offsetY = e.clientY - targetParentRect.top;\n // eslint-disable-next-line\n }\n else if (e.target && currentTarget && currentTarget.classList.contains('foreign-object') || (e.target.classList.contains('e-pv-checkbox-div'))) {\n // eslint-disable-next-line\n var targetParentRect = void 0;\n if ((e.target.classList.contains('e-pv-checkbox-div'))) {\n targetParentRect = e.target.offsetParent.offsetParent.offsetParent.offsetParent.getBoundingClientRect();\n }\n else {\n targetParentRect = e.target.offsetParent.offsetParent.offsetParent.getBoundingClientRect();\n }\n offsetX = e.clientX - targetParentRect.left;\n offsetY = e.clientY - targetParentRect.top;\n }\n else {\n offsetX = e.offsetX;\n offsetY = e.offsetY;\n }\n }\n return { x: offsetX, y: offsetY };\n };\n PdfViewerBase.prototype.getMouseEventArgs = function (position, args, evt, source) {\n args.position = position;\n var obj;\n var objects;\n if (!source) {\n if (this.action === 'Drag' || this.action === 'ConnectorSourceEnd' || this.action === 'SegmentEnd' ||\n this.action === 'OrthoThumb' || this.action === 'BezierSourceThumb' || this.action === 'BezierTargetThumb' ||\n this.action === 'ConnectorTargetEnd' || this.action.indexOf('Rotate') !== -1 || this.action.indexOf('Resize') !== -1) {\n obj = this.pdfViewer.selectedItems;\n if (this.action === 'Drag' && obj && this.pdfViewer.selectedItems.annotations.length > 0) {\n obj = findActiveElement(evt, this, this.pdfViewer);\n }\n else if (this.action === 'Drag' && obj && this.pdfViewer.selectedItems.formFields.length > 0) {\n obj = findActiveElement(evt, this, this.pdfViewer);\n }\n }\n else {\n obj = findActiveElement(evt, this, this.pdfViewer);\n }\n }\n else {\n // objects = this.diagram.findObjectsUnderMouse(this.currentPosition, source);\n obj = findActiveElement(evt, this, this.pdfViewer);\n }\n var wrapper;\n if (obj) {\n wrapper = obj.wrapper;\n }\n if (!source) {\n args.source = obj;\n args.sourceWrapper = wrapper;\n }\n else {\n args.target = obj;\n args.targetWrapper = wrapper;\n }\n args.actualObject = this.eventArgs.actualObject;\n //args.startTouches = this.touchStartList;\n //args.moveTouches = this.touchMoveList;\n return args;\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel} obj - The object.\n * @param {PointModel} position - The position.\n * @returns {Actions | string} - Returns the string.\n */\n PdfViewerBase.prototype.findToolToActivate = function (obj, position) {\n position = { x: position.x / this.getZoomFactor(), y: position.y / this.getZoomFactor() };\n var element = this.pdfViewer.selectedItems.wrapper;\n if (element && obj) {\n var selectorBnds = element.bounds; //let handle: SelectorModel = diagram.selectedItems;\n var paddedBounds = new Rect(selectorBnds.x, selectorBnds.y, selectorBnds.width, selectorBnds.height);\n if (obj.shapeAnnotationType === 'Line' || obj.shapeAnnotationType === 'LineWidthArrowHead' ||\n obj.shapeAnnotationType === 'Distance' || obj.shapeAnnotationType === 'Polygon') {\n var conn = this.pdfViewer.selectedItems.annotations[0];\n if (conn) {\n for (var i = 0; i < conn.vertexPoints.length; i++) {\n if (contains(position, conn.vertexPoints[parseInt(i.toString(), 10)], 10) && conn.leaderHeight !== 0) {\n return 'ConnectorSegmentPoint_' + i;\n }\n }\n }\n }\n if (obj.shapeAnnotationType === 'Distance') {\n var leaderCount = 0;\n var newPoint1 = void 0;\n if (obj && obj.wrapper) {\n for (var i = 0; i < obj.wrapper.children.length; i++) {\n var elementAngle = Point.findAngle(obj.sourcePoint, obj.targetPoint);\n // eslint-disable-next-line\n var segment = obj.wrapper.children[i];\n if (segment.id.indexOf('leader') > -1) {\n var centerPoint = obj.wrapper.children[0].bounds.center;\n if (leaderCount === 0) {\n newPoint1 = { x: obj.sourcePoint.x, y: obj.sourcePoint.y - obj.leaderHeight };\n centerPoint = obj.sourcePoint;\n }\n else {\n newPoint1 = { x: obj.targetPoint.x, y: obj.targetPoint.y - obj.leaderHeight };\n centerPoint = obj.targetPoint;\n }\n var matrix_1 = identityMatrix();\n rotateMatrix(matrix_1, elementAngle, centerPoint.x, centerPoint.y);\n var rotatedPoint = transformPointByMatrix(matrix_1, { x: newPoint1.x, y: newPoint1.y });\n if (contains(position, rotatedPoint, 10)) {\n return 'Leader' + leaderCount;\n }\n leaderCount++;\n }\n }\n }\n }\n var ten = this.pdfViewer.touchPadding;\n if (this.getZoomFactor() <= 1.5) {\n ten = ten / this.getZoomFactor();\n }\n var matrix = identityMatrix();\n rotateMatrix(matrix, obj.rotateAngle + element.parentTransform, element.offsetX, element.offsetY);\n //check for resizing tool\n var x = element.offsetX - element.pivot.x * element.actualSize.width;\n var y = element.offsetY - element.pivot.y * element.actualSize.height;\n var rotateThumb = {\n x: x + ((element.pivot.x === 0.5 ? element.pivot.x * 2 : element.pivot.x) * element.actualSize.width / 2),\n y: y - 30 / this.getZoomFactor()\n };\n rotateThumb = transformPointByMatrix(matrix, rotateThumb);\n if (obj.shapeAnnotationType === 'Stamp' && contains(position, rotateThumb, ten)) {\n return 'Rotate';\n }\n paddedBounds = this.inflate(ten, paddedBounds);\n if (paddedBounds.containsPoint(position, 0)) {\n var action = this.checkResizeHandles(this.pdfViewer, element, position, matrix, x, y);\n if (action) {\n return action;\n }\n }\n if (this.pdfViewer.selectedItems.annotations.indexOf(obj) > -1) {\n return 'Drag';\n }\n else if (this.pdfViewer.selectedItems.formFields.indexOf(obj) > -1 && this.pdfViewer.designerMode) {\n return 'Drag';\n }\n return 'Select';\n }\n return this.pdfViewer.tool || 'Select';\n };\n PdfViewerBase.prototype.inflate = function (padding, bound) {\n bound.x -= padding;\n bound.y -= padding;\n bound.width += padding * 2;\n bound.height += padding * 2;\n return bound;\n };\n PdfViewerBase.prototype.checkResizeHandles = function (diagram, element, position, matrix, x, y) {\n var action;\n if (!action) {\n action = this.checkForResizeHandles(diagram, element, position, matrix, x, y);\n }\n if (action) {\n return action;\n }\n return null;\n };\n PdfViewerBase.prototype.checkForResizeHandles = function (diagram, element, position, matrix, x, y) {\n var forty = 40 / 1;\n var ten = this.pdfViewer.touchPadding / 1;\n // Resizer cursor adjustment factor for higher zoom values\n var resizerBuffer = 1.9;\n if (this.getZoomFactor() >= 2.0 && !Browser.isDevice) {\n ten = ten / (this.getZoomFactor() / resizerBuffer);\n }\n if (element.actualSize.width < 40 || element.actualSize.height < 40 && Browser.isDevice) {\n ten = ten / 2 * this.getZoomFactor() / 1;\n }\n var selectedItems = diagram.selectedItems;\n var isStamp = false;\n var isSticky = false;\n var isNodeShape = false;\n var isInk = false;\n var resizerLocation = this.pdfViewer.annotationSelectorSettings.resizerLocation;\n if (resizerLocation < 1 || resizerLocation > 3) {\n resizerLocation = 3;\n }\n // eslint-disable-next-line max-len\n if (this.pdfViewer.selectedItems.annotations[0] && (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Stamp'\n || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'FreeText' || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Image' || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'HandWrittenSignature'\n || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'SignatureText' || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'SignatureImage')) {\n isStamp = true;\n }\n // eslint-disable-next-line max-len\n if (this.pdfViewer.selectedItems.annotations[0] && this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'StickyNotes') {\n isSticky = true;\n }\n // eslint-disable-next-line max-len\n if (this.pdfViewer.selectedItems.annotations[0] && this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Ink') {\n isInk = true;\n }\n // eslint-disable-next-line max-len\n if (this.pdfViewer.selectedItems.annotations[0] && (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Ellipse' || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Radius' || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Rectangle')) {\n isNodeShape = true;\n }\n if (!isSticky) {\n // eslint-disable-next-line max-len\n if ((isInk || isStamp || (this.pdfViewer.selectedItems.annotations[0] && (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'HandWrittenSignature' || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'SignatureText' || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'SignatureImage')) || ((element.actualSize.width >= forty && element.actualSize.height >= forty) && isNodeShape && (resizerLocation === 1 || resizerLocation === 3)))) {\n if (contains(position, transformPointByMatrix(matrix, { x: x + element.actualSize.width, y: y + element.actualSize.height }), ten)) {\n return 'ResizeSouthEast';\n }\n if (contains(position, transformPointByMatrix(matrix, { x: x, y: y + element.actualSize.height }), ten)) {\n return 'ResizeSouthWest';\n }\n if (contains(position, transformPointByMatrix(matrix, { x: x + element.actualSize.width, y: y }), ten)) {\n return 'ResizeNorthEast';\n }\n if (contains(position, transformPointByMatrix(matrix, { x: x, y: y }), ten)) {\n return 'ResizeNorthWest';\n }\n }\n // eslint-disable-next-line max-len\n if (isInk || !isNodeShape || (isNodeShape && (resizerLocation === 2 || resizerLocation === 3 || (!(element.actualSize.width >= forty && element.actualSize.height >= forty) && resizerLocation === 1)))) {\n if (contains(\n // eslint-disable-next-line max-len\n position, transformPointByMatrix(matrix, { x: x + element.actualSize.width, y: y + element.actualSize.height / 2 }), ten) && !isStamp) {\n return 'ResizeEast';\n }\n // eslint-disable-next-line max-len\n if (contains(position, transformPointByMatrix(matrix, { x: x, y: y + element.actualSize.height / 2 }), ten) && !isStamp) {\n return 'ResizeWest';\n }\n if (contains(\n // eslint-disable-next-line max-len\n position, transformPointByMatrix(matrix, { x: x + element.actualSize.width / 2, y: y + element.actualSize.height }), ten) && !isStamp) {\n return 'ResizeSouth';\n }\n // eslint-disable-next-line max-len\n if (contains(position, transformPointByMatrix(matrix, { x: x + element.actualSize.width / 2, y: y }), ten) && !isStamp) {\n return 'ResizeNorth';\n }\n }\n }\n return null;\n };\n /**\n * @private\n * @param {string} fieldID - The fieldID\n * @returns {boolean} - Returns true or false.\n */\n PdfViewerBase.prototype.checkSignatureFormField = function (fieldID) {\n var isFormFieldSign = false;\n if (this.pdfViewer.formDesignerModule) {\n fieldID = fieldID.split('_')[0];\n }\n // eslint-disable-next-line\n var formField = this.pdfViewer.nameTable[fieldID];\n if (formField) {\n if (formField.formFieldAnnotationType === 'SignatureField' || formField.formFieldAnnotationType === 'InitialField' || formField.annotName === 'SignatureField') {\n isFormFieldSign = true;\n }\n }\n return isFormFieldSign;\n };\n /**\n * @private\n * @param {MouseEvent | TouchEvent} evt - The event.\n * @returns {void}\n */\n PdfViewerBase.prototype.diagramMouseMove = function (evt) {\n var allowServerDataBind = this.pdfViewer.allowServerDataBinding;\n this.pdfViewer.enableServerDataBinding(false);\n this.currentPosition = this.getMousePosition(evt);\n this.pdfViewer.firePageMouseover(this.currentPosition.x, this.currentPosition.y);\n if (this.pdfViewer.annotation) {\n this.activeElements.activePageID = this.pdfViewer.annotation.getEventPageNumber(evt);\n }\n else if (this.pdfViewer.formDesignerModule) {\n this.activeElements.activePageID = this.pdfViewer.formDesignerModule.getEventPageNumber(evt);\n }\n var obj = findActiveElement(evt, this, this.pdfViewer);\n if ((this.tool instanceof NodeDrawingTool) || (this.tool instanceof LineTool)) {\n obj = this.pdfViewer.drawingObject;\n }\n var target;\n var isFormFieldSign = this.pdfViewer.selectedItems.annotations.length > 0 ? this.checkSignatureFormField(this.pdfViewer.selectedItems.annotations[0].id) : false;\n if ((Point.equals(this.currentPosition, this.prevPosition) === false || this.inAction)) {\n if (this.isMouseDown === false) {\n this.eventArgs = {};\n var sourceDrawingElement = null;\n if (obj) {\n this.tool = this.getTool(this.action);\n if (obj.wrapper) {\n sourceDrawingElement = obj.wrapper.children[0];\n if (sourceDrawingElement) {\n target = obj;\n }\n }\n }\n var eventTarget = evt.target;\n this.action = this.findToolToActivate(obj, this.currentPosition);\n // eslint-disable-next-line\n if (obj && obj.annotationSettings && obj.annotationSettings.isLock) {\n if (this.action === 'Select') {\n if (!this.pdfViewer.annotationModule.checkAllowedInteractions('Select', obj)) {\n this.action = '';\n }\n }\n if (this.action === 'Drag') {\n if (!this.pdfViewer.annotationModule.checkAllowedInteractions('Move', obj)) {\n this.action = 'Select';\n }\n }\n // eslint-disable-next-line max-len\n if (this.action === 'ResizeSouthEast' || this.action === 'ResizeNorthEast' || this.action === 'ResizeNorthWest' || this.action === 'ResizeSouthWest' ||\n // eslint-disable-next-line max-len\n this.action === 'ResizeNorth' || this.action === 'ResizeWest' || this.action === 'ResizeEast' || this.action === 'ResizeSouth' || this.action.includes('ConnectorSegmentPoint') || this.action.includes('Leader')) {\n if (!this.pdfViewer.annotationModule.checkAllowedInteractions('Resize', obj)) {\n this.action = 'Select';\n }\n }\n }\n // eslint-disable-next-line max-len\n if (!this.pdfViewer.designerMode && ((!isNullOrUndefined(target) && (!isNullOrUndefined(target.formFieldAnnotationType))) || isFormFieldSign)) {\n if (this.action === 'ResizeSouthEast' || this.action === 'ResizeNorthEast' || this.action === 'ResizeNorthWest' || this.action === 'ResizeSouthWest' ||\n // eslint-disable-next-line max-len\n this.action === 'ResizeNorth' || this.action === 'Drag' || this.action === 'ResizeWest' || this.action === 'ResizeEast' || this.action === 'ResizeSouth' || this.action.includes('ConnectorSegmentPoint') || this.action.includes('Leader')) {\n this.action = '';\n }\n }\n this.tool = this.getTool(this.action);\n this.setCursor(eventTarget, evt);\n if (this.pdfViewer.linkAnnotationModule) {\n this.pdfViewer.linkAnnotationModule.disableHyperlinkNavigationUnderObjects(eventTarget, evt, this);\n }\n }\n else {\n if (!this.tool && this.action && this.action === 'Rotate') {\n this.tool = this.getTool(this.action);\n if (evt.target) {\n this.setCursor(evt.target, evt);\n }\n }\n // eslint-disable-next-line max-len\n if (!this.pdfViewer.designerMode && ((!isNullOrUndefined(target) && (!isNullOrUndefined(target.formFieldAnnotationType))) || isFormFieldSign)) {\n if (this.action === 'ResizeSouthEast' || this.action === 'ResizeNorthEast' || this.action === 'ResizeNorthWest' || this.action === 'ResizeSouthWest' ||\n // eslint-disable-next-line max-len\n this.action === 'ResizeNorth' || this.action === 'Drag' || this.action === 'ResizeWest' || this.action === 'ResizeEast' || this.action === 'ResizeSouth' || this.action.includes('ConnectorSegmentPoint') || this.action.includes('Leader')) {\n this.action = '';\n this.tool = null;\n }\n }\n if (this.eventArgs && this.eventArgs.source) {\n var eventTarget = evt.target;\n this.updateDefaultCursor(this.eventArgs.source, eventTarget, evt);\n }\n else {\n this.setCursor(evt.target, evt);\n }\n this.diagramMouseActionHelper(evt);\n if (this.tool) {\n var currentObject = obj;\n if (currentObject && currentObject.shapeAnnotationType === 'FreeText') {\n if (this.pdfViewer.freeTextSettings.allowEditTextOnly && this.action !== \"Ink\" &&\n (this.eventArgs.source && this.eventArgs.source.shapeAnnotationType === \"FreeText\")) {\n var eventTarget = event.target;\n eventTarget.style.cursor = 'default';\n this.tool = null;\n }\n }\n if (this.tool != null) {\n var info = { ctrlKey: evt.ctrlKey, shiftKey: evt.shiftKey };\n this.eventArgs.info = info;\n this.tool.mouseMove(this.eventArgs);\n }\n }\n }\n if (this.pdfViewer.drawingObject && this.pdfViewer.drawingObject.formFieldAnnotationType && this.action !== 'Drag') {\n if (!(this.tool instanceof ResizeTool)) {\n this.tool = this.getTool(this.action);\n if (this.tool instanceof NodeDrawingTool) {\n var obj_1 = this.pdfViewer.drawingObject;\n // eslint-disable-next-line\n var bounds = this.pdfViewer.formDesignerModule.updateFormFieldInitialSize(obj_1, obj_1.formFieldAnnotationType);\n var pageWidth = this.pageContainer.firstElementChild.clientWidth - bounds.width;\n var pageHeight = this.pageContainer.firstElementChild.clientHeight - bounds.height;\n if (this.pdfViewer.formDesignerModule && obj_1.formFieldAnnotationType\n && this.currentPosition.x < pageWidth && this.currentPosition.y < pageHeight) {\n // eslint-disable-next-line\n var formFieldElement = document.getElementById('FormField_helper_html_element');\n if (!formFieldElement) {\n // eslint-disable-next-line max-len\n this.pdfViewer.formDesignerModule.drawHelper(obj_1.formFieldAnnotationType, obj_1, evt);\n }\n else if (formFieldElement) {\n var previousActivePage = formFieldElement.parentElement.id.split(\"_text_\")[1] || formFieldElement.parentElement.id.split(\"_textLayer_\")[1] || formFieldElement.parentElement.id.split(\"_annotationCanvas_\")[1] || formFieldElement.parentElement.id.split(\"_pageDiv_\")[1];\n if (parseInt(previousActivePage) !== this.activeElements.activePageID) {\n formFieldElement.remove(\"FormField_helper_html_element\");\n }\n else {\n // eslint-disable-next-line\n var point = this.getMousePosition(event);\n if (obj_1.formFieldAnnotationType === 'Checkbox') {\n formFieldElement.firstElementChild.firstElementChild.lastElementChild.style.visibility = 'visible';\n }\n else if (obj_1.formFieldAnnotationType === 'SignatureField' || obj_1.formFieldAnnotationType === 'InitialField') {\n formFieldElement.firstElementChild.firstElementChild.style.visibility = 'visible';\n formFieldElement.firstElementChild.lastElementChild.style.visibility = 'visible';\n }\n else {\n formFieldElement.firstElementChild.firstElementChild.style.visibility = 'visible';\n }\n formFieldElement.setAttribute('style', 'height:' + bounds.height + 'px; width:' + bounds.width + 'px;left:' + point.x + 'px; top:' + point.y + 'px;' +\n 'position:absolute;opacity: 0.5;');\n }\n }\n }\n else if (this.currentPosition.x > pageWidth || this.currentPosition.y > pageHeight) {\n // eslint-disable-next-line\n var formFieldElement = document.getElementById('FormField_helper_html_element');\n if (!formFieldElement) {\n // eslint-disable-next-line max-len\n this.pdfViewer.formDesignerModule.drawHelper(obj_1.formFieldAnnotationType, obj_1, evt);\n }\n else if (formFieldElement) {\n // eslint-disable-next-line\n var point = this.getMousePosition(event);\n formFieldElement.setAttribute('style', 'height:' + bounds.height + 'px; width:' + bounds.width + 'px;left:' + point.x + 'px; top:' + point.y + 'px;' +\n 'position:absolute;opacity: 0.5;');\n if (obj_1.formFieldAnnotationType === 'Checkbox') {\n formFieldElement.firstElementChild.firstElementChild.lastElementChild.style.visibility = 'hidden';\n }\n else if (obj_1.formFieldAnnotationType === 'SignatureField' || obj_1.formFieldAnnotationType === 'InitialField') {\n formFieldElement.firstElementChild.firstElementChild.style.visibility = 'hidden';\n formFieldElement.firstElementChild.lastElementChild.style.visibility = 'hidden';\n }\n else {\n formFieldElement.firstElementChild.firstElementChild.style.visibility = 'hidden';\n }\n }\n }\n }\n }\n }\n this.prevPosition = this.currentPosition;\n }\n this.pdfViewer.enableServerDataBinding(allowServerDataBind, true);\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.updateDefaultCursor = function (source, target, event) {\n // eslint-disable-next-line max-len\n if (source && source.pageIndex !== undefined && source.pageIndex !== this.activeElements.activePageID && target) {\n // eslint-disable-next-line\n this.isPanMode ? target.style.cursor = 'grab' : target.style.cursor = 'default';\n }\n else {\n this.setCursor(target, event);\n }\n };\n /**\n * @private\n * @param {MouseEvent | TouchEvent} evt - The event.\n * @returns {void}\n */\n PdfViewerBase.prototype.diagramMouseLeave = function (evt) {\n this.currentPosition = this.getMousePosition(evt);\n if (this.pdfViewer.annotation) {\n this.activeElements.activePageID = this.pdfViewer.annotation.getEventPageNumber(evt);\n }\n if (isNaN(this.activeElements.activePageID) && this.pdfViewer.formDesignerModule) {\n this.activeElements.activePageID = this.pdfViewer.formDesignerModule.getEventPageNumber(evt);\n }\n var shapeElement = findActiveElement(evt, this, this.pdfViewer);\n var mouseMoveforce = false;\n var target;\n if (Point.equals(this.currentPosition, this.prevPosition) === false || this.inAction) {\n if (this.isMouseDown === false || mouseMoveforce) {\n this.eventArgs = {};\n var sourceElement = null;\n if (shapeElement) {\n sourceElement = shapeElement.wrapper.children[0];\n if (sourceElement) {\n target = shapeElement;\n }\n mouseMoveforce = false;\n }\n }\n else {\n this.diagramMouseActionHelper(evt);\n // eslint-disable-next-line max-len\n if (this.tool && this.action !== 'Drag' && this.pdfViewer.tool !== 'Stamp' && this.tool.currentElement && this.tool.currentElement.shapeAnnotationType !== 'Stamp') {\n this.tool.mouseLeave(this.eventArgs);\n this.tool = null;\n if (this.pdfViewer.annotation) {\n this.pdfViewer.annotationModule.renderAnnotations(this.previousPage, null, null, null);\n }\n }\n }\n this.prevPosition = this.currentPosition;\n }\n };\n PdfViewerBase.prototype.diagramMouseActionHelper = function (evt) {\n this.eventArgs.position = this.currentPosition;\n if (this.action === 'Drag' &&\n this.eventArgs.source instanceof Selector) {\n this.getMouseEventArgs(this.currentPosition, this.eventArgs, evt);\n }\n this.getMouseEventArgs(this.currentPosition, this.eventArgs, evt, this.eventArgs.source);\n this.inAction = true;\n this.initialEventArgs = null;\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.setCursor = function (eventTarget, event) {\n // eslint-disable-next-line max-len\n var freeTextAnnotModule = this.pdfViewer.annotationModule ? this.pdfViewer.annotationModule.freeTextAnnotationModule : null;\n var cursorType;\n if (this.tool instanceof ResizeTool) {\n if (this.tool.corner === 'ResizeNorthWest') {\n cursorType = this.setResizerCursorType();\n eventTarget.style.cursor = isNullOrUndefined(cursorType) ? 'nw-resize' : cursorType;\n }\n else if (this.tool.corner === 'ResizeNorthEast') {\n cursorType = this.setResizerCursorType();\n eventTarget.style.cursor = isNullOrUndefined(cursorType) ? 'ne-resize' : cursorType;\n }\n else if (this.tool.corner === 'ResizeSouthWest') {\n cursorType = this.setResizerCursorType();\n eventTarget.style.cursor = isNullOrUndefined(cursorType) ? 'sw-resize' : cursorType;\n }\n else if (this.tool.corner === 'ResizeSouthEast') {\n cursorType = this.setResizerCursorType();\n eventTarget.style.cursor = isNullOrUndefined(cursorType) ? 'se-resize' : cursorType;\n }\n else if (this.tool.corner === 'ResizeNorth') {\n cursorType = this.setResizerCursorType();\n eventTarget.style.cursor = isNullOrUndefined(cursorType) ? 'n-resize' : cursorType;\n }\n else if (this.tool.corner === 'ResizeWest') {\n cursorType = this.setResizerCursorType();\n eventTarget.style.cursor = isNullOrUndefined(cursorType) ? 'w-resize' : cursorType;\n }\n else if (this.tool.corner === 'ResizeEast') {\n cursorType = this.setResizerCursorType();\n eventTarget.style.cursor = isNullOrUndefined(cursorType) ? 'e-resize' : cursorType;\n }\n else if (this.tool.corner === 'ResizeSouth') {\n cursorType = this.setResizerCursorType();\n eventTarget.style.cursor = isNullOrUndefined(cursorType) ? 's-resize' : cursorType;\n }\n }\n else if (this.isCommentIconAdded && this.isAddComment) {\n eventTarget.style.cursor = 'crosshair';\n }\n else if (this.pdfViewer.enableHandwrittenSignature && this.isNewSignatureAdded && this.tool instanceof StampTool) {\n eventTarget.style.cursor = 'crosshair';\n }\n else if (this.tool instanceof MoveTool) {\n eventTarget.style.cursor = 'move';\n // eslint-disable-next-line max-len\n }\n else if (this.tool instanceof NodeDrawingTool || this.tool instanceof LineTool || this.tool instanceof PolygonDrawingTool || (freeTextAnnotModule && freeTextAnnotModule.isNewAddedAnnot) || this.tool instanceof InkDrawingTool) {\n eventTarget.style.cursor = 'crosshair';\n }\n else if (this.tool instanceof ConnectTool) {\n if (this.tool.endPoint && this.tool.endPoint.indexOf('Leader0')) {\n cursorType = this.setResizerCursorType();\n eventTarget.style.cursor = isNullOrUndefined(cursorType) ? 'nw-resize' : cursorType;\n }\n else if (this.tool.endPoint && this.tool.endPoint.indexOf('Leader1')) {\n cursorType = this.setResizerCursorType();\n eventTarget.style.cursor = isNullOrUndefined(cursorType) ? 'ne-resize' : cursorType;\n }\n else if (this.tool.endPoint && this.tool.endPoint.indexOf('ConnectorSegmentPoint')) {\n eventTarget.style.cursor = 'sw-resize';\n }\n }\n else {\n if (eventTarget.classList.contains('e-pv-text')) {\n eventTarget.style.cursor = 'text';\n }\n else if (eventTarget.classList.contains('e-pv-hyperlink')) {\n eventTarget.style.cursor = 'pointer';\n }\n else if (this.isPanMode) {\n if (this.isViewerMouseDown && event.type === 'mousemove') {\n eventTarget.style.cursor = 'grabbing';\n }\n else {\n var obj = findActiveElement(event, this, this.pdfViewer);\n if (obj && event.type === 'mousemove') {\n eventTarget.style.cursor = 'pointer';\n // eslint-disable-next-line max-len\n var currentObject = obj;\n // eslint-disable-next-line\n var currentPosition = this.getMousePosition(event);\n // eslint-disable-next-line\n var relativePosition = this.relativePosition(event);\n // eslint-disable-next-line\n var viewerPositions = { left: relativePosition.x, top: relativePosition.y };\n // eslint-disable-next-line\n var mousePositions = { left: currentPosition.x, top: currentPosition.y };\n // eslint-disable-next-line\n var annotationSettings = { opacity: currentObject.opacity, fillColor: currentObject.fillColor, strokeColor: currentObject.strokeColor, thicknes: currentObject.thickness, author: currentObject.author, subject: currentObject.subject, modifiedDate: currentObject.modifiedDate };\n // eslint-disable-next-line max-len\n this.isMousedOver = true;\n var isFormField = this.checkSignatureFormField(currentObject.id);\n if (currentObject.formFieldAnnotationType) {\n this.isFormFieldMousedOver = true;\n var field_1 = {\n // eslint-disable-next-line\n value: currentObject.value, fontFamily: currentObject.fontFamily, fontSize: currentObject.fontSize, fontStyle: currentObject.fontStyle,\n // eslint-disable-next-line max-len\n color: currentObject.color, backgroundColor: currentObject.backgroundColor, borderColor: currentObject.borderColor,\n // eslint-disable-next-line\n thickness: currentObject.thickness, alignment: currentObject.alignment, isReadonly: currentObject.isReadonly, visibility: currentObject.visibility,\n // eslint-disable-next-line\n maxLength: currentObject.maxLength, isRequired: currentObject.isRequired, isPrint: currentObject.isPrint, rotation: currentObject.rotateAngle, tooltip: currentObject.tooltip, options: currentObject.options,\n // eslint-disable-next-line\n isChecked: currentObject.isChecked, isSelected: currentObject.isSelected\n };\n this.pdfViewer.fireFormFieldMouseoverEvent('formFieldMouseover', field_1, currentObject.pageIndex, relativePosition.x, relativePosition.y, currentPosition.x, currentPosition.y);\n }\n else {\n if (!isFormField)\n // eslint-disable-next-line max-len\n this.pdfViewer.fireAnnotationMouseover(currentObject.annotName, currentObject.pageIndex, currentObject.shapeAnnotationType, currentObject.bounds, annotationSettings, mousePositions, viewerPositions);\n }\n }\n else {\n eventTarget.style.cursor = 'grab';\n if (this.isMousedOver) {\n var pageIndex = void 0;\n if (this.pdfViewer.formDesignerModule) {\n pageIndex = this.pdfViewer.formDesignerModule.getEventPageNumber(event);\n }\n else {\n pageIndex = this.pdfViewer.annotation.getEventPageNumber(event);\n }\n if (this.isFormFieldMousedOver) {\n this.pdfViewer.fireFormFieldMouseLeaveEvent('formFieldMouseLeave', null, pageIndex);\n }\n else {\n this.pdfViewer.fireAnnotationMouseLeave(pageIndex);\n }\n this.isMousedOver = false;\n this.isFormFieldMousedOver = false;\n }\n }\n }\n }\n else {\n var obj = findActiveElement(event, this, this.pdfViewer);\n if (obj && this.pdfViewer.selectedItems.annotations.length === 0 && event.type === 'mousemove') {\n var currentObject = obj;\n // eslint-disable-next-line\n var annotationObject = this.pdfViewer.nameTable[currentObject.id];\n // eslint-disable-next-line max-len\n if (annotationObject.shapeAnnotationType !== 'HandWrittenSignature' && annotationObject.shapeAnnotationType !== 'Ink' && annotationObject.annotationSettings && annotationObject.annotationSettings.isLock !== undefined) {\n annotationObject.annotationSettings.isLock = JSON.parse(annotationObject.annotationSettings.isLock);\n }\n if (annotationObject.annotationSettings && annotationObject.annotationSettings.isLock) {\n eventTarget.style.cursor = 'default';\n }\n else {\n eventTarget.style.cursor = 'pointer';\n }\n // eslint-disable-next-line\n var currentPosition = this.getMousePosition(event);\n // eslint-disable-next-line\n var relativePosition = this.relativePosition(event);\n // eslint-disable-next-line\n var viewerPositions = { left: relativePosition.x, top: relativePosition.y };\n // eslint-disable-next-line\n var mousePositions = { left: currentPosition.x, top: currentPosition.y };\n // eslint-disable-next-line\n var annotationSettings = { opacity: currentObject.opacity, fillColor: currentObject.fillColor, strokeColor: currentObject.strokeColor, thicknes: currentObject.thickness, author: currentObject.author, subject: currentObject.subject, modifiedDate: currentObject.modifiedDate };\n // eslint-disable-next-line max-len\n this.isMousedOver = true;\n var isFormField = this.checkSignatureFormField(currentObject.id);\n if (currentObject.formFieldAnnotationType) {\n this.isFormFieldMousedOver = true;\n var field_2 = {\n // eslint-disable-next-line\n value: currentObject.value, fontFamily: currentObject.fontFamily, fontSize: currentObject.fontSize, fontStyle: currentObject.fontStyle,\n // eslint-disable-next-line max-len\n color: currentObject.color, backgroundColor: currentObject.backgroundColor, borderColor: currentObject.borderColor,\n // eslint-disable-next-line\n thickness: currentObject.thickness, alignment: currentObject.alignment, isReadonly: currentObject.isReadonly, visibility: currentObject.visibility,\n // eslint-disable-next-line\n maxLength: currentObject.maxLength, isRequired: currentObject.isRequired, isPrint: currentObject.isPrint, rotation: currentObject.rotateAngle, tooltip: currentObject.tooltip, options: currentObject.options,\n // eslint-disable-next-line\n isChecked: currentObject.isChecked, isSelected: currentObject.isSelected\n };\n this.fromTarget = currentObject;\n this.pdfViewer.fireFormFieldMouseoverEvent('formFieldMouseover', field_2, currentObject.pageIndex, relativePosition.x, relativePosition.y, currentPosition.x, currentPosition.y);\n }\n else {\n if (!isFormField)\n // eslint-disable-next-line max-len\n this.pdfViewer.fireAnnotationMouseover(currentObject.annotName, currentObject.pageIndex, currentObject.shapeAnnotationType, currentObject.bounds, annotationSettings, mousePositions, viewerPositions);\n }\n }\n else if (!this.pdfViewer.formDesignerModule && event.target.classList.contains('e-pdfviewer-formFields')) {\n var pageIndex = this.pdfViewer.annotation.getEventPageNumber(event);\n var currentPosition = this.getMousePosition(event);\n var relativePosition = this.relativePosition(event);\n var viewerPositions = { left: relativePosition.x, top: relativePosition.y };\n var mousePositions = { left: currentPosition.x, top: currentPosition.y };\n var dataJson = this.getItemFromSessionStorage('_formfields');\n var data = JSON.parse(dataJson);\n for (var i = 0; i < data.length; i++) {\n if (data[parseInt(i.toString(), 10)].FieldName === event.target.name) {\n var field = { name: data[parseInt(i.toString(), 10)].FieldName };\n }\n }\n this.isMousedOver = true;\n this.isFormFieldMousedOver = true;\n this.pdfViewer.fireFormFieldMouseoverEvent('formFieldMouseover', field, pageIndex, relativePosition.x, relativePosition.y, currentPosition.x, currentPosition.y);\n }\n else {\n if (this.isMousedOver) {\n var pageIndex = void 0;\n if (this.pdfViewer.formDesignerModule) {\n pageIndex = this.pdfViewer.formDesignerModule.getEventPageNumber(event);\n }\n else {\n pageIndex = this.pdfViewer.annotation.getEventPageNumber(event);\n }\n if (this.isFormFieldMousedOver) {\n if (this.fromTarget) {\n var field_3 = {\n // eslint-disable-next-line\n name: this.fromTarget.name, id: this.fromTarget.id, value: this.fromTarget.value, fontFamily: this.fromTarget.fontFamily, fontSize: this.fromTarget.fontSize, fontStyle: this.fromTarget.fontStyle,\n // eslint-disable-next-line max-len\n color: this.fromTarget.color, backgroundColor: this.fromTarget.backgroundColor, borderColor: this.fromTarget.borderColor,\n // eslint-disable-next-line\n thickness: this.fromTarget.thickness, alignment: this.fromTarget.alignment, isReadonly: this.fromTarget.isReadonly, visibility: this.fromTarget.visibility,\n // eslint-disable-next-line\n maxLength: this.fromTarget.maxLength, isRequired: this.fromTarget.isRequired, isPrint: this.fromTarget.isPrint, rotation: this.fromTarget.rotateAngle, tooltip: this.fromTarget.tooltip, options: this.fromTarget.options,\n // eslint-disable-next-line\n isChecked: this.fromTarget.isChecked, isSelected: this.fromTarget.isSelected\n };\n this.pdfViewer.fireFormFieldMouseLeaveEvent('formFieldMouseLeave', field_3, pageIndex);\n }\n else {\n this.pdfViewer.fireFormFieldMouseLeaveEvent('formFieldMouseLeave', null, pageIndex);\n }\n }\n else {\n this.pdfViewer.fireAnnotationMouseLeave(pageIndex);\n }\n this.isMousedOver = false;\n this.isFormFieldMousedOver = false;\n eventTarget.style.cursor = 'default';\n }\n if (obj && this.pdfViewer.selectedItems.annotations.length === 1 && event.type === 'mousemove') {\n eventTarget.style.cursor = 'pointer';\n }\n else {\n eventTarget.style.cursor = 'default';\n }\n }\n }\n }\n };\n PdfViewerBase.prototype.setResizerCursorType = function () {\n var cursorType;\n // eslint-disable-next-line max-len\n if (this.pdfViewer.selectedItems.annotations[0] && isNullOrUndefined(this.pdfViewer.selectedItems.annotations[0].annotationSelectorSettings.resizerCursorType)) {\n if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'FreeText') {\n // eslint-disable-next-line max-len\n cursorType = !isNullOrUndefined(this.pdfViewer.freeTextSettings.annotationSelectorSettings) ? this.pdfViewer.freeTextSettings.annotationSelectorSettings.resizerCursorType : null;\n }\n else if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Stamp') {\n // eslint-disable-next-line max-len\n cursorType = !isNullOrUndefined(this.pdfViewer.stampSettings.annotationSelectorSettings) ? this.pdfViewer.stampSettings.annotationSelectorSettings.resizerCursorType : null;\n }\n else if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'HandWrittenSignature' || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'SignatureText' || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'SignatureImage') {\n // eslint-disable-next-line max-len\n cursorType = !isNullOrUndefined(this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings) ? this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.resizerCursorType : null;\n }\n else if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Ink') {\n // eslint-disable-next-line max-len\n cursorType = !isNullOrUndefined(this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings) ? this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.resizerCursorType : null;\n }\n else if (!this.pdfViewer.selectedItems.annotations[0].measureType) {\n if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Line') {\n // eslint-disable-next-line max-len\n cursorType = !isNullOrUndefined(this.pdfViewer.lineSettings.annotationSelectorSettings) ? this.pdfViewer.lineSettings.annotationSelectorSettings.resizerCursorType : null;\n }\n else if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'LineWidthArrowHead') {\n // eslint-disable-next-line max-len\n cursorType = !isNullOrUndefined(this.pdfViewer.arrowSettings.annotationSelectorSettings) ? this.pdfViewer.arrowSettings.annotationSelectorSettings.resizerCursorType : null;\n }\n else if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Rectangle') {\n // eslint-disable-next-line max-len\n cursorType = !isNullOrUndefined(this.pdfViewer.rectangleSettings.annotationSelectorSettings) ? this.pdfViewer.rectangleSettings.annotationSelectorSettings.resizerCursorType : null;\n }\n else if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Ellipse') {\n // eslint-disable-next-line max-len\n cursorType = !isNullOrUndefined(this.pdfViewer.circleSettings.annotationSelectorSettings) ? this.pdfViewer.circleSettings.annotationSelectorSettings.resizerCursorType : null;\n }\n else if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Polygon') {\n // eslint-disable-next-line max-len\n cursorType = !isNullOrUndefined(this.pdfViewer.polygonSettings.annotationSelectorSettings) ? this.pdfViewer.polygonSettings.annotationSelectorSettings.resizerCursorType : null;\n }\n }\n else if (this.pdfViewer.selectedItems.annotations[0].measureType) {\n if (this.pdfViewer.selectedItems.annotations[0].subject === 'Distance calculation') {\n // eslint-disable-next-line max-len\n cursorType = !isNullOrUndefined(this.pdfViewer.distanceSettings.annotationSelectorSettings) ? this.pdfViewer.distanceSettings.annotationSelectorSettings.resizerCursorType : null;\n }\n else if (this.pdfViewer.selectedItems.annotations[0].subject === 'Perimeter calculation') {\n // eslint-disable-next-line max-len\n cursorType = !isNullOrUndefined(this.pdfViewer.perimeterSettings.annotationSelectorSettings) ? this.pdfViewer.perimeterSettings.annotationSelectorSettings.resizerCursorType : null;\n }\n else if (this.pdfViewer.selectedItems.annotations[0].subject === 'Area calculation') {\n // eslint-disable-next-line max-len\n cursorType = !isNullOrUndefined(this.pdfViewer.areaSettings.annotationSelectorSettings) ? this.pdfViewer.areaSettings.annotationSelectorSettings.resizerCursorType : null;\n }\n else if (this.pdfViewer.selectedItems.annotations[0].subject === 'Radius calculation') {\n // eslint-disable-next-line max-len\n cursorType = !isNullOrUndefined(this.pdfViewer.radiusSettings.annotationSelectorSettings) ? this.pdfViewer.radiusSettings.annotationSelectorSettings.resizerCursorType : null;\n }\n else if (this.pdfViewer.selectedItems.annotations[0].subject === 'Volume calculation') {\n // eslint-disable-next-line max-len\n cursorType = !isNullOrUndefined(this.pdfViewer.volumeSettings.annotationSelectorSettings) ? this.pdfViewer.volumeSettings.annotationSelectorSettings.resizerCursorType : null;\n }\n }\n }\n else {\n if (this.pdfViewer.selectedItems.annotations[0]) {\n cursorType = this.pdfViewer.selectedItems.annotations[0].annotationSelectorSettings.resizerCursorType;\n }\n }\n if (!cursorType) {\n cursorType = this.pdfViewer.annotationSelectorSettings.resizerCursorType;\n }\n return cursorType;\n };\n /**\n * @private\n * @param {Actions | string} action - The actions.\n * @returns {ToolBase} - Returns tools.\n */\n PdfViewerBase.prototype.getTool = function (action) {\n switch (action) {\n case 'Select':\n return new SelectTool(this.pdfViewer, this);\n case 'Drag':\n return new MoveTool(this.pdfViewer, this);\n case 'ResizeSouthEast':\n case 'ResizeSouthWest':\n case 'ResizeNorthEast':\n case 'ResizeNorthWest':\n case 'ResizeSouth':\n case 'ResizeNorth':\n case 'ResizeWest':\n case 'ResizeEast':\n return new ResizeTool(this.pdfViewer, this, action);\n case 'ConnectorSourceEnd':\n case 'ConnectorTargetEnd':\n case 'Leader':\n case 'ConnectorSegmentPoint':\n return new ConnectTool(this.pdfViewer, this, action);\n case 'DrawTool':\n return new NodeDrawingTool(this.pdfViewer, this, this.pdfViewer.drawingObject);\n case 'Polygon':\n return new PolygonDrawingTool(this.pdfViewer, this, 'Polygon');\n case 'Distance':\n return new LineTool(this.pdfViewer, this, 'Leader1', undefined);\n case 'Line':\n return new LineTool(this.pdfViewer, this, 'ConnectorSegmentPoint_1', this.pdfViewer.drawingObject);\n case 'Perimeter':\n return new PolygonDrawingTool(this.pdfViewer, this, 'Perimeter');\n case 'Rotate':\n return new RotateTool(this.pdfViewer, this);\n case 'Stamp':\n return new StampTool(this.pdfViewer, this);\n case 'Ink':\n return new InkDrawingTool(this.pdfViewer, this, this.pdfViewer.drawingObject);\n }\n if (action.indexOf('ConnectorSegmentPoint') > -1 || action.indexOf('Leader') > -1) {\n return new ConnectTool(this.pdfViewer, this, action);\n }\n return null;\n };\n /**\n * @private\n * @param {MouseEvent | TouchEvent} evt - The events.\n * @returns {void}\n */\n PdfViewerBase.prototype.diagramMouseUp = function (evt) {\n var allowServerDataBind = this.pdfViewer.allowServerDataBinding;\n this.pdfViewer.enableServerDataBinding(false);\n var touches;\n var isAnnotResized = (this.action.toLowerCase().includes('resize') || this.action.toLowerCase().includes('connectorsegmentpoint'));\n var isAnnotationDrawn = (this.action === 'Drag' || isAnnotResized) || ((this.tool instanceof NodeDrawingTool || this.tool instanceof LineTool || this.tool instanceof PolygonDrawingTool) && (this.tool.dragging && this.tool.drawingObject));\n if (this.tool) {\n if (!this.inAction && evt.which !== 3) {\n if (this.action === 'Drag') {\n this.action = 'Select';\n var obj = findActiveElement(evt, this, this.pdfViewer);\n var isMultipleSelect = true;\n }\n }\n var isGroupAction = void 0;\n if (!(this.tool instanceof PolygonDrawingTool) && !(this.tool instanceof LineTool) && !(this.tool instanceof NodeDrawingTool)) {\n this.inAction = false;\n this.isMouseDown = false;\n }\n this.currentPosition = this.getMousePosition(evt);\n if (this.tool) {\n this.eventArgs.position = this.currentPosition;\n this.getMouseEventArgs(this.currentPosition, this.eventArgs, evt, this.eventArgs.source);\n var ctrlKey = this.isMetaKey(evt);\n var info = { ctrlKey: evt.ctrlKey, shiftKey: evt.shiftKey };\n this.eventArgs.info = info;\n this.eventArgs.clickCount = evt.detail;\n this.tool.mouseUp(this.eventArgs);\n this.isAnnotationMouseDown = false;\n this.isFormFieldMouseDown = false;\n // eslint-disable-next-line max-len\n if ((this.tool instanceof NodeDrawingTool || this.tool instanceof LineTool || this.tool instanceof PolygonDrawingTool) && !this.tool.dragging) {\n this.inAction = false;\n this.isMouseDown = false;\n }\n if (isAnnotationDrawn) {\n var obj = findActiveElement(evt, this, this.pdfViewer);\n // eslint-disable-next-line max-len\n if ((this.isShapeAnnotationModule() || this.isCalibrateAnnotationModule())) {\n this.pdfViewer.annotation.onShapesMouseup(obj, evt);\n }\n }\n this.isAnnotationDrawn = false;\n }\n }\n var target = evt.target;\n // eslint-disable-next-line max-len\n if (!touches && evt.cancelable && this.skipPreventDefault(target) && (!Browser.isDevice || this.pdfViewer.enableDesktopMode)) {\n evt.preventDefault();\n }\n this.eventArgs = {};\n this.pdfViewer.enableServerDataBinding(allowServerDataBind, true);\n };\n /**\n * @private\n * @param {HTMLElement} target - The target.\n * @returns {boolean} - Returns true or false.\n */\n PdfViewerBase.prototype.skipPreventDefault = function (target) {\n var isSkipped = false;\n var isSkip = false;\n // eslint-disable-next-line max-len\n if (this.pdfViewer.annotationModule && this.pdfViewer.annotationModule.freeTextAnnotationModule && this.pdfViewer.annotationModule.freeTextAnnotationModule.isInuptBoxInFocus) {\n isSkip = true;\n }\n // eslint-disable-next-line max-len\n if (target.parentElement && target.parentElement.className !== 'foreign-object' && !target.classList.contains('e-pv-radio-btn') && !target.classList.contains('e-pv-radiobtn-span') && !target.classList.contains('e-pv-checkbox-div') && !target.classList.contains('e-pdfviewer-formFields')\n && !target.classList.contains('e-pdfviewer-ListBox') && !target.classList.contains('e-pdfviewer-signatureformfields')\n && !((target).className === 'free-text-input' && (target).tagName === 'TEXTAREA')\n && !isSkip && !((target).className === 'e-pv-hyperlink')) {\n isSkipped = true;\n }\n return isSkipped;\n };\n PdfViewerBase.prototype.isMetaKey = function (evt) {\n return navigator.platform.match('Mac') ? evt.metaKey : evt.ctrlKey;\n };\n /**\n * @private\n * @param {MouseEvent | TouchEvent} evt - The events.\n * @returns {void}\n */\n PdfViewerBase.prototype.diagramMouseDown = function (evt) {\n var _this = this;\n if (this.tool instanceof MoveTool && !(this.tool instanceof StampTool) && this.tool['inAction']) {\n this.diagramMouseUp(evt);\n if (evt.which === 1) {\n this.preventContextmenu = true;\n setTimeout(function () {\n _this.preventContextmenu = false;\n }, 200);\n }\n }\n var allowServerDataBind = this.pdfViewer.allowServerDataBinding;\n this.pdfViewer.enableServerDataBinding(false);\n var touches = null;\n touches = evt.touches;\n this.isMouseDown = true;\n this.isAnnotationAdded = false;\n this.currentPosition = this.prevPosition = this.getMousePosition(evt);\n this.eventArgs = {};\n var isStamp = false;\n if (this.pdfViewer.tool === 'Stamp') {\n this.pdfViewer.tool = '';\n isStamp = true;\n }\n var target;\n if (Browser.isDevice && this.pdfViewer.annotation) {\n this.activeElements.activePageID = this.pdfViewer.annotation.getEventPageNumber(evt);\n }\n var obj = findActiveElement(evt, this, this.pdfViewer);\n if ((Browser.isDevice && !this.pdfViewer.enableDesktopMode) && (obj && !(obj instanceof PdfFormFieldBase))) {\n evt.preventDefault();\n }\n if (this.pdfViewer.annotation && this.pdfViewer.enableStampAnnotations) {\n var stampModule = this.pdfViewer.annotationModule.stampAnnotationModule;\n if (stampModule && stampModule.isNewStampAnnot) {\n var stampObj = obj;\n if (!stampObj && this.pdfViewer.selectedItems.annotations[0]) {\n stampObj = this.pdfViewer.selectedItems.annotations[0];\n }\n if (stampObj) {\n this.isViewerMouseDown = false;\n stampObj.opacity = this.pdfViewer.stampSettings.opacity;\n this.isNewStamp = true;\n var opacity = void 0;\n if (stampObj.shapeAnnotationType === 'Image') {\n opacity = this.pdfViewer.customStampSettings.opacity;\n }\n else {\n opacity = this.pdfViewer.stampSettings.opacity;\n }\n // eslint-disable-next-line max-len\n this.pdfViewer.nodePropertyChange(stampObj, { opacity: opacity });\n this.pdfViewer.annotation.stampAnnotationModule.isStampAddMode = false;\n if (stampObj.shapeAnnotationType === 'Image' && !this.isAlreadyAdded) {\n this.stampAdded = true;\n var stampName = stampObj.id;\n if (stampModule.currentStampAnnotation && stampModule.currentStampAnnotation.signatureName) {\n stampName = stampModule.currentStampAnnotation.signatureName;\n }\n var isSkip = false;\n for (var i = 0; i < this.customStampCollection.length; i++) {\n if (this.customStampCollection[parseInt(i.toString(), 10)].customStampName === stampName) {\n isSkip = true;\n break;\n }\n }\n if (isSkip) {\n stampName = stampObj.id;\n }\n stampName = stampModule.customStampName ? stampModule.customStampName : stampModule.currentStampAnnotation.signatureName;\n this.customStampCollection.push({ customStampName: stampName, customStampImageSource: stampObj.data });\n if (isBlazor()) {\n this.pdfViewer._dotnetInstance.invokeMethodAsync(\"UpdateCustomStampCollection\", stampName, stampObj.data);\n }\n }\n if (this.pdfViewer.customStampSettings.enableCustomStamp && this.pdfViewer.customStampSettings.isAddToMenu) {\n this.stampAdded = true;\n }\n this.isAlreadyAdded = false;\n stampModule.updateDeleteItems(stampObj.pageIndex, stampObj, stampObj.opacity);\n stampModule.resetAnnotation();\n stampModule.isNewStampAnnot = false;\n }\n }\n }\n if (this.isNewSignatureAdded) {\n this.signatureCount++;\n this.currentSignatureAnnot = null;\n var signObject = obj;\n if (isNullOrUndefined(signObject) && this.pdfViewer.selectedItems.annotations[0]) {\n signObject = this.pdfViewer.selectedItems.annotations[0];\n }\n if (signObject) {\n this.signatureAdded = true;\n this.signatureModule.storeSignatureData(signObject.pageIndex, signObject);\n // eslint-disable-next-line\n var bounds = { left: signObject.bounds.x, top: signObject.bounds.y, width: signObject.bounds.width, height: signObject.bounds.height };\n // eslint-disable-next-line max-len\n this.pdfViewer.fireSignatureAdd(signObject.pageIndex, signObject.signatureName, signObject.shapeAnnotationType, bounds, signObject.opacity, signObject.strokeColor, signObject.thickness, this.signatureModule.saveImageString);\n }\n this.isNewSignatureAdded = false;\n }\n if (this.pdfViewer.annotationModule) {\n var freeTextAnnotModule = this.pdfViewer.annotationModule.freeTextAnnotationModule;\n var canvasPaddingLeft = 5, canvasPaddingWidth = 10;\n // eslint-disable-next-line\n if (freeTextAnnotModule.isNewFreeTextAnnot === true) {\n var canvas = void 0;\n // eslint-disable-next-line max-len\n if (evt.target && (evt.target.id.indexOf('_text') > -1 || evt.target.id.indexOf('_annotationCanvas') > -1 || evt.target.classList.contains('e-pv-hyperlink')) && this.pdfViewer.annotation) {\n var pageIndex = this.pdfViewer.annotation.getEventPageNumber(evt);\n var diagram = document.getElementById(this.pdfViewer.element.id + '_annotationCanvas_' + pageIndex);\n if (diagram) {\n var canvas1 = diagram.getBoundingClientRect();\n var left = canvas1.x ? canvas1.x : canvas1.left;\n var top_4 = canvas1.y ? canvas1.y : canvas1.top;\n canvas = new Rect(left + canvasPaddingLeft, top_4 + canvasPaddingLeft, canvas1.width - canvasPaddingWidth, canvas1.height - canvasPaddingWidth);\n }\n }\n if (touches) {\n this.mouseX = touches[0].clientX;\n this.mouseY = touches[0].clientY;\n }\n if (canvas && canvas.containsPoint({ x: this.mouseX, y: this.mouseY }) && freeTextAnnotModule.isNewAddedAnnot) {\n var pageIndex = this.pdfViewer.annotation.getEventPageNumber(evt);\n if (!this.pdfViewer.freeTextSettings.enableAutoFit) {\n var zoomFactor = this.getZoomFactor();\n var width = this.currentPosition.x + (freeTextAnnotModule.defautWidth * zoomFactor);\n var pageWidth = this.getPageWidth(pageIndex);\n if (width >= pageWidth) {\n this.currentPosition.x = pageWidth - (freeTextAnnotModule.defautWidth * zoomFactor);\n this.currentPosition.x <= 0 ? this.currentPosition.x = canvasPaddingLeft : this.currentPosition.x;\n freeTextAnnotModule.defautWidth = (freeTextAnnotModule.defautWidth * zoomFactor) >= pageWidth ? pageWidth - canvasPaddingWidth : freeTextAnnotModule.defautWidth;\n }\n }\n freeTextAnnotModule.addInuptElemet(this.currentPosition, null, pageIndex);\n if (this.pdfViewer.toolbar && this.pdfViewer.toolbar.annotationToolbarModule) {\n // eslint-disable-next-line\n var annotModule = this.pdfViewer.toolbar.annotationToolbarModule;\n if (!isBlazor()) {\n annotModule.primaryToolbar.deSelectItem(annotModule.freeTextEditItem);\n }\n }\n evt.preventDefault();\n freeTextAnnotModule.isNewAddedAnnot = false;\n }\n }\n }\n var sourceElement = null;\n if (obj) {\n sourceElement = obj.wrapper.children[0];\n if (sourceElement) {\n target = obj;\n }\n }\n if (!this.tool || (this.tool && !this.tool.drawingObject)) {\n if (!isStamp) {\n this.action = this.findToolToActivate(obj, this.currentPosition);\n // eslint-disable-next-line\n if (obj && obj.annotationSettings && obj.annotationSettings.isLock) {\n if (this.action === 'Select') {\n if (!this.pdfViewer.annotationModule.checkAllowedInteractions('Select', obj)) {\n this.action = '';\n }\n }\n if (this.action === 'Drag') {\n if (!this.pdfViewer.annotationModule.checkAllowedInteractions('Move', obj)) {\n this.action = 'Select';\n }\n }\n if (this.action === 'Rotate') {\n this.action = 'Select';\n }\n // eslint-disable-next-line max-len\n if (this.action === 'ResizeSouthEast' || this.action === 'ResizeNorthEast' || this.action === 'ResizeNorthWest' || this.action === 'ResizeSouthWest' || this.action === 'ResizeSouth' || // eslint-disable-next-line max-len\n this.action === 'ResizeNorth' || this.action === 'ResizeWest' || this.action === 'ResizeEast' || this.action.includes('ConnectorSegmentPoint') || this.action.includes('Leader')) {\n if (!this.pdfViewer.annotationModule.checkAllowedInteractions('Resize', obj)) {\n this.action = 'Select';\n }\n }\n }\n this.tool = this.getTool(this.action);\n if (!this.tool) {\n this.action = this.pdfViewer.tool || 'Select';\n this.tool = this.getTool(this.action);\n }\n }\n else {\n this.action = 'Select';\n this.tool = this.getTool(this.action);\n }\n }\n this.getMouseEventArgs(this.currentPosition, this.eventArgs, evt);\n this.eventArgs.position = this.currentPosition;\n if (this.tool) {\n this.isAnnotationMouseDown = false;\n this.isFormFieldMouseDown = false;\n this.isAnnotationMouseMove = false;\n this.isFormFieldMouseMove = false;\n this.tool.mouseDown(this.eventArgs);\n this.isAnnotationDrawn = true;\n this.signatureAdded = true;\n }\n if (this.pdfViewer.annotation) {\n this.pdfViewer.annotation.onAnnotationMouseDown();\n }\n if (this.pdfViewer.selectedItems && this.pdfViewer.selectedItems.formFields.length === 1) {\n if (!isNullOrUndefined(this.pdfViewer.toolbar) && !isNullOrUndefined(this.pdfViewer.toolbar.formDesignerToolbarModule)) {\n this.pdfViewer.toolbar.formDesignerToolbarModule.showHideDeleteIcon(true);\n }\n }\n var signatureFieldAnnotation = this.pdfViewer.selectedItems.annotations.length === 1 ? this.pdfViewer.nameTable[this.pdfViewer.selectedItems.annotations[0].id.split('_')[0] + '_content'] : null;\n if (!signatureFieldAnnotation) {\n signatureFieldAnnotation = this.pdfViewer.selectedItems.annotations.length === 1 ? this.pdfViewer.nameTable[this.pdfViewer.selectedItems.annotations[0].id] : null;\n }\n // eslint-disable-next-line max-len\n if (this.eventArgs && this.eventArgs.source && (this.eventArgs.source.formFieldAnnotationType || signatureFieldAnnotation) && !this.pdfViewer.designerMode) {\n var currentObject = void 0;\n if (signatureFieldAnnotation) {\n currentObject = this.pdfViewer.nameTable[this.pdfViewer.selectedItems.annotations[0].id.split('_')[0]];\n }\n else {\n currentObject = this.eventArgs.source;\n }\n if (!currentObject) {\n currentObject = this.pdfViewer.formFieldCollections[this.pdfViewer.formFieldCollections.findIndex(function (el) { return el.id === signatureFieldAnnotation.id; })];\n }\n if (currentObject) {\n // eslint-disable-next-line\n var field = {\n // eslint-disable-next-line max-len\n name: currentObject.name, id: currentObject.id, fontFamily: currentObject.fontFamily, fontSize: currentObject.fontSize, fontStyle: currentObject.fontStyle,\n // eslint-disable-next-line\n color: currentObject.color, value: currentObject.value, type: currentObject.formFieldAnnotationType ? currentObject.formFieldAnnotationType : currentObject.type, backgroundColor: currentObject.backgroundColor, alignment: currentObject.alignment\n };\n var target_1 = document.getElementById(currentObject.id);\n target_1 = target_1 ? target_1 : (document.getElementById(currentObject.id + '_content_html_element') ? document.getElementById(currentObject.id + '_content_html_element').children[0].children[0] : null);\n if (target_1) {\n this.currentTarget = target_1;\n this.pdfViewer.fireFormFieldClickEvent('formFieldClicked', field, false, evt.button === 0);\n }\n }\n }\n this.initialEventArgs = { source: this.eventArgs.source, sourceWrapper: this.eventArgs.sourceWrapper };\n this.initialEventArgs.position = this.currentPosition;\n this.initialEventArgs.info = this.eventArgs.info;\n this.pdfViewer.enableServerDataBinding(allowServerDataBind, true);\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.exportAnnotationsAsObject = function () {\n var _this = this;\n if (this.pdfViewer.annotationModule) {\n var isAnnotations = this.updateExportItem();\n if (isAnnotations) {\n return new Promise(function (resolve, reject) {\n _this.createRequestForExportAnnotations(true, AnnotationDataFormat.Json).then(function (value) {\n resolve(value);\n });\n });\n }\n }\n };\n /**\n * @private\n * @param {string} type - The type.\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.getItemFromSessionStorage = function (type) {\n if (this.isStorageExceed) {\n return this.formFieldStorage[this.documentId + type];\n }\n else {\n return window.sessionStorage.getItem(this.documentId + type);\n }\n };\n /**\n * @param textDiv\n * @param left\n * @param top\n * @param fontHeight\n * @param width\n * @param height\n * @param isPrint\n * @param textDiv\n * @param left\n * @param top\n * @param fontHeight\n * @param width\n * @param height\n * @param isPrint\n * @param textDiv\n * @param left\n * @param top\n * @param fontHeight\n * @param width\n * @param height\n * @param isPrint\n * @param textDiv\n * @param left\n * @param top\n * @param fontHeight\n * @param width\n * @param height\n * @param isPrint\n * @param textDiv\n * @param left\n * @param top\n * @param fontHeight\n * @param width\n * @param height\n * @param isPrint\n * @private\n */\n // eslint-disable-next-line max-len\n PdfViewerBase.prototype.setStyleToTextDiv = function (textDiv, left, top, fontHeight, width, height, isPrint) {\n var zoomvalue = this.getZoomFactor();\n if (isPrint) {\n zoomvalue = 1;\n textDiv.style.position = 'absolute';\n }\n textDiv.style.left = left * zoomvalue + 'px';\n textDiv.style.top = top * zoomvalue + 'px';\n textDiv.style.height = height * zoomvalue + 'px';\n textDiv.style.width = width * zoomvalue + 'px';\n textDiv.style.margin = '0px';\n if (fontHeight > 0) {\n textDiv.style.fontSize = fontHeight * zoomvalue + 'px';\n }\n };\n /**\n * @param number\n * @private\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.ConvertPointToPixel = function (number) {\n return (number * (96 / 72));\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.setItemInSessionStorage = function (formFieldsData, type) {\n // eslint-disable-next-line\n var formFieldsSize = Math.round(JSON.stringify(formFieldsData).length / 1024);\n var sessionSize = Math.round(JSON.stringify(window.sessionStorage).length / 1024);\n if (formFieldsSize > 4500) {\n this.isStorageExceed = true;\n if (this.pdfViewer.formFieldsModule) {\n if (!(this.isFormStorageExceed)) {\n this.pdfViewer.formFieldsModule.clearFormFieldStorage();\n this.isFormStorageExceed = true;\n }\n }\n }\n if (this.isStorageExceed) {\n this.formFieldStorage[this.documentId + type] = JSON.stringify(formFieldsData);\n }\n else if ((formFieldsSize + sessionSize) > 4500) {\n this.isStorageExceed = true;\n this.pdfViewer.formFieldsModule.clearFormFieldStorage();\n this.isFormStorageExceed = true;\n this.pdfViewer.annotationModule.clearAnnotationStorage();\n this.formFieldStorage[this.documentId + type] = JSON.stringify(formFieldsData);\n }\n else {\n window.sessionStorage.setItem(this.documentId + type, JSON.stringify(formFieldsData));\n }\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.exportFormFieldsAsObject = function (formFieldDataFormat) {\n var _this = this;\n if (this.pdfViewer.formFieldsModule) {\n return new Promise(function (resolve, reject) {\n _this.createRequestForExportFormfields(true, formFieldDataFormat).then(function (value) {\n resolve(value);\n });\n });\n }\n };\n /**\n * @param importData\n * @param annotationDataFormat\n * @param isXfdf\n * @param importData\n * @param annotationDataFormat\n * @param isXfdf\n * @param importData\n * @param annotationDataFormat\n * @param isXfdf\n * @private\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.importAnnotations = function (importData, annotationDataFormat, isXfdf) {\n if (this.pdfViewer.annotationModule) {\n this.createRequestForImportAnnotations(importData, annotationDataFormat, isXfdf);\n }\n };\n /**\n * @private\n * @param {AnnotationDataFormat} annotationDataFormat - The annotationDataFormat.\n * @returns {void}\n */\n PdfViewerBase.prototype.exportAnnotations = function (annotationDataFormat) {\n if (this.pdfViewer.annotationModule) {\n var isAnnotations = this.updateExportItem();\n if (isAnnotations) {\n this.createRequestForExportAnnotations(false, annotationDataFormat);\n }\n }\n };\n /**\n * @param isObject\n * @param annotationDataFormat\n * @param isBase64String\n * @private\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.createRequestForExportAnnotations = function (isObject, annotationDataFormat, isBase64String) {\n var _this = this;\n var proxy = null;\n proxy = this;\n var promise = new Promise(function (resolve, reject) {\n // eslint-disable-next-line\n var jsonObject;\n if (annotationDataFormat === 'Json') {\n // eslint-disable-next-line max-len\n jsonObject = { hashId: proxy.hashId, action: 'ExportAnnotations', pdfAnnotation: proxy.createAnnotationJsonData(), elementId: proxy.pdfViewer.element.id, annotationDataFormat: annotationDataFormat, uniqueId: proxy.documentId };\n proxy.pdfViewer.fireExportStart(jsonObject.pdfAnnotation);\n }\n else {\n jsonObject = _this.constructJsonDownload();\n jsonObject.annotationDataFormat = annotationDataFormat;\n // eslint-disable-next-line\n jsonObject['action'] = 'ExportAnnotations';\n proxy.pdfViewer.fireExportStart(jsonObject);\n }\n if (proxy.jsonDocumentId) {\n // eslint-disable-next-line\n jsonObject.document = proxy.jsonDocumentId;\n }\n var url = proxy.pdfViewer.serviceUrl + '/' + proxy.pdfViewer.serverActionSettings.exportAnnotations;\n proxy.exportAnnotationRequestHandler = new AjaxHandler(_this.pdfViewer);\n proxy.exportAnnotationRequestHandler.url = url;\n proxy.exportAnnotationRequestHandler.mode = true;\n proxy.exportAnnotationRequestHandler.responseType = 'text';\n proxy.exportAnnotationRequestHandler.send(jsonObject);\n // eslint-disable-next-line\n proxy.exportAnnotationRequestHandler.onSuccess = function (result) {\n // eslint-disable-next-line\n var data = result.data;\n if (data) {\n if (typeof data === 'object') {\n data = JSON.parse(data);\n }\n if (data) {\n var isCancel = proxy.pdfViewer.fireAjaxRequestSuccess(proxy.pdfViewer.serverActionSettings.exportAnnotations, data);\n if (isObject || (isBase64String && !isBlazor())) {\n if (data.split('base64,')[1]) {\n var exportObject = data;\n // eslint-disable-next-line \n var annotationJson = atob(data.split(',')[1]);\n if (isObject) {\n if (jsonObject.annotationDataFormat === 'Json') {\n exportObject = JSON.parse(annotationJson);\n }\n else {\n exportObject = annotationJson;\n }\n }\n if (proxy.pdfViewer.exportAnnotationFileName !== null) {\n proxy.pdfViewer.fireExportSuccess(exportObject, proxy.pdfViewer.exportAnnotationFileName);\n }\n else {\n proxy.pdfViewer.fireExportSuccess(exportObject, proxy.pdfViewer.fileName);\n }\n proxy.updateDocumentAnnotationCollections();\n if (isBase64String) {\n resolve(data);\n }\n else {\n resolve(annotationJson);\n }\n }\n else {\n // eslint-disable-next-line max-len\n proxy.pdfViewer.fireExportFailed(jsonObject.pdfAnnotation, proxy.pdfViewer.localeObj.getConstant('Export Failed'));\n }\n }\n else {\n if (annotationDataFormat === 'Json') {\n if (data.split('base64,')[1]) {\n if (!isCancel) {\n var blobUrl = proxy.createBlobUrl(data.split('base64,')[1], 'application/json');\n if (Browser.isIE || Browser.info.name === 'edge') {\n if (proxy.pdfViewer.exportAnnotationFileName !== null) {\n // eslint-disable-next-line max-len\n window.navigator.msSaveOrOpenBlob(blobUrl, proxy.pdfViewer.exportAnnotationFileName.split('.')[0] + '.json');\n }\n else {\n window.navigator.msSaveOrOpenBlob(blobUrl, proxy.pdfViewer.fileName.split('.')[0] + '.json');\n }\n }\n else {\n proxy.downloadExportFormat(blobUrl, annotationDataFormat);\n }\n proxy.updateDocumentAnnotationCollections();\n }\n else {\n return data;\n }\n }\n else {\n if (isBlazor()) {\n var promise_2 = this.pdfViewer._dotnetInstance.invokeMethodAsync('GetLocaleText', 'PdfViewer_ExportFailed');\n promise_2.then(function (value) {\n proxy.openImportExportNotificationPopup(value);\n });\n }\n else {\n proxy.openImportExportNotificationPopup(proxy.pdfViewer.localeObj.getConstant('Export Failed'));\n }\n // eslint-disable-next-line max-len\n proxy.pdfViewer.fireExportFailed(jsonObject.pdfAnnotation, proxy.pdfViewer.localeObj.getConstant('Export Failed'));\n }\n }\n else {\n if (data.split('base64,')[1]) {\n if (!isCancel) {\n var blobUrl = proxy.createBlobUrl(data.split('base64,')[1], 'application/vnd.adobe.xfdf');\n if (Browser.isIE || Browser.info.name === 'edge') {\n window.navigator.msSaveOrOpenBlob(blobUrl, proxy.pdfViewer.fileName.split('.')[0] + '.xfdf');\n }\n else {\n proxy.downloadExportFormat(blobUrl, annotationDataFormat);\n }\n proxy.updateDocumentAnnotationCollections();\n }\n else {\n return data;\n }\n }\n else {\n if (isBlazor()) {\n var promise_3 = this.pdfViewer._dotnetInstance.invokeMethodAsync('GetLocaleText', 'PdfViewer_ExportFailed');\n promise_3.then(function (value) {\n proxy.openImportExportNotificationPopup(value);\n });\n }\n else {\n proxy.openImportExportNotificationPopup(proxy.pdfViewer.localeObj.getConstant('Export Failed'));\n }\n // eslint-disable-next-line max-len\n proxy.pdfViewer.fireExportFailed(jsonObject, proxy.pdfViewer.localeObj.getConstant('Export Failed'));\n }\n }\n }\n }\n if (typeof data !== 'string') {\n try {\n if (typeof data === 'string') {\n proxy.onControlError(500, data, proxy.pdfViewer.serverActionSettings.exportAnnotations);\n data = null;\n }\n }\n catch (error) {\n // eslint-disable-next-line max-len\n proxy.pdfViewer.fireExportFailed(jsonObject.pdfAnnotation, proxy.pdfViewer.localeObj.getConstant('Export Failed'));\n proxy.onControlError(500, data, proxy.pdfViewer.serverActionSettings.exportAnnotations);\n data = null;\n }\n }\n }\n else {\n var fileName = void 0;\n if (proxy.pdfViewer.exportAnnotationFileName !== null) {\n fileName = proxy.pdfViewer.exportAnnotationFileName;\n }\n else {\n fileName = proxy.pdfViewer.fileName;\n }\n proxy.pdfViewer.fireExportSuccess('Exported data saved in server side successfully', fileName);\n }\n };\n // eslint-disable-next-line\n proxy.exportAnnotationRequestHandler.onFailure = function (result) {\n proxy.pdfViewer.fireExportFailed(jsonObject.pdfAnnotation, result.statusText);\n };\n // eslint-disable-next-line\n proxy.exportAnnotationRequestHandler.onError = function (result) {\n proxy.pdfViewer.fireExportFailed(jsonObject.pdfAnnotation, result.statusText);\n };\n });\n if (isObject || isBase64String) {\n return promise;\n }\n else {\n return true;\n }\n };\n /**\n * @private\n */\n PdfViewerBase.prototype.updateModifiedDateToLocalDate = function (newData, annotationType) {\n if (newData[annotationType] && newData[annotationType].length > 0) {\n var data = newData[annotationType];\n if (data) {\n for (var j = 0; j < data.length; j++) {\n data[j].ModifiedDate = this.convertUTCDateTimeToLocalDateTime(data[j].ModifiedDate);\n if (data[j].Comments) {\n for (var i = 0; i < data[j].Comments.length; i++) {\n data[j].Comments[i].ModifiedDate = this.convertUTCDateTimeToLocalDateTime(data[j].Comments[i].ModifiedDate);\n }\n }\n }\n }\n }\n };\n /**\n * @private\n */\n PdfViewerBase.prototype.convertUTCDateTimeToLocalDateTime = function (date) {\n var dateTime;\n // We have globalized the date and time based on the given locale.\n this.globalize = new Internationalization(this.pdfViewer.locale);\n if (date !== null && date !== undefined && date !== '') {\n dateTime = new Date(Date.parse(date + ' ' + 'UTC'));\n }\n else {\n var now = new Date();\n var now_utc = Date.UTC(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate(), now.getUTCHours(), now.getUTCMinutes(), now.getUTCSeconds());\n dateTime = new Date(now_utc);\n }\n var dateTimeValue = this.globalize.formatDate(dateTime, { format: this.pdfViewer.dateTimeFormat, type: 'dateTime' });\n return dateTimeValue;\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.createRequestForImportAnnotations = function (importData, annotationDataFormat, isXfdf) {\n var jsonObject;\n var proxy = null;\n proxy = this;\n if (typeof importData === 'string' && annotationDataFormat === 'Json' && importData.indexOf(\".json\") === -1) {\n importData = importData.split(',')[1] ? importData.split(',')[1] : importData.split(',')[0];\n importData = JSON.parse(decodeURIComponent(escape(atob(importData))));\n }\n if (typeof importData === 'object') {\n if (!isXfdf) {\n this.isJsonImported = true;\n }\n else {\n this.isJsonImported = false;\n }\n if (importData && importData.pdfAnnotation) {\n var newArray = Object.keys(importData.pdfAnnotation);\n for (var i = 0; i < newArray.length; i++) {\n var newData = importData.pdfAnnotation[newArray[i]];\n this.updateModifiedDateToLocalDate(newData, \"freeTextAnnotation\");\n this.updateModifiedDateToLocalDate(newData, \"measureShapeAnnotation\");\n this.updateModifiedDateToLocalDate(newData, \"shapeAnnotation\");\n this.updateModifiedDateToLocalDate(newData, \"signatureAnnotation\");\n this.updateModifiedDateToLocalDate(newData, \"signatureInkAnnotation\");\n this.updateModifiedDateToLocalDate(newData, \"stampAnnotations\");\n this.updateModifiedDateToLocalDate(newData, \"stickyNotesAnnotation\");\n this.updateModifiedDateToLocalDate(newData, \"textMarkupAnnotation\");\n }\n }\n proxy.reRenderAnnotations(importData.pdfAnnotation);\n proxy.isImportedAnnotation = true;\n proxy.updateDocumentEditedProperty(true);\n if (!this.isAddAnnotation) {\n proxy.pdfViewer.fireImportSuccess(importData.pdfAnnotation);\n }\n }\n else {\n proxy.pdfViewer.fireImportStart(importData);\n if (annotationDataFormat === 'Json') {\n // eslint-disable-next-line max-len\n jsonObject = { fileName: importData, action: 'ImportAnnotations', elementId: proxy.pdfViewer.element.id, hashId: proxy.hashId, uniqueId: proxy.documentId };\n }\n else {\n if (!isXfdf) {\n importData = btoa(importData);\n }\n importData = importData.split(',')[1] ? importData.split(',')[1] : importData.split(',')[0];\n // eslint-disable-next-line max-len\n jsonObject = { importedData: importData, action: 'ImportAnnotations', elementId: proxy.pdfViewer.element.id, hashId: proxy.hashId, uniqueId: proxy.documentId };\n }\n if (proxy.jsonDocumentId) {\n // eslint-disable-next-line\n jsonObject.document = proxy.jsonDocumentId;\n }\n var url = proxy.pdfViewer.serviceUrl + '/' + proxy.pdfViewer.serverActionSettings.importAnnotations;\n proxy.importAnnotationRequestHandler = new AjaxHandler(proxy.pdfViewer);\n proxy.importAnnotationRequestHandler.url = url;\n proxy.importAnnotationRequestHandler.mode = true;\n proxy.importAnnotationRequestHandler.responseType = 'text';\n proxy.importAnnotationRequestHandler.send(jsonObject);\n // eslint-disable-next-line\n proxy.importAnnotationRequestHandler.onSuccess = function (result) {\n // eslint-disable-next-line\n var data = result.data;\n if (data) {\n if (typeof data !== 'object') {\n try {\n data = JSON.parse(data);\n if (typeof data !== 'object') {\n proxy.onControlError(500, data, proxy.pdfViewer.serverActionSettings.importAnnotations);\n data = null;\n }\n }\n catch (error) {\n proxy.pdfViewer.fireImportFailed(importData, proxy.pdfViewer.localeObj.getConstant('File not found'));\n if (isBlazor()) {\n var promise = this.pdfViewer._dotnetInstance.invokeMethodAsync('GetLocaleText', 'PdfViewer_FileNotFound');\n promise.then(function (value) {\n proxy.openImportExportNotificationPopup(value);\n });\n }\n else {\n proxy.openImportExportNotificationPopup(proxy.pdfViewer.localeObj.getConstant('File not found'));\n }\n proxy.onControlError(500, data, proxy.pdfViewer.serverActionSettings.importAnnotations);\n data = null;\n }\n }\n if (data) {\n proxy.pdfViewer.fireAjaxRequestSuccess(proxy.pdfViewer.serverActionSettings.importAnnotations, data);\n if (data.pdfAnnotation) {\n for (var i = 0; i < Object.keys(data.pdfAnnotation).length; i++) {\n var newData = data.pdfAnnotation[i];\n proxy.updateModifiedDateToLocalDate(newData, \"freeTextAnnotation\");\n proxy.updateModifiedDateToLocalDate(newData, \"measureShapeAnnotation\");\n proxy.updateModifiedDateToLocalDate(newData, \"shapeAnnotation\");\n proxy.updateModifiedDateToLocalDate(newData, \"signatureAnnotation\");\n proxy.updateModifiedDateToLocalDate(newData, \"signatureInkAnnotation\");\n proxy.updateModifiedDateToLocalDate(newData, \"stampAnnotations\");\n proxy.updateModifiedDateToLocalDate(newData, \"stickyNotesAnnotation\");\n proxy.updateModifiedDateToLocalDate(newData, \"textMarkupAnnotation\");\n }\n proxy.reRenderAnnotations(data.pdfAnnotation);\n proxy.isImportedAnnotation = true;\n proxy.updateDocumentEditedProperty(true);\n proxy.pdfViewer.fireImportSuccess(data.pdfAnnotation);\n }\n }\n }\n };\n // eslint-disable-next-line\n proxy.importAnnotationRequestHandler.onFailure = function (result) {\n proxy.pdfViewer.fireImportFailed(importData, result.statusText);\n };\n // eslint-disable-next-line\n proxy.importAnnotationRequestHandler.onError = function (result) {\n proxy.pdfViewer.fireImportFailed(importData, result.statusText);\n };\n }\n };\n /**\n * @private\n * @param {string} errorDetails - The error details.\n * @returns {void}\n */\n PdfViewerBase.prototype.openImportExportNotificationPopup = function (errorDetails) {\n if (this.pdfViewer.showNotificationDialog) {\n this.textLayer.createNotificationPopup(errorDetails);\n }\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.reRenderAnnotations = function (annotation) {\n if (annotation) {\n this.isImportAction = true;\n var count = 0;\n if (this.isImportedAnnotation) {\n this.importedAnnotation = this.combineImportedData(this.importedAnnotation, annotation);\n }\n else {\n if (this.pageCount > 0) {\n this.importedAnnotation = annotation;\n }\n }\n if (!this.isImportedAnnotation) {\n count = 0;\n }\n for (var i = 0; i < this.pageCount; i++) {\n if (annotation[parseInt(i.toString(), 10)]) {\n // eslint-disable-next-line\n var importPageCollections = [];\n // eslint-disable-next-line\n var textMarkupObject = window.sessionStorage.getItem(this.documentId + '_annotations_textMarkup');\n // eslint-disable-next-line\n var shapeObject = window.sessionStorage.getItem(this.documentId + '_annotations_shape');\n // eslint-disable-next-line\n var measureShapeObject = window.sessionStorage.getItem(this.documentId + '_annotations_shape_measure');\n // eslint-disable-next-line\n var stampObject = window.sessionStorage.getItem(this.documentId + '_annotations_stamp');\n // eslint-disable-next-line\n var stickyObject = window.sessionStorage.getItem(this.documentId + '_annotations_sticky');\n // eslint-disable-next-line\n var freeTextObject = window.sessionStorage.getItem(this.documentId + '_annotations_freetext');\n // eslint-disable-next-line\n var signatureObject = window.sessionStorage.getItem(this.documentId + '_annotations_sign');\n // eslint-disable-next-line\n var inkObject = window.sessionStorage.getItem(this.documentId + '_annotations_ink');\n if (this.isStorageExceed) {\n textMarkupObject = this.annotationStorage[this.documentId + '_annotations_textMarkup'];\n shapeObject = this.annotationStorage[this.documentId + '_annotations_shape'];\n measureShapeObject = this.annotationStorage[this.documentId + '_annotations_shape_measure'];\n stampObject = this.annotationStorage[this.documentId + '_annotations_stamp'];\n stickyObject = this.annotationStorage[this.documentId + '_annotations_sticky'];\n freeTextObject = this.annotationStorage[this.documentId + '_annotations_freetext'];\n inkObject = this.annotationStorage[this.documentId + '_annotations_ink'];\n }\n var annotationCanvas = this.getElement('_annotationCanvas_' + i);\n if (annotationCanvas) {\n this.drawPageAnnotations(annotation[parseInt(i.toString(), 10)], i);\n if (this.isImportedAnnotation) {\n var isAdded = false;\n for (var j = 0; j < this.annotationPageList.length; j++) {\n if (this.annotationPageList[parseInt(j.toString(), 10)] === i) {\n isAdded = true;\n }\n }\n if (isAdded) {\n this.annotationPageList[parseInt(count.toString(), 10)] = i;\n count = count + 1;\n }\n }\n else {\n this.annotationPageList[parseInt(count.toString(), 10)] = i;\n count = count + 1;\n }\n }\n if (annotation[parseInt(i.toString(), 10)].textMarkupAnnotation && annotation[parseInt(i.toString(), 10)].textMarkupAnnotation.length !== 0) {\n if (textMarkupObject) {\n var annotObject = JSON.parse(textMarkupObject);\n // eslint-disable-next-line max-len\n annotation[parseInt(i.toString(), 10)].textMarkupAnnotation = this.checkAnnotationCollections(annotObject, annotation[parseInt(i.toString(), 10)].textMarkupAnnotation, i);\n }\n annotation[parseInt(i.toString(), 10)].textMarkupAnnotation = this.checkAnnotationCommentsCollections(annotation[parseInt(i.toString(), 10)].textMarkupAnnotation, i);\n importPageCollections.textMarkupAnnotation = annotation[parseInt(i.toString(), 10)].textMarkupAnnotation;\n if (annotation[parseInt(i.toString(), 10)].textMarkupAnnotation.length !== 0) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.renderAnnotationComments(annotation[parseInt(i.toString(), 10)].textMarkupAnnotation, i);\n for (var j = 0; j < annotation[parseInt(i.toString(), 10)].textMarkupAnnotation.length; j++) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.updateCollections(this.pdfViewer.annotationModule.textMarkupAnnotationModule.updateTextMarkupAnnotationCollections(annotation[parseInt(i.toString(), 10)].textMarkupAnnotation[parseInt(j.toString(), 10)], i));\n }\n }\n }\n if (annotation[parseInt(i.toString(), 10)].shapeAnnotation && annotation[parseInt(i.toString(), 10)].shapeAnnotation.length !== 0) {\n if (shapeObject) {\n var annotObject = JSON.parse(shapeObject);\n annotation[parseInt(i.toString(), 10)].shapeAnnotation = this.checkAnnotationCollections(annotObject, annotation[parseInt(i.toString(), 10)].shapeAnnotation, i);\n }\n annotation[parseInt(i.toString(), 10)].shapeAnnotation = this.checkAnnotationCommentsCollections(annotation[parseInt(i.toString(), 10)].shapeAnnotation, i);\n importPageCollections.shapeAnnotation = annotation[parseInt(i.toString(), 10)].shapeAnnotation;\n if (annotation[parseInt(i.toString(), 10)].shapeAnnotation.length !== 0) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.renderAnnotationComments(annotation[parseInt(i.toString(), 10)].shapeAnnotation, i);\n for (var j = 0; j < annotation[parseInt(i.toString(), 10)].shapeAnnotation.length; j++) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.updateCollections(this.pdfViewer.annotationModule.shapeAnnotationModule.updateShapeAnnotationCollections(annotation[parseInt(i.toString(), 10)].shapeAnnotation[parseInt(j.toString(), 10)], i));\n }\n }\n }\n if (annotation[parseInt(i.toString(), 10)].measureShapeAnnotation && annotation[parseInt(i.toString(), 10)].measureShapeAnnotation.length !== 0) {\n if (measureShapeObject) {\n var annotObject = JSON.parse(measureShapeObject);\n // eslint-disable-next-line max-len\n annotation[parseInt(i.toString(), 10)].measureShapeAnnotation = this.checkAnnotationCollections(annotObject, annotation[parseInt(i.toString(), 10)].measureShapeAnnotation, i);\n }\n // eslint-disable-next-line max-len\n annotation[parseInt(i.toString(), 10)].measureShapeAnnotation = this.checkAnnotationCommentsCollections(annotation[parseInt(i.toString(), 10)].measureShapeAnnotation, i);\n importPageCollections.measureShapeAnnotation = annotation[parseInt(i.toString(), 10)].measureShapeAnnotation;\n if (annotation[parseInt(i.toString(), 10)].measureShapeAnnotation.length !== 0) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.renderAnnotationComments(annotation[parseInt(i.toString(), 10)].measureShapeAnnotation, i);\n for (var j = 0; j < annotation[parseInt(i.toString(), 10)].measureShapeAnnotation.length; j++) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.updateCollections(this.pdfViewer.annotationModule.measureAnnotationModule.updateMeasureAnnotationCollections(annotation[parseInt(i.toString(), 10)].measureShapeAnnotation[parseInt(j.toString(), 10)], i));\n }\n }\n }\n if (annotation[parseInt(i.toString(), 10)].stampAnnotations && annotation[parseInt(i.toString(), 10)].stampAnnotations.length !== 0) {\n if (stampObject) {\n var annotObject = JSON.parse(stampObject);\n // eslint-disable-next-line max-len\n annotation[parseInt(i.toString(), 10)].stampAnnotations = this.checkAnnotationCollections(annotObject, annotation[parseInt(i.toString(), 10)].stampAnnotations, i);\n }\n annotation[parseInt(i.toString(), 10)].stampAnnotations = this.checkAnnotationCommentsCollections(annotation[parseInt(i.toString(), 10)].stampAnnotations, i);\n importPageCollections.stampAnnotations = annotation[parseInt(i.toString(), 10)].stampAnnotations;\n if (annotation[parseInt(i.toString(), 10)].stampAnnotations.length !== 0) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.renderAnnotationComments(annotation[parseInt(i.toString(), 10)].stampAnnotations, i);\n for (var j = 0; j < annotation[parseInt(i.toString(), 10)].stampAnnotations.length; j++) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.updateCollections(this.pdfViewer.annotationModule.stampAnnotationModule.updateStampAnnotationCollections(annotation[parseInt(i.toString(), 10)].stampAnnotations[parseInt(j.toString(), 10)], i));\n }\n }\n }\n if (annotation[parseInt(i.toString(), 10)].stickyNotesAnnotation && annotation[parseInt(i.toString(), 10)].stickyNotesAnnotation.length !== 0) {\n if (stickyObject) {\n var annotObject = JSON.parse(stickyObject);\n // eslint-disable-next-line max-len\n annotation[parseInt(i.toString(), 10)].stickyNotesAnnotation = this.checkAnnotationCollections(annotObject, annotation[parseInt(i.toString(), 10)].stickyNotesAnnotation, i);\n }\n // eslint-disable-next-line max-len\n annotation[parseInt(i.toString(), 10)].stickyNotesAnnotation = this.checkAnnotationCommentsCollections(annotation[parseInt(i.toString(), 10)].stickyNotesAnnotation, i);\n importPageCollections.stickyNotesAnnotation = annotation[parseInt(i.toString(), 10)].stickyNotesAnnotation;\n if (annotation[parseInt(i.toString(), 10)].stickyNotesAnnotation.length !== 0) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.renderAnnotationComments(annotation[parseInt(i.toString(), 10)].stickyNotesAnnotation, i);\n for (var j = 0; j < annotation[parseInt(i.toString(), 10)].stickyNotesAnnotation.length; j++) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.updateCollections(this.pdfViewer.annotationModule.stickyNotesAnnotationModule.updateStickyNotesAnnotationCollections(annotation[parseInt(i.toString(), 10)].stickyNotesAnnotation[parseInt(j.toString(), 10)], i));\n }\n }\n }\n if (annotation[parseInt(i.toString(), 10)].freeTextAnnotation && annotation[parseInt(i.toString(), 10)].freeTextAnnotation.length !== 0) {\n if (freeTextObject) {\n var annotObject = JSON.parse(freeTextObject);\n // eslint-disable-next-line max-len\n annotation[parseInt(i.toString(), 10)].freeTextAnnotation = this.checkAnnotationCollections(annotObject, annotation[parseInt(i.toString(), 10)].freeTextAnnotation, i);\n }\n annotation[parseInt(i.toString(), 10)].freeTextAnnotation = this.checkAnnotationCommentsCollections(annotation[parseInt(i.toString(), 10)].freeTextAnnotation, i);\n importPageCollections.freeTextAnnotation = annotation[parseInt(i.toString(), 10)].freeTextAnnotation;\n if (annotation[parseInt(i.toString(), 10)].freeTextAnnotation.length !== 0) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.renderAnnotationComments(annotation[parseInt(i.toString(), 10)].freeTextAnnotation, i);\n for (var j = 0; j < annotation[parseInt(i.toString(), 10)].freeTextAnnotation.length; j++) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.updateCollections(this.pdfViewer.annotationModule.freeTextAnnotationModule.updateFreeTextAnnotationCollections(annotation[parseInt(i.toString(), 10)].freeTextAnnotation[parseInt(j.toString(), 10)], i));\n }\n }\n }\n if (annotation[parseInt(i.toString(), 10)].signatureAnnotation && annotation[parseInt(i.toString(), 10)].signatureAnnotation.length !== 0) {\n if (signatureObject) {\n var annotObject = JSON.parse(signatureObject);\n // eslint-disable-next-line max-len\n annotation[parseInt(i.toString(), 10)].signatureAnnotation = this.checkSignatureCollections(annotObject, annotation[parseInt(i.toString(), 10)].signatureAnnotation, i);\n }\n importPageCollections.signatureAnnotation = annotation[parseInt(i.toString(), 10)].signatureAnnotation;\n if (annotation[parseInt(i.toString(), 10)].signatureAnnotation.length !== 0) {\n for (var j = 0; j < annotation[parseInt(i.toString(), 10)].signatureAnnotation.length; j++) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.updateCollections(this.signatureModule.updateSignatureCollections(annotation[parseInt(i.toString(), 10)].signatureAnnotation[parseInt(j.toString(), 10)], i), true);\n }\n }\n }\n if (annotation[parseInt(i.toString(), 10)].signatureInkAnnotation && annotation[parseInt(i.toString(), 10)].signatureInkAnnotation.length !== 0) {\n if (inkObject) {\n var annotObject = JSON.parse(inkObject);\n // eslint-disable-next-line max-len\n annotation[parseInt(i.toString(), 10)].signatureInkAnnotation = this.checkAnnotationCollections(annotObject, annotation[parseInt(i.toString(), 10)].signatureInkAnnotation, i);\n }\n // eslint-disable-next-line max-len\n annotation[parseInt(i.toString(), 10)].signatureInkAnnotation = this.checkAnnotationCommentsCollections(annotation[parseInt(i.toString(), 10)].signatureInkAnnotation, i);\n importPageCollections.signatureInkAnnotation = annotation[parseInt(i.toString(), 10)].signatureInkAnnotation;\n if (annotation[parseInt(i.toString(), 10)].signatureInkAnnotation.length !== 0) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.renderAnnotationComments(annotation[parseInt(i.toString(), 10)].signatureInkAnnotation, i);\n for (var j = 0; j < annotation[parseInt(i.toString(), 10)].signatureInkAnnotation.length; j++) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.updateCollections(this.pdfViewer.annotationModule.inkAnnotationModule.updateInkCollections(annotation[parseInt(i.toString(), 10)].signatureInkAnnotation[parseInt(j.toString(), 10)], i));\n }\n }\n }\n this.updateImportedAnnotationsInDocumentCollections(importPageCollections, i);\n }\n }\n if (this.pageCount > 0) {\n // eslint-disable-next-line max-len\n if (this.pdfViewer.annotationModule.stickyNotesAnnotationModule && !this.pdfViewer.annotationModule.stickyNotesAnnotationModule.isAnnotationRendered) {\n // eslint-disable-next-line\n var annotationCollection = this.createAnnotationsCollection();\n if (annotationCollection) {\n // eslint-disable-next-line max-len\n this.documentAnnotationCollections = this.pdfViewer.annotationModule.stickyNotesAnnotationModule.updateAnnotationsInDocumentCollections(this.importedAnnotation, annotationCollection);\n }\n }\n }\n }\n };\n /**\n * @param importedAnnotations\n * @param pageNumber\n * @private\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.updateImportedAnnotationsInDocumentCollections = function (importedAnnotations, pageNumber) {\n if (this.documentAnnotationCollections) {\n // eslint-disable-next-line\n var documentAnnotationCollection = this.documentAnnotationCollections;\n // eslint-disable-next-line\n var pageCollections = documentAnnotationCollection[pageNumber];\n if (pageCollections) {\n if (importedAnnotations.textMarkupAnnotation && importedAnnotations.textMarkupAnnotation.length !== 0) {\n for (var i = 0; i < importedAnnotations.textMarkupAnnotation.length; i++) {\n pageCollections.textMarkupAnnotation.push(importedAnnotations.textMarkupAnnotation[parseInt(i.toString(), 10)]);\n }\n }\n if (importedAnnotations.shapeAnnotation && importedAnnotations.shapeAnnotation.length !== 0) {\n for (var i = 0; i < importedAnnotations.shapeAnnotation.length; i++) {\n pageCollections.shapeAnnotation.push(importedAnnotations.shapeAnnotation[parseInt(i.toString(), 10)]);\n }\n }\n if (importedAnnotations.measureShapeAnnotation && importedAnnotations.measureShapeAnnotation.length !== 0) {\n for (var i = 0; i < importedAnnotations.measureShapeAnnotation.length; i++) {\n pageCollections.measureShapeAnnotation.push(importedAnnotations.measureShapeAnnotation[parseInt(i.toString(), 10)]);\n }\n }\n if (importedAnnotations.stampAnnotations && importedAnnotations.stampAnnotations.length !== 0) {\n for (var i = 0; i < importedAnnotations.stampAnnotations.length; i++) {\n pageCollections.stampAnnotations.push(importedAnnotations.stampAnnotations[parseInt(i.toString(), 10)]);\n }\n }\n if (importedAnnotations.stickyNotesAnnotation && importedAnnotations.stickyNotesAnnotation.length !== 0) {\n for (var i = 0; i < importedAnnotations.stickyNotesAnnotation.length; i++) {\n pageCollections.stickyNotesAnnotation.push(importedAnnotations.stickyNotesAnnotation[parseInt(i.toString(), 10)]);\n }\n }\n if (importedAnnotations.freeTextAnnotation && importedAnnotations.freeTextAnnotation.length !== 0) {\n for (var i = 0; i < importedAnnotations.freeTextAnnotation.length; i++) {\n pageCollections.freeTextAnnotation.push(importedAnnotations.freeTextAnnotation[parseInt(i.toString(), 10)]);\n }\n }\n if (importedAnnotations.signatureAnnotation && importedAnnotations.signatureAnnotation.length !== 0) {\n for (var i = 0; i < importedAnnotations.signatureAnnotation.length; i++) {\n pageCollections.signatureAnnotation.push(importedAnnotations.signatureAnnotation[parseInt(i.toString(), 10)]);\n }\n }\n if (importedAnnotations.signatureInkAnnotation && importedAnnotations.signatureInkAnnotation.length !== 0) {\n for (var i = 0; i < importedAnnotations.signatureInkAnnotation.length; i++) {\n pageCollections.signatureInkAnnotation.push(importedAnnotations.signatureInkAnnotation[parseInt(i.toString(), 10)]);\n }\n }\n this.documentAnnotationCollections[parseInt(pageNumber.toString(), 10)] = pageCollections;\n }\n }\n };\n /**\n * @param pageIndex\n * @param pageCollections\n * @param pageIndex\n * @param pageCollections\n * @private\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.checkDocumentCollectionData = function (pageIndex, pageCollections) {\n // eslint-disable-next-line\n var importPageCollections;\n if (pageCollections) {\n importPageCollections = pageCollections;\n }\n else if (this.documentAnnotationCollections) {\n // eslint-disable-next-line\n var documetCollections = this.documentAnnotationCollections[pageIndex];\n if (documetCollections) {\n importPageCollections = cloneObject(documetCollections);\n }\n }\n if (importPageCollections) {\n // eslint-disable-next-line\n var textMarkupObject = window.sessionStorage.getItem(this.documentId + '_annotations_textMarkup');\n // eslint-disable-next-line\n var shapeObject = window.sessionStorage.getItem(this.documentId + '_annotations_shape');\n // eslint-disable-next-line\n var measureShapeObject = window.sessionStorage.getItem(this.documentId + '_annotations_shape_measure');\n // eslint-disable-next-line\n var stampObject = window.sessionStorage.getItem(this.documentId + '_annotations_stamp');\n // eslint-disable-next-line\n var stickyObject = window.sessionStorage.getItem(this.documentId + '_annotations_sticky');\n // eslint-disable-next-line\n var freeTextObject = window.sessionStorage.getItem(this.documentId + '_annotations_freetext');\n // eslint-disable-next-line\n var inkObject = window.sessionStorage.getItem(this.documentId + '_annotations_ink');\n // eslint-disable-next-line\n var signatureObject = window.sessionStorage.getItem(this.documentId + '_annotations_sign');\n if (this.isStorageExceed) {\n textMarkupObject = this.annotationStorage[this.documentId + '_annotations_textMarkup'];\n shapeObject = this.annotationStorage[this.documentId + '_annotations_shape'];\n measureShapeObject = this.annotationStorage[this.documentId + '_annotations_shape_measure'];\n stampObject = this.annotationStorage[this.documentId + '_annotations_stamp'];\n stickyObject = this.annotationStorage[this.documentId + '_annotations_sticky'];\n freeTextObject = this.annotationStorage[this.documentId + '_annotations_freetext'];\n inkObject = this.annotationStorage[this.documentId + '_annotations_ink'];\n signatureObject = this.annotationStorage[this.documentId + '_annotations_sign'];\n }\n if (importPageCollections.textMarkupAnnotation && importPageCollections.textMarkupAnnotation.length !== 0) {\n if (textMarkupObject) {\n var annotationObject = JSON.parse(textMarkupObject);\n if (annotationObject) {\n // eslint-disable-next-line max-len\n importPageCollections.textMarkupAnnotation = this.findImportedAnnotations(annotationObject, importPageCollections.textMarkupAnnotation, pageIndex);\n }\n }\n }\n if (importPageCollections.shapeAnnotation && importPageCollections.shapeAnnotation.length !== 0) {\n if (shapeObject) {\n var annotationObject = JSON.parse(shapeObject);\n if (annotationObject) {\n // eslint-disable-next-line max-len\n importPageCollections.shapeAnnotation = this.findImportedAnnotations(annotationObject, importPageCollections.shapeAnnotation, pageIndex);\n }\n }\n }\n if (importPageCollections.measureShapeAnnotation && importPageCollections.measureShapeAnnotation.length !== 0) {\n if (measureShapeObject) {\n var annotationObject = JSON.parse(measureShapeObject);\n if (annotationObject) {\n // eslint-disable-next-line max-len\n importPageCollections.measureShapeAnnotation = this.findImportedAnnotations(annotationObject, importPageCollections.measureShapeAnnotation, pageIndex);\n }\n }\n }\n if (importPageCollections.stampAnnotations && importPageCollections.stampAnnotations.length !== 0) {\n if (stampObject) {\n var annotationObject = JSON.parse(stampObject);\n if (annotationObject) {\n // eslint-disable-next-line max-len\n importPageCollections.stampAnnotations = this.findImportedAnnotations(annotationObject, importPageCollections.stampAnnotations, pageIndex);\n }\n }\n }\n if (importPageCollections.stickyNotesAnnotation && importPageCollections.stickyNotesAnnotation.length !== 0) {\n if (stickyObject) {\n var annotationObject = JSON.parse(stickyObject);\n if (annotationObject) {\n // eslint-disable-next-line max-len\n importPageCollections.stickyNotesAnnotation = this.findImportedAnnotations(annotationObject, importPageCollections.stickyNotesAnnotation, pageIndex);\n }\n }\n }\n if (importPageCollections.freeTextAnnotation && importPageCollections.freeTextAnnotation.length !== 0) {\n if (freeTextObject) {\n var annotationObject = JSON.parse(freeTextObject);\n if (annotationObject) {\n // eslint-disable-next-line max-len\n importPageCollections.freeTextAnnotation = this.findImportedAnnotations(annotationObject, importPageCollections.freeTextAnnotation, pageIndex);\n }\n }\n }\n if (importPageCollections.signatureInkAnnotation && importPageCollections.signatureInkAnnotation.length !== 0) {\n if (inkObject) {\n var annotationObject = JSON.parse(inkObject);\n if (annotationObject) {\n // eslint-disable-next-line max-len\n importPageCollections.signatureInkAnnotation = this.findImportedAnnotations(annotationObject, importPageCollections.signatureInkAnnotation, pageIndex);\n }\n }\n }\n if (importPageCollections.signatureAnnotation && importPageCollections.signatureAnnotation.length !== 0) {\n if (signatureObject) {\n var annotationObject = JSON.parse(inkObject);\n if (annotationObject) {\n // eslint-disable-next-line max-len\n importPageCollections.signatureAnnotation = this.findImportedAnnotations(annotationObject, importPageCollections.signatureAnnotation, pageIndex);\n }\n }\n }\n return importPageCollections;\n }\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.findImportedAnnotations = function (annotationCollection, importAnnotations, pageNumber) {\n // eslint-disable-next-line\n var pageCollections = null;\n for (var a = 0; a < annotationCollection.length; a++) {\n if (annotationCollection[parseInt(a.toString(), 10)].pageIndex === pageNumber) {\n pageCollections = annotationCollection[parseInt(a.toString(), 10)].annotations;\n }\n }\n if (pageCollections) {\n for (var i = 0; i < pageCollections.length; i++) {\n for (var j = 0; j < importAnnotations.length; j++) {\n if (pageCollections[parseInt(i.toString(), 10)].annotName === importAnnotations[parseInt(j.toString(), 10)].AnnotName) {\n importAnnotations.splice(j, 1);\n j = j - 1;\n }\n }\n }\n }\n pageCollections = null;\n return importAnnotations;\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.drawPageAnnotations = function (annotation, pageIndex, isNewlyAdded) {\n if (isNewlyAdded) {\n annotation = annotation[parseInt(pageIndex.toString(), 10)];\n }\n if (annotation) {\n if (annotation.textMarkupAnnotation && annotation.textMarkupAnnotation.length !== 0) {\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.documentId + '_annotations_textMarkup');\n if (this.isStorageExceed) {\n storeObject = this.annotationStorage[this.documentId + '_annotations_textMarkup'];\n }\n if (storeObject) {\n var annotObject = JSON.parse(storeObject);\n if (annotObject) {\n // eslint-disable-next-line max-len\n annotation.textMarkupAnnotation = this.checkAnnotationCollections(annotObject, annotation.textMarkupAnnotation, pageIndex);\n }\n }\n annotation.textMarkupAnnotation = this.checkAnnotationCommentsCollections(annotation.textMarkupAnnotation, pageIndex);\n if (annotation.textMarkupAnnotation.length !== 0) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.renderAnnotations(pageIndex, null, null, annotation.textMarkupAnnotation, null, true);\n }\n }\n if (annotation.shapeAnnotation && annotation.shapeAnnotation.length !== 0) {\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.documentId + '_annotations_shape');\n if (this.isStorageExceed) {\n storeObject = this.annotationStorage[this.documentId + '_annotations_shape'];\n }\n if (storeObject) {\n var annotObject = JSON.parse(storeObject);\n annotation.shapeAnnotation = this.checkAnnotationCollections(annotObject, annotation.shapeAnnotation, pageIndex);\n }\n annotation.shapeAnnotation = this.checkAnnotationCommentsCollections(annotation.shapeAnnotation, pageIndex);\n if (annotation.shapeAnnotation.length !== 0) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.renderAnnotations(pageIndex, annotation.shapeAnnotation, null, null, null, true);\n }\n }\n if (annotation.measureShapeAnnotation && annotation.measureShapeAnnotation.length !== 0) {\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.documentId + '_annotations_shape_measure');\n if (this.isStorageExceed) {\n storeObject = this.annotationStorage[this.documentId + '_annotations_shape_measure'];\n }\n if (storeObject) {\n var annotObject = JSON.parse(storeObject);\n // eslint-disable-next-line max-len\n annotation.measureShapeAnnotation = this.checkAnnotationCollections(annotObject, annotation.measureShapeAnnotation, pageIndex);\n }\n annotation.measureShapeAnnotation = this.checkAnnotationCommentsCollections(annotation.measureShapeAnnotation, pageIndex);\n if (annotation.measureShapeAnnotation.length !== 0) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.renderAnnotations(pageIndex, null, annotation.measureShapeAnnotation, null, null, true);\n }\n }\n if (annotation.stampAnnotations && annotation.stampAnnotations.length !== 0) {\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.documentId + '_annotations_stamp');\n if (this.isStorageExceed) {\n storeObject = this.annotationStorage[this.documentId + '_annotations_stamp'];\n }\n if (storeObject) {\n var annotObject = JSON.parse(storeObject);\n annotation.stampAnnotations = this.checkAnnotationCollections(annotObject, annotation.stampAnnotations, pageIndex);\n }\n annotation.stampAnnotations = this.checkAnnotationCommentsCollections(annotation.stampAnnotations, pageIndex);\n if (annotation.stampAnnotations.length !== 0) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stampAnnotationModule.renderStampAnnotations(annotation.stampAnnotations, pageIndex, null, true);\n }\n }\n if (annotation.stickyNotesAnnotation && annotation.stickyNotesAnnotation.length !== 0) {\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.documentId + '_annotations_sticky');\n if (this.isStorageExceed) {\n storeObject = this.annotationStorage[this.documentId + '_annotations_sticky'];\n }\n if (storeObject) {\n var annotObject = JSON.parse(storeObject);\n // eslint-disable-next-line max-len\n annotation.stickyNotesAnnotation = this.checkAnnotationCollections(annotObject, annotation.stickyNotesAnnotation, pageIndex);\n }\n annotation.stickyNotesAnnotation = this.checkAnnotationCommentsCollections(annotation.stickyNotesAnnotation, pageIndex);\n if (annotation.stickyNotesAnnotation.length !== 0) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.renderStickyNotesAnnotations(annotation.stickyNotesAnnotation, pageIndex);\n }\n }\n if (annotation.freeTextAnnotation && annotation.freeTextAnnotation.length !== 0) {\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.documentId + '_annotations_freetext');\n if (this.isStorageExceed) {\n storeObject = this.annotationStorage[this.documentId + '_annotations_freetext'];\n }\n if (storeObject) {\n var annotObject = JSON.parse(storeObject);\n annotation.freeTextAnnotation = this.checkAnnotationCollections(annotObject, annotation.freeTextAnnotation, pageIndex);\n }\n annotation.freeTextAnnotation = this.checkAnnotationCommentsCollections(annotation.freeTextAnnotation, pageIndex);\n if (annotation.freeTextAnnotation.length !== 0) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.freeTextAnnotationModule.renderFreeTextAnnotations(annotation.freeTextAnnotation, pageIndex, true);\n }\n }\n if (annotation.signatureAnnotation && annotation.signatureAnnotation.length !== 0) {\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.documentId + '_annotations_sign');\n var annotObject = JSON.parse(storeObject);\n if (annotObject) {\n annotation.signatureAnnotation = this.checkSignatureCollections(annotObject, annotation.signatureAnnotation, pageIndex);\n }\n this.signatureModule.renderExistingSignature(annotation.signatureAnnotation, pageIndex, true);\n }\n if (annotation.signatureInkAnnotation && annotation.signatureInkAnnotation.length !== 0) {\n // eslint-disable-next-line\n var storeObject = window.sessionStorage.getItem(this.documentId + '_annotations_ink');\n if (this.isStorageExceed) {\n storeObject = this.annotationStorage[this.documentId + '_annotations_ink'];\n }\n if (storeObject) {\n var annotObject = JSON.parse(storeObject);\n // eslint-disable-next-line max-len\n annotation.signatureInkAnnotation = this.checkAnnotationCollections(annotObject, annotation.signatureInkAnnotation, pageIndex);\n }\n annotation.signatureInkAnnotation = this.checkAnnotationCommentsCollections(annotation.signatureInkAnnotation, pageIndex);\n if (annotation.signatureInkAnnotation.length !== 0) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.inkAnnotationModule.renderExistingInkSignature(annotation.signatureInkAnnotation, pageIndex, true);\n }\n }\n }\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.checkSignatureCollections = function (annotationCollection, annotation, pageNumber) {\n // eslint-disable-next-line\n var pageCollections = null;\n for (var a = 0; a < annotationCollection.length; a++) {\n if (annotationCollection[parseInt(a.toString(), 10)].pageIndex === pageNumber) {\n pageCollections = annotationCollection[parseInt(a.toString(), 10)].annotations;\n }\n }\n if (pageCollections) {\n for (var i = 0; i < pageCollections.length; i++) {\n for (var j = 0; j < annotation.length; j++) {\n if (pageCollections[parseInt(i.toString(), 10)].signatureName === annotation[parseInt(j.toString(), 10)].SignatureName) {\n annotation.splice(j, 1);\n j = j - 1;\n }\n }\n }\n }\n pageCollections = null;\n return annotation;\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.checkAnnotationCollections = function (annotationCollection, annotation, pageNumber) {\n // eslint-disable-next-line\n var pageCollections = null;\n for (var a = 0; a < annotationCollection.length; a++) {\n if (annotationCollection[parseInt(a.toString(), 10)].pageIndex === pageNumber) {\n pageCollections = annotationCollection[parseInt(a.toString(), 10)].annotations;\n }\n }\n if (pageCollections) {\n for (var i = 0; i < pageCollections.length; i++) {\n for (var j = 0; j < annotation.length; j++) {\n if (pageCollections[parseInt(i.toString(), 10)].annotName === annotation[parseInt(j.toString(), 10)].AnnotName) {\n annotation.splice(j, 1);\n j = j - 1;\n }\n }\n }\n }\n pageCollections = null;\n return annotation;\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.checkAnnotationCommentsCollections = function (annotation, pageNumber) {\n if (this.annotationComments) {\n // eslint-disable-next-line\n var annotationCollections = this.annotationComments[pageNumber];\n annotationCollections = this.selectAnnotationCollections(annotationCollections);\n if (annotationCollections) {\n for (var i = 0; i < annotationCollections.length; i++) {\n for (var j = 0; j < annotation.length; j++) {\n if (annotationCollections[parseInt(i.toString(), 10)].AnnotName === annotation[parseInt(j.toString(), 10)].AnnotName) {\n annotation.splice(j, 1);\n j = j - 1;\n }\n }\n }\n }\n annotationCollections = null;\n }\n return annotation;\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.selectAnnotationCollections = function (pageAnnotations) {\n // eslint-disable-next-line\n var pageCollections = [];\n if (pageAnnotations) {\n if (pageAnnotations.textMarkupAnnotation && pageAnnotations.textMarkupAnnotation.length !== 0) {\n for (var i = 0; i < pageAnnotations.textMarkupAnnotation.length; i++) {\n pageCollections.push(pageAnnotations.textMarkupAnnotation[parseInt(i.toString(), 10)]);\n }\n }\n if (pageAnnotations.shapeAnnotation && pageAnnotations.shapeAnnotation.length !== 0) {\n for (var i = 0; i < pageAnnotations.shapeAnnotation.length; i++) {\n pageCollections.push(pageAnnotations.shapeAnnotation[parseInt(i.toString(), 10)]);\n }\n }\n if (pageAnnotations.measureShapeAnnotation && pageAnnotations.measureShapeAnnotation.length !== 0) {\n for (var i = 0; i < pageAnnotations.measureShapeAnnotation.length; i++) {\n pageCollections.push(pageAnnotations.measureShapeAnnotation[parseInt(i.toString(), 10)]);\n }\n }\n if (pageAnnotations.stampAnnotations && pageAnnotations.stampAnnotations.length !== 0) {\n for (var i = 0; i < pageAnnotations.stampAnnotations.length; i++) {\n pageCollections.push(pageAnnotations.stampAnnotations[parseInt(i.toString(), 10)]);\n }\n }\n if (pageAnnotations.stickyNotesAnnotation && pageAnnotations.stickyNotesAnnotation.length !== 0) {\n for (var i = 0; i < pageAnnotations.stickyNotesAnnotation.length; i++) {\n pageCollections.push(pageAnnotations.stickyNotesAnnotation[parseInt(i.toString(), 10)]);\n }\n }\n if (pageAnnotations.freeTextAnnotation && pageAnnotations.freeTextAnnotation.length !== 0) {\n for (var i = 0; i < pageAnnotations.freeTextAnnotation.length; i++) {\n pageCollections.push(pageAnnotations.freeTextAnnotation[parseInt(i.toString(), 10)]);\n }\n }\n if (pageAnnotations.signatureInkAnnotation && pageAnnotations.signatureInkAnnotation.length !== 0) {\n for (var i = 0; i < pageAnnotations.signatureInkAnnotation.length; i++) {\n pageCollections.push(pageAnnotations.signatureInkAnnotation[parseInt(i.toString(), 10)]);\n }\n }\n }\n return pageCollections;\n };\n PdfViewerBase.prototype.saveImportedAnnotations = function () {\n // eslint-disable-next-line\n var textMarkupObject = window.sessionStorage.getItem(this.documentId + '_annotations_textMarkup');\n // eslint-disable-next-line\n var shapeObject = window.sessionStorage.getItem(this.documentId + '_annotations_shape');\n // eslint-disable-next-line\n var measureShapeObject = window.sessionStorage.getItem(this.documentId + '_annotations_shape_measure');\n // eslint-disable-next-line\n var stampObject = window.sessionStorage.getItem(this.documentId + '_annotations_stamp');\n // eslint-disable-next-line\n var stickyObject = window.sessionStorage.getItem(this.documentId + '_annotations_sticky');\n // eslint-disable-next-line\n var freeTextObject = window.sessionStorage.getItem(this.documentId + '_annotations_freetext');\n // eslint-disable-next-line\n var inkObject = window.sessionStorage.getItem(this.documentId + '_annotations_ink');\n // eslint-disable-next-line\n var signatureObject = window.sessionStorage.getItem(this.documentId + '_annotations_sign');\n if (this.isStorageExceed) {\n textMarkupObject = this.annotationStorage[this.documentId + '_annotations_textMarkup'];\n shapeObject = this.annotationStorage[this.documentId + '_annotations_shape'];\n measureShapeObject = this.annotationStorage[this.documentId + '_annotations_shape_measure'];\n stampObject = this.annotationStorage[this.documentId + '_annotations_stamp'];\n stickyObject = this.annotationStorage[this.documentId + '_annotations_sticky'];\n freeTextObject = this.annotationStorage[this.documentId + '_annotations_freetext'];\n inkObject = this.annotationStorage[this.documentId + '_annotations_ink'];\n signatureObject = this.annotationStorage[this.documentId + '_annotations_sign'];\n }\n // eslint-disable-next-line max-len\n this.downloadCollections = { textMarkupObject: textMarkupObject, shapeObject: shapeObject, measureShapeObject: measureShapeObject, stampObject: stampObject, stickyObject: stickyObject, freeTextObject: freeTextObject, inkObject: inkObject, signatureObject: signatureObject };\n if (this.documentAnnotationCollections) {\n for (var i = 0; i < this.pageCount; i++) {\n if (this.documentAnnotationCollections[parseInt(i.toString(), 10)]) {\n // eslint-disable-next-line\n var pageCollections = cloneObject(this.documentAnnotationCollections[i]);\n pageCollections = this.checkDocumentCollectionData(i, pageCollections);\n this.savePageAnnotations(pageCollections, i);\n }\n }\n }\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.savePageAnnotations = function (annotation, pageIndex) {\n if (annotation.textMarkupAnnotation.length !== 0) {\n for (var s = 0; s < annotation.textMarkupAnnotation.length; s++) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.saveImportedTextMarkupAnnotations(annotation.textMarkupAnnotation[parseInt(s.toString(), 10)], pageIndex);\n }\n }\n if (annotation.shapeAnnotation.length !== 0) {\n for (var s = 0; s < annotation.shapeAnnotation.length; s++) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.shapeAnnotationModule.saveImportedShapeAnnotations(annotation.shapeAnnotation[parseInt(s.toString(), 10)], pageIndex);\n }\n }\n if (annotation.measureShapeAnnotation.length !== 0) {\n for (var s = 0; s < annotation.measureShapeAnnotation.length; s++) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.measureAnnotationModule.saveImportedMeasureAnnotations(annotation.measureShapeAnnotation[parseInt(s.toString(), 10)], pageIndex);\n }\n }\n if (annotation.stampAnnotations.length !== 0) {\n for (var s = 0; s < annotation.stampAnnotations.length; s++) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stampAnnotationModule.saveImportedStampAnnotations(annotation.stampAnnotations[parseInt(s.toString(), 10)], pageIndex);\n }\n }\n if (annotation.stickyNotesAnnotation.length !== 0) {\n for (var s = 0; s < annotation.stickyNotesAnnotation.length; s++) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.saveImportedStickyNotesAnnotations(annotation.stickyNotesAnnotation[parseInt(s.toString(), 10)], pageIndex);\n }\n }\n if (annotation.freeTextAnnotation.length !== 0) {\n for (var s = 0; s < annotation.freeTextAnnotation.length; s++) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.freeTextAnnotationModule.saveImportedFreeTextAnnotations(annotation.freeTextAnnotation[parseInt(s.toString(), 10)], pageIndex);\n }\n }\n if (annotation.signatureInkAnnotation.length !== 0) {\n for (var s = 0; s < annotation.signatureInkAnnotation.length; s++) {\n this.pdfViewer.annotationModule.inkAnnotationModule.saveImportedInkAnnotation(annotation.signatureInkAnnotation[parseInt(s.toString(), 10)], pageIndex);\n }\n }\n };\n PdfViewerBase.prototype.updateDocumentAnnotationCollections = function () {\n window.sessionStorage.removeItem(this.documentId + '_annotations_textMarkup');\n window.sessionStorage.removeItem(this.documentId + '_annotations_shape');\n window.sessionStorage.removeItem(this.documentId + '_annotations_shape_measure');\n window.sessionStorage.removeItem(this.documentId + '_annotations_stamp');\n window.sessionStorage.removeItem(this.documentId + '_annotations_sticky');\n window.sessionStorage.removeItem(this.documentId + '_annotations_freetext');\n window.sessionStorage.removeItem(this.documentId + '_annotations_ink');\n if (this.downloadCollections) {\n if (this.isStorageExceed) {\n this.annotationStorage[this.documentId + '_annotations_textMarkup'] = this.downloadCollections.textMarkupObject;\n this.annotationStorage[this.documentId + '_annotations_shape'] = this.downloadCollections.shapeObject;\n this.annotationStorage[this.documentId + '_annotations_shape_measure'] = this.downloadCollections.measureShapeObject;\n this.annotationStorage[this.documentId + '_annotations_stamp'] = this.downloadCollections.stampObject;\n this.annotationStorage[this.documentId + '_annotations_sticky'] = this.downloadCollections.stickyObject;\n this.annotationStorage[this.documentId + '_annotations_freetext'] = this.downloadCollections.freeTextObject;\n this.annotationStorage[this.documentId + '_annotations_ink'] = this.downloadCollections.inkObject;\n }\n else {\n if (this.downloadCollections.textMarkupObject) {\n window.sessionStorage.setItem(this.documentId + '_annotations_textMarkup', this.downloadCollections.textMarkupObject);\n }\n if (this.downloadCollections.shapeObject) {\n window.sessionStorage.setItem(this.documentId + '_annotations_shape', this.downloadCollections.shapeObject);\n }\n if (this.downloadCollections.measureShapeObject) {\n window.sessionStorage.setItem(this.documentId + '_annotations_shape_measure', this.downloadCollections.measureShapeObject);\n }\n if (this.downloadCollections.stampObject) {\n window.sessionStorage.setItem(this.documentId + '_annotations_stamp', this.downloadCollections.stampObject);\n }\n if (this.downloadCollections.stickyObject) {\n window.sessionStorage.setItem(this.documentId + '_annotations_sticky', this.downloadCollections.stickyObject);\n }\n if (this.downloadCollections.freeTextObject) {\n window.sessionStorage.setItem(this.documentId + '_annotations_freetext', this.downloadCollections.freeTextObject);\n }\n if (this.downloadCollections.inkObject) {\n window.sessionStorage.setItem(this.documentId + '_annotations_ink', this.downloadCollections.inkObject);\n }\n }\n }\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.createAnnotationJsonData = function () {\n // eslint-disable-next-line\n var annotationCollection = {};\n var textMarkupAnnotationCollection;\n var shapeAnnotations;\n var calibrateAnnotations;\n var stampAnnotationCollection;\n var stickyAnnotationCollection;\n var freeTextAnnotationCollection;\n var signaturCollection;\n var signaturInkCollection;\n this.saveImportedAnnotations();\n if (this.isTextMarkupAnnotationModule()) {\n this.isJsonExported = true;\n // eslint-disable-next-line max-len\n textMarkupAnnotationCollection = this.pdfViewer.annotationModule.textMarkupAnnotationModule.saveTextMarkupAnnotations();\n }\n if (this.isShapeAnnotationModule()) {\n this.isJsonExported = true;\n // eslint-disable-next-line max-len\n shapeAnnotations = this.pdfViewer.annotationModule.shapeAnnotationModule.saveShapeAnnotations();\n }\n if (this.isCalibrateAnnotationModule()) {\n this.isJsonExported = true;\n // eslint-disable-next-line max-len\n calibrateAnnotations = this.pdfViewer.annotationModule.measureAnnotationModule.saveMeasureShapeAnnotations();\n }\n if (this.isStampAnnotationModule()) {\n // eslint-disable-next-line max-len\n stampAnnotationCollection = this.pdfViewer.annotationModule.stampAnnotationModule.saveStampAnnotations();\n }\n if (this.isCommentAnnotationModule()) {\n // eslint-disable-next-line max-len\n stickyAnnotationCollection = this.pdfViewer.annotationModule.stickyNotesAnnotationModule.saveStickyAnnotations();\n }\n if (this.isFreeTextAnnotationModule()) {\n // eslint-disable-next-line max-len\n freeTextAnnotationCollection = this.pdfViewer.annotationModule.freeTextAnnotationModule.saveFreeTextAnnotations();\n }\n if (this.isInkAnnotationModule()) {\n // eslint-disable-next-line\n signaturInkCollection = this.pdfViewer.annotationModule.inkAnnotationModule.saveInkSignature();\n }\n if (this.pdfViewer.isSignatureEditable) {\n // eslint-disable-next-line\n signaturCollection = this.signatureModule.saveSignature();\n }\n else {\n // eslint-disable-next-line\n var annotations = new Array();\n for (var j = 0; j < this.pageCount; j++) {\n annotations[parseInt(j.toString(), 10)] = [];\n }\n signaturCollection = JSON.stringify(annotations);\n }\n for (var s = 0; s < this.pageCount; s++) {\n // eslint-disable-next-line max-len\n var annotation = {\n textMarkupAnnotation: JSON.parse(textMarkupAnnotationCollection)[parseInt(s.toString(), 10)], shapeAnnotation: JSON.parse(shapeAnnotations)[parseInt(s.toString(), 10)],\n measureShapeAnnotation: JSON.parse(calibrateAnnotations)[parseInt(s.toString(), 10)], stampAnnotations: JSON.parse(stampAnnotationCollection)[parseInt(s.toString(), 10)],\n // eslint-disable-next-line max-len\n stickyNotesAnnotation: JSON.parse(stickyAnnotationCollection)[parseInt(s.toString(), 10)], freeTextAnnotation: JSON.parse(freeTextAnnotationCollection)[parseInt(s.toString(), 10)], signatureAnnotation: JSON.parse(signaturCollection)[parseInt(s.toString(), 10)], signatureInkAnnotation: JSON.parse(signaturInkCollection)[parseInt(s.toString(), 10)]\n };\n annotationCollection[parseInt(s.toString(), 10)] = annotation;\n }\n return JSON.stringify(annotationCollection);\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.combineImportedData = function (excistingImportAnnotation, newlyImportAnnotation) {\n for (var i = 0; i < this.pageCount; i++) {\n if (newlyImportAnnotation[parseInt(i.toString(), 10)]) {\n if (excistingImportAnnotation[parseInt(i.toString(), 10)]) {\n if (newlyImportAnnotation[parseInt(i.toString(), 10)].textMarkupAnnotation && newlyImportAnnotation[parseInt(i.toString(), 10)].textMarkupAnnotation.length !== 0) {\n if (excistingImportAnnotation[parseInt(i.toString(), 10)].textMarkupAnnotation) {\n // eslint-disable-next-line max-len\n newlyImportAnnotation[parseInt(i.toString(), 10)].textMarkupAnnotation = this.checkImportedData(excistingImportAnnotation[parseInt(i.toString(), 10)].textMarkupAnnotation, newlyImportAnnotation[parseInt(i.toString(), 10)].textMarkupAnnotation, i);\n if (newlyImportAnnotation[parseInt(i.toString(), 10)].textMarkupAnnotation.length !== 0) {\n // eslint-disable-next-line max-len\n excistingImportAnnotation[parseInt(i.toString(), 10)].textMarkupAnnotation = excistingImportAnnotation[parseInt(i.toString(), 10)].textMarkupAnnotation.concat(newlyImportAnnotation[parseInt(i.toString(), 10)].textMarkupAnnotation);\n }\n }\n else {\n excistingImportAnnotation[parseInt(i.toString(), 10)].textMarkupAnnotation = newlyImportAnnotation[parseInt(i.toString(), 10)].textMarkupAnnotation;\n }\n }\n if (newlyImportAnnotation[parseInt(i.toString(), 10)].shapeAnnotation && newlyImportAnnotation[parseInt(i.toString(), 10)].shapeAnnotation.length !== 0) {\n if (excistingImportAnnotation[parseInt(i.toString(), 10)].shapeAnnotation) {\n // eslint-disable-next-line max-len\n newlyImportAnnotation[parseInt(i.toString(), 10)].shapeAnnotation = this.checkImportedData(excistingImportAnnotation[parseInt(i.toString(), 10)].shapeAnnotation, newlyImportAnnotation[parseInt(i.toString(), 10)].shapeAnnotation, i);\n if (newlyImportAnnotation[parseInt(i.toString(), 10)].shapeAnnotation.length !== 0) {\n // eslint-disable-next-line max-len\n excistingImportAnnotation[parseInt(i.toString(), 10)].shapeAnnotation = excistingImportAnnotation[parseInt(i.toString(), 10)].shapeAnnotation.concat(newlyImportAnnotation[parseInt(i.toString(), 10)].shapeAnnotation);\n }\n }\n else {\n excistingImportAnnotation[parseInt(i.toString(), 10)].shapeAnnotation = newlyImportAnnotation[parseInt(i.toString(), 10)].shapeAnnotation;\n }\n }\n if (newlyImportAnnotation[parseInt(i.toString(), 10)].measureShapeAnnotation && newlyImportAnnotation[parseInt(i.toString(), 10)].measureShapeAnnotation.length !== 0) {\n if (excistingImportAnnotation[parseInt(i.toString(), 10)].measureShapeAnnotation) {\n // eslint-disable-next-line max-len\n newlyImportAnnotation[parseInt(i.toString(), 10)].measureShapeAnnotation = this.checkImportedData(excistingImportAnnotation[parseInt(i.toString(), 10)].measureShapeAnnotation, newlyImportAnnotation[parseInt(i.toString(), 10)].measureShapeAnnotation, i);\n if (newlyImportAnnotation[parseInt(i.toString(), 10)].measureShapeAnnotation.length !== 0) {\n // eslint-disable-next-line max-len\n excistingImportAnnotation[parseInt(i.toString(), 10)].measureShapeAnnotation = excistingImportAnnotation[parseInt(i.toString(), 10)].measureShapeAnnotation.concat(newlyImportAnnotation[parseInt(i.toString(), 10)].measureShapeAnnotation);\n }\n }\n else {\n excistingImportAnnotation[parseInt(i.toString(), 10)].measureShapeAnnotation = newlyImportAnnotation[parseInt(i.toString(), 10)].measureShapeAnnotation;\n }\n }\n if (newlyImportAnnotation[parseInt(i.toString(), 10)].stampAnnotations && newlyImportAnnotation[parseInt(i.toString(), 10)].stampAnnotations.length !== 0) {\n if (excistingImportAnnotation[parseInt(i.toString(), 10)].stampAnnotations) {\n // eslint-disable-next-line max-len\n newlyImportAnnotation[parseInt(i.toString(), 10)].stampAnnotations = this.checkImportedData(excistingImportAnnotation[parseInt(i.toString(), 10)].stampAnnotations, newlyImportAnnotation[parseInt(i.toString(), 10)].stampAnnotations, i);\n if (newlyImportAnnotation[parseInt(i.toString(), 10)].stampAnnotations.length !== 0) {\n // eslint-disable-next-line max-len\n excistingImportAnnotation[parseInt(i.toString(), 10)].stampAnnotations = excistingImportAnnotation[parseInt(i.toString(), 10)].stampAnnotations.concat(newlyImportAnnotation[parseInt(i.toString(), 10)].stampAnnotations);\n }\n }\n else {\n excistingImportAnnotation[parseInt(i.toString(), 10)].stampAnnotations = newlyImportAnnotation[parseInt(i.toString(), 10)].stampAnnotations;\n }\n }\n if (newlyImportAnnotation[parseInt(i.toString(), 10)].stickyNotesAnnotation && newlyImportAnnotation[parseInt(i.toString(), 10)].stickyNotesAnnotation.length !== 0) {\n if (excistingImportAnnotation[parseInt(i.toString(), 10)].stickyNotesAnnotation) {\n // eslint-disable-next-line max-len\n newlyImportAnnotation[parseInt(i.toString(), 10)].stickyNotesAnnotation = this.checkImportedData(excistingImportAnnotation[parseInt(i.toString(), 10)].stickyNotesAnnotation, newlyImportAnnotation[parseInt(i.toString(), 10)].stickyNotesAnnotation, i);\n if (newlyImportAnnotation[parseInt(i.toString(), 10)].stickyNotesAnnotation.length !== 0) {\n // eslint-disable-next-line max-len\n excistingImportAnnotation[parseInt(i.toString(), 10)].stickyNotesAnnotation = excistingImportAnnotation[parseInt(i.toString(), 10)].stickyNotesAnnotation.concat(newlyImportAnnotation[parseInt(i.toString(), 10)].stickyNotesAnnotation);\n }\n }\n else {\n excistingImportAnnotation[parseInt(i.toString(), 10)].stickyNotesAnnotation = newlyImportAnnotation[parseInt(i.toString(), 10)].stickyNotesAnnotation;\n }\n }\n if (newlyImportAnnotation[parseInt(i.toString(), 10)].freeTextAnnotation && newlyImportAnnotation[parseInt(i.toString(), 10)].freeTextAnnotation.length !== 0) {\n if (excistingImportAnnotation[parseInt(i.toString(), 10)].freeTextAnnotation) {\n // eslint-disable-next-line max-len\n newlyImportAnnotation[parseInt(i.toString(), 10)].freeTextAnnotation = this.checkImportedData(excistingImportAnnotation[parseInt(i.toString(), 10)].freeTextAnnotation, newlyImportAnnotation[parseInt(i.toString(), 10)].freeTextAnnotation, i);\n if (newlyImportAnnotation[parseInt(i.toString(), 10)].freeTextAnnotation.length !== 0) {\n // eslint-disable-next-line max-len\n excistingImportAnnotation[parseInt(i.toString(), 10)].freeTextAnnotation = excistingImportAnnotation[parseInt(i.toString(), 10)].freeTextAnnotation.concat(newlyImportAnnotation[parseInt(i.toString(), 10)].freeTextAnnotation);\n }\n }\n else {\n excistingImportAnnotation[parseInt(i.toString(), 10)].freeTextAnnotation = newlyImportAnnotation[parseInt(i.toString(), 10)].freeTextAnnotation;\n }\n }\n if (newlyImportAnnotation[parseInt(i.toString(), 10)].signatureInkAnnotation && newlyImportAnnotation[parseInt(i.toString(), 10)].signatureInkAnnotation.length !== 0) {\n if (excistingImportAnnotation[parseInt(i.toString(), 10)].signatureInkAnnotation) {\n // eslint-disable-next-line max-len\n newlyImportAnnotation[parseInt(i.toString(), 10)].signatureInkAnnotation = this.checkImportedData(excistingImportAnnotation[parseInt(i.toString(), 10)].signatureInkAnnotation, newlyImportAnnotation[parseInt(i.toString(), 10)].signatureInkAnnotation, i);\n if (newlyImportAnnotation[parseInt(i.toString(), 10)].signatureInkAnnotation.length !== 0) {\n // eslint-disable-next-line max-len\n excistingImportAnnotation[parseInt(i.toString(), 10)].signatureInkAnnotation = excistingImportAnnotation[parseInt(i.toString(), 10)].signatureInkAnnotation.concat(newlyImportAnnotation[parseInt(i.toString(), 10)].signatureInkAnnotation);\n }\n }\n else {\n excistingImportAnnotation[parseInt(i.toString(), 10)].signatureInkAnnotation = newlyImportAnnotation[parseInt(i.toString(), 10)].signatureInkAnnotation;\n }\n }\n }\n else {\n // eslint-disable-next-line max-len\n var annotation = {\n // eslint-disable-next-line max-len\n textMarkupAnnotation: newlyImportAnnotation[parseInt(i.toString(), 10)].textMarkupAnnotation, shapeAnnotation: newlyImportAnnotation[parseInt(i.toString(), 10)].shapeAnnotation,\n // eslint-disable-next-line max-len\n measureShapeAnnotation: newlyImportAnnotation[parseInt(i.toString(), 10)].measureShapeAnnotation, stampAnnotations: newlyImportAnnotation[parseInt(i.toString(), 10)].stampAnnotations,\n // eslint-disable-next-line max-len\n stickyNotesAnnotation: newlyImportAnnotation[parseInt(i.toString(), 10)].stickyNotesAnnotation, freeTextAnnotation: newlyImportAnnotation[parseInt(i.toString(), 10)].freeTextAnnotation,\n signatureInkAnnotation: newlyImportAnnotation[parseInt(i.toString(), 10)].signatureInkAnnotation\n };\n excistingImportAnnotation[parseInt(i.toString(), 10)] = annotation;\n }\n }\n }\n return excistingImportAnnotation;\n };\n /**\n * @private\n * @returns {boolean} - Returns true or false.\n */\n PdfViewerBase.prototype.updateExportItem = function () {\n // eslint-disable-next-line\n var shapeObject = window.sessionStorage.getItem(this.documentId + '_annotations_shape');\n // eslint-disable-next-line\n var measureObject = window.sessionStorage.getItem(this.documentId + '_annotations_shape_measure');\n // eslint-disable-next-line\n var stampObject = window.sessionStorage.getItem(this.documentId + '_annotations_stamp');\n // eslint-disable-next-line\n var stickyObject = window.sessionStorage.getItem(this.documentId + '_annotations_sticky');\n // eslint-disable-next-line\n var textMarkupObject = window.sessionStorage.getItem(this.documentId + '_annotations_textMarkup');\n // eslint-disable-next-line\n var freeTextObject = window.sessionStorage.getItem(this.documentId + '_annotations_freetext');\n var isSignatureEditable = false;\n // eslint-disable-next-line\n var inkAnnotationObjct = window.sessionStorage.getItem(this.documentId + '_annotations_ink');\n if (this.pdfViewer.isSignatureEditable) {\n // eslint-disable-next-line\n var signatureObject = window.sessionStorage.getItem(this.documentId + '_annotations_sign');\n if (signatureObject) {\n isSignatureEditable = true;\n }\n }\n // eslint-disable-next-line max-len\n if (shapeObject || measureObject || stampObject || stickyObject || textMarkupObject || freeTextObject || this.isImportAction || this.isStorageExceed || isSignatureEditable || inkAnnotationObjct) {\n return true;\n }\n else {\n return false;\n }\n };\n PdfViewerBase.prototype.isFreeTextAnnotation = function (annotations) {\n var resut = false;\n if (annotations && annotations.length > 0) {\n resut = annotations.some(function (s) { return s.shapeAnnotationType === 'FreeText' && s.subject === 'Text Box'; });\n }\n return resut;\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.checkImportedData = function (existingCollection, newCollection, pageIndex) {\n for (var i = 0; i < existingCollection.length; i++) {\n for (var j = 0; j < newCollection.length; j++) {\n if (existingCollection[parseInt(i.toString(), 10)].AnnotName === newCollection[parseInt(j.toString(), 10)].AnnotName) {\n var len = this.pdfViewer.annotationCollection.length;\n for (var x = 0; x < len; x++) {\n if (this.pdfViewer.annotationCollection[parseInt(x.toString(), 10)].annotationId === newCollection[parseInt(j.toString(), 10)].AnnotName) {\n // To update the comment panel values in a collections while importing the annotation with the same name. (EJ2-62092)\n this.pdfViewer.annotationCollection[parseInt(x.toString(), 10)].comments = this.pdfViewer.annotationModule.getAnnotationComments(newCollection[parseInt(j.toString(), 10)].Comments, newCollection[parseInt(j.toString(), 10)], newCollection[parseInt(j.toString(), 10)].Author);\n this.pdfViewer.annotationCollection[parseInt(x.toString(), 10)].review = { state: newCollection[parseInt(j.toString(), 10)].State, stateModel: newCollection[parseInt(j.toString(), 10)].StateModel, modifiedDate: newCollection[parseInt(j.toString(), 10)].ModifiedDate, author: newCollection[parseInt(j.toString(), 10)].Author };\n this.pdfViewer.annotationCollection[parseInt(x.toString(), 10)].note = newCollection[parseInt(j.toString(), 10)].Note;\n var annot = this.pdfViewer.annotationCollection[parseInt(x.toString(), 10)];\n if (existingCollection[parseInt(i.toString(), 10)].AnnotType === \"shape\" && this.pdfViewer.annotationModule.shapeAnnotationModule) {\n this.documentAnnotationCollections[parseInt(pageIndex.toString(), 10)].shapeAnnotation[parseInt(i.toString(), 10)] = newCollection[parseInt(j.toString(), 10)];\n this.updateAnnotationsInSessionStorage(newCollection[parseInt(j.toString(), 10)], annot, \"_annotations_shape\");\n }\n else if (existingCollection[parseInt(i.toString(), 10)].AnnotType === \"textMarkup\" && this.pdfViewer.annotationModule.textMarkupAnnotationModule) {\n this.documentAnnotationCollections[parseInt(pageIndex.toString(), 10)].textMarkupAnnotation[parseInt(i.toString(), 10)] = newCollection[parseInt(j.toString(), 10)];\n this.updateAnnotationsInSessionStorage(newCollection[parseInt(j.toString(), 10)], annot, \"_annotations_textMarkup\");\n }\n else if (existingCollection[parseInt(i.toString(), 10)].AnnotType === \"shape_measure\" && this.pdfViewer.annotationModule.measureAnnotationModule) {\n this.documentAnnotationCollections[parseInt(pageIndex.toString(), 10)].measureShapeAnnotation[parseInt(i.toString(), 10)] = newCollection[parseInt(j.toString(), 10)];\n this.updateAnnotationsInSessionStorage(newCollection[parseInt(j.toString(), 10)], annot, \"_annotations_shape_measure\");\n }\n else if (existingCollection[parseInt(i.toString(), 10)].AnnotType === \"stamp\" && this.pdfViewer.annotationModule.stampAnnotationModule) {\n this.documentAnnotationCollections[parseInt(pageIndex.toString(), 10)].stampAnnotations[parseInt(i.toString(), 10)] = newCollection[parseInt(j.toString(), 10)];\n this.updateAnnotationsInSessionStorage(newCollection[parseInt(j.toString(), 10)], annot, \"_annotations_stamp\");\n }\n else if (existingCollection[parseInt(i.toString(), 10)].AnnotType === \"freeText\" && this.pdfViewer.annotationModule.freeTextAnnotationModule) {\n this.documentAnnotationCollections[parseInt(pageIndex.toString(), 10)].freeTextAnnotation[parseInt(i.toString(), 10)] = newCollection[parseInt(j.toString(), 10)];\n this.updateAnnotationsInSessionStorage(newCollection[parseInt(j.toString(), 10)], annot, \"_annotations_freetext\");\n }\n else if (existingCollection[parseInt(i.toString(), 10)].AnnotType === \"ink\" && this.pdfViewer.annotationModule.inkAnnotationModule) {\n this.documentAnnotationCollections[parseInt(pageIndex.toString(), 10)].signatureInkAnnotation[parseInt(i.toString(), 10)] = newCollection[parseInt(j.toString(), 10)];\n this.updateAnnotationsInSessionStorage(newCollection[parseInt(j.toString(), 10)], annot, \"_annotations_ink\");\n }\n else if (existingCollection[parseInt(i.toString(), 10)].AnnotType === \"sticky\") {\n this.documentAnnotationCollections[parseInt(pageIndex.toString(), 10)].stickyNotesAnnotation[parseInt(i.toString(), 10)] = newCollection[parseInt(j.toString(), 10)];\n this.updateAnnotationsInSessionStorage(newCollection[parseInt(j.toString(), 10)], annot, \"_annotations_sticky\");\n }\n break;\n }\n }\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.createCommentControlPanel(newCollection[parseInt(j.toString(), 10)], (pageIndex + 1), null, null, true);\n newCollection.splice(j, 1);\n j = j - 1;\n }\n }\n }\n if (this.annotationComments) {\n // eslint-disable-next-line\n var annotationCollections = this.annotationComments[pageIndex];\n annotationCollections = this.selectAnnotationCollections(annotationCollections);\n if (annotationCollections) {\n for (var i = 0; i < annotationCollections.length; i++) {\n for (var j = 0; j < newCollection.length; j++) {\n if (annotationCollections[parseInt(i.toString(), 10)].AnnotName === newCollection[parseInt(j.toString(), 10)].AnnotName) {\n newCollection.splice(j, 1);\n j = j - 1;\n }\n }\n }\n }\n }\n return newCollection;\n };\n // To update the comment panel values in a session storage while importing the annotation with the same name. (EJ2-62092)\n PdfViewerBase.prototype.updateAnnotationsInSessionStorage = function (newCollection, annot, type) {\n var annotation = window.sessionStorage.getItem(this.documentId + type);\n var annotObject = JSON.parse(annotation);\n if (annotObject) {\n for (var b = 0; b < annotObject.length; b++) {\n if (annotObject[parseInt(b.toString(), 10)].annotations) {\n for (var z = 0; z < annotObject[parseInt(b.toString(), 10)].annotations.length; z++) {\n if (annotObject[parseInt(b.toString(), 10)].annotations[parseInt(z.toString(), 10)].annotName === newCollection.AnnotName) {\n annotObject[parseInt(b.toString(), 10)].annotations[parseInt(z.toString(), 10)].comments = annot.comments;\n annotObject[parseInt(b.toString(), 10)].annotations[parseInt(z.toString(), 10)].review = annot.review;\n annotObject[parseInt(b.toString(), 10)].annotations[parseInt(z.toString(), 10)].note = annot.note;\n break;\n }\n }\n }\n }\n window.sessionStorage.setItem(this.documentId + type, JSON.stringify(annotObject));\n }\n };\n /**\n * @param points\n * @private\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.checkAnnotationWidth = function (points) {\n var width = 0;\n var height = 0;\n var minWidth;\n var maxWidth;\n var minHeight;\n var maxHeight;\n for (var i = 0; i < points.length; i++) {\n if (!minWidth) {\n minWidth = points[parseInt(i.toString(), 10)].x;\n maxWidth = points[parseInt(i.toString(), 10)].x;\n minHeight = points[parseInt(i.toString(), 10)].y;\n maxHeight = points[parseInt(i.toString(), 10)].y;\n }\n else {\n if (minWidth > points[parseInt(i.toString(), 10)].x) {\n minWidth = points[parseInt(i.toString(), 10)].x;\n }\n else if (maxWidth < points[parseInt(i.toString(), 10)].x) {\n maxWidth = points[parseInt(i.toString(), 10)].x;\n }\n if (minHeight > points[parseInt(i.toString(), 10)].y) {\n minHeight = points[parseInt(i.toString(), 10)].y;\n }\n else if (maxHeight < points[parseInt(i.toString(), 10)].y) {\n maxHeight = points[parseInt(i.toString(), 10)].y;\n }\n }\n }\n width = maxWidth - minWidth;\n height = maxHeight - minHeight;\n return { width: width, height: height };\n };\n PdfViewerBase.prototype.deleteAnnotations = function () {\n if (this.pdfViewer.annotationModule) {\n this.pdfViewer.annotations = [];\n this.pdfViewer.zIndexTable = [];\n this.pdfViewer.annotationCollection = [];\n this.pdfViewer.signatureCollection = [];\n // eslint-disable-next-line\n var annotationCollection = this.createAnnotationsCollection();\n this.annotationComments = annotationCollection;\n this.documentAnnotationCollections = annotationCollection;\n this.annotationRenderredList = [];\n window.sessionStorage.removeItem(this.documentId + '_annotations_shape');\n window.sessionStorage.removeItem(this.documentId + '_annotations_shape_measure');\n window.sessionStorage.removeItem(this.documentId + '_annotations_stamp');\n window.sessionStorage.removeItem(this.documentId + '_annotations_sticky');\n window.sessionStorage.removeItem(this.documentId + '_annotations_textMarkup');\n window.sessionStorage.removeItem(this.documentId + '_annotations_freetext');\n window.sessionStorage.removeItem(this.documentId + '_annotations_sign');\n window.sessionStorage.removeItem(this.documentId + '_annotations_ink');\n for (var i = 0; i < this.pageCount; i++) {\n this.pdfViewer.annotationModule.renderAnnotations(i, null, null, null);\n this.pdfViewer.renderDrawing(undefined, i);\n this.pdfViewer.clearSelection(i);\n var accordionContent = document.getElementById(this.pdfViewer.element.id + '_accordionContainer' + (i + 1));\n if (accordionContent) {\n accordionContent.remove();\n }\n // eslint-disable-next-line max-len\n var accordionContentContainer = document.getElementById(this.pdfViewer.element.id + '_accordionContentContainer');\n if (accordionContentContainer) {\n if (accordionContentContainer.childElementCount === 0) {\n accordionContentContainer.style.display = 'none';\n if (document.getElementById(this.pdfViewer.element.id + '_commentsPanelText')) {\n // eslint-disable-next-line max-len\n this.navigationPane.annotationMenuObj.enableItems([this.pdfViewer.localeObj.getConstant('Export Annotations')], false);\n document.getElementById(this.pdfViewer.element.id + '_commentsPanelText').style.display = 'block';\n }\n }\n }\n }\n this.isImportedAnnotation = false;\n this.isImportAction = false;\n this.importedAnnotation = [];\n this.annotationPageList = [];\n this.pdfViewer.annotationModule.freeTextAnnotationModule.freeTextPageNumbers = [];\n this.pdfViewer.annotationModule.stampAnnotationModule.stampPageNumber = [];\n this.pdfViewer.annotation.inkAnnotationModule.inkAnnotationindex = [];\n this.isAnnotationCollectionRemoved = true;\n }\n };\n /**\n * @param pageNumber\n * @param isObject\n * @param pageNumber\n * @param isObject\n * @private\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.createAnnotationsCollection = function (pageNumber, isObject) {\n // eslint-disable-next-line\n var annotationCollectionList = [];\n if (!isObject) {\n for (var i = 0; i < this.pageCount; i++) {\n var annotation = {\n // eslint-disable-next-line max-len\n textMarkupAnnotation: [], shapeAnnotation: [], measureShapeAnnotation: [], stampAnnotations: [], stickyNotesAnnotation: [], freeTextAnnotation: [], signatureAnnotation: [], signatureInkAnnotation: []\n };\n annotationCollectionList.push(annotation);\n }\n }\n else {\n annotationCollectionList = {};\n var annotation = {\n // eslint-disable-next-line max-len\n textMarkupAnnotation: [], shapeAnnotation: [], measureShapeAnnotation: [], stampAnnotations: [], stickyNotesAnnotation: [], freeTextAnnotation: [], signatureAnnotation: [], signatureInkAnnotation: []\n };\n annotationCollectionList[parseInt(pageNumber.toString(), 10)] = annotation;\n }\n return annotationCollectionList;\n };\n /**\n * @param importAnnotation\n * @private\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.addAnnotation = function (importAnnotation) {\n // eslint-disable-next-line\n var pdfAnnotation = {};\n // eslint-disable-next-line\n var documentCollections;\n if (importAnnotation) {\n var isAnnotationObject = false;\n var annotationCount = 1;\n if (importAnnotation.shapeAnnotationType || importAnnotation.author) {\n isAnnotationObject = true;\n documentCollections = this.createAnnotationsCollection(importAnnotation.pageNumber, true);\n }\n else {\n if (importAnnotation.length) {\n annotationCount = importAnnotation.length;\n documentCollections = this.createAnnotationsCollection();\n }\n else {\n isAnnotationObject = true;\n documentCollections = this.createAnnotationsCollection(importAnnotation.pageNumber, true);\n }\n }\n for (var a = 0; a < annotationCount; a++) {\n // eslint-disable-next-line\n var annotation = void 0;\n if (isAnnotationObject) {\n annotation = importAnnotation;\n }\n else {\n annotation = importAnnotation[parseInt(a.toString(), 10)];\n }\n // eslint-disable-next-line\n var newAnnotation = {};\n newAnnotation.ShapeAnnotationType = annotation.shapeAnnotationType;\n newAnnotation.AnnotationAddMode = annotation.annotationAddMode;\n newAnnotation.Author = annotation.author;\n newAnnotation.AnnotationSelectorSettings = annotation.annotationSelectorSettings;\n newAnnotation.AnnotationSettings = annotation.annotationSettings;\n newAnnotation.PageNumber = annotation.pageNumber;\n newAnnotation.ModifiedDate = annotation.modifiedDate;\n newAnnotation.Subject = annotation.subject;\n newAnnotation.Note = annotation.note;\n newAnnotation.AnnotName = annotation.annotationId;\n newAnnotation.IsCommentLock = annotation.isCommentLock;\n newAnnotation.Comments = annotation.comments;\n if (annotation.comments && annotation.comments.length > 0) {\n // eslint-disable-next-line\n var comments = [];\n for (var i = 0; i < annotation.comments.length; i++) {\n comments.push(this.updateComments(annotation, annotation.comments[parseInt(i.toString(), 10)]));\n }\n newAnnotation.Comments = comments;\n }\n if (annotation.review) {\n newAnnotation.State = annotation.review.state;\n newAnnotation.StateModel = annotation.review.stateModel;\n }\n newAnnotation.CustomData = annotation.customData;\n newAnnotation.Opacity = annotation.opacity;\n if (annotation.shapeAnnotationType === 'textMarkup') {\n newAnnotation.AnnotType = 'textMarkup';\n newAnnotation.Color = annotation.color;\n newAnnotation.IsMultiSelect = annotation.isMultiSelect;\n newAnnotation.TextMarkupAnnotationType = annotation.textMarkupAnnotationType;\n newAnnotation.TextMarkupContent = annotation.textMarkupContent;\n newAnnotation.TextMarkupStartIndex = annotation.textMarkupStartIndex;\n newAnnotation.TextMarkupEndIndex = annotation.textMarkupEndIndex;\n if (annotation.rect) {\n newAnnotation.Rect = this.convertBounds(annotation.rect, true);\n }\n if (annotation.bounds && annotation.bounds.length >= 1) {\n // eslint-disable-next-line\n var bounds = new Array();\n for (var i = 0; i < annotation.bounds.length; i++) {\n bounds.push(this.convertBounds(annotation.bounds[parseInt(i.toString(), 10)]));\n }\n newAnnotation.Bounds = bounds;\n }\n documentCollections[annotation.pageNumber].textMarkupAnnotation.push(newAnnotation);\n }\n else if (annotation.shapeAnnotationType === 'sticky') {\n newAnnotation.AnnotType = 'sticky';\n newAnnotation.Icon = 'Comment';\n newAnnotation.Bounds = this.convertBounds(annotation.bounds);\n newAnnotation.StrokeColor = annotation.strokeColor;\n newAnnotation.Color = annotation.color;\n documentCollections[annotation.pageNumber].stickyNotesAnnotation.push(newAnnotation);\n }\n else if (annotation.shapeAnnotationType === 'FreeText') {\n newAnnotation.AnnotType = 'freeText';\n newAnnotation.Name = annotation.annotationId;\n newAnnotation.MarkupText = annotation.dynamicText;\n newAnnotation.Text = annotation.dynamicText;\n newAnnotation.Note = annotation.dynamicText;\n newAnnotation.TextAlign = annotation.textAlign;\n newAnnotation.Thickness = annotation.thicknes;\n newAnnotation.StrokeColor = annotation.strokeColor;\n newAnnotation.FillColor = annotation.fillColor;\n newAnnotation.FontColor = annotation.fontColor;\n newAnnotation.FontSize = annotation.fontSize;\n newAnnotation.FontFamily = annotation.fontFamily;\n newAnnotation.Rotate = annotation.rotateAngle;\n newAnnotation.Bounds = this.convertBounds(annotation.bounds);\n // eslint-disable-next-line max-len\n newAnnotation.Font = { 'Name': annotation.fontFamily, 'Size': annotation.fontSize, 'Bold': annotation.font.isBold, 'Italic': annotation.font.isItalic, 'Strikeout': annotation.font.isStrikeout, 'Underline': annotation.font.isUnderline };\n documentCollections[annotation.pageNumber].freeTextAnnotation.push(newAnnotation);\n }\n else if (annotation.shapeAnnotationType === 'stamp') {\n newAnnotation.AnnotType = 'stamp';\n newAnnotation.Icon = annotation.icon;\n newAnnotation.isDynamic = false;\n newAnnotation.Rect = this.convertBounds(annotation.bounds, false, true);\n newAnnotation.RotateAngle = annotation.rotateAngle;\n newAnnotation.FillColor = annotation.fillColor;\n newAnnotation.StrokeColor = annotation.strokeColor;\n newAnnotation.StampAnnotationType = annotation.stampAnnotationType;\n newAnnotation.CreationDate = annotation.creationDate;\n if (annotation.stampAnnotationType === 'image') {\n // eslint-disable-next-line\n var apperarance = [];\n // eslint-disable-next-line\n var imageData = { 'imagedata': annotation.stampAnnotationPath };\n apperarance.push(imageData);\n newAnnotation.Apperarance = apperarance;\n }\n if (annotation.isDynamicStamp) {\n newAnnotation.IsDynamic = true;\n newAnnotation.StrokeColor = annotation.stampFillcolor;\n // eslint-disable-next-line\n var apperarance = [];\n // eslint-disable-next-line\n var imageData = { 'type': 'string', 'text': annotation.dynamicText, 'currentFontname': '95b303ab-d397-438a-83af-e2ff8a9900f1', 'baseFontName': 'Helvetica-BoldOblique', 'fontSize': 10, 'isImport': true };\n apperarance.push(imageData);\n newAnnotation.Apperarance = apperarance;\n }\n documentCollections[annotation.pageNumber].stampAnnotations.push(newAnnotation);\n }\n else if (annotation.shapeAnnotationType === 'Ink' || annotation.shapeAnnotationType === 'Signature') {\n newAnnotation.StrokeColor = annotation.strokeColor;\n newAnnotation.FillColor = annotation.fillColor;\n newAnnotation.Thickness = annotation.thickness;\n newAnnotation.Bounds = this.convertBounds(annotation.bounds);\n newAnnotation.PathData = annotation.data;\n newAnnotation.pageIndex = annotation.pageNumber;\n if (annotation.shapeAnnotationType === 'Ink') {\n newAnnotation.AnnotType = 'Ink';\n newAnnotation.IsPathData = true;\n documentCollections[annotation.pageNumber].signatureInkAnnotation.push(newAnnotation);\n }\n if (annotation.shapeAnnotationType === 'Signature') {\n newAnnotation.AnnotType = 'Signature';\n newAnnotation.SignatureName = annotation.annotationId;\n newAnnotation.IsSignature = true;\n documentCollections[annotation.pageNumber].signatureAnnotation.push(newAnnotation);\n }\n }\n else {\n // eslint-disable-next-line max-len\n if (annotation.shapeAnnotationType === 'Line' || annotation.shapeAnnotationType === 'LineWidthArrowHead' || annotation.shapeAnnotationType === 'Polyline' || annotation.shapeAnnotationType === 'Polygon' || annotation.shapeAnnotationType === 'Polyline' || annotation.shapeAnnotationType === 'Circle' || annotation.shapeAnnotationType === 'Oval' || annotation.shapeAnnotationType === 'Rectangle' || annotation.shapeAnnotationType === 'Square' || annotation.shapeAnnotationType === 'Ellipse') {\n newAnnotation.AnnotType = 'shape';\n newAnnotation.StrokeColor = annotation.strokeColor;\n newAnnotation.FillColor = annotation.fillColor;\n newAnnotation.Thickness = annotation.thickness;\n newAnnotation.BorderStyle = annotation.borderStyle;\n newAnnotation.BorderDashArray = annotation.borderDashArray;\n newAnnotation.RotateAngle = annotation.rotateAngle;\n newAnnotation.IsCloudShape = annotation.isCloudShape;\n newAnnotation.CloudIntensity = annotation.cloudIntensity;\n newAnnotation.RectangleDifference = annotation.rectangleDifference;\n newAnnotation.LineHeadStart = annotation.lineHeadStart;\n newAnnotation.LineHeadEnd = annotation.lineHeadEnd;\n newAnnotation.IsLocked = annotation.isLocked;\n newAnnotation.EnableShapeLabel = annotation.enableShapeLabel;\n newAnnotation.LabelContent = annotation.labelContent;\n newAnnotation.LabelFillColor = annotation.labelFillColor;\n newAnnotation.LabelBorderColor = annotation.labelBorderColor;\n newAnnotation.FontColor = annotation.fontColor;\n newAnnotation.FontSize = annotation.fontSize;\n newAnnotation.LabelBounds = this.convertBounds(annotation.labelBounds);\n newAnnotation.LabelSettings = annotation.labelSettings;\n newAnnotation.Bounds = this.convertBounds(annotation.bounds);\n newAnnotation.LeaderLength = annotation.leaderLength;\n newAnnotation.LeaderLineExtenstion = annotation.leaderLineExtension;\n if (annotation.vertexPoints && annotation.vertexPoints.length >= 1) {\n // eslint-disable-next-line\n var points = new Array();\n for (var i = 0; i < annotation.vertexPoints.length; i++) {\n points.push(this.convertVertexPoints(annotation.vertexPoints[parseInt(i.toString(), 10)]));\n }\n newAnnotation.VertexPoints = points;\n }\n newAnnotation.EnableShapeLabel = annotation.enableShapeLabel;\n // eslint-disable-next-line max-len\n if (annotation.subject === 'Distance calculation' || annotation.subject === 'Perimeter calculation' || annotation.subject === 'Area calculation' || annotation.subject === 'Radius calculation' || annotation.subject === 'Volume calculation') {\n newAnnotation.AnnotType = 'shape_measure';\n // eslint-disable-next-line\n var calibrate = annotation.calibrate;\n if (calibrate) {\n // eslint-disable-next-line\n newAnnotation.Calibrate = {\n 'Ratio': calibrate.ratio, 'X': [{ 'Unit': calibrate.x[0].unit, 'ConversionFactor': calibrate.x[0].conversionFactor, 'FractionalType': calibrate.x[0].fractionalType, 'Denominator': calibrate.x[0].denominator, 'FormatDenominator': calibrate.x[0].formatDenominator }],\n // eslint-disable-next-line\n 'Distance': [{ 'Unit': calibrate.distance[0].unit, 'ConversionFactor': calibrate.distance[0].conversionFactor, 'FractionalType': calibrate.distance[0].fractionalType, 'Denominator': calibrate.distance[0].denominator, 'FormatDenominator': calibrate.distance[0].formatDenominator }],\n // eslint-disable-next-line\n 'Area': [{ 'Unit': calibrate.area[0].unit, 'ConversionFactor': calibrate.area[0].conversionFactor, 'FractionalType': calibrate.area[0].fractionalType, 'Denominator': calibrate.area[0].denominator, 'FormatDenominator': calibrate.area[0].formatDenominator }],\n // eslint-disable-next-line\n 'Angle': null, 'Volume': null, 'TargetUnitConversion': calibrate.targetUnitConversion, 'Depth': calibrate.depth\n };\n }\n newAnnotation.Indent = annotation.indent;\n newAnnotation.Caption = annotation.caption;\n newAnnotation.CaptionPosition = annotation.captionPosition;\n newAnnotation.LeaderLineExtension = annotation.leaderLineExtension;\n newAnnotation.LeaderLength = annotation.leaderLength;\n newAnnotation.LeaderLineOffset = annotation.leaderLineOffset;\n documentCollections[annotation.pageNumber].measureShapeAnnotation.push(newAnnotation);\n }\n else {\n documentCollections[annotation.pageNumber].shapeAnnotation.push(newAnnotation);\n }\n }\n }\n }\n pdfAnnotation.pdfAnnotation = documentCollections;\n this.pdfViewer.importAnnotation(pdfAnnotation);\n }\n };\n /**\n * @param bounds\n * @private\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.convertBounds = function (bounds, isRect, isStamp) {\n if (bounds) {\n if (isRect) {\n var left = bounds.left ? bounds.left : bounds.Left ? bounds.Left : 0;\n var right = bounds.right ? bounds.right : bounds.Right ? bounds.Right : 0;\n var bottom = bounds.bottom ? bounds.bottom : bounds.Bottom ? bounds.Bottom : 0;\n var top_5 = bounds.top ? bounds.top : bounds.Top ? bounds.Top : 0;\n return { left: left, right: right, bottom: bottom, top: top_5 };\n }\n else {\n var x = bounds.x ? bounds.x : bounds.left ? bounds.left : bounds.Left ? bounds.Left : 0;\n var y = bounds.y ? bounds.y : bounds.top ? bounds.top : bounds.Top ? bounds.Top : 0;\n var width = bounds.width ? bounds.width : bounds.Width ? bounds.Width : 0;\n var height = bounds.height ? bounds.height : bounds.Height ? bounds.Height : 0;\n if (isStamp) {\n return { X: this.ConvertPixelToPoint(x), Y: this.ConvertPixelToPoint(y), Left: this.ConvertPixelToPoint(x), Top: this.ConvertPixelToPoint(y), Height: this.ConvertPixelToPoint(height), Width: this.ConvertPixelToPoint(width) };\n }\n else {\n return { X: x, Y: y, Left: x, Top: y, Height: height, Width: width };\n }\n }\n }\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.ConvertPixelToPoint = function (number) {\n return (number * (72 / 96));\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.convertVertexPoints = function (points) {\n if (points) {\n var x = points.x ? points.x : points.X ? points.X : 0;\n var y = points.y ? points.y : points.Y ? points.Y : 0;\n return { X: x, Y: y, Left: x, Top: y };\n }\n };\n // eslint-disable-next-line\n PdfViewerBase.prototype.updateComments = function (annotation, comments) {\n if (annotation && comments) {\n // eslint-disable-next-line\n var newAnnotation = {};\n newAnnotation.ShapeAnnotationType = annotation.shapeAnnotationType;\n newAnnotation.Author = comments.author;\n newAnnotation.AnnotationSelectorSettings = annotation.annotationSelectorSettings;\n newAnnotation.AnnotationSettings = annotation.annotationSettings;\n newAnnotation.PageNumber = annotation.pageNumber;\n newAnnotation.ModifiedDate = comments.modifiedDate;\n newAnnotation.Subject = annotation.subject;\n newAnnotation.Note = comments.note;\n newAnnotation.AnnotName = comments.annotName;\n newAnnotation.Comments = comments.comments;\n newAnnotation.State = comments.review.state;\n newAnnotation.StateModel = comments.review.stateModel;\n newAnnotation.CustomData = annotation.customData;\n newAnnotation.IsLock = comments.isLock;\n return newAnnotation;\n }\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.removeFocus = function () {\n if (isBlazor()) {\n // eslint-disable-next-line\n var currentPageContainer = this.pdfViewer.element.querySelector('#' + this.pdfViewer.element.id + '_totalPage');\n // eslint-disable-next-line max-len\n if (currentPageContainer && currentPageContainer.firstElementChild && currentPageContainer.firstElementChild.firstElementChild) {\n currentPageContainer.firstElementChild.firstElementChild.blur();\n }\n }\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n PdfViewerBase.prototype.updateDocumentEditedProperty = function (isEdited) {\n this.pdfViewer.allowServerDataBinding = true;\n this.pdfViewer.isDocumentEdited = isEdited;\n this.pdfViewer.allowServerDataBinding = false;\n };\n /**\n * @private\n */\n PdfViewerBase.prototype.getWindowDevicePixelRatio = function () {\n var devicePixelRatio = window.devicePixelRatio;\n if (!Browser.isDevice) {\n return devicePixelRatio;\n }\n else {\n return devicePixelRatio = 2;\n }\n };\n /**\n * @private\n */\n PdfViewerBase.prototype.getZoomRatio = function (zoom) {\n var zoomFactor = this.getZoomFactor();\n var zoomValue = zoom ? zoom : 1;\n var ratio;\n var devicePixelRatio = this.getWindowDevicePixelRatio();\n if (!Browser.isDevice || (Browser.isDevice && zoomFactor <= 0.7)) {\n ratio = zoomValue * devicePixelRatio;\n }\n else {\n ratio = zoomValue;\n }\n return ratio;\n };\n /**\n * @private\n */\n PdfViewerBase.prototype.importJsonForRotatedDocuments = function (Rotate, pageNumber, bounds, originalRotation) {\n // eslint-disable-next-line\n var rotateAngle = Math.abs(Rotate);\n var pageDetails = this.pageSize[parseInt(pageNumber.toString(), 10)];\n //originalRotation = !isNullOrUndefined(originalRotation) ? originalRotation : pageDetails.rotation;\n if (originalRotation !== pageDetails.rotation) {\n rotateAngle = this.getRotationAngle(originalRotation, pageNumber);\n this.isPageRotated = true;\n }\n else {\n rotateAngle = 0;\n this.isPageRotated = false;\n }\n if (rotateAngle === 1) {\n return { X: pageDetails.width - bounds.Y - bounds.Height, Y: bounds.X, Height: bounds.Width, Width: bounds.Height };\n }\n else if (rotateAngle === 2) {\n return { X: pageDetails.width - bounds.X - bounds.Width, Y: pageDetails.height - bounds.Y - bounds.Height, Height: bounds.Height, Width: bounds.Width };\n }\n else if (rotateAngle === 3) {\n return { X: bounds.Y, Y: pageDetails.height - bounds.X - bounds.Width, Height: bounds.Width, Width: bounds.Height };\n }\n else {\n return bounds;\n }\n };\n PdfViewerBase.prototype.getRotationAngle = function (originalRotation, pageNumber) {\n var pageDetails = this.pageSize[parseInt(pageNumber.toString(), 10)];\n originalRotation = Math.abs(originalRotation);\n var rotateAngle;\n if (originalRotation === 0) {\n return rotateAngle = pageDetails.rotation;\n }\n else if (originalRotation === 1 || originalRotation === 90) {\n if (pageDetails.rotation == 0) {\n return rotateAngle = 3;\n }\n else if (pageDetails.rotation === 2) {\n return rotateAngle = 1;\n }\n else if (pageDetails.rotation === 3) {\n return rotateAngle = 2;\n }\n }\n else if (originalRotation === 2 || originalRotation === 180) {\n if (pageDetails.rotation == 0) {\n return rotateAngle = 2;\n }\n else if (pageDetails.rotation === 1) {\n return rotateAngle = 3;\n }\n else if (pageDetails.rotation === 3) {\n return rotateAngle = 1;\n }\n }\n else if (originalRotation === 3 || originalRotation === 270) {\n if (pageDetails.rotation == 0) {\n return rotateAngle = 1;\n }\n else if (pageDetails.rotation === 2) {\n return rotateAngle = 3;\n }\n else if (pageDetails.rotation === 1) {\n return rotateAngle = 2;\n }\n }\n };\n /**\n * @private\n */\n PdfViewerBase.prototype.calculateVertexPoints = function (Rotate, pageNumber, vertexPoints, originalRotation) {\n // eslint-disable-next-line\n var rotateAngle = Math.abs(Rotate);\n var vPoints = [];\n var pageDetails = this.pageSize[parseInt(pageNumber.toString(), 10)];\n var x;\n var y;\n var point;\n //originalRotation = !isNullOrUndefined(originalRotation) ? originalRotation : pageDetails.rotation;\n if (originalRotation !== pageDetails.rotation) {\n rotateAngle = this.getRotationAngle(originalRotation, pageNumber);\n }\n else {\n rotateAngle = 0;\n }\n for (var j = 0; j < vertexPoints.length; j++) {\n if (rotateAngle === 1) {\n x = vertexPoints[parseInt(j.toString(), 10)].Y ? pageDetails.width - vertexPoints[parseInt(j.toString(), 10)].Y : pageDetails.width - vertexPoints[parseInt(j.toString(), 10)].y;\n y = vertexPoints[parseInt(j.toString(), 10)].X ? vertexPoints[parseInt(j.toString(), 10)].X : vertexPoints[parseInt(j.toString(), 10)].x;\n point = { x: x, y: y };\n vPoints.push(point);\n }\n else if (rotateAngle === 2) {\n x = vertexPoints[parseInt(j.toString(), 10)].X ? pageDetails.width - vertexPoints[parseInt(j.toString(), 10)].X : pageDetails.width - vertexPoints[parseInt(j.toString(), 10)].x;\n y = vertexPoints[parseInt(j.toString(), 10)].Y ? pageDetails.height - vertexPoints[parseInt(j.toString(), 10)].Y : pageDetails.height - vertexPoints[parseInt(j.toString(), 10)].y;\n var point_1 = { x: x, y: y };\n vPoints.push(point_1);\n }\n else if (rotateAngle == 3) {\n x = vertexPoints[parseInt(j.toString(), 10)].Y ? vertexPoints[parseInt(j.toString(), 10)].Y : vertexPoints[parseInt(j.toString(), 10)].y;\n y = vertexPoints[parseInt(j.toString(), 10)].X ? pageDetails.height - vertexPoints[parseInt(j.toString(), 10)].X : pageDetails.height - vertexPoints[parseInt(j.toString(), 10)].x;\n point = { x: x, y: y };\n vPoints.push(point);\n }\n else {\n x = vertexPoints[parseInt(j.toString(), 10)].X ? vertexPoints[parseInt(j.toString(), 10)].X : vertexPoints[parseInt(j.toString(), 10)].x;\n y = vertexPoints[parseInt(j.toString(), 10)].Y ? vertexPoints[parseInt(j.toString(), 10)].Y : vertexPoints[parseInt(j.toString(), 10)].y;\n var point_2 = { x: x, y: y };\n vPoints.push(point_2);\n }\n }\n return vPoints;\n };\n return PdfViewerBase;\n}());\nexport { PdfViewerBase };\n","import { Browser, isBlazor, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { splitArrayCollection, processPathData, cornersPointsBeforeRotation } from '@syncfusion/ej2-drawings';\nimport { Tooltip } from '@syncfusion/ej2-popups';\n/**\n * The `FormFields` module is to render formfields in the PDF document.\n *\n * @hidden\n */\nvar FormFields = /** @class */ (function () {\n /**\n * @param viewer\n * @param base\n * @param viewer\n * @param base\n * @private\n */\n function FormFields(viewer, base) {\n // eslint-disable-next-line\n this.maintainTabIndex = {};\n // eslint-disable-next-line\n this.maintanMinTabindex = {};\n this.isSignatureField = false;\n this.paddingDifferenceValue = 10;\n this.indicatorPaddingValue = 4;\n this.isKeyDownCheck = false;\n /**\n * @private\n */\n // eslint-disable-next-line\n this.readOnlyCollection = [];\n this.isSignatureRendered = false;\n /**\n * @private\n */\n // eslint-disable-next-line\n this.signatureFieldCollection = [];\n this.selectedIndex = [];\n /**\n * @private\n */\n // eslint-disable-next-line\n this.renderedPageList = [];\n this.pdfViewer = viewer;\n this.pdfViewerBase = base;\n }\n /**\n * @param pageIndex\n * @private\n */\n FormFields.prototype.renderFormFields = function (pageIndex, isImportFormField) {\n this.maxTabIndex = 0;\n this.minTabIndex = -1;\n // eslint-disable-next-line \n if (this.renderedPageList.indexOf(pageIndex) !== -1 && !isImportFormField) {\n this.data = this.pdfViewerBase.getItemFromSessionStorage('_formDesigner');\n if (!this.data || this.data === '[]') {\n this.data = this.pdfViewerBase.getItemFromSessionStorage('_formfields');\n }\n }\n else {\n this.data = this.pdfViewerBase.getItemFromSessionStorage('_formfields');\n }\n if (this.data) {\n // eslint-disable-next-line\n this.formFieldsData = JSON.parse(this.data);\n var textLayer = document.getElementById(this.pdfViewer.element.id + '_textLayer_' + pageIndex);\n var canvasElement = document.getElementById(this.pdfViewer.element.id + '_pageCanvas_' + pageIndex);\n var count = void 0;\n if (this.formFieldsData !== null && canvasElement !== null && textLayer !== null) {\n var flag = false;\n for (var i = 0; i < this.formFieldsData.length; i++) {\n var formField = this.formFieldsData[i];\n if (!flag && isNullOrUndefined(formField.ActualFieldName) && formField.PageIndex === pageIndex) {\n count = parseInt(formField.FieldName.slice(formField.FieldName.lastIndexOf(\"_\") + 1));\n flag = true;\n }\n }\n if (this.renderedPageList.indexOf(pageIndex) === -1) {\n this.renderedPageList.push(pageIndex);\n }\n var _loop_1 = function (i_1) {\n // eslint-disable-next-line\n var currentData = this_1.formFieldsData[i_1];\n if (currentData.FieldName !== '') {\n if (currentData.IsInitialField) {\n currentData.Name = 'InitialField';\n }\n // eslint-disable-next-line\n var font = currentData['Font'];\n if (this_1.pdfViewer.formDesigner) {\n if (parseFloat(currentData['PageIndex']) == pageIndex) {\n var fontFamily = void 0;\n var fontStyle = void 0;\n var fontSize = void 0;\n if (font !== null && font.Height) {\n fontFamily = font.Name;\n if (font.Italic) {\n fontStyle = 'Italic';\n }\n if (font.Bold) {\n fontStyle = 'Bold';\n }\n if (font.Strikeout) {\n fontStyle = 'Strikethrough';\n }\n if (font.Underline) {\n fontStyle = 'Underline';\n }\n fontSize = this_1.ConvertPointToPixel(font.Size);\n }\n var textAlignment = currentData.Alignment === 2 ? 'right' : (currentData.Alignment === 1 ? 'center' : 'left');\n var backgroundColor = currentData['BackColor'];\n var bounds = currentData['LineBounds'];\n var backColor = 'rgba(' + backgroundColor.R + ',' + backgroundColor.G + ',' + backgroundColor.B + ',' + 1 + ')';\n if (currentData.IsTransparent === true) {\n backColor = \"rgba(0,0,0,0)\";\n }\n backColor = this_1.rgbaToHex(backColor);\n // set default color if field have black color as bg.\n if (backColor === '#000000ff') {\n backColor = '#daeaf7ff';\n }\n // eslint-disable-next-line\n var fontColor = currentData['FontColor'];\n var left = this_1.ConvertPointToPixel(bounds.X);\n var top_1 = this_1.ConvertPointToPixel(bounds.Y);\n var width = this_1.ConvertPointToPixel(bounds.Width);\n var height = this_1.ConvertPointToPixel(bounds.Height);\n var boundArray = { left: left, top: top_1, width: width, height: height };\n var isFieldRotated = false;\n var rotateFieldAngle = 0;\n if (currentData[\"Rotation\"] !== 0) {\n if (currentData[\"RotationAngle\"] === -90 || currentData[\"RotationAngle\"] === -270 || currentData[\"RotationAngle\"] === -180) {\n boundArray = this_1.getBounds(boundArray, pageIndex, 0, isFieldRotated);\n }\n }\n else {\n isFieldRotated = true;\n boundArray = this_1.getBounds(boundArray, pageIndex, 0, isFieldRotated);\n rotateFieldAngle = this_1.getAngle(pageIndex);\n }\n var foreColor = 'rgba(' + fontColor.R + ',' + fontColor.G + ',' + fontColor.B + ',' + 1 + ')';\n foreColor = this_1.rgbaToHex(foreColor);\n var borderColor = currentData['BorderColor'];\n var borderRGB = 'rgba(' + borderColor.R + ',' + borderColor.G + ',' + borderColor.B + ',' + 1 + ')';\n borderRGB = this_1.rgbaToHex(borderRGB);\n var borderWidth = currentData['BorderWidth'];\n this_1.selectedIndex = [];\n elementValue = \"\";\n if (currentData.Name === 'RadioButton') {\n elementValue = currentData['Text'] ? currentData['Text'] : currentData['Value'];\n }\n else {\n elementValue = currentData['Text'];\n }\n var fieldProperties = {\n bounds: { X: boundArray.left, Y: boundArray.top, Width: boundArray.width, Height: boundArray.height }, pageNumber: parseFloat(currentData['PageIndex']) + 1, name: currentData['ActualFieldName'], tooltip: currentData['ToolTip'],\n value: elementValue, insertSpaces: currentData['InsertSpaces'], isChecked: currentData['Selected'], isSelected: currentData['Selected'], fontFamily: fontFamily, fontStyle: fontStyle, backgroundColor: backColor, color: foreColor, borderColor: borderRGB, thickness: borderWidth, fontSize: fontSize, isMultiline: currentData.Multiline, rotateAngle: rotateFieldAngle,\n isReadOnly: currentData['IsReadonly'], isRequired: currentData['IsRequired'], alignment: textAlignment, options: this_1.getListValues(currentData), selectedIndex: this_1.selectedIndex, maxLength: currentData.MaxLength, visibility: currentData.Visible === 1 ? \"hidden\" : \"visible\", font: { isItalic: !isNullOrUndefined(font) ? font.Italic : false, isBold: !isNullOrUndefined(font) ? font.Bold : false, isStrikeout: !isNullOrUndefined(font) ? font.Strikeout : false, isUnderline: !isNullOrUndefined(font) ? font.Underline : false }, isTransparent: currentData.IsTransparent\n };\n if (!currentData.id && this_1.pdfViewer.formFieldCollections[i_1] && !isNullOrUndefined(currentData['ActualFieldName'])) {\n fieldProperties.id = this_1.pdfViewer.formFieldCollections[i_1].id;\n }\n if (currentData.Name === 'DropDown' || currentData.Name === 'ListBox') {\n fieldProperties.value = currentData['SelectedValue'];\n }\n // eslint-disable-next-line\n var fieldType = this_1.getFormFieldType(currentData);\n if (currentData.Name !== 'SignatureText' || currentData.Name !== 'SignatureImage') {\n if (!isNullOrUndefined(this_1.getFormFieldType(currentData))) {\n if (currentData.IsRequired) {\n var thickness = fieldProperties.thickness;\n thickness = thickness > 0 ? thickness : 1;\n fieldProperties.thickness = thickness;\n }\n var addedElement1 = this_1.pdfViewer.formDesignerModule.addFormField(fieldType, fieldProperties, false, fieldProperties.id);\n if (addedElement1 && addedElement1.parentElement) {\n currentData.id = addedElement1.parentElement.id.split('_')[0];\n }\n if (addedElement1 && addedElement1.style.visibility === \"hidden\") {\n addedElement1.childNodes[0].disabled = true;\n }\n }\n }\n if (fieldType === 'SignatureField' || fieldType === 'InitialField') {\n this_1.addSignaturePath(currentData, count);\n if (!isNullOrUndefined(currentData.Value)) {\n this_1.renderExistingAnnnot(currentData, parseFloat(currentData['PageIndex']) + 1, null, isFieldRotated);\n this_1.isSignatureRendered = true;\n count++;\n }\n }\n if (currentData.ActualFieldName === null && this_1.formFieldsData.filter(function (item) { return item.FieldName.includes(currentData.FieldName.replace(/_\\d$/, '')); }).filter(function (value) { return value.Name != 'ink'; }).length === 0) {\n this_1.renderExistingAnnnot(currentData, parseFloat(currentData['PageIndex']) + 1, null, isFieldRotated);\n this_1.pdfViewerBase.signatureModule.storeSignatureData(pageIndex, currentData);\n this_1.isSignatureRendered = true;\n count++;\n }\n this_1.pdfViewerBase.isLoadedFormFieldAdded = true;\n }\n }\n else {\n // eslint-disable-next-line\n if (parseFloat(currentData['PageIndex']) == pageIndex) {\n // eslint-disable-next-line\n var field = this_1.createFormFields(currentData, pageIndex, i_1, null, count);\n var inputField = field.currentField;\n var signCount = field.count;\n var isFieldRotated = false;\n if (currentData.ActualFieldName === null && this_1.formFieldsData.filter(function (item) { return item.FieldName.includes(currentData.FieldName.replace(/_\\d$/, '')); }).filter(function (value) { return value.Name != 'ink'; }).length === 0) {\n this_1.renderExistingAnnnot(currentData, parseFloat(currentData['PageIndex']) + 1, null, isFieldRotated);\n this_1.pdfViewerBase.signatureModule.storeSignatureData(pageIndex, currentData);\n this_1.isSignatureRendered = true;\n count++;\n }\n if (inputField) {\n // eslint-disable-next-line\n var divElement = this_1.createParentElement(currentData, pageIndex);\n // eslint-disable-next-line\n var bounds = currentData['LineBounds'];\n // eslint-disable-next-line\n var font_1 = currentData['Font'];\n // eslint-disable-next-line\n rotateAngle = 0;\n if (currentData['Rotation'] === 0) {\n isFieldRotated = true;\n rotateAngle = this_1.getAngle(pageIndex);\n if (divElement) {\n divElement.style.transform = 'rotate(' + rotateAngle + 'deg)';\n }\n else {\n inputField.style.transform = 'rotate(' + rotateAngle + 'deg)';\n }\n }\n else {\n if (divElement) {\n divElement.style.transform = 'rotate(' + rotateAngle + 'deg)';\n }\n else {\n inputField.style.transform = 'rotate(' + rotateAngle + 'deg)';\n }\n }\n this_1.applyPosition(inputField, bounds, font_1, pageIndex, 0, isFieldRotated);\n inputField.InsertSpaces = currentData.InsertSpaces;\n if (inputField.InsertSpaces) {\n var zoomFactor = this_1.pdfViewerBase.getZoomFactor();\n // eslint-disable-next-line\n var font_2 = ((parseInt(inputField.style.width) / inputField.maxLength) - (parseFloat(inputField.style.fontSize) / 2)) - (0.6 * zoomFactor);\n // eslint-disable-next-line\n inputField.style.letterSpacing = '' + font_2 + 'px';\n inputField.style.fontFamily = 'monospace';\n inputField.style.paddingLeft = (font_2 / 2) + 'px';\n }\n // eslint-disable-next-line\n currentData['uniqueID'] = this_1.pdfViewer.element.id + 'input_' + pageIndex + '_' + i_1;\n for (var j = 0; j < this_1.pdfViewer.formFieldCollections.length; j++) {\n if ((inputField.type === 'text' || inputField.type === 'password' || inputField.type === 'textarea') && currentData.Name !== 'SignatureField') {\n if (currentData['uniqueID'] === this_1.pdfViewer.formFieldCollections[j].id) {\n this_1.pdfViewer.formFieldCollections[j].value = currentData['Text'];\n }\n }\n }\n if (isNullOrUndefined(currentData.Value)) {\n currentData.Value = currentData['Text'];\n }\n if (currentData.ToolTip) {\n this_1.setToolTip(currentData.ToolTip, inputField);\n }\n this_1.applyCommonProperties(inputField, pageIndex, i_1, currentData, isFieldRotated);\n this_1.checkIsReadonly(currentData, inputField);\n this_1.applyTabIndex(currentData, inputField, pageIndex);\n this_1.checkIsRequiredField(currentData, inputField);\n this_1.applyDefaultColor(inputField);\n this_1.updateFormFieldsCollection(currentData);\n if (divElement) {\n divElement.appendChild(inputField);\n textLayer.appendChild(divElement);\n }\n else {\n inputField.style.position = 'absolute';\n textLayer.appendChild(inputField);\n }\n inputField.addEventListener('focus', this_1.focusFormFields.bind(this_1));\n inputField.addEventListener('blur', this_1.blurFormFields.bind(this_1));\n inputField.addEventListener('click', this_1.updateFormFields.bind(this_1));\n inputField.addEventListener('change', this_1.changeFormFields.bind(this_1));\n inputField.addEventListener('keydown', this_1.updateFormFieldsValue.bind(this_1));\n inputField.addEventListener('keyup', this_1.updateSameFieldsValue.bind(this_1));\n count = signCount;\n }\n }\n }\n }\n };\n var this_1 = this, elementValue, rotateAngle;\n for (var i_1 = 0; i_1 < this.formFieldsData.length; i_1++) {\n _loop_1(i_1);\n }\n if (!this.pdfViewer.formDesigner) {\n window.sessionStorage.removeItem(this.pdfViewerBase.documentId + '_formfields');\n this.pdfViewerBase.setItemInSessionStorage(this.formFieldsData, '_formfields');\n }\n }\n }\n if (this.pdfViewerBase.isFocusField && this.pdfViewerBase.focusField) {\n var currentField = document.getElementById(this.pdfViewerBase.focusField.id);\n if (currentField) {\n if ((this.pdfViewerBase.focusField.type === \"SignatureField\" || this.pdfViewerBase.focusField.type === \"InitialField\") && this.pdfViewer.formDesignerModule) {\n var y = this.pdfViewerBase.focusField.bounds.y;\n var height = this.pdfViewerBase.pageSize[pageIndex].height;\n this.pdfViewer.bookmark.goToBookmark(this.pdfViewerBase.focusField.pageIndex, height - y);\n }\n else {\n currentField.focus();\n }\n this.pdfViewerBase.isFocusField = false;\n this.pdfViewerBase.focusField = [];\n }\n }\n };\n FormFields.prototype.setToolTip = function (tooltipContent, targetElement) {\n //initialize tooltip component\n var tooltip = new Tooltip({\n content: tooltipContent\n });\n // render initialized tooltip\n tooltip.appendTo(targetElement);\n };\n FormFields.prototype.trim = function (str) {\n return str.replace(/^\\s+|\\s+$/gm, '');\n };\n FormFields.prototype.rgbaToHex = function (rgba) {\n var inParts = rgba.substring(rgba.indexOf(\"(\")).split(\",\");\n var r = parseInt(this.trim(inParts[0].substring(1)), 10);\n var g = parseInt(this.trim(inParts[1]), 10);\n var b = parseInt(this.trim(inParts[2]), 10);\n var a = parseFloat(parseFloat(this.trim(inParts[3].substring(0, inParts[3].length - 1))).toFixed(2));\n var outParts = [\n r.toString(16),\n g.toString(16),\n b.toString(16),\n Math.round(a * 255).toString(16).substring(0, 2)\n ];\n // Pad single-digit output values\n outParts.forEach(function (part, i) {\n if (part.length === 1) {\n outParts[i] = '0' + part;\n }\n });\n return ('#' + outParts.join(''));\n };\n FormFields.prototype.getListValues = function (currentData) {\n var listItem = currentData['TextList'];\n var options = [];\n for (var i = 0; i < listItem.length; i++) {\n if (listItem[i] === currentData['SelectedValue'])\n this.selectedIndex.push(i);\n options.push({ itemName: listItem[i], itemValue: listItem[i] });\n }\n if (this.getFormFieldType(currentData) === 'ListBox') {\n this.selectedIndex = currentData['SelectedList'];\n }\n return options;\n };\n // eslint-disable-next-line\n FormFields.prototype.createParentElement = function (data, pageIndex) {\n // eslint-disable-next-line\n var divElement;\n // eslint-disable-next-line\n if (data['Name'] === 'Textbox' || data['Name'] === 'Password') {\n divElement = document.createElement('div');\n divElement.style.background = 'white';\n if (data.InsertSpaces) {\n divElement.style.background = 'transparent';\n }\n // eslint-disable-next-line\n var bounds = data['LineBounds'];\n // eslint-disable-next-line\n var font = data['Font'];\n // eslint-disable-next-line\n divElement.style.position = 'absolute';\n // eslint-disable-next-line\n var isFieldRotated = false;\n if (data['Rotation'] === 0) {\n isFieldRotated = true;\n }\n this.applyPosition(divElement, bounds, font, pageIndex, 0, isFieldRotated);\n }\n return divElement;\n };\n /**\n * @private\n */\n FormFields.prototype.getAngle = function (pageIndex) {\n // eslint-disable-next-line\n var angle = 0;\n // eslint-disable-next-line\n var pageDetails = this.pdfViewerBase.pageSize[pageIndex];\n if (pageDetails && pageDetails.rotation) {\n switch (pageDetails.rotation) {\n case 0:\n angle = 0;\n break;\n case 1:\n angle = 90;\n break;\n case 2:\n angle = 180;\n break;\n case 3:\n angle = 270;\n break;\n }\n }\n return angle;\n };\n FormFields.prototype.nextField = function () {\n this.signatureFieldNavigate(true);\n };\n FormFields.prototype.previousField = function () {\n this.signatureFieldNavigate(false);\n };\n FormFields.prototype.signatureFieldNavigate = function (nextSign) {\n var isNextSignField = nextSign;\n // eslint-disable-next-line\n var signatureFields = this.signatureFieldCollection;\n if (signatureFields.length === 0) {\n signatureFields = this.getSignField();\n }\n // eslint-disable-next-line\n var currentField;\n if (this.currentTarget) {\n for (var i = 0; i < signatureFields.length; i++) {\n currentField = this.pdfViewer.formDesignerModule ? signatureFields[i].FormField : signatureFields[i];\n if (this.currentTarget.id === currentField.uniqueID) {\n this.currentTarget = document.getElementById(currentField.uniqueID);\n this.getSignatureIndex(i, signatureFields.length, isNextSignField);\n break;\n }\n }\n }\n else {\n if (nextSign) {\n currentField = this.pdfViewer.formDesignerModule ? signatureFields[0].FormField : signatureFields[0];\n if (currentField.uniqueID) {\n this.currentTarget = document.getElementById(currentField.uniqueID);\n this.getSignatureIndex(0, signatureFields.length, isNextSignField, true);\n }\n }\n }\n };\n FormFields.prototype.getSignatureIndex = function (currentSignatureIndex, signatureCount, isNextSign, isFirstNavigate) {\n var signatureIndex = currentSignatureIndex;\n if (!isFirstNavigate) {\n if (isNextSign) {\n signatureIndex++;\n }\n else {\n signatureIndex--;\n }\n }\n if (signatureCount === 1) {\n this.renderSignatureField(0);\n }\n else {\n if (signatureIndex < signatureCount && signatureIndex >= 0) {\n this.renderSignatureField(signatureIndex);\n }\n else {\n if (isNextSign) {\n if (signatureIndex >= signatureCount) {\n this.renderSignatureField(0);\n }\n }\n else {\n if (signatureIndex <= 0) {\n this.renderSignatureField(signatureCount - 1);\n }\n }\n }\n }\n };\n FormFields.prototype.renderSignatureField = function (currentSignIndex) {\n var curSignIndex = currentSignIndex;\n // eslint-disable-next-line\n var signatureFields = this.signatureFieldCollection;\n // eslint-disable-next-line\n var currentField;\n if (curSignIndex < signatureFields.length) {\n for (var i = 0; i < signatureFields.length; i++) {\n var curSignIndexId = this.pdfViewer.formDesignerModule ? signatureFields[curSignIndex].FormField.uniqueID : signatureFields[curSignIndex].uniqueID;\n var signatureFieldData = this.pdfViewer.formDesignerModule ? signatureFields[i].FormField : signatureFields[i];\n if (curSignIndexId === signatureFieldData.uniqueID) {\n var pageIndex = signatureFieldData.PageIndex >= 0 ? signatureFieldData.PageIndex : signatureFieldData.pageNumber;\n var isRender = this.pdfViewer.annotationModule.findRenderPageList(pageIndex);\n if (!isRender) {\n this.pdfViewer.navigation.goToPage(pageIndex);\n }\n this.currentTarget = document.getElementById(signatureFieldData.uniqueID);\n currentField = signatureFieldData;\n break;\n }\n }\n if (this.currentTarget === null) {\n var pageIndex = currentField.PageIndex >= 0 ? currentField.PageIndex : currentField.pageNumber;\n this.pdfViewer.navigation.goToPage(pageIndex);\n this.currentTarget = document.getElementById(currentField.uniqueID);\n }\n if (this.currentTarget) {\n if (this.currentTarget.className === 'e-pdfviewer-signatureformfields-signature') {\n document.getElementById(this.currentTarget.id).focus();\n this.pdfViewer.select([this.currentTarget.id], null);\n }\n else if (this.currentTarget.className === 'e-pdfviewer-signatureformfields') {\n if (this.pdfViewer.formDesignerModule) {\n document.getElementById(this.currentTarget.id).parentElement.focus();\n }\n else {\n document.getElementById(this.currentTarget.id).focus();\n }\n }\n }\n }\n };\n /**\n * @private\n */\n FormFields.prototype.setFocus = function (id) {\n if (!id) {\n if (this.currentTarget) {\n document.getElementById(this.currentTarget.id).focus();\n }\n }\n else {\n this.removeFocus();\n var signatureElement = document.getElementById(id);\n signatureElement.classList.add('e-pv-signature-focus');\n }\n };\n /**\n * @private\n */\n FormFields.prototype.removeFocus = function () {\n if (this.signatureFieldCollection) {\n // eslint-disable-next-line\n var signatureFields = this.signatureFieldCollection;\n if (signatureFields.length === 0) {\n signatureFields = this.getSignField();\n }\n for (var i = 0; i < this.signatureFieldCollection.length; i++) {\n var signatureFieldId = this.pdfViewer.formDesignerModule ? this.signatureFieldCollection[i].FormField.uniqueID : this.signatureFieldCollection[i].uniqueID;\n var signatureElement = document.getElementById(signatureFieldId);\n if (signatureElement) {\n signatureElement.classList.remove('e-pv-signature-focus');\n }\n }\n if (this.pdfViewer.formFieldsModule.currentTarget) {\n this.pdfViewer.formFieldsModule.currentTarget.classList.remove('e-pv-signature-focus');\n }\n }\n };\n // eslint-disable-next-line\n FormFields.prototype.getSignField = function () {\n if (this.pdfViewer.formDesignerModule) {\n this.signatureFieldCollection =\n this.pdfViewer.formDesignerModule.getFormDesignerSignField(this.signatureFieldCollection);\n }\n else {\n this.signatureFieldCollection = this.getFormFieldSignField();\n }\n return this.signatureFieldCollection;\n };\n FormFields.prototype.getFormFieldSignField = function () {\n // eslint-disable-next-line\n var data = this.pdfViewerBase.getItemFromSessionStorage('_formfields');\n // eslint-disable-next-line\n var currentData;\n if (data) {\n // eslint-disable-next-line\n var formFieldsData = JSON.parse(data);\n for (var i = 0; i < formFieldsData.length; i++) {\n currentData = formFieldsData[i];\n if (currentData.Name === 'SignatureField') {\n // eslint-disable-next-line\n currentData['uniqueID'] = this.pdfViewer.element.id + 'input_' + currentData.PageIndex + '_' + i;\n this.signatureFieldCollection.push(formFieldsData[i]);\n }\n }\n }\n return this.signatureFieldCollection;\n };\n /**\n * @private\n */\n FormFields.prototype.formFieldCollections = function () {\n // eslint-disable-next-line\n var data = this.pdfViewerBase.getItemFromSessionStorage('_formfields');\n if (data) {\n // eslint-disable-next-line\n var formFieldsData = JSON.parse(data);\n for (var i = 0; i < formFieldsData.length; i++) {\n // eslint-disable-next-line\n var currentData = formFieldsData[i];\n // eslint-disable-next-line\n var type = currentData['Name'];\n if (this.pdfViewer.formDesignerModule) {\n if (currentData.Name !== 'ink' && currentData.Name !== 'SignatureImage' && currentData.Name !== 'SignatureText') {\n this.retreiveFormFieldsData(currentData, true);\n }\n }\n else {\n if (currentData.Name !== 'ink') {\n // eslint-disable-next-line\n var formFieldCollection = { name: this.retriveFieldName(currentData), id: this.pdfViewer.element.id + 'input_' + parseFloat(currentData['PageIndex']) + '_' + i, isReadOnly: false, type: currentData.IsInitialField ? 'InitialField' : type, value: this.retriveCurrentValue(currentData), fontName: '', isRequired: currentData.IsRequired };\n this.pdfViewer.formFieldCollections.push(formFieldCollection);\n }\n }\n }\n }\n };\n FormFields.prototype.retreiveFormFieldsData = function (currentData, isCollection) {\n var fontFamily;\n var fontStyle;\n var fontSize;\n if (currentData.FieldName !== '') {\n if (currentData.IsInitialField) {\n currentData.Name = 'InitialField';\n }\n // eslint-disable-next-line\n var font = currentData['Font'];\n if (font !== null && font.Height) {\n fontFamily = font.Name;\n if (font.Italic) {\n fontStyle = 'Italic';\n }\n if (font.Bold) {\n fontStyle = 'Bold';\n }\n if (font.Strikeout) {\n fontStyle = 'Strikethrough';\n }\n if (font.Underline) {\n fontStyle = 'Underline';\n }\n fontSize = this.ConvertPointToPixel(font.Size);\n }\n var textAlignment = currentData.Alignment === 2 ? 'right' : (currentData.Alignment === 1 ? 'center' : 'left');\n var backgroundColor = currentData['BackColor'];\n var bounds = currentData['LineBounds'];\n var backColor = 'rgba(' + backgroundColor.R + ',' + backgroundColor.G + ',' + backgroundColor.B + ',' + 1 + ')';\n backColor = this.rgbaToHex(backColor);\n // set default color if field have black color as bg.\n if (currentData.IsTransparent === true) {\n backColor = \"rgba(0,0,0,0)\";\n }\n else if (backColor === '#000000ff') {\n backColor = '#daeaf7ff';\n }\n // eslint-disable-next-line\n var fontColor = currentData['FontColor'];\n var left = this.ConvertPointToPixel(bounds.X);\n var top_2 = this.ConvertPointToPixel(bounds.Y);\n var width = this.ConvertPointToPixel(bounds.Width);\n var height = this.ConvertPointToPixel(bounds.Height);\n var boundArray = { left: left, top: top_2, width: width, height: height };\n var foreColor = 'rgba(' + fontColor.R + ',' + fontColor.G + ',' + fontColor.B + ',' + 1 + ')';\n foreColor = this.rgbaToHex(foreColor);\n var borderColor = currentData['BorderColor'];\n var borderRGB = 'rgba(' + borderColor.R + ',' + borderColor.G + ',' + borderColor.B + ',' + 1 + ')';\n borderRGB = this.rgbaToHex(borderRGB);\n var borderWidth = currentData['BorderWidth'];\n this.selectedIndex = [];\n var fieldProperties = {\n bounds: { X: boundArray.left, Y: boundArray.top, Width: boundArray.width, Height: boundArray.height }, pageNumber: parseFloat(currentData['PageIndex']) + 1, name: currentData['ActualFieldName'], tooltip: currentData['ToolTip'],\n value: currentData['Text'], isChecked: currentData['Selected'], isSelected: currentData['Selected'], fontFamily: fontFamily, fontStyle: fontStyle, backgroundColor: backColor, color: foreColor, borderColor: borderRGB, thickness: borderWidth, fontSize: fontSize, isMultiline: currentData.Multiline,\n isReadOnly: currentData['IsReadonly'], isRequired: currentData['IsRequired'], insertSpaces: currentData['InsertSpaces'], alignment: textAlignment, options: this.getListValues(currentData), selectedIndex: this.selectedIndex, maxLength: currentData.MaxLength, visibility: currentData.Visible === 1 ? \"hidden\" : \"visible\", font: { isItalic: !isNullOrUndefined(font) ? font.Italic : false, isBold: !isNullOrUndefined(font) ? font.Bold : false, isStrikeout: !isNullOrUndefined(font) ? font.Strikeout : false, isUnderline: !isNullOrUndefined(font) ? font.Underline : false }\n };\n if (currentData.Name === 'DropDown' || currentData.Name === 'ListBox') {\n fieldProperties.value = currentData['SelectedValue'];\n }\n // eslint-disable-next-line\n var fieldType = this.getFormFieldType(currentData);\n if (fieldType === 'SignatureField' || fieldType === 'InitialField') {\n this.addSignaturePath(currentData);\n if (this.isSignatureField) {\n fieldProperties.value = currentData.Value;\n }\n }\n var addedElement = this.pdfViewer.formDesignerModule.addFormField(fieldType, fieldProperties, isCollection);\n return addedElement;\n }\n return null;\n };\n /**\n * @param formField\n * @private\n */\n FormFields.prototype.updateFormFieldsCollection = function (formField) {\n var type = formField['Name'];\n var formFieldCollection = {\n name: this.retriveFieldName(formField), id: formField.uniqueID, isReadOnly: formField.IsReadonly, isRequired: formField.IsRequired, isSelected: type === 'CheckBox' ? false : formField.Selected,\n isChecked: type === 'RadioButton' ? false : formField.Selected, type: type, value: type === 'ListBox' || type === 'DropDown' ? formField.SelectedValue : formField.Value, fontName: formField.FontFamily ? formField.FontFamily : ''\n };\n this.pdfViewer.formFieldCollections[this.pdfViewer.formFieldCollections.findIndex(function (el) { return el.id === formFieldCollection.id; })] = formFieldCollection;\n };\n // eslint-disable-next-line\n FormFields.prototype.updateFormFieldValues = function (formFields) {\n this.readOnlyCollection.push(formFields.id);\n if (formFields) {\n // eslint-disable-next-line\n var currentElement = document.getElementById(formFields.id);\n if (currentElement) {\n if (formFields.isReadOnly) {\n currentElement.disabled = true;\n currentElement.style.backgroundColor = '';\n currentElement.style.cursor = 'default';\n }\n else {\n if (currentElement.style.backgroundColor === '') {\n currentElement.style.backgroundColor = 'rgba(0, 20, 200, 0.2)';\n }\n currentElement.disabled = false;\n currentElement.style.cursor = '';\n }\n }\n this.updateDataInSession(currentElement);\n }\n };\n /**\n * @param currentData\n * @private\n */\n // eslint-disable-next-line\n FormFields.prototype.retriveFieldName = function (currentData) {\n // eslint-disable-next-line\n var currentField;\n // eslint-disable-next-line\n switch (currentData['Name']) {\n case 'Textbox':\n case 'Password':\n case 'SignatureField':\n case 'InitialField':\n currentField = currentData.FieldName;\n break;\n case 'RadioButton':\n case 'CheckBox':\n currentField = currentData.GroupName;\n break;\n case 'DropDown':\n case 'ListBox':\n currentField = currentData.Text;\n break;\n }\n return currentField;\n };\n // eslint-disable-next-line\n FormFields.prototype.retriveCurrentValue = function (currentData) {\n // eslint-disable-next-line\n var currentField;\n // eslint-disable-next-line\n switch (currentData['Name']) {\n case 'Textbox':\n case 'Password':\n currentField = currentData.Text;\n break;\n case 'SignatureField':\n currentField = currentData.Value;\n break;\n case 'RadioButton':\n case 'CheckBox':\n currentField = currentData.Selected;\n break;\n case 'DropDown':\n currentField = currentData.SelectedValue;\n break;\n case 'ListBox':\n currentField = currentData.SelectedList;\n break;\n }\n return currentField;\n };\n // eslint-disable-next-line\n FormFields.prototype.getSignatureBounds = function (LineBounds, bounds, pageIndex) {\n // eslint-disable-next-line\n var pageDetails = this.pdfViewerBase.pageSize[pageIndex];\n // eslint-disable-next-line\n var bound = 0;\n switch (pageDetails.rotation) {\n case 0:\n bound = bounds;\n break;\n case 1:\n bound = { x: bounds.x + LineBounds.Width + (bounds.width / 3.5), y: pageDetails.width - LineBounds.X + (bounds.height / 4) };\n break;\n case 2:\n bound = { x: pageDetails.width - bounds.x - bounds.width, y: pageDetails.height - bounds.y - bounds.height };\n break;\n case 3:\n bound = { x: bounds.y - (bounds.width / 2) + bounds.height, y: bounds.x + (bounds.width / 3) };\n break;\n }\n return bound;\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n FormFields.prototype.downloadFormFieldsData = function () {\n // eslint-disable-next-line\n var data = this.pdfViewerBase.getItemFromSessionStorage('_formfields');\n if (data) {\n // eslint-disable-next-line\n var formFieldsData = JSON.parse(data);\n // eslint-disable-next-line\n var datas = {};\n var fieldDatas = [];\n for (var m = 0; m < formFieldsData.length; m++) {\n // eslint-disable-next-line\n var currentData = formFieldsData[m];\n var isRequired = currentData.IsRequired;\n if (currentData.Name === 'Textbox' || currentData.Name === 'Password' || currentData.Multiline) {\n if (isRequired && (currentData.Text === '' || currentData.Text === null)) {\n this.pdfViewerBase.validateForm = true;\n this.pdfViewerBase.nonFillableFields[currentData.FieldName] = currentData.Text;\n }\n else {\n delete (this.pdfViewerBase.nonFillableFields[currentData.FieldName]);\n }\n fieldDatas = { fieldValue: currentData.Text, isReadOnly: currentData.IsReadonly };\n datas[currentData.FieldName] = fieldDatas;\n }\n else if (currentData.Name === 'RadioButton' && currentData.Selected) {\n if (isRequired && currentData.Selected === false) {\n this.pdfViewerBase.validateForm = true;\n this.pdfViewerBase.nonFillableFields[currentData.GroupName] = currentData.Value;\n }\n else {\n delete (this.pdfViewerBase.nonFillableFields[currentData.GroupName]);\n }\n fieldDatas = { fieldValue: currentData.Value, isReadOnly: currentData.IsReadonly };\n datas[currentData.GroupName] = fieldDatas;\n }\n else if (currentData.Name === 'CheckBox') {\n if (isRequired && currentData.Selected === false) {\n this.pdfViewerBase.validateForm = true;\n this.pdfViewerBase.nonFillableFields[currentData.GroupName] = currentData.Selected;\n }\n else {\n delete (this.pdfViewerBase.nonFillableFields[currentData.GroupName]);\n }\n if (currentData.CheckboxIndex && currentData.Selected) {\n fieldDatas = { fieldValue: currentData.CheckboxIndex, isReadOnly: currentData.IsReadonly };\n datas[currentData.GroupName] = fieldDatas;\n }\n else if (datas[currentData.GroupName] === undefined || datas[currentData.GroupName] === null) {\n fieldDatas = { fieldValue: currentData.Selected, isReadOnly: currentData.IsReadonly };\n datas[currentData.GroupName] = fieldDatas;\n }\n }\n else if (currentData.Name === 'DropDown') {\n if (isRequired && currentData.SelectedValue === '') {\n this.pdfViewerBase.validateForm = true;\n this.pdfViewerBase.nonFillableFields[currentData.Text] = currentData.SelectedValue;\n }\n else {\n delete (this.pdfViewerBase.nonFillableFields[currentData.Text]);\n }\n fieldDatas = { fieldValue: currentData.SelectedValue, isReadOnly: currentData.IsReadonly };\n datas[currentData.Text] = fieldDatas;\n }\n else if (currentData.Name === 'ListBox') {\n // eslint-disable-next-line\n var childItems = currentData['TextList'];\n var childItemsText = [];\n for (var m_1 = 0; m_1 < currentData.SelectedList.length; m_1++) {\n // eslint-disable-next-line\n var currentElement = currentData.SelectedList[m_1];\n childItemsText.push(childItems[currentElement]);\n }\n fieldDatas = { fieldValue: JSON.stringify(childItemsText), isReadOnly: currentData.IsReadonly };\n datas[currentData.Text] = fieldDatas;\n }\n else if (currentData.Name === 'SignatureField' || currentData.Name === 'InitialField') {\n // eslint-disable-next-line\n var csData = void 0;\n if (currentData.Value === null || currentData.Value === '') {\n this.addSignaturePath(currentData);\n }\n if (currentData.Value && currentData.Value !== '') {\n csData = currentData.Value;\n var fontFamily = currentData.fontFamily ? currentData.fontFamily : currentData.FontFamily;\n if (fontFamily) {\n datas[currentData.FieldName + 'fontName'] = fontFamily;\n datas[currentData.FieldName + 'fontSize'] = currentData.fontSize ? currentData.fontSize : currentData.FontSize;\n }\n else if (currentData.Value.split('base64,')[1]) {\n datas[currentData.FieldName + 'ImageData'] = true;\n }\n else {\n // eslint-disable-next-line\n var collectionData = processPathData(currentData.Value);\n csData = splitArrayCollection(collectionData);\n }\n }\n if (isRequired && currentData.Value === null || currentData.Value === '') {\n this.pdfViewerBase.validateForm = true;\n this.pdfViewerBase.nonFillableFields[currentData.FieldName] = JSON.stringify(csData);\n }\n else {\n delete (this.pdfViewerBase.nonFillableFields[currentData.FieldName]);\n }\n datas[currentData.FieldName] = JSON.stringify(csData);\n if (currentData.Bounds) {\n // eslint-disable-next-line\n var bounds = this.getSignatureBounds(currentData.LineBounds, currentData.Bounds, currentData.PageIndex);\n currentData.Bounds.x = bounds.x;\n currentData.Bounds.y = bounds.y;\n datas[currentData.FieldName + 'bounds'] = JSON.stringify(currentData.Bounds);\n }\n else {\n // eslint-disable-next-line\n var lineBounds = currentData.LineBounds;\n // eslint-disable-next-line\n var bounds = { x: this.ConvertPointToPixel(lineBounds.X), y: this.ConvertPointToPixel(lineBounds.Y), width: this.ConvertPointToPixel(lineBounds.Width), height: this.ConvertPointToPixel(lineBounds.Height) };\n datas[currentData.FieldName + 'bounds'] = JSON.stringify(bounds);\n }\n datas[currentData.FieldName + 'isReadOnly'] = currentData.IsReadonly;\n }\n }\n return (JSON.stringify(datas));\n }\n };\n FormFields.prototype.focusFormFields = function (event) {\n // eslint-disable-next-line\n var currentTarget = event.target;\n // eslint-disable-next-line\n if (currentTarget && (currentTarget.className !== 'e-pdfviewer-signatureformfields' && currentTarget.className !== 'e-pdfviewer-signatureformfields e-pv-signature-focus')) {\n // eslint-disable-next-line\n var backgroundcolor = currentTarget.style.backgroundColor;\n // eslint-disable-next-line\n var currentIndex = backgroundcolor.lastIndexOf(',');\n // eslint-disable-next-line\n var currentColor = backgroundcolor.slice(0, currentIndex + 1) + 0 + ')';\n currentTarget.style.backgroundColor = currentColor;\n if (currentTarget.type === 'checkbox') {\n currentTarget.style.webkitAppearance = '';\n }\n currentTarget.style.boxShadow = \"0 0 5px \" + (currentTarget.style.borderColor === 'transparent' ? '#000000' : currentTarget.style.borderColor);\n }\n else if (currentTarget) {\n // eslint-disable-next-line\n if (currentTarget.className === 'e-pdfviewer-signatureformfields' || currentTarget.className === 'e-pdfviewer-signatureformfields-signature' || currentTarget.className === 'e-pdfviewer-signatureformfields e-pv-signature-focus' || currentTarget.className === 'e-pdfviewer-signatureformfields-signature e-pv-signature-focus') {\n this.setFocus(currentTarget.id);\n }\n }\n };\n FormFields.prototype.blurFormFields = function (event) {\n // eslint-disable-next-line\n var currentTarget = event.target;\n if (currentTarget.InsertSpaces && this.isKeyDownCheck) {\n // eslint-disable-next-line\n var font = parseInt(currentTarget.style.width) - (parseInt(currentTarget.style.height) / 2);\n currentTarget.style.width = '' + font + 'px';\n this.isKeyDownCheck = false;\n }\n if (currentTarget.type === 'checkbox') {\n this.pdfViewer.fireFocusOutFormField(currentTarget.name, currentTarget.checked);\n }\n else {\n this.pdfViewer.fireFocusOutFormField(currentTarget.name, currentTarget.value);\n }\n // eslint-disable-next-line\n var backgroundcolor = currentTarget.style.backgroundColor;\n // eslint-disable-next-line\n var currentIndex = backgroundcolor.lastIndexOf(',');\n // eslint-disable-next-line\n var currentColor = backgroundcolor.slice(0, currentIndex + 1) + 0.2 + ')';\n currentTarget.style.backgroundColor = currentColor;\n currentTarget.style.boxShadow = 'none';\n if ((currentTarget.type === 'checkbox') && !currentTarget.checked) {\n currentTarget.style.webkitAppearance = 'none';\n }\n else {\n currentTarget.style.webkitAppearance = '';\n }\n };\n FormFields.prototype.updateFormFields = function (event) {\n // eslint-disable-next-line\n var currentTarget = event.target;\n if (currentTarget.className === 'e-pdfviewer-ListBox') {\n currentTarget = currentTarget.parentElement;\n this.updateDataInSession(currentTarget);\n }\n else if (currentTarget.className === 'e-pdfviewer-signatureformfields' || currentTarget.className === 'e-pdfviewer-signatureformfields e-pv-signature-focus') {\n this.currentTarget = currentTarget;\n }\n else if (currentTarget.className === 'e-pv-buttonItem' || currentTarget.type === 'button') {\n this.pdfViewer.fireButtonFieldClickEvent(currentTarget.value, currentTarget.name, currentTarget.id);\n }\n for (var m = 0; m < this.pdfViewer.formFieldCollections.length; m++) {\n if (currentTarget.id === this.pdfViewer.formFieldCollections[m].id) {\n if (this.pdfViewer.formDesignerModule || this.pdfViewer.annotationModule) {\n this.pdfViewer.fireFormFieldClickEvent('formFieldClicked', this.pdfViewer.formFieldCollections[m]);\n }\n // eslint-disable-next-line\n if (currentTarget.className === 'e-pdfviewer-signatureformfields' || currentTarget.className === 'e-pdfviewer-signatureformfields-signature' || currentTarget.className === 'e-pdfviewer-signatureformfields e-pv-signature-focus' || currentTarget.className === 'e-pdfviewer-signatureformfields-signature e-pv-signature-focus') {\n this.setFocus(currentTarget.id);\n }\n }\n }\n };\n /**\n * @param signatureType\n * @param value\n * @param target\n * @param fontname\n * @param signatureType\n * @param value\n * @param target\n * @param fontname\n * @private\n */\n // eslint-disable-next-line\n FormFields.prototype.drawSignature = function (signatureType, value, target, fontname) {\n var annot;\n // eslint-disable-next-line\n var proxy = this;\n var bounds;\n var targetBounds;\n var parentElementBounds;\n var data;\n if (this.pdfViewer.formDesigner) {\n data = this.pdfViewerBase.getItemFromSessionStorage('_formDesigner');\n }\n else {\n data = this.pdfViewerBase.getItemFromSessionStorage('_formfields');\n }\n var formFieldsData = JSON.parse(data);\n var targetName = this.currentTarget ? this.currentTarget.name : target.name ? target.name : target.offsetParent.name;\n var _loop_2 = function () {\n var fieldName = this_2.pdfViewer.formDesigner ? formFieldsData[i].FormField.name : formFieldsData[i].FieldName;\n if (this_2.pdfViewer.formDesigner ? fieldName === targetName : fieldName === targetName && (!isNullOrUndefined(formFieldsData[i].ActualFieldName))) {\n target = this_2.pdfViewer.formDesigner ? document.getElementById(formFieldsData[i].Key.split(\"_\")[0]) : document.getElementById(formFieldsData[i].uniqueID);\n // eslint-disable-next-line\n var currentField_1 = target;\n var elementId = currentField_1.offsetParent.offsetParent.id.split(\"_\")[0];\n var signatureField_1 = this_2.pdfViewer.nameTable[elementId];\n if (target && target.offsetParent && signatureField_1) {\n targetBounds = target.getBoundingClientRect();\n parentElementBounds = target.offsetParent.offsetParent.offsetParent.getBoundingClientRect();\n this_2.pdfViewerBase.drawSignatureWithTool = true;\n if (target.nextSibling && target.nextSibling.id.indexOf(\"initial\") !== -1) {\n this_2.pdfViewer.isInitialFieldToolbarSelection = true;\n }\n }\n var currentValue_1 = value ? value : this_2.pdfViewerBase.signatureModule.outputString;\n var currentFont = fontname ? fontname : this_2.pdfViewerBase.signatureModule.fontName;\n var zoomvalue = this_2.pdfViewerBase.getZoomFactor();\n var currentWidth = this_2.pdfViewerBase.drawSignatureWithTool ? targetBounds.width / zoomvalue : parseFloat(currentField_1.style.width) / zoomvalue;\n var currentHeight = this_2.pdfViewerBase.drawSignatureWithTool ? targetBounds.height / zoomvalue : parseFloat(currentField_1.style.height) / zoomvalue;\n var currentLeft = this_2.pdfViewerBase.drawSignatureWithTool ? ((targetBounds.left - parentElementBounds.left)) / zoomvalue : parseFloat(currentField_1.style.left) / zoomvalue;\n var currentTop = this_2.pdfViewerBase.drawSignatureWithTool ? ((targetBounds.top - parentElementBounds.top)) / zoomvalue : parseFloat(currentField_1.style.top) / zoomvalue;\n var currentPage_1 = this_2.pdfViewerBase.drawSignatureWithTool ? target.nextElementSibling ? parseFloat(target.nextElementSibling.id.split(\"_\")[1]) : parseFloat(currentField_1.id.split('_')[1]) : parseFloat(currentField_1.id.split('_')[1]);\n var currentIndex = this_2.pdfViewerBase.drawSignatureWithTool ? target.nextElementSibling ? parseFloat(target.nextElementSibling.id.split('_')[2]) : parseFloat(currentField_1.id.split('_')[2]) : parseFloat(currentField_1.id.split('_')[2]);\n var signString_1 = this_2.pdfViewerBase.signatureModule.saveImageString;\n var signatureFontFamily_1;\n var signatureFontSize_1;\n var rotateAngleString = currentField_1.offsetParent.offsetParent.style.transform ? currentField_1.offsetParent.offsetParent.style.transform : currentField_1.style.transform;\n rotateAngleString = rotateAngleString.substring(rotateAngleString.indexOf(\"(\") + 1, rotateAngleString.indexOf(\"d\"));\n var rotateAngle_1 = rotateAngleString ? parseInt(rotateAngleString) : 0;\n if (signatureType === 'Type') {\n if (!currentFont) {\n currentFont = 'Helvetica';\n }\n // eslint-disable-next-line\n bounds = this_2.getSignBounds(currentIndex, rotateAngle_1, currentPage_1, zoomvalue, currentLeft, currentTop, currentWidth, currentHeight);\n if (this_2.pdfViewer.signatureFitMode === 'Default') {\n bounds = this_2.getDefaultBoundsforSign(bounds);\n }\n annot = {\n // eslint-disable-next-line max-len\n id: currentField_1.id, bounds: { x: bounds.x, y: bounds.y, width: bounds.width, height: bounds.height }, pageIndex: currentPage_1, data: currentValue_1, modifiedDate: '',\n shapeAnnotationType: 'SignatureText', opacity: 1, rotateAngle: rotateAngle_1, annotName: 'SignatureText', comments: [], review: { state: '', stateModel: '', modifiedDate: '', author: '' }, fontFamily: currentFont, fontSize: rotateAngle_1 === 90 || rotateAngle_1 === 270 ? (bounds.width / 1.35) : (bounds.height / 1.35)\n };\n if (annot.shapeAnnotationType === 'SignatureText') {\n var textWidth = this_2.getTextWidth(annot.data, annot.fontSize, annot.fontFamily);\n var widthRatio = 1;\n if (textWidth > bounds.width)\n widthRatio = bounds.width / textWidth;\n annot.fontSize = this_2.getFontSize(Math.floor((annot.fontSize * widthRatio)));\n }\n signString_1 = annot.data;\n signatureFontFamily_1 = annot.fontFamily;\n signatureFontSize_1 = annot.fontSize;\n }\n else if (signatureType === 'Image') {\n // eslint-disable-next-line\n bounds = this_2.getSignBounds(currentIndex, rotateAngle_1, currentPage_1, zoomvalue, currentLeft, currentTop, currentWidth, currentHeight);\n var image_1 = new Image();\n image_1.src = currentValue_1;\n image_1.onload = function () {\n proxy.imageOnLoad(bounds, image_1, currentValue_1, currentPage_1, rotateAngle_1, currentField_1, signatureField_1, signString_1, signatureFontFamily_1, signatureFontSize_1, target);\n };\n }\n else {\n if ((currentValue_1.indexOf('base64')) !== -1) {\n // eslint-disable-next-line\n bounds = this_2.getSignBounds(currentIndex, rotateAngle_1, currentPage_1, zoomvalue, currentLeft, currentTop, currentWidth, currentHeight);\n if (this_2.pdfViewer.signatureFitMode === 'Default') {\n bounds = this_2.getDefaultBoundsforSign(bounds);\n }\n annot = {\n // eslint-disable-next-line max-len\n id: currentField_1.id, bounds: { x: bounds.x, y: bounds.y, width: bounds.width, height: bounds.height }, pageIndex: currentPage_1, data: currentValue_1, modifiedDate: '',\n shapeAnnotationType: 'SignatureImage', opacity: 1, rotateAngle: rotateAngle_1, annotName: 'SignatureField', comments: [], review: { state: '', stateModel: '', modifiedDate: '', author: '' }\n };\n signString_1 = annot.data;\n }\n else {\n // eslint-disable-next-line\n if (this_2.pdfViewer.signatureFitMode === 'Default') {\n // eslint-disable-next-line\n var signatureBounds = this_2.updateSignatureAspectRatio(currentValue_1, false, currentField_1);\n // eslint-disable-next-line\n bounds = this_2.getSignBounds(currentIndex, rotateAngle_1, currentPage_1, zoomvalue, currentLeft, currentTop, signatureBounds.width, signatureBounds.height, true);\n bounds.x = bounds.x + signatureBounds.left;\n bounds.y = bounds.y + signatureBounds.top;\n }\n else {\n bounds = this_2.getSignBounds(currentIndex, rotateAngle_1, currentPage_1, zoomvalue, currentLeft, currentTop, currentWidth, currentHeight);\n }\n annot = {\n // eslint-disable-next-line max-len\n id: currentField_1.id, bounds: { x: bounds.x, y: bounds.y, width: bounds.width, height: bounds.height }, pageIndex: currentPage_1, data: currentValue_1, modifiedDate: '',\n shapeAnnotationType: 'Path', opacity: 1, rotateAngle: rotateAngle_1, annotName: 'SignatureField', comments: [], review: { state: '', stateModel: '', modifiedDate: '', author: '' }\n };\n }\n }\n if (this_2.pdfViewerBase.drawSignatureWithTool && signatureField_1 && signatureType !== 'Image') {\n annot.id = signatureField_1.id + \"_content\";\n var obj = this_2.pdfViewer.add(annot);\n signatureField_1.wrapper.children.push(obj.wrapper);\n }\n else if (signatureType !== 'Image') {\n this_2.pdfViewer.add(annot);\n }\n if (annot && annot.shapeAnnotationType === 'Path' && currentValue_1 !== '') {\n this_2.pdfViewerBase.currentSignatureAnnot = annot;\n // eslint-disable-next-line\n var position = { currentHeight: currentHeight, currentWidth: currentWidth, currentLeft: currentLeft, currentTop: currentTop };\n this_2.pdfViewerBase.signatureModule.addSignatureCollection(bounds, position);\n signString_1 = this_2.pdfViewerBase.signatureModule.saveImageString;\n this_2.pdfViewerBase.currentSignatureAnnot = null;\n }\n if (signatureType !== 'Image') {\n // eslint-disable-next-line\n var canvass = document.getElementById(this_2.pdfViewer.element.id + '_annotationCanvas_' + currentPage_1);\n // eslint-disable-next-line\n this_2.pdfViewer.renderDrawing(canvass, currentPage_1);\n this_2.pdfViewerBase.signatureModule.showSignatureDialog(false);\n if (currentField_1.className === 'e-pdfviewer-signatureformfields e-pv-signature-focus') {\n currentField_1.className = 'e-pdfviewer-signatureformfields-signature e-pv-signature-focus';\n }\n else {\n currentField_1.className = 'e-pdfviewer-signatureformfields-signature';\n }\n if (this_2.pdfViewerBase.drawSignatureWithTool && signatureField_1) {\n var key = target.offsetParent.offsetParent.id.split('_')[0] + '_content';\n annot.bounds = { x: bounds.x * zoomvalue, y: bounds.y * zoomvalue, width: bounds.width * zoomvalue, height: bounds.height * zoomvalue };\n this_2.updateSignatureDataInSession(annot, key);\n }\n else {\n this_2.updateDataInSession(currentField_1, annot.data, annot.bounds, signatureFontFamily_1, signatureFontSize_1);\n }\n currentField_1.style.pointerEvents = 'none';\n if (this_2.pdfViewer.annotation) {\n this_2.pdfViewer.annotation.addAction(annot.pageIndex, null, annot, 'FormField Value Change', '', annot, annot);\n }\n // eslint-disable-next-line\n if (annot.shapeAnnotationType === 'Path' || annot.shapeAnnotationType === \"SignatureText\") {\n this_2.pdfViewer.fireSignatureAdd(annot.pageIndex, annot.id, annot.shapeAnnotationType, annot.bounds, annot.opacity, null, null, signString_1);\n }\n this_2.pdfViewer.fireFocusOutFormField(currentField_1.name, currentValue_1);\n }\n }\n };\n var this_2 = this;\n for (var i = 0; i < formFieldsData.length; i++) {\n _loop_2();\n }\n if (signatureType !== 'Image') {\n this.pdfViewerBase.signatureModule.hideSignaturePanel();\n this.pdfViewerBase.drawSignatureWithTool = false;\n this.pdfViewer.isInitialFieldToolbarSelection = false;\n }\n };\n // EJ2-62918- Image signature width is wrong while adding programmatically and it is fixed by adding an onload event.\n // A function was added and it was called\n FormFields.prototype.imageOnLoad = function (bounds, image, currentValue, currentPage, rotateAngle, currentField, signatureField, signString, signatureFontFamily, signatureFontSize, target) {\n if (target && target.offsetParent && signatureField) {\n this.pdfViewerBase.drawSignatureWithTool = true;\n if (target.nextSibling && target.nextSibling.id.indexOf(\"initial\") !== -1) {\n this.pdfViewer.isInitialFieldToolbarSelection = true;\n }\n }\n var annot;\n if (this.pdfViewer.signatureFitMode === 'Default') {\n {\n var padding = Math.min(bounds.height / this.paddingDifferenceValue, bounds.width / this.paddingDifferenceValue);\n var maxHeight = bounds.height - padding;\n var maxWidth = bounds.width - padding;\n var imageWidth = image.width;\n var imageHeight = image.height;\n var beforeWidth = bounds.width;\n var beforeHeight = bounds.height;\n var ratio = Math.min(maxWidth / imageWidth, maxHeight / imageHeight);\n bounds.width = imageWidth * ratio;\n bounds.height = imageHeight * ratio;\n bounds.x = bounds.x + (beforeWidth - bounds.width) / 2;\n bounds.y = bounds.y + (beforeHeight - bounds.height) / 2;\n }\n annot = {\n // eslint-disable-next-line max-len\n id: currentField.id, bounds: { x: bounds.x, y: bounds.y, width: bounds.width, height: bounds.height }, pageIndex: currentPage, data: currentValue, modifiedDate: '',\n shapeAnnotationType: 'SignatureImage', opacity: 1, rotateAngle: rotateAngle, annotName: 'SignatureField', comments: [], review: { state: '', stateModel: '', modifiedDate: '', author: '' }\n };\n signString = annot.data;\n if (this.pdfViewerBase.drawSignatureWithTool && signatureField) {\n annot.id = signatureField.id + \"_content\";\n var obj = this.pdfViewer.add(annot);\n signatureField.wrapper.children.push(obj.wrapper);\n }\n else {\n this.pdfViewer.add(annot);\n }\n var canvass = document.getElementById(this.pdfViewer.element.id + '_annotationCanvas_' + currentPage);\n // eslint-disable-next-line\n this.pdfViewer.renderDrawing(canvass, currentPage);\n this.pdfViewerBase.signatureModule.showSignatureDialog(false);\n if (currentField.className === 'e-pdfviewer-signatureformfields e-pv-signature-focus') {\n currentField.className = 'e-pdfviewer-signatureformfields-signature e-pv-signature-focus';\n }\n else {\n currentField.className = 'e-pdfviewer-signatureformfields-signature';\n }\n if (this.pdfViewerBase.drawSignatureWithTool && signatureField) {\n var key = target.offsetParent.offsetParent.id.split('_')[0] + '_content';\n this.updateSignatureDataInSession(annot, key);\n }\n else {\n this.updateDataInSession(currentField, annot.data, annot.bounds, signatureFontFamily, signatureFontSize);\n }\n currentField.style.pointerEvents = 'none';\n if (this.pdfViewer.annotation) {\n this.pdfViewer.annotation.addAction(annot.pageIndex, null, annot, 'FormField Value Change', '', annot, annot);\n }\n // eslint-disable-next-line\n if (annot.shapeAnnotationType === \"SignatureImage\") {\n this.pdfViewer.fireSignatureAdd(annot.pageIndex, annot.id, annot.shapeAnnotationType, annot.bounds, annot.opacity, null, null, signString);\n }\n this.pdfViewer.fireFocusOutFormField(currentField.name, currentValue);\n }\n this.pdfViewerBase.signatureModule.hideSignaturePanel();\n this.pdfViewerBase.drawSignatureWithTool = false;\n this.pdfViewer.isInitialFieldToolbarSelection = false;\n };\n FormFields.prototype.updateSignatureDataInSession = function (annot, key) {\n var data = this.pdfViewerBase.getItemFromSessionStorage('_formDesigner');\n var formFieldsData = JSON.parse(data);\n if (!isNullOrUndefined(formFieldsData)) {\n var _loop_3 = function (i) {\n if (formFieldsData[i].Key === key) {\n var formFieldIndex = this_3.pdfViewer.formFieldCollection.findIndex(function (el) { return el.id === formFieldsData[i].FormField.id.split('_')[0]; });\n if (annot.shapeAnnotationType === \"SignatureText\") {\n formFieldsData[i].FormField.signatureType = \"Text\";\n this_3.pdfViewerBase.formFieldCollection[i].FormField.signatureType = \"Text\";\n this_3.pdfViewer.nameTable[key].signatureType = \"Text\";\n formFieldsData[i].FormField.fontFamily = annot.fontFamily === \"TimesRoman\" ? \"Times New Roman\" : annot.fontFamily;\n this_3.pdfViewerBase.formFieldCollection[i].FormField.fontFamily = annot.fontFamily;\n this_3.pdfViewer.nameTable[key].fontFamily = annot.fontFamily;\n formFieldsData[i].FormField.fontSize = annot.fontSize;\n this_3.pdfViewerBase.formFieldCollection[i].FormField.fontSize = annot.fontSize;\n this_3.pdfViewer.nameTable[key].fontSize = annot.fontSize;\n formFieldIndex > -1 ? this_3.pdfViewer.formFieldCollection[formFieldIndex].signatureType = \"Text\" : null;\n }\n else if (annot.shapeAnnotationType === \"SignatureImage\") {\n formFieldsData[i].FormField.signatureType = \"Image\";\n this_3.pdfViewerBase.formFieldCollection[i].FormField.signatureType = \"Image\";\n this_3.pdfViewer.nameTable[key].signatureType = \"Image\";\n formFieldIndex > -1 ? this_3.pdfViewer.formFieldCollection[formFieldIndex].signatureType = \"Image\" : null;\n }\n else {\n formFieldsData[i].FormField.signatureType = \"Path\";\n this_3.pdfViewerBase.formFieldCollection[i].FormField.signatureType = \"Path\";\n this_3.pdfViewer.nameTable[key].signatureType = \"Path\";\n formFieldIndex > -1 ? this_3.pdfViewer.formFieldCollection[formFieldIndex].signatureType = \"Path\" : null;\n }\n formFieldsData[i].FormField.signatureBound = annot.bounds;\n this_3.pdfViewerBase.formFieldCollection[i].FormField.signatureBound = annot.bounds;\n this_3.pdfViewer.nameTable[key].signatureBound = annot.bounds;\n formFieldIndex > -1 ? this_3.pdfViewer.formFieldCollection[formFieldIndex].signatureBound = annot.bounds : null;\n if (annot.shapeAnnotationType === \"Path\") {\n var collectionData = processPathData(annot.data);\n var csData = splitArrayCollection(collectionData);\n formFieldsData[i].FormField.value = JSON.stringify(csData);\n this_3.pdfViewer.nameTable[key].value = annot.data;\n this_3.pdfViewer.nameTable[key.split('_')[0]].value = annot.data;\n this_3.pdfViewerBase.formFieldCollection[i].FormField.value = JSON.stringify(csData);\n formFieldIndex > -1 ? this_3.pdfViewer.formFieldCollection[formFieldIndex].value = JSON.stringify(csData) : null;\n }\n else {\n formFieldsData[i].FormField.value = annot.data;\n this_3.pdfViewerBase.formFieldCollection[i].FormField.value = annot.data;\n this_3.pdfViewer.nameTable[key.split('_')[0]].value = annot.data;\n this_3.pdfViewer.nameTable[key].value = annot.data;\n formFieldIndex > -1 ? this_3.pdfViewer.formFieldCollection[formFieldIndex].value = annot.data : null;\n }\n this_3.pdfViewer.formDesigner.updateFormFieldCollections(formFieldsData[i].FormField);\n this_3.pdfViewer.formDesigner.updateFormFieldPropertiesChanges(\"formFieldPropertiesChange\", formFieldsData[i].FormField, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, \"\", formFieldsData[i].FormField.value);\n }\n };\n var this_3 = this;\n for (var i = 0; i < formFieldsData.length; i++) {\n _loop_3(i);\n }\n }\n this.pdfViewerBase.setItemInSessionStorage(formFieldsData, '_formDesigner');\n };\n /**\n * @private\n */\n FormFields.prototype.getDefaultBoundsforSign = function (bounds) {\n return { x: bounds.x + 4, y: bounds.y + 4, width: bounds.width - 8, height: bounds.height - 8 };\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n FormFields.prototype.getSignBounds = function (currentIndex, rotateAngle, currentPage, zoomvalue, currentLeft, currentTop, currentWidth, currentHeight, isDraw) {\n // eslint-disable-next-line\n var bounds;\n var signatureId = this.pdfViewer.isInitialFieldToolbarSelection ? 'initialIcon' : 'signIcon';\n var signIcon = document.getElementById(signatureId + '_' + currentPage + '_' + currentIndex);\n var signLeft = signIcon ? parseFloat(signIcon.style.left) * zoomvalue : 0;\n var difference = (currentLeft * zoomvalue) - (signLeft / zoomvalue);\n if (rotateAngle === 90 || rotateAngle === 270) {\n this.rotateAngle = 0;\n if (signIcon.style.left !== '') {\n if (isDraw) {\n return bounds = { x: currentLeft - (difference / zoomvalue) - zoomvalue, y: currentTop + (difference / zoomvalue) + zoomvalue, width: currentWidth, height: currentHeight };\n }\n else {\n return bounds = { x: currentLeft - (difference / zoomvalue) - zoomvalue, y: currentTop + (difference / zoomvalue) + zoomvalue, width: currentHeight, height: currentWidth };\n }\n }\n else {\n difference = 10;\n if (isDraw) {\n return bounds = { x: currentLeft - currentWidth, y: currentTop + currentWidth, width: currentHeight, height: currentWidth };\n }\n else {\n return bounds = { x: currentLeft - currentWidth - difference / 2, y: currentTop + currentWidth + difference, width: currentHeight, height: currentWidth };\n }\n }\n }\n else {\n this.rotateAngle = 0;\n return bounds = { x: currentLeft, y: currentTop, width: currentWidth, height: currentHeight };\n }\n };\n // eslint-disable-next-line\n FormFields.prototype.updateSameFieldsValue = function (event) {\n if (this.formFieldsData) {\n for (var i = 0; i < this.formFieldsData.length; i++) {\n // eslint-disable-next-line\n var currentField = this.formFieldsData[i];\n if (event.target.name === currentField.FieldName && event.target.id !== currentField.uniqueID) {\n // eslint-disable-next-line\n var currentTarget = document.getElementById(this.formFieldsData[i].uniqueID);\n if (currentTarget) {\n currentTarget.value = event.target.value;\n }\n else {\n currentField.Text = event.target.value;\n this.pdfViewerBase.setItemInSessionStorage(this.formFieldsData, '_formfields');\n }\n }\n }\n }\n };\n FormFields.prototype.updateFormFieldsValue = function (event) {\n // eslint-disable-next-line\n var currentTarget = event.target;\n var fieldIndex;\n var nextFields;\n if (currentTarget.InsertSpaces && !this.isKeyDownCheck) {\n // eslint-disable-next-line\n var font = parseInt(currentTarget.style.width) + (parseInt(currentTarget.style.height) / 2);\n currentTarget.style.width = '' + font + 'px';\n this.isKeyDownCheck = true;\n }\n if (event.which === 9 && currentTarget && (currentTarget.className === 'e-pdfviewer-formFields' || currentTarget.className === 'e-pdfviewer-signatureformfields e-pv-signature-focus' || currentTarget.className === 'e-pdfviewer-signatureformfields-signature')) {\n // eslint-disable-next-line\n var id = currentTarget.id.split('input_')[1].split('_')[0];\n // eslint-disable-next-line\n var textLayer = document.getElementById(this.pdfViewer.element.id + '_textLayer_' + parseInt(id));\n // eslint-disable-next-line\n var currentFields = textLayer.getElementsByClassName('e-pdfviewer-formFields');\n var istabindexed = true;\n fieldIndex = this.pdfViewer.formFieldCollections.findIndex(function (field) { return field.id === currentTarget.id; });\n if ((!event.shiftKey && event.key === \"Tab\")) {\n nextFields = fieldIndex + 1 < this.pdfViewer.formFieldCollections.length ? this.pdfViewer.formFieldCollections[fieldIndex + 1] : this.pdfViewer.formFieldCollections[0];\n }\n this.pdfViewer.focusFormField(nextFields);\n istabindexed = true;\n event.preventDefault();\n var tabindex = currentTarget.tabIndex + 1;\n while (!istabindexed) {\n for (var l = 0; l < currentFields.length; l++) {\n istabindexed = false;\n if (currentFields[l].tabIndex === (tabindex)) {\n currentFields[l].focus();\n istabindexed = true;\n event.preventDefault();\n break;\n }\n }\n if (this.maintainTabIndex[id] === tabindex) {\n istabindexed = true;\n }\n tabindex = tabindex + 1;\n }\n }\n if ((event.shiftKey && event.key === \"Tab\")) {\n var fieldIndex_1 = this.pdfViewer.formFieldCollections.findIndex(function (field) { return field.id === currentTarget.id; });\n var nextField = fieldIndex_1 > 0 ? this.pdfViewer.formFieldCollections[fieldIndex_1 - 1] : this.pdfViewer.formFieldCollections[this.pdfViewer.formFieldCollections.length - 1];\n this.pdfViewer.focusFormField(nextField);\n event.preventDefault();\n }\n if (event.currentTarget.classList.contains('e-pdfviewer-signatureformfields') ||\n event.currentTarget.classList.contains('e-pdfviewer-signatureformfields-signature')) {\n if (event.key === 'Enter') {\n // eslint-disable-next-line\n var currentTarget_1 = event.target;\n for (var m = 0; m < this.pdfViewer.formFieldCollections.length; m++) {\n if (currentTarget_1.id === this.pdfViewer.formFieldCollections[m].id) {\n this.setFocus(currentTarget_1.id);\n this.pdfViewer.fireFormFieldClickEvent('formFieldClicked', this.pdfViewer.formFieldCollections[m]);\n }\n }\n }\n else {\n event.preventDefault();\n }\n }\n };\n FormFields.prototype.changeFormFields = function (event) {\n // eslint-disable-next-line\n var currentTarget = event.target;\n this.updateDataInSession(currentTarget);\n };\n FormFields.prototype.calculateSignatureBounds = function (signatureCavasWidth, signatureCavasHeight, newdifferenceX, newdifferenceY, isSignature, currentField, currentData) {\n var ratioX = newdifferenceX / signatureCavasWidth;\n var ratioY = newdifferenceY / signatureCavasHeight;\n var zoomvalue = this.pdfViewerBase.getZoomFactor();\n var currentWidth = 0;\n var currentHeight = 0;\n var isSignatureStretched = false;\n var isHeightStretched = false;\n var leftDifference = 0;\n var topDifference = 0;\n if (isSignature) {\n currentWidth = this.pdfViewer.handWrittenSignatureSettings.width ? this.pdfViewer.handWrittenSignatureSettings.width : 150;\n currentHeight = this.pdfViewer.handWrittenSignatureSettings.height ? this.pdfViewer.handWrittenSignatureSettings.height : 100;\n }\n else {\n var fieldWidth = currentField ? currentField.style.width === '100%' ? currentField.clientWidth : parseFloat(currentField.style.width) : this.ConvertPointToPixel(currentData.LineBounds.Width);\n var fieldHeight = currentField ? currentField.style.height === '100%' ? currentField.clientHeight : parseFloat(currentField.style.height) : this.ConvertPointToPixel(currentData.LineBounds.Height);\n var fieldWidthRatio = fieldWidth / fieldHeight;\n var fieldHeightRatio = fieldHeight / fieldWidth;\n var canvasWidthRatio = signatureCavasWidth / signatureCavasHeight;\n var canvasHeightRatio = signatureCavasHeight / signatureCavasWidth;\n var fieldRotation = currentField ? currentField.offsetParent.offsetParent.style.transform ? currentField.offsetParent.offsetParent.style.transform : currentField.style.transform : currentData.RotationAngle;\n if ((fieldWidthRatio > canvasWidthRatio) || (fieldHeightRatio > canvasWidthRatio) || ((Math.abs(fieldWidthRatio - fieldHeightRatio)) <= 1)) {\n var ratioDifference = 0;\n if ((fieldHeightRatio > canvasWidthRatio) || ((Math.abs(fieldWidthRatio - fieldHeightRatio)) <= 1)) {\n isHeightStretched = true;\n ratioDifference = fieldHeightRatio / canvasHeightRatio;\n }\n else {\n isSignatureStretched = true;\n ratioDifference = fieldWidthRatio / canvasWidthRatio;\n }\n if (fieldRotation === 'rotate(90deg)' || fieldRotation === 'rotate(270deg)') {\n // eslint-disable-next-line\n currentWidth = fieldHeight / zoomvalue;\n // eslint-disable-next-line\n currentHeight = fieldWidth / zoomvalue;\n }\n else {\n if (isSignatureStretched) {\n // eslint-disable-next-line\n leftDifference = fieldWidth / zoomvalue;\n // eslint-disable-next-line\n currentWidth = (fieldWidth / ratioDifference) / zoomvalue;\n // eslint-disable-next-line\n currentHeight = fieldHeight / zoomvalue;\n }\n if (isHeightStretched) {\n // eslint-disable-next-line\n topDifference = fieldHeight / zoomvalue;\n // eslint-disable-next-line\n currentWidth = fieldWidth / zoomvalue;\n // eslint-disable-next-line\n currentHeight = (fieldHeight / ratioDifference) / zoomvalue;\n }\n }\n }\n else {\n if (fieldRotation === 'rotate(90deg)' || fieldRotation === 'rotate(270deg)') {\n // eslint-disable-next-line\n currentWidth = fieldHeight / zoomvalue;\n // eslint-disable-next-line\n currentHeight = fieldWidth / zoomvalue;\n }\n else {\n // eslint-disable-next-line\n currentWidth = fieldWidth / zoomvalue;\n // eslint-disable-next-line\n currentHeight = fieldHeight / zoomvalue;\n }\n }\n }\n var currentLeftDiff = (signatureCavasWidth - newdifferenceX) / 2;\n var currentTopDiff = (signatureCavasHeight - newdifferenceY) / 2;\n if (isSignatureStretched) {\n currentLeftDiff = (currentLeftDiff / signatureCavasWidth) * leftDifference;\n var leftValueDiff = ((leftDifference * ratioX) - (currentWidth * ratioX)) / 2;\n currentLeftDiff = currentLeftDiff + leftValueDiff;\n currentTopDiff = (currentTopDiff / signatureCavasHeight) * currentHeight;\n }\n else if (isHeightStretched) {\n currentLeftDiff = (currentLeftDiff / signatureCavasWidth) * currentWidth;\n currentTopDiff = (currentTopDiff / signatureCavasHeight) * topDifference;\n var topValueDiff = ((topDifference * ratioY) - (currentHeight * ratioY)) / 2;\n currentTopDiff = currentTopDiff + topValueDiff;\n }\n else {\n currentLeftDiff = (currentLeftDiff / signatureCavasWidth) * currentWidth;\n currentTopDiff = (currentTopDiff / signatureCavasHeight) * currentHeight;\n }\n currentWidth = currentWidth * ratioX;\n currentHeight = currentHeight * ratioY;\n return { currentLeftDiff: currentLeftDiff, currentTopDiff: currentTopDiff, currentWidth: currentWidth, currentHeight: currentHeight };\n };\n /**\n * @param data\n * @param isSignature\n * @param currentField\n * @param data\n * @param isSignature\n * @param currentField\n * @param data\n * @param isSignature\n * @param currentField\n * @private\n */\n // eslint-disable-next-line\n FormFields.prototype.updateSignatureAspectRatio = function (data, isSignature, currentField, currentData) {\n // eslint-disable-next-line\n var collectionData = processPathData(data);\n // eslint-disable-next-line\n var csData = splitArrayCollection(collectionData);\n var minimumX = -1;\n var minimumY = -1;\n var maximumX = -1;\n var maximumY = -1;\n var signatureCanvas = document.getElementById(this.pdfViewer.element.id + '_signatureCanvas_');\n var signatureCavasWidth = 0;\n var signatureCavasHeight = 0;\n for (var m = 0; m < csData.length; m++) {\n // eslint-disable-next-line\n var val = csData[m];\n if (minimumX === -1) {\n // eslint-disable-next-line\n minimumX = parseFloat(val['x'].toString());\n // eslint-disable-next-line\n maximumX = parseFloat(val['x'].toString());\n // eslint-disable-next-line\n minimumY = parseFloat(val['y'].toString());\n // eslint-disable-next-line\n maximumY = parseFloat(val['y'].toString());\n }\n else {\n // eslint-disable-next-line\n var point1 = parseFloat(val['x'].toString());\n // eslint-disable-next-line\n var point2 = parseFloat(val['y'].toString());\n if (minimumX >= point1) {\n minimumX = point1;\n }\n if (minimumY >= point2) {\n minimumY = point2;\n }\n if (maximumX <= point1) {\n maximumX = point1;\n }\n if (maximumY <= point2) {\n maximumY = point2;\n }\n }\n }\n signatureCavasWidth = signatureCanvas ? signatureCanvas.clientWidth : 650;\n signatureCavasHeight = signatureCanvas ? signatureCanvas.clientHeight : 300;\n var newdifferenceX = maximumX - minimumX;\n var newdifferenceY = maximumY - minimumY;\n var signBounds = this.calculateSignatureBounds(signatureCavasWidth, signatureCavasHeight, newdifferenceX, newdifferenceY, isSignature, currentField, currentData);\n if (isSignature) {\n var zoomvalue = this.pdfViewerBase.getZoomFactor();\n var pageIndex = this.pdfViewerBase.currentPageNumber - 1;\n var pageDiv = document.getElementById(this.pdfViewer.element.id + '_pageDiv_' + pageIndex);\n var currentLeft = ((parseFloat(pageDiv.style.width) / 2) - (signBounds.currentWidth / 2)) / zoomvalue;\n // eslint-disable-next-line max-len\n var currentTop = ((parseFloat(pageDiv.style.height) / 2) - (signBounds.currentHeight / 2)) / zoomvalue;\n return { x: currentLeft, y: currentTop, width: signBounds.currentWidth, height: signBounds.currentHeight };\n }\n else {\n return { left: signBounds.currentLeftDiff, top: signBounds.currentTopDiff, width: signBounds.currentWidth, height: signBounds.currentHeight };\n }\n };\n /**\n * @param target\n * @param signaturePath\n * @param signatureBounds\n * @param signatureFontFamily\n * @param signatureFontSize\n * @param target\n * @param signaturePath\n * @param signatureBounds\n * @param signatureFontFamily\n * @param signatureFontSize\n * @param target\n * @param signaturePath\n * @param signatureBounds\n * @param signatureFontFamily\n * @param signatureFontSize\n * @param target\n * @param signaturePath\n * @param signatureBounds\n * @param signatureFontFamily\n * @param signatureFontSize\n * @param target\n * @param signaturePath\n * @param signatureBounds\n * @param signatureFontFamily\n * @param signatureFontSize\n * @private\n */\n // eslint-disable-next-line\n FormFields.prototype.updateDataInSession = function (target, signaturePath, signatureBounds, signatureFontFamily, signatureFontSize) {\n this.pdfViewerBase.updateDocumentEditedProperty(true);\n // eslint-disable-next-line\n var filterFields = [];\n var fieldsByName = \" \";\n var filterFieldName = [];\n var filterArrayLength = 0;\n var data = this.pdfViewerBase.getItemFromSessionStorage('_formfields');\n if (data && !this.pdfViewer.formDesignerModule) {\n // eslint-disable-next-line\n var FormFieldsData = JSON.parse(data);\n filterFields = FormFieldsData.filter(function (item) { return item.uniqueID === target.id; });\n if (filterFields.length > 0) {\n fieldsByName = filterFields[0].FieldName;\n filterFieldName = FormFieldsData.filter(function (item) { return item.FieldName === fieldsByName; });\n filterArrayLength = filterFieldName.length;\n }\n for (var m = 0; m < FormFieldsData.length; m++) {\n // eslint-disable-next-line\n var currentData = FormFieldsData[m];\n if (currentData.uniqueID === target.id || fieldsByName === currentData.FieldName) {\n if (target && target.type === 'text' || target.type === 'password' || target.type === 'textarea') {\n var signField = target;\n if (signField.classList.contains('e-pdfviewer-signatureformfields') || signField.classList.contains('e-pdfviewer-signatureformfields-signature')) {\n if (signaturePath) {\n currentData.Value = signaturePath;\n }\n if (signatureBounds) {\n currentData.Bounds = signatureBounds;\n }\n if (signatureFontFamily) {\n currentData.FontFamily = signatureFontFamily;\n currentData.FontSize = signatureFontSize;\n }\n }\n else {\n currentData.Text = target.value;\n currentData.Value = target.value;\n }\n }\n else if (target.type === 'radio') {\n if (target.checked) {\n for (var l = 0; l < FormFieldsData.length; l++) {\n // eslint-disable-next-line\n var currentType = FormFieldsData[l];\n if (FormFieldsData[l].GroupName === target.name) {\n FormFieldsData[l].Selected = false;\n }\n }\n if (target.value == currentData.Value) {\n currentData.Selected = true;\n break;\n }\n else {\n currentData.Selected = false;\n }\n }\n }\n else if (target.type === 'checkbox') {\n var targetCheckBox = target.id;\n var filterCheckBoxSameName = FormFieldsData.filter(function (sameNameCheckboxField) { return (sameNameCheckboxField.GroupName === target.name) && sameNameCheckboxField.Name == 'CheckBox'; });\n for (var l = 0; l < filterCheckBoxSameName.length; l++) {\n // eslint-disable-next-line\n var currentType = filterCheckBoxSameName[l];\n currentType.Selected = false;\n currentType.checked = false;\n // eslint-disable-next-line\n var currentTarget = document.getElementById(currentType.uniqueID);\n if (currentTarget) {\n if (targetCheckBox !== currentTarget.id) {\n currentTarget.Selected = false;\n currentTarget.checked = false;\n currentTarget.style.webkitAppearance = 'none';\n }\n }\n }\n if (target.checked) {\n currentData.Selected = true;\n }\n else {\n currentData.Selected = false;\n }\n }\n else if (target.type === 'select-one' && target.size === 0) {\n // eslint-disable-next-line\n var currentValue = target.options[target.selectedIndex].text;\n // eslint-disable-next-line\n var childrens = target.children;\n var isChildElements = false;\n for (var k = 0; k < childrens.length; k++) {\n if (childrens[k].text === currentValue) {\n currentData.SelectedValue = currentValue;\n }\n }\n }\n else if (target.type === 'select-multiple' || target.size > 0) {\n // eslint-disable-next-line\n var currentValue = target.selectedOptions;\n currentData.SelectedList = [];\n for (var z = 0; z < currentValue.length; z++) {\n // eslint-disable-next-line\n var childrens = target.children;\n for (var k = 0; k < childrens.length; k++) {\n if (childrens[k] === currentValue[z]) {\n currentData.SelectedList.push(k);\n }\n }\n }\n currentData.SelectedValue = target.value;\n var index = currentData.TextList ? currentData.TextList.indexOf(target.value) : 0;\n currentData.selectedIndex = index > -1 ? index : 0;\n currentData.SelectedList = [currentData.selectedIndex];\n }\n if (target.disabled) {\n currentData.IsReadonly = true;\n }\n this.updateFormFieldsCollection(currentData);\n filterArrayLength--;\n if (filterArrayLength == 0)\n break;\n }\n else if (target && target.getAttribute('list') != null && target.type === 'text' && currentData.uniqueID === target.list.id) {\n currentData.SelectedValue = target.value;\n }\n this.updateFormFieldsCollection(currentData);\n }\n window.sessionStorage.removeItem(this.pdfViewerBase.documentId + '_formfields');\n this.pdfViewerBase.setItemInSessionStorage(FormFieldsData, '_formfields');\n }\n if (this.pdfViewer.formDesignerModule && target && target.id) {\n var selectedItem = this.pdfViewer.nameTable[target.id.split('_')[0]];\n if (selectedItem && selectedItem.wrapper && selectedItem.wrapper.children[0]) {\n selectedItem.value = target.value;\n var point = cornersPointsBeforeRotation(selectedItem.wrapper.children[0]).topLeft;\n this.pdfViewer.formDesignerModule.updateFormDesignerFieldInSessionStorage(point, selectedItem.wrapper.children[0], selectedItem.formFieldAnnotationType, selectedItem);\n }\n }\n };\n /**\n * @private\n */\n FormFields.prototype.removeExistingFormFields = function () {\n var data = this.pdfViewerBase.getItemFromSessionStorage('_formDesigner');\n var formFieldsData = JSON.parse(data);\n if (formFieldsData) {\n for (var i = 0; i < formFieldsData.length; i++) {\n if (formFieldsData[i].FormField.formFieldAnnotationType === \"RadioButton\") {\n var buttonItem = [];\n buttonItem = formFieldsData[i].FormField.radiobuttonItem;\n var sameButtonItemId = formFieldsData[i].FormField.id.split('_')[0];\n for (var j = 0; j < buttonItem.length; j++) {\n var otherButton = buttonItem[j];\n if (otherButton.id.split('_')[0] !== sameButtonItemId) {\n this.pdfViewer.formDesignerModule.deleteFormField(otherButton.id.split('_')[0]);\n }\n }\n }\n if (formFieldsData[i].Key) {\n this.pdfViewer.formDesignerModule.deleteFormField(formFieldsData[i].Key.split('_')[0]);\n }\n }\n }\n };\n // eslint-disable-next-line\n FormFields.prototype.applyCommonProperties = function (inputdiv, pageIndex, index, currentData, isFieldRotated) {\n // eslint-disable-next-line\n var inputField = document.getElementById(this.pdfViewer.element.id + 'input_' + pageIndex + '_' + index);\n if (inputField) {\n var textLayer = document.getElementById(this.pdfViewer.element.id + '_textLayer_' + pageIndex);\n if (inputdiv.type === 'text' && inputField.parentElement !== textLayer) {\n inputField.parentElement.remove();\n }\n inputField.remove();\n }\n // eslint-disable-next-line\n var signIcon = document.getElementById('signIcon_' + pageIndex + '_' + index);\n var left = parseFloat(inputdiv.style.left);\n var top = parseInt(inputdiv.style.top);\n var width = parseFloat(inputdiv.style.width);\n var height = parseFloat(inputdiv.style.height);\n var signIconWidth;\n var signIconHeght;\n var hightDifference;\n var widthDifference;\n var zoomvalue = this.pdfViewerBase.getZoomFactor();\n if (signIcon && !isFieldRotated) {\n signIconWidth = parseFloat(signIcon.style.width);\n signIconHeght = parseFloat(signIcon.style.height);\n if (signIcon.style.transform == 'rotate(90deg)') {\n signIcon.style.transform = 'rotate(0deg)';\n hightDifference = height / 2;\n widthDifference = signIconWidth * zoomvalue;\n signIcon.style.left = ((left - (hightDifference - (signIconWidth * zoomvalue))) + (widthDifference / 2)) + 'px';\n }\n if (signIcon.style.transform == 'rotate(180deg)') {\n signIcon.style.transform = 'rotate(0deg)';\n signIcon.style.left = left + 'px';\n signIcon.style.top = (top) + 'px';\n }\n if (signIcon.style.transform == 'rotate(270deg)') {\n signIcon.style.transform = 'rotate(0deg)';\n hightDifference = height / 2;\n widthDifference = signIconWidth * zoomvalue;\n signIcon.style.left = ((left - (hightDifference - widthDifference)) + (widthDifference / 2)) + 'px';\n signIcon.style.top = ((top + (width + (signIconHeght * zoomvalue)) + ((signIconHeght * zoomvalue) / 2))) + 'px';\n }\n }\n if (currentData.IsSignatureField && this.isSignatureField) {\n inputdiv.className = 'e-pdfviewer-signatureformfields-signature';\n inputdiv.style.pointerEvents = 'none';\n }\n else if (currentData.IsSignatureField) {\n if (currentData.Value) {\n inputdiv.className = 'e-pdfviewer-signatureformfields-signature';\n inputdiv.style.pointerEvents = 'none';\n }\n else {\n inputdiv.className = 'e-pdfviewer-signatureformfields';\n }\n }\n else if (currentData.Name !== 'Button') {\n inputdiv.className = 'e-pdfviewer-formFields';\n }\n inputdiv.id = this.pdfViewer.element.id + 'input_' + pageIndex + '_' + index;\n inputdiv.ariaLabel = this.pdfViewer.element.id + 'input_' + pageIndex;\n inputdiv.style.zIndex = 1000;\n };\n /**\n * @param currentData\n * @param pageIndex\n * @param index\n * @param printContainer\n * @param currentData\n * @param pageIndex\n * @param index\n * @param printContainer\n * @private\n */\n // eslint-disable-next-line\n FormFields.prototype.createFormFields = function (currentData, pageIndex, index, printContainer, count) {\n // eslint-disable-next-line\n var currentField;\n // eslint-disable-next-line\n switch (currentData['Name']) {\n case 'Textbox':\n currentField = this.createTextBoxField(currentData, pageIndex, 'text');\n break;\n case 'Password':\n currentField = this.createTextBoxField(currentData, pageIndex, 'password');\n break;\n case 'RadioButton':\n currentField = this.createRadioBoxField(currentData, pageIndex, 'radio');\n break;\n case 'CheckBox':\n currentField = this.createRadioBoxField(currentData, pageIndex, 'checkbox', printContainer);\n break;\n case 'DropDown':\n currentField = this.createDropDownField(currentData, pageIndex, index, printContainer);\n break;\n case 'ListBox':\n currentField = this.createListBoxField(currentData, pageIndex);\n break;\n case 'InitialField':\n case 'SignatureField':\n currentField = this.createSignatureField(currentData, pageIndex, index, printContainer, count);\n var isFieldRotated = false;\n if (currentData['Rotation'] === 0) {\n isFieldRotated = true;\n }\n if (currentData.Value && currentData.Value !== '') {\n this.renderExistingAnnnot(currentData, index, printContainer, isFieldRotated);\n this.isSignatureRendered = true;\n count++;\n }\n break;\n case 'Button':\n currentField = this.createButtonField(currentData, pageIndex);\n break;\n case 'ink':\n if (this.pdfViewer.formDesignerModule) {\n if (currentData.Value && currentData.Value !== '' && !this.isSignatureRendered) {\n this.renderExistingAnnnot(currentData, index, printContainer);\n }\n }\n break;\n case 'SignatureText':\n case 'SignatureImage':\n if (currentData.Value && currentData.Value !== '' && !this.isSignatureRendered) {\n this.renderExistingAnnnot(currentData, index, printContainer);\n }\n break;\n }\n return { currentField: currentField, count: count };\n };\n FormFields.prototype.getFormFieldType = function (currentData) {\n // eslint-disable-next-line\n var currentField;\n // eslint-disable-next-line\n switch (currentData['Name']) {\n case 'Textbox':\n currentField = 'Textbox';\n break;\n case 'Password':\n currentField = 'Password';\n break;\n case 'RadioButton':\n currentField = 'RadioButton';\n break;\n case 'CheckBox':\n currentField = 'CheckBox';\n break;\n case 'DropDown':\n currentField = 'DropDown';\n break;\n case 'ListBox':\n currentField = 'ListBox';\n break;\n case 'SignatureField':\n currentField = 'SignatureField';\n if (currentData.IsInitialField) {\n currentField = 'InitialField';\n }\n break;\n case 'InitialField':\n currentField = 'InitialField';\n break;\n }\n return currentField;\n };\n // eslint-disable-next-line\n FormFields.prototype.createButtonField = function (data, pageIndex) {\n // eslint-disable-next-line\n var inputField = document.createElement('input');\n if (data.Value && (this.isBase64(data.Value) || this.isURL(data.Value))) {\n inputField.type = 'image';\n inputField.src = data.Value;\n }\n else {\n inputField.type = 'button';\n }\n inputField.className = 'e-pv-buttonItem';\n if (data.Text !== '') {\n inputField.value = data.Text;\n }\n else {\n inputField.value = '';\n }\n inputField.name = data.FieldName;\n return inputField;\n };\n /**\n * Returns the boolean value based on the imgae source base64\n *\n * @param {string} imageSrc - Passing the image source.\n *\n * @returns {boolean}\n */\n FormFields.prototype.isBase64 = function (imageSrc) {\n return /^data:([a-zA-Z]*\\/[a-zA-Z+.-]*);base64,/.test(imageSrc);\n };\n /**\n * Returns the boolean value based on the imgae source URL\n *\n * @param {string} imageSrc - Passing the image source.\n *\n * @returns {boolean}\n */\n FormFields.prototype.isURL = function (imageSrc) {\n try {\n new URL(imageSrc);\n return true;\n }\n catch (_a) {\n return false;\n }\n };\n // eslint-disable-next-line\n FormFields.prototype.createTextBoxField = function (data, pageIndex, type) {\n // eslint-disable-next-line\n var inputField;\n if (data.Visible === 1) {\n return;\n }\n if (data.Multiline) {\n inputField = document.createElement('textarea');\n inputField.style.resize = 'none';\n }\n else {\n inputField = document.createElement('input');\n inputField.type = type;\n }\n if (data.MaxLength > 0) {\n inputField.maxLength = data.MaxLength;\n }\n this.addAlignmentPropety(data, inputField);\n if (data.Text !== '') {\n inputField.value = data.Text;\n }\n else {\n inputField.value = '';\n }\n if (!this.pdfViewer.enableAutoComplete) {\n inputField.autocomplete = 'off';\n }\n inputField.name = data.FieldName;\n return inputField;\n };\n // eslint-disable-next-line\n FormFields.prototype.checkIsReadonly = function (data, inputField) {\n var isReadonly = false;\n for (var n = 0; n < this.readOnlyCollection.length; n++) {\n if (inputField.id === this.readOnlyCollection[n]) {\n isReadonly = true;\n break;\n }\n }\n if (!this.pdfViewer.formDesignerModule && !this.pdfViewer.annotationModule && (data.IsInitialField || data.IsSignatureField)) {\n isReadonly = true;\n }\n if (data.IsReadonly || (!this.pdfViewer.enableFormFields) || isReadonly) {\n inputField.disabled = true;\n inputField.style.cursor = 'default';\n inputField.style.backgroundColor = 'transparent';\n }\n else {\n // eslint-disable-next-line\n var borderColor = data.BackColor;\n inputField.style.backgroundColor = 'rgba(' + borderColor.R + ',' + borderColor.G + ',' + borderColor.B + ',' + 0.2 + ')';\n // eslint-disable-next-line\n var fontColor = data.FontColor;\n inputField.style.color = 'rgba(' + fontColor.R + ',' + fontColor.G + ',' + fontColor.B + ',' + 1 + ')';\n }\n };\n /**\n * @param isReadonly\n * @private\n */\n // eslint-disable-next-line max-len\n FormFields.prototype.formFieldsReadOnly = function (isReadonly) {\n // eslint-disable-next-line\n var formFields = document.getElementsByClassName('e-pdfviewer-formFields');\n this.makeformFieldsReadonly(formFields, isReadonly);\n // eslint-disable-next-line\n var signatureFields = document.getElementsByClassName('e-pdfviewer-signatureformfields');\n this.makeformFieldsReadonly(signatureFields, isReadonly);\n };\n // eslint-disable-next-line\n FormFields.prototype.makeformFieldsReadonly = function (formFields, isReadonly) {\n for (var i = 0; i < formFields.length; i++) {\n if (formFields[i]) {\n // eslint-disable-next-line\n var inputField = formFields[i];\n if (!isReadonly) {\n inputField.disabled = true;\n inputField.style.cursor = 'default';\n }\n else {\n // eslint-disable-next-line\n inputField.disabled = false;\n }\n }\n }\n };\n // eslint-disable-next-line\n FormFields.prototype.applyTabIndex = function (data, inputField, pageIndex) {\n inputField.tabIndex = data.TabIndex;\n this.maxTabIndex = Math.max(this.maxTabIndex, inputField.tabIndex);\n if (this.minTabIndex === -1) {\n this.minTabIndex = inputField.tabIndex;\n }\n this.minTabIndex = Math.min(this.minTabIndex, inputField.tabIndex);\n this.maintainTabIndex[pageIndex.toString()] = this.maxTabIndex;\n this.maintanMinTabindex[pageIndex.toString()] = this.minTabIndex;\n };\n // eslint-disable-next-line\n FormFields.prototype.checkIsRequiredField = function (data, inputField) {\n if (data.IsRequired) {\n inputField.required = true;\n inputField.style.border = '1px solid red';\n }\n else {\n // eslint-disable-next-line\n var borderColor = data.BorderColor;\n inputField.style.border = data.BorderWidth;\n inputField.style.borderColor = 'rgba(' + borderColor.R + ',' + borderColor.G + ',' + borderColor.B + ',' + 1 + ')';\n }\n if (inputField.type !== 'checkbox' && inputField.type !== 'radio') {\n var borderStyle = data.BorderStyle;\n this.addBorderStylePropety(borderStyle, inputField);\n }\n };\n // eslint-disable-next-line\n FormFields.prototype.applyDefaultColor = function (inputField) {\n // eslint-disable-next-line max-len\n if (inputField.type !== 'button' && (inputField.style.backgroundColor === 'rgba(255, 255, 255, 0.2)' || inputField.style.backgroundColor === 'rgba(0, 0, 0, 0.2)') || inputField.style.backgroundColor === 'rgba(218, 234, 247, 0.2)') {\n inputField.style.backgroundColor = 'rgba(0, 20, 200, 0.2)';\n }\n if (inputField.style.color === 'rgba(255, 255, 255, 0.2)') {\n inputField.style.color = 'black';\n }\n };\n // eslint-disable-next-line\n FormFields.prototype.addAlignmentPropety = function (data, inputField) {\n // eslint-disable-next-line\n var alignment = data.Alignment;\n switch (alignment) {\n case 0:\n inputField.style.textAlign = 'left';\n break;\n case 1:\n inputField.style.textAlign = 'center';\n break;\n case 2:\n inputField.style.textAlign = 'right';\n break;\n case 3:\n inputField.style.textAlign = 'justify';\n break;\n }\n };\n // eslint-disable-next-line\n FormFields.prototype.addBorderStylePropety = function (borderStyle, inputField) {\n // eslint-disable-next-line\n switch (borderStyle) {\n case 0:\n inputField.style.borderStyle = 'solid';\n break;\n case 1:\n inputField.style.borderStyle = 'dashed';\n break;\n case 2:\n inputField.style.borderStyle = 'outset';\n break;\n case 3:\n inputField.style.borderStyle = 'inset';\n break;\n case 4:\n inputField.style.borderStyle = 'outset';\n break;\n case 5:\n inputField.style.borderStyle = 'dotted';\n break;\n case 6:\n inputField.style.borderStyle = 'inset';\n break;\n }\n };\n // eslint-disable-next-line\n FormFields.prototype.createRadioBoxField = function (data, pageIndex, type, printContainer) {\n // eslint-disable-next-line\n var inputField = document.createElement('input');\n inputField.type = type;\n if (data.Selected) {\n inputField.checked = true;\n }\n else if (type === 'checkbox' && !printContainer) {\n inputField.style.webkitAppearance = 'none';\n }\n inputField.name = data.GroupName;\n inputField.value = data.Value;\n return inputField;\n };\n // eslint-disable-next-line\n FormFields.prototype.createDropDownField = function (data, pageIndex, index, printContainer) {\n // eslint-disable-next-line\n var inputField = document.createElement('select');\n // eslint-disable-next-line\n var childItems = data['TextList'];\n if (data.Selected && !printContainer) {\n // eslint-disable-next-line\n var previousField = document.getElementById('editableDropdown' + pageIndex + '_' + index);\n if (previousField) {\n previousField.remove();\n }\n // eslint-disable-next-line\n var inputFields = document.createElement('input');\n inputFields.id = 'editableDropdown' + pageIndex + '_' + index;\n inputFields.setAttribute('list', this.pdfViewer.element.id + 'input_' + pageIndex + '_' + index);\n // eslint-disable-next-line\n var bounds = data['LineBounds'];\n // eslint-disable-next-line\n var font = data['Font'];\n inputFields.style.position = 'absolute';\n inputFields.style.border = '0px';\n // eslint-disable-next-line\n this.applyPosition(inputFields, bounds, font, pageIndex, data['Rotation']);\n inputFields.style.backgroundColor = 'rgba(0, 20, 200, 0.2)';\n inputFields.className = 'e-pdfviewer-formFields';\n if (data.selectedIndex === -1) {\n inputFields.value = data.SelectedValue;\n }\n if (printContainer) {\n printContainer.appendChild(inputFields);\n }\n else {\n var textLayer = document.getElementById(this.pdfViewer.element.id + '_textLayer_' + pageIndex);\n textLayer.appendChild(inputFields);\n }\n inputFields.addEventListener('focus', this.focusFormFields.bind(this));\n inputFields.addEventListener('blur', this.blurFormFields.bind(this));\n inputFields.addEventListener('click', this.updateFormFields.bind(this));\n inputFields.addEventListener('change', this.changeFormFields.bind(this));\n inputFields.addEventListener('keydown', this.updateFormFieldsValue.bind(this));\n inputField = document.createElement('DATALIST');\n }\n for (var j = 0; j < childItems.length; j++) {\n // eslint-disable-next-line\n var option = document.createElement('option');\n option.className = 'e-dropdownSelect';\n if (data.SelectedValue === childItems[j] || data.selectedIndex === j) {\n option.selected = true;\n }\n else {\n option.selected = false;\n }\n option.innerHTML = childItems[j];\n inputField.appendChild(option);\n }\n inputField.name = data.Text;\n return inputField;\n };\n // eslint-disable-next-line\n FormFields.prototype.createListBoxField = function (data, pageIndex) {\n // eslint-disable-next-line\n var inputField = document.createElement('select');\n // eslint-disable-next-line\n var childItems = data['TextList'];\n if (data.MultiSelect) {\n inputField.multiple = true;\n }\n else {\n inputField.multiple = false;\n inputField.size = childItems.length;\n }\n for (var j = 0; j < childItems.length; j++) {\n // eslint-disable-next-line\n var option = document.createElement('option');\n option.className = 'e-pdfviewer-ListBox';\n for (var k = 0; k < data.SelectedList.length; k++) {\n if (data.SelectedList[k] === j) {\n option.selected = true;\n }\n }\n option.innerHTML = childItems[j];\n inputField.appendChild(option);\n }\n inputField.name = data.Text;\n return inputField;\n };\n // eslint-disable-next-line\n FormFields.prototype.createSignatureField = function (data, pageIndex, index, printContainer, count) {\n // eslint-disable-next-line\n var inputField = document.createElement('input');\n inputField.type = 'text';\n inputField.name = data.FieldName;\n var zoomvalue = this.pdfViewerBase.getZoomFactor();\n // eslint-disable-next-line\n var previousField = document.getElementById('signIcon_' + pageIndex + '_' + index);\n if (previousField && !printContainer) {\n previousField.remove();\n }\n this.pdfViewerBase.isInitialField = data.IsInitialField;\n var signIndicator = this.pdfViewerBase.isInitialField ? \"Initial\" : \"Sign\";\n //check whether the width for sign indicator has default value or not and then set the default width value for initial field.\n var signatureFieldIndicatorWidth = this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings ? (this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings.width === 19 ? (this.pdfViewerBase.isInitialField ? 27 : 19) : this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings.width) : 19;\n // eslint-disable-next-line\n var span = document.createElement('span');\n var textLayer = document.getElementById(this.pdfViewer.element.id + '_textLayer_' + pageIndex);\n // eslint-disable-next-line\n var bounds = data['LineBounds'];\n // eslint-disable-next-line\n var font = data['Font'];\n var left = this.ConvertPointToPixel(bounds.X);\n var top = this.ConvertPointToPixel(bounds.Y);\n var indicatorWidth = this.ConvertPointToPixel(bounds.Width);\n var indicatorHeight = this.ConvertPointToPixel(bounds.Height);\n // eslint-disable-next-line max-len\n var height = this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings ? (this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings.height > indicatorHeight * zoomvalue / 2 ? indicatorHeight * zoomvalue / 2 : this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings.height) : indicatorHeight * zoomvalue / 2;\n // eslint-disable-next-line max-len\n var width = signatureFieldIndicatorWidth > indicatorWidth * zoomvalue / 2 ? indicatorWidth * zoomvalue / 2 : signatureFieldIndicatorWidth;\n // eslint-disable-next-line max-len\n var size = this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings ? (this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings.fontSize > height / 2 ? 10 : this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings.fontSize) : 10;\n var fontSize = size > width ? width / 2 : (size > height ? height / 2 : size);\n span.style.position = 'absolute';\n span.id = 'signIcon_' + pageIndex + '_' + index;\n var rotation = this.getAngle(pageIndex);\n // eslint-disable-next-line\n var annotBounds = { left: left, top: top, width: width, height: height };\n // eslint-disable-next-line\n var fieldBounds = this.getBounds(annotBounds, pageIndex);\n span.style.transform = 'rotate(' + rotation + 'deg)';\n span.style.left = fieldBounds.left * zoomvalue + 'px';\n span.style.top = fieldBounds.top * zoomvalue + 'px';\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n span.style.height = 5 + 'px';\n span.style.width = 10 + 'px';\n span.style.fontSize = '3px';\n }\n else {\n span.style.height = height + 'px';\n span.style.width = width + 'px';\n span.style.fontSize = fontSize + 'px';\n if (isBlazor()) {\n span.style.fontSize = (fontSize - 1) + 'px';\n }\n }\n if (!((height + this.indicatorPaddingValue) > indicatorHeight * zoomvalue) && !((width + this.indicatorPaddingValue) > indicatorWidth * zoomvalue)) {\n span.style.padding = '2px';\n }\n span.style.textAlign = 'center';\n span.style.boxSizing = 'content-box';\n // eslint-disable-next-line\n span.innerHTML = this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings ? (this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings.text ? this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings.text : signIndicator) : signIndicator;\n span.style.color = this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings ? (this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings.color ? this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings.color : 'black') : 'black';\n // eslint-disable-next-line\n span.style.backgroundColor = this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings ? (this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings.backgroundColor ? this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings.backgroundColor : 'orange') : 'orange';\n span.style.opacity = this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings ? (this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings.opacity ? this.pdfViewer.signatureFieldSettings.signatureIndicatorSettings.opacity : 1) : 1;\n if (!isNullOrUndefined(textLayer)) {\n textLayer.appendChild(span);\n }\n this.addSignaturePath(data, count);\n return inputField;\n };\n // eslint-disable-next-line\n FormFields.prototype.addSignaturePath = function (signData, count) {\n this.isSignatureField = false;\n // eslint-disable-next-line\n var data = this.pdfViewerBase.getItemFromSessionStorage('_formfields');\n if (data) {\n // eslint-disable-next-line\n var formFieldsData = JSON.parse(data);\n for (var m = 0; m < formFieldsData.length; m++) {\n // eslint-disable-next-line\n var currentData = formFieldsData[m];\n // eslint-disable-next-line max-len\n if ((currentData.Name === 'ink' || currentData.Name === 'SignatureField' || currentData.Name === 'SignatureImage' || currentData.Name === 'SignatureText') && this.pdfViewer.formDesigner ? currentData.FieldName === signData.ActualFieldName + '_' + count || currentData.FieldName === signData.FieldName + '_' + count : ((currentData.FieldName === signData.FieldName + '_' + count || currentData.FieldName === signData.ActualFieldName + '_' + count) && !isNullOrUndefined(signData.ActualFieldName)) && currentData.Value && currentData.Value !== '') {\n signData.Value = currentData.Value;\n signData.FontFamily = currentData.FontFamily;\n signData.FontSize = currentData.FontSize;\n this.isSignatureField = true;\n if (!signData.Bounds) {\n signData.Bounds = currentData.LineBounds;\n }\n break;\n }\n }\n }\n return this.isSignatureField;\n };\n // eslint-disable-next-line\n FormFields.prototype.getBounds = function (bound, pageIndex, rotation, isFieldRotated) {\n // eslint-disable-next-line\n var pageDetails = this.pdfViewerBase.pageSize[pageIndex];\n // eslint-disable-next-line\n var bounds;\n if (rotation > 0) {\n bounds = this.getBoundsPosition(rotation, bound, pageDetails, isFieldRotated);\n }\n else {\n bounds = this.getBoundsPosition(pageDetails.rotation, bound, pageDetails, isFieldRotated);\n }\n return bounds;\n };\n // eslint-disable-next-line\n FormFields.prototype.getBoundsPosition = function (rotation, bound, pageDetails, isFieldRotated) {\n // eslint-disable-next-line\n var bounds;\n if (!isFieldRotated) {\n switch (rotation) {\n case 90:\n // eslint-disable-next-line\n bounds = { left: pageDetails.width - bound.top - bound.height, top: bound.left, width: bound.height, height: bound.width };\n break;\n case 180:\n // eslint-disable-next-line\n bounds = { left: pageDetails.width - bound.left - bound.width, top: pageDetails.height - bound.top - bound.height, width: bound.width, height: bound.height };\n break;\n case 270:\n // eslint-disable-next-line\n bounds = { left: bound.top, top: pageDetails.height - bound.left - bound.width, width: bound.height, height: bound.width };\n break;\n case 0:\n // eslint-disable-next-line\n bounds = bound;\n break;\n case 1:\n // eslint-disable-next-line\n bounds = { left: pageDetails.width - bound.top - bound.height, top: bound.left, width: bound.height, height: bound.width };\n break;\n case 2:\n // eslint-disable-next-line\n bounds = { left: pageDetails.width - bound.left - bound.width, top: pageDetails.height - bound.top - bound.height, width: bound.width, height: bound.height };\n break;\n case 3:\n // eslint-disable-next-line\n bounds = { left: bound.top, top: pageDetails.height - bound.left - bound.width, width: bound.height, height: bound.width };\n break;\n }\n if (!bounds) {\n bounds = bound;\n }\n }\n else {\n switch (rotation) {\n case 0:\n // eslint-disable-next-line\n bounds = bound;\n break;\n case 1:\n // eslint-disable-next-line\n bounds = { left: pageDetails.width - bound.top - bound.height - (bound.width / 2 - bound.height / 2), top: bound.left + (bound.width / 2 - bound.height / 2), width: bound.width, height: bound.height };\n break;\n case 2:\n // eslint-disable-next-line\n bounds = { left: pageDetails.width - bound.left - bound.width, top: pageDetails.height - bound.top - bound.height, width: bound.width, height: bound.height };\n break;\n case 3:\n // eslint-disable-next-line\n bounds = { left: bound.top - (bound.width / 2 - bound.height / 2), top: (pageDetails.height - bound.left - bound.width + (bound.width / 2 - bound.height / 2)), width: bound.width, height: bound.height };\n break;\n }\n if (!bounds) {\n bounds = bound;\n }\n }\n return bounds;\n };\n // eslint-disable-next-line\n FormFields.prototype.applyPosition = function (inputField, bounds, font, pageIndex, rotation, isFieldRotated) {\n if (bounds) {\n var left = this.ConvertPointToPixel(bounds.X);\n var top_3 = this.ConvertPointToPixel(bounds.Y);\n var width = this.ConvertPointToPixel(bounds.Width);\n var height = this.ConvertPointToPixel(bounds.Height);\n var fontHeight = 0;\n // eslint-disable-next-line\n var fieldBounds = { left: left, top: top_3, width: width, height: height };\n // eslint-disable-next-line\n var annotBounds = this.getBounds(fieldBounds, pageIndex, rotation, isFieldRotated);\n if (font !== null && font.Height) {\n inputField.style.fontFamily = font.Name;\n if (font.Italic) {\n inputField.style.fontStyle = 'italic';\n }\n if (font.Bold) {\n inputField.style.fontWeight = 'Bold';\n }\n fontHeight = this.ConvertPointToPixel(font.Size);\n }\n this.pdfViewerBase.setStyleToTextDiv(inputField, annotBounds.left, annotBounds.top, fontHeight, annotBounds.width, annotBounds.height, false);\n }\n };\n // eslint-disable-next-line\n FormFields.prototype.renderExistingAnnnot = function (data, index, printContainer, isFieldRotated) {\n if (!printContainer) {\n // eslint-disable-next-line\n var bounds = void 0;\n if (data.Bounds && data.Name !== 'ink') {\n bounds = data.Bounds;\n }\n else {\n bounds = data.LineBounds;\n }\n var currentLeft = void 0;\n var currentTop = void 0;\n var currentWidth = void 0;\n var currentHeight = void 0;\n if (bounds.x || bounds.y || bounds.width || bounds.height) {\n currentLeft = bounds.x;\n currentTop = bounds.y;\n currentWidth = bounds.width;\n currentHeight = bounds.height;\n }\n else {\n currentLeft = this.ConvertPointToPixel(bounds.X);\n currentTop = this.ConvertPointToPixel(bounds.Y);\n currentWidth = this.ConvertPointToPixel(bounds.Width);\n currentHeight = this.ConvertPointToPixel(bounds.Height);\n }\n // eslint-disable-next-line\n var currentPage = parseFloat(data['PageIndex']);\n // eslint-disable-next-line\n var bound = { left: currentLeft, top: currentTop, width: currentWidth, height: currentHeight };\n // eslint-disable-next-line\n var newBounds = this.updateSignatureBounds(bound, currentPage, isFieldRotated);\n var annot = void 0;\n var fontFamily = data.FontFamily ? data.FontFamily : data.fontFamily;\n // eslint-disable-next-line\n if ((data.Value.split('base64,')[1])) {\n annot = {\n // eslint-disable-next-line max-len\n id: this.pdfViewer.element.id + 'input_' + currentPage + '_' + index, bounds: newBounds, pageIndex: currentPage, data: data.Value, modifiedDate: '',\n shapeAnnotationType: 'SignatureImage', opacity: 1, rotateAngle: isFieldRotated ? this.getAngle(currentPage) : 0, annotName: 'SignatureField', comments: [], review: { state: '', stateModel: '', modifiedDate: '', author: '' }\n };\n }\n else if (fontFamily && !(data.Value && data.Value.startsWith('M') && data.Value.split(',')[1].split(' ')[1].startsWith('L'))) {\n annot = {\n // eslint-disable-next-line max-len\n id: this.pdfViewer.element.id + 'input_' + currentPage + '_' + index, bounds: newBounds, pageIndex: currentPage, data: data.Value, modifiedDate: '',\n shapeAnnotationType: 'SignatureText', opacity: 1, rotateAngle: isFieldRotated ? this.getAngle(currentPage) : 0, annotName: 'SignatureField', comments: [], review: { state: '', stateModel: '', modifiedDate: '', author: '' }, fontFamily: data.FontFamily, fontSize: data.FontSize\n };\n annot.fontFamily = fontFamily === \"TimesRoman\" ? \"Times New Roman\" : fontFamily;\n annot.fontSize = data.FontSize ? data.FontSize : data.fontSize;\n }\n else {\n var bound_1 = newBounds;\n var tempBounds = { left: newBounds.x, top: newBounds.y, width: newBounds.width, height: newBounds.height };\n bound_1 = this.updateSignatureBounds(tempBounds, currentPage, false);\n annot = {\n // eslint-disable-next-line max-len\n id: this.pdfViewer.element.id + 'input_' + currentPage + '_' + index, bounds: bound_1, pageIndex: currentPage, data: data.Value, modifiedDate: '',\n shapeAnnotationType: 'Path', opacity: 1, rotateAngle: 0, annotName: 'SignatureField', comments: [], review: { state: '', stateModel: '', modifiedDate: '', author: '' }\n };\n }\n if ((data.Name === 'SignatureField' || data.Name === 'InitialField') && !isNullOrUndefined(data.id)) {\n var elementId = data.id;\n var signatureFieldElement = document.getElementById(elementId + '_content_html_element');\n var signatureField = this.pdfViewer.nameTable[elementId];\n annot.id = signatureField.id + \"_content\";\n var obj = this.pdfViewer.add(annot);\n signatureField.wrapper.children.push(obj.wrapper);\n if (!isNullOrUndefined(signatureFieldElement) && this.isSignatureField) {\n var inputField = signatureFieldElement.children[0].children[0];\n inputField.style.pointerEvents = 'none';\n inputField.className = 'e-pdfviewer-signatureformfields-signature';\n inputField.parentElement.style.pointerEvents = 'none';\n }\n else if (!isNullOrUndefined(signatureFieldElement) && data.Value) {\n var inputField = signatureFieldElement.children[0].children[0];\n inputField.style.pointerEvents = 'none';\n inputField.className = 'e-pdfviewer-signatureformfields-signature';\n inputField.parentElement.style.pointerEvents = 'none';\n }\n }\n else {\n var target = document.getElementById(annot.id);\n if (target && target.classList.contains('e-pdfviewer-signatureformfields-signature')) {\n this.pdfViewer.annotation.deleteAnnotationById(annot.id);\n }\n this.pdfViewer.add(annot);\n if (target) {\n this.updateDataInSession(target, annot.data, annot.bounds);\n this.pdfViewer.fireSignatureAdd(annot.pageIndex, annot.id, annot.shapeAnnotationType, annot.bounds, annot.opacity, annot.strokeColor, annot.thickness, annot.data);\n }\n }\n data.Bounds = annot.bounds;\n if (this.pdfViewer.formDesignerModule) {\n var zoomvalue = this.pdfViewerBase.getZoomFactor();\n annot.bounds = { x: currentLeft * zoomvalue, y: currentTop * zoomvalue, width: currentWidth * zoomvalue, height: currentHeight * zoomvalue };\n this.updateSignatureDataInSession(annot, annot.id);\n }\n // eslint-disable-next-line\n var canvass = document.getElementById(this.pdfViewer.element.id + '_annotationCanvas_' + currentPage);\n // eslint-disable-next-line\n this.pdfViewer.renderDrawing(canvass, currentPage);\n }\n };\n // eslint-disable-next-line\n FormFields.prototype.updateSignatureBounds = function (bound, pageIndex, isFieldRotated) {\n // eslint-disable-next-line\n var pageDetails = this.pdfViewerBase.pageSize[pageIndex];\n if (pageDetails) {\n if (!isFieldRotated) {\n if (pageDetails.rotation === 1) {\n // eslint-disable-next-line max-len\n return { x: pageDetails.width - bound.top - bound.height, y: bound.left, width: bound.height, height: bound.width };\n }\n else if (pageDetails.rotation === 2) {\n // eslint-disable-next-line max-len\n return { x: pageDetails.width - bound.left - bound.width, y: pageDetails.height - bound.top - bound.height, width: bound.width, height: bound.height };\n }\n else if (pageDetails.rotation === 3) {\n // eslint-disable-next-line max-len\n return { x: bound.top, y: (pageDetails.height - bound.left - bound.width), width: bound.height, height: bound.width };\n }\n else {\n // eslint-disable-next-line max-len\n return { x: bound.left, y: bound.top, width: bound.width, height: bound.height };\n }\n }\n else {\n if (pageDetails.rotation === 1) {\n // eslint-disable-next-line max-len\n return { x: pageDetails.width - bound.top - bound.height - (bound.width / 2 - bound.height / 2), y: bound.left + (bound.width / 2 - bound.height / 2), width: bound.width, height: bound.height };\n }\n else if (pageDetails.rotation === 2) {\n // eslint-disable-next-line max-len\n return { x: pageDetails.width - bound.left - bound.width, y: pageDetails.height - bound.top - bound.height, width: bound.width, height: bound.height };\n }\n else if (pageDetails.rotation === 3) {\n // eslint-disable-next-line max-len\n return { x: bound.top - (bound.width / 2 - bound.height / 2), y: (pageDetails.height - bound.left - bound.width + (bound.width / 2 - bound.height / 2)), width: bound.width, height: bound.height };\n }\n else {\n // eslint-disable-next-line max-len\n return { x: bound.left, y: bound.top, width: bound.width, height: bound.height };\n }\n }\n }\n else {\n return { x: bound.left, y: bound.top, width: bound.width, height: bound.height };\n }\n };\n FormFields.prototype.resetFormFields = function () {\n var formFieldData = this.pdfViewer.formFieldCollections;\n for (var i = 0; i < formFieldData.length; i++) {\n var currentData = formFieldData[i];\n this.currentTarget = document.getElementById(currentData.id);\n if (currentData.type === 'Textbox') {\n this.currentTarget.value = currentData.value;\n }\n else if (currentData.type === 'RadioButton') {\n this.currentTarget.checked = currentData.value;\n if (currentData.value) {\n this.updateDataInSession(this.currentTarget);\n }\n }\n else if (currentData.type === 'DropDown') {\n this.currentTarget.value = currentData.value;\n }\n else if (currentData.type === 'CheckBox') {\n this.currentTarget.checked = currentData.value;\n }\n else if (currentData.type === 'SignatureField') {\n // eslint-disable-next-line\n var annotation = this.pdfViewer.nameTable[currentData.id];\n if (annotation) {\n if (this.currentTarget && this.currentTarget.className === 'e-pdfviewer-signatureformfields-signature') {\n this.currentTarget.className = 'e-pdfviewer-signatureformfields';\n this.currentTarget.style.pointerEvents = '';\n this.updateDataInSession(this.currentTarget, '');\n }\n this.pdfViewer.remove(annotation);\n this.pdfViewer.renderDrawing();\n }\n }\n if (currentData.type !== 'RadioButton' && currentData.type !== 'SignatureField') {\n this.updateDataInSession(this.currentTarget);\n }\n }\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n FormFields.prototype.clearFormFieldStorage = function () {\n // eslint-disable-next-line\n var sessionSize = Math.round(JSON.stringify(window.sessionStorage).length / 1024);\n var maxSessionSize = 4500;\n if (this.pdfViewerBase.isStorageExceed) {\n var storageLength = window.sessionStorage.length;\n // eslint-disable-next-line\n var formFieldsList = [];\n for (var i = 0; i < storageLength; i++) {\n if (window.sessionStorage.key(i) && window.sessionStorage.key(i).split('_')[3]) {\n if (window.sessionStorage.key(i).split('_')[3] === 'formfields') {\n // eslint-disable-next-line max-len\n this.pdfViewerBase.formFieldStorage[window.sessionStorage.key(i)] = window.sessionStorage.getItem(window.sessionStorage.key(i));\n formFieldsList.push(window.sessionStorage.key(i));\n }\n else if (window.sessionStorage.key(i).split('_')[3] === 'formDesigner') {\n this.pdfViewerBase.formFieldStorage[window.sessionStorage.key(i)] = window.sessionStorage.getItem(window.sessionStorage.key(i));\n formFieldsList.push(window.sessionStorage.key(i));\n }\n }\n }\n if (formFieldsList) {\n for (var i = 0; i < formFieldsList.length; i++) {\n window.sessionStorage.removeItem(formFieldsList[i]);\n }\n }\n }\n };\n // eslint-disable-next-line\n FormFields.prototype.clearFormFields = function (formField) {\n // eslint-disable-next-line\n var data = this.pdfViewerBase.getItemFromSessionStorage('_formfields');\n if (data) {\n // eslint-disable-next-line\n var formFieldsData = void 0;\n if (formField) {\n formFieldsData = [formField];\n }\n else {\n formFieldsData = JSON.parse(data);\n }\n var isFirstRadio = true;\n for (var m = 0; m < formFieldsData.length; m++) {\n // eslint-disable-next-line\n var currentData = formFieldsData[m];\n if (formField) {\n currentData.uniqueID = formField.id;\n currentData.Name = formField.type;\n }\n // eslint-disable-next-line\n this.currentTarget = document.getElementById(currentData.uniqueID);\n if (currentData.Name === 'Textbox') {\n this.currentTarget.value = '';\n }\n else if (currentData.Name === 'RadioButton') {\n if (isFirstRadio) {\n this.currentTarget.checked = true;\n this.updateDataInSession(this.currentTarget);\n isFirstRadio = false;\n }\n }\n else if (currentData.Name === 'DropDown') {\n this.currentTarget.value = currentData.TextList[0];\n }\n else if (currentData.Name === 'CheckBox') {\n this.currentTarget.checked = false;\n }\n else if (currentData.Name === 'SignatureField') {\n // eslint-disable-next-line\n var annotation = this.pdfViewer.nameTable[currentData.uniqueID];\n if (annotation) {\n if (this.currentTarget && this.currentTarget.className === 'e-pdfviewer-signatureformfields-signature') {\n this.currentTarget.className = 'e-pdfviewer-signatureformfields';\n this.currentTarget.style.pointerEvents = '';\n this.currentTarget.parentElement.style.pointerEvents = '';\n this.updateDataInSession(this.currentTarget, '');\n if (formField) {\n formField.value = '';\n formField.signatureType = [formField.signatureType];\n formField.signatureType[0] = '';\n }\n }\n this.pdfViewer.remove(annotation);\n this.pdfViewer.renderDrawing();\n }\n }\n if (currentData.Name !== 'SignatureField' && currentData.Name !== 'ink' && currentData.Name !== 'RadioButton') {\n this.updateDataInSession(this.currentTarget);\n }\n }\n }\n };\n /**\n * @param number\n * @private\n */\n // eslint-disable-next-line\n FormFields.prototype.ConvertPointToPixel = function (number) {\n return (number * (96 / 72));\n };\n /**\n * @private\n */\n FormFields.prototype.destroy = function () {\n this.currentTarget = null;\n this.readOnlyCollection = [];\n if (this.pdfViewerBase && this.pdfViewerBase.signatureModule)\n this.pdfViewerBase.signatureModule.destroy();\n };\n /**\n * @private\n */\n FormFields.prototype.getModuleName = function () {\n return 'FormFields';\n };\n /**\n * @private\n * Get the text wdith\n * @param text\n * @param font\n * @param fontFamily\n */\n FormFields.prototype.getTextWidth = function (text, font, fontFamily) {\n var canvas = document.createElement('canvas');\n var context = canvas.getContext('2d');\n var fontName;\n if (font) {\n fontName = font + 'px' + ' ' + fontFamily;\n }\n context.font = fontName || getComputedStyle(document.body).font;\n return context.measureText(text).width;\n };\n /**\n * @private\n * @param {number} fontSize - Font size.\n * @returns {number} - Returns the font size.\n */\n FormFields.prototype.getFontSize = function (fontSize) {\n return fontSize;\n ;\n };\n return FormFields;\n}());\nexport { FormFields };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { Size } from '../../primitives/size';\nimport { DrawingElement } from './drawing-element';\nimport { measureImage } from './../../utility/dom-util';\n/**\n * ImageElement defines a basic image elements\n */\nvar ImageElement = /** @class */ (function (_super) {\n __extends(ImageElement, _super);\n /**\n * set the id for each element\n */\n function ImageElement() {\n var _this = _super.call(this) || this;\n /**\n * sets or gets the image source\n */\n _this.imageSource = '';\n /**\n * sets or gets the print id\n * @private\n */\n _this.printID = '';\n /**\n * sets scaling factor of the image\n */\n _this.imageScale = 'None';\n /**\n * sets the alignment of the image\n */\n _this.imageAlign = 'None';\n /**\n * Sets how to stretch the image\n */\n _this.stretch = 'Stretch';\n return _this;\n }\n Object.defineProperty(ImageElement.prototype, \"source\", {\n /**\n * Gets the source for the image element\n */\n get: function () {\n return this.imageSource;\n },\n /**\n * Sets the source for the image element\n */\n set: function (value) {\n this.imageSource = value;\n this.isDirt = true;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Measures minimum space that is required to render the image\n * @param availableSize\n */\n ImageElement.prototype.measure = function (availableSize) {\n if (this.isDirt && (this.stretch !== 'Stretch' || this.width === undefined && this.height === undefined)) {\n this.contentSize = measureImage(this.source, this.contentSize);\n this.isDirt = false;\n }\n if (this.width !== undefined && this.height !== undefined) {\n this.desiredSize = new Size(this.width, this.height);\n this.contentSize = this.desiredSize;\n }\n else {\n this.desiredSize = this.contentSize;\n }\n this.desiredSize = this.validateDesiredSize(this.desiredSize, availableSize);\n return this.desiredSize;\n };\n /**\n * Arranges the image\n * @param desiredSize\n */\n ImageElement.prototype.arrange = function (desiredSize) {\n this.actualSize = new Size(this.desiredSize.width, this.desiredSize.height);\n this.updateBounds();\n return this.actualSize;\n };\n return ImageElement;\n}(DrawingElement));\nexport { ImageElement };\n","import { PathElement } from '../core/elements/path-element';\nimport { TextElement } from '../core/elements/text-element';\nimport { Container } from '../core/containers/container';\nimport { wordBreakToString, whiteSpaceToString, textAlignToString } from '../utility/base-util';\nimport { getDiagramElement } from '../utility/dom-util';\nimport { CanvasRenderer } from './canvas-renderer';\nimport { ImageElement } from '../core/elements/image-element';\n/**\n * Renderer module is used to render basic diagram elements\n */\n/** @private */\nvar DrawingRenderer = /** @class */ (function () {\n function DrawingRenderer(name, isSvgMode) {\n /** @private */\n this.renderer = null;\n // private svgRenderer: SvgRenderer;\n /** @private */\n this.isSvgMode = true;\n this.diagramId = name;\n this.element = getDiagramElement(this.diagramId);\n this.isSvgMode = isSvgMode;\n this.renderer = new CanvasRenderer();\n // this.svgRenderer = new SvgRenderer();\n }\n // /** @private */\n // public setLayers(): void {\n // this.adornerSvgLayer = this.element.getElementsByClassName('e-adorner-layer')[0] as SVGSVGElement;\n // }\n /** @private */\n DrawingRenderer.prototype.renderElement = function (element, canvas, htmlLayer, transform, parentSvg, createParent, fromPalette, indexValue) {\n var isElement = true;\n if (element instanceof Container) {\n isElement = false;\n this.renderContainer(element, canvas, htmlLayer, transform, parentSvg, createParent, fromPalette, indexValue);\n }\n else if (element instanceof ImageElement) {\n this.renderImageElement(element, canvas, transform, parentSvg, fromPalette);\n }\n else if (element instanceof PathElement) {\n this.renderPathElement(element, canvas, transform, parentSvg, fromPalette);\n }\n else if (element instanceof TextElement) {\n this.renderTextElement(element, canvas, transform, parentSvg, fromPalette);\n }\n else {\n this.renderRect(element, canvas, transform, parentSvg);\n }\n };\n /** @private */\n DrawingRenderer.prototype.renderImageElement = function (element, canvas, transform, parentSvg, fromPalette) {\n var options = this.getBaseAttributes(element, transform);\n options.cornerRadius = 0;\n this.renderer.drawRectangle(canvas, options);\n // let sx: number; let sy: number;\n var imageWidth;\n var imageHeight;\n var sourceWidth;\n var sourceHeight;\n if (element.stretch === 'Stretch') {\n imageWidth = element.actualSize.width;\n imageHeight = element.actualSize.height;\n }\n else {\n var contentWidth = element.contentSize.width;\n var contentHeight = element.contentSize.height;\n var widthRatio = options.width / contentWidth;\n var heightRatio = options.height / contentHeight;\n var ratio = void 0;\n switch (element.stretch) {\n case 'Meet':\n ratio = Math.min(widthRatio, heightRatio);\n imageWidth = contentWidth * ratio;\n imageHeight = contentHeight * ratio;\n options.x += Math.abs(options.width - imageWidth) / 2;\n options.y += Math.abs(options.height - imageHeight) / 2;\n break;\n case 'Slice':\n widthRatio = options.width / contentWidth;\n heightRatio = options.height / contentHeight;\n ratio = Math.max(widthRatio, heightRatio);\n imageWidth = contentWidth * ratio;\n imageHeight = contentHeight * ratio;\n sourceWidth = options.width / imageWidth * contentWidth;\n sourceHeight = options.height / imageHeight * contentHeight;\n break;\n case 'None':\n imageWidth = contentWidth;\n imageHeight = contentHeight;\n break;\n }\n }\n options.width = imageWidth;\n options.height = imageHeight;\n //Commented for code coverage\n //(options as ImageAttributes).sourceX = sx;\n //(options as ImageAttrib utes).sourceY = sy;\n options.sourceWidth = sourceWidth;\n options.sourceHeight = sourceHeight;\n options.source = element.source;\n options.alignment = element.imageAlign;\n options.scale = element.imageScale;\n options.printID = element.printID;\n this.renderer.drawImage(canvas, options, parentSvg, fromPalette);\n };\n /** @private */\n DrawingRenderer.prototype.renderPathElement = function (element, canvas, transform, parentSvg, fromPalette) {\n var options = this.getBaseAttributes(element, transform);\n options.data = element.absolutePath;\n options.data = element.absolutePath;\n var ariaLabel = element.id;\n if (!this.isSvgMode) {\n options.x = options.x;\n options.y = options.y;\n }\n this.renderer.drawPath(canvas, options);\n };\n /** @private */\n DrawingRenderer.prototype.renderTextElement = function (element, canvas, transform, parentSvg, fromPalette) {\n var options = this.getBaseAttributes(element, transform);\n options.cornerRadius = 0;\n options.whiteSpace = whiteSpaceToString(element.style.whiteSpace, element.style.textWrapping);\n options.content = element.content;\n options.breakWord = wordBreakToString(element.style.textWrapping);\n options.textAlign = textAlignToString(element.style.textAlign);\n options.color = element.style.color;\n options.italic = element.style.italic;\n options.bold = element.style.bold;\n options.fontSize = element.style.fontSize;\n options.fontFamily = element.style.fontFamily;\n options.textOverflow = element.style.textOverflow;\n options.textDecoration = element.style.textDecoration;\n options.doWrap = element.doWrap;\n options.wrapBounds = element.wrapBounds;\n options.childNodes = element.childNodes;\n options.dashArray = '';\n options.strokeWidth = 0;\n options.fill = element.style.fill;\n var ariaLabel = element.content ? element.content : element.id;\n this.renderer.drawRectangle(canvas, options);\n this.renderer.drawText(canvas, options);\n };\n /** @private */\n DrawingRenderer.prototype.renderContainer = function (group, canvas, htmlLayer, transform, parentSvg, createParent, fromPalette, indexValue) {\n transform = { tx: 0, ty: 0, scale: 1 };\n var svgParent = { svg: parentSvg, g: canvas };\n if (this.diagramId) {\n parentSvg = parentSvg;\n }\n this.renderRect(group, canvas, transform, parentSvg);\n if (group.hasChildren()) {\n var parentG = void 0;\n var svgParent_1;\n for (var _i = 0, _a = group.children; _i < _a.length; _i++) {\n var child = _a[_i];\n this.renderElement(child, parentG || canvas, htmlLayer, transform, parentSvg, true, fromPalette, indexValue);\n }\n }\n };\n /** @private */\n DrawingRenderer.prototype.renderRect = function (element, canvas, transform, parentSvg) {\n var options = this.getBaseAttributes(element, transform);\n options.cornerRadius = element.cornerRadius || 0;\n var ariaLabel = element.id;\n this.renderer.drawRectangle(canvas, options);\n };\n /** @private */\n DrawingRenderer.prototype.getBaseAttributes = function (element, transform) {\n var options = {\n width: element.actualSize.width, height: element.actualSize.height,\n x: element.offsetX - element.actualSize.width * element.pivot.x + 0.5,\n y: element.offsetY - element.actualSize.height * element.pivot.y + 0.5,\n fill: element.style.fill, stroke: element.style.strokeColor, angle: element.rotateAngle + element.parentTransform,\n pivotX: element.pivot.x, pivotY: element.pivot.y, strokeWidth: element.style.strokeWidth,\n dashArray: element.style.strokeDashArray || '', opacity: element.style.opacity,\n visible: element.visible, id: element.id, gradient: element.style.gradient,\n };\n if (transform) {\n options.x += transform.tx;\n options.y += transform.ty;\n }\n return options;\n };\n return DrawingRenderer;\n}());\nexport { DrawingRenderer };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { Container } from './container';\nimport { RotateTransform } from '../../enum/enum';\nimport { Size } from '../../primitives/size';\nimport { Rect } from '../../primitives/rect';\nimport { TextElement } from '../elements/text-element';\nimport { identityMatrix, rotateMatrix, transformPointByMatrix } from '../../primitives/matrix';\nimport { rotateSize } from '../../utility/base-util';\n/**\n * Canvas module is used to define a plane(canvas) and to arrange the children based on margin\n */\nvar Canvas = /** @class */ (function (_super) {\n __extends(Canvas, _super);\n function Canvas() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n /**\n * Not applicable for canvas\n * @private\n */\n _this.measureChildren = undefined;\n return _this;\n }\n /**\n * Measures the minimum space that the canvas requires\n * @param availableSize\n */\n Canvas.prototype.measure = function (availableSize) {\n var desired = undefined;\n var desiredBounds = undefined;\n if (this.hasChildren()) {\n //Measuring the children\n for (var _i = 0, _a = this.children; _i < _a.length; _i++) {\n var child = _a[_i];\n if (child instanceof TextElement) {\n if (child.canMeasure) {\n availableSize.width = availableSize.width || this.maxWidth || this.minWidth;\n child.measure(availableSize);\n }\n else {\n break;\n }\n }\n else if (!(child instanceof TextElement)) {\n child.measure(availableSize);\n }\n var childSize = child.desiredSize.clone();\n if (child.rotateAngle !== 0) {\n childSize = rotateSize(childSize, child.rotateAngle);\n }\n var right = childSize.width + child.margin.right;\n var bottom = childSize.height + child.margin.bottom;\n var childBounds = new Rect(child.margin.left, child.margin.top, right, bottom);\n if (child.float) {\n var position = child.getAbsolutePosition(childSize);\n if (position !== undefined) {\n continue;\n }\n }\n if ((!(child instanceof TextElement)) || (child instanceof TextElement && child.canConsiderBounds)) {\n if (desiredBounds === undefined) {\n desiredBounds = childBounds;\n }\n else {\n desiredBounds.uniteRect(childBounds);\n }\n }\n }\n if (desiredBounds) {\n var leftMargin = 0;\n var topMargin = 0;\n leftMargin = Math.max(desiredBounds.left, 0);\n topMargin = Math.max(desiredBounds.top, 0);\n desired = new Size(desiredBounds.width + leftMargin, desiredBounds.height + topMargin);\n }\n }\n desired = _super.prototype.validateDesiredSize.call(this, desired, availableSize);\n _super.prototype.stretchChildren.call(this, desired);\n this.desiredSize = desired;\n return desired;\n };\n /**\n * Arranges the child elements of the canvas\n */\n Canvas.prototype.arrange = function (desiredSize) {\n this.outerBounds = new Rect();\n if (this.hasChildren()) {\n var y = void 0;\n var x = void 0;\n y = this.offsetY - desiredSize.height * this.pivot.y;\n x = this.offsetX - desiredSize.width * this.pivot.x;\n for (var _i = 0, _a = this.children; _i < _a.length; _i++) {\n var child = _a[_i];\n if ((child.transform & RotateTransform.Parent) !== 0) {\n child.parentTransform = this.parentTransform + this.rotateAngle;\n var childSize = child.desiredSize.clone();\n var topLeft = void 0;\n var center = { x: 0, y: 0 };\n var childX = x;\n var childY = y;\n if (child.relativeMode === 'Point') {\n var position = child.getAbsolutePosition(desiredSize);\n if (position !== undefined) {\n childX += position.x;\n childY += position.y;\n }\n }\n if (child.relativeMode === 'Object') {\n topLeft = this.alignChildBasedOnParent(child, childSize, desiredSize, childX, childY);\n }\n else {\n topLeft = this.alignChildBasedOnaPoint(child, childX, childY);\n }\n center = { x: topLeft.x + childSize.width / 2, y: topLeft.y + childSize.height / 2 };\n if (child.rotateValue) {\n var rotateValue = {\n x: this.offsetX + (child.rotateValue.x || 0),\n y: this.offsetY + (child.rotateValue.y || 0)\n };\n var centerPoint = { x: this.offsetX, y: this.offsetY };\n var angle = child.rotateValue.angle | 0;\n var matrix = identityMatrix();\n rotateMatrix(matrix, angle, centerPoint.x, centerPoint.y);\n center = transformPointByMatrix(matrix, rotateValue);\n }\n _super.prototype.findChildOffsetFromCenter.call(this, child, center);\n }\n if ((child.horizontalAlignment === 'Stretch' || child.verticalAlignment === 'Stretch')) {\n child.arrange(desiredSize);\n }\n else {\n if (child instanceof TextElement && child.canMeasure) {\n child.arrange(child.desiredSize);\n this.outerBounds.uniteRect(child.outerBounds);\n }\n else if (!(child instanceof TextElement)) {\n child.arrange(child.desiredSize);\n this.outerBounds.uniteRect(child.outerBounds);\n }\n }\n }\n }\n this.actualSize = desiredSize;\n this.updateBounds();\n this.outerBounds.uniteRect(this.bounds);\n return desiredSize;\n };\n /**\n * Aligns the child element based on its parent\n * @param child\n * @param childSize\n * @param parentSize\n * @param x\n * @param y\n */\n Canvas.prototype.alignChildBasedOnParent = function (child, childSize, parentSize, x, y) {\n switch (child.horizontalAlignment) {\n case 'Auto':\n case 'Left':\n x += child.margin.left;\n break;\n case 'Right':\n x += parentSize.width - childSize.width - child.margin.right;\n break;\n case 'Stretch':\n case 'Center':\n x += parentSize.width / 2 - childSize.width / 2;\n break;\n }\n switch (child.verticalAlignment) {\n case 'Auto':\n case 'Top':\n y += child.margin.top;\n break;\n case 'Bottom':\n y += parentSize.height - childSize.height - child.margin.bottom;\n break;\n case 'Stretch':\n case 'Center':\n y += parentSize.height / 2 - childSize.height / 2;\n break;\n }\n return { x: x, y: y };\n };\n /**\n * Aligns the child elements based on a point\n * @param child\n * @param x\n * @param y\n */\n Canvas.prototype.alignChildBasedOnaPoint = function (child, x, y) {\n x += child.margin.left - child.margin.right;\n y += child.margin.top - child.margin.bottom;\n switch (child.horizontalAlignment) {\n case 'Auto':\n case 'Left':\n x = x;\n break;\n case 'Stretch':\n case 'Center':\n x -= child.desiredSize.width * child.pivot.x;\n break;\n case 'Right':\n x -= child.desiredSize.width;\n break;\n }\n switch (child.verticalAlignment) {\n case 'Auto':\n case 'Top':\n y = y;\n break;\n case 'Stretch':\n case 'Center':\n y -= child.desiredSize.height * child.pivot.y;\n break;\n case 'Bottom':\n y -= child.desiredSize.height;\n break;\n }\n return { x: x, y: y };\n };\n return Canvas;\n}(Container));\nexport { Canvas };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { compile as baseTemplateComplier } from '@syncfusion/ej2-base';\nimport { DrawingElement } from '@syncfusion/ej2-drawings';\n/**\n * HTMLElement defines the basic html elements\n */\nvar DiagramHtmlElement = /** @class */ (function (_super) {\n __extends(DiagramHtmlElement, _super);\n /**\n * set the id for each element\n *\n * @param {string} nodeTemplate - Set the id for each element.\n * @returns {void}\n *\n * @private\n */\n function DiagramHtmlElement(nodeTemplate) {\n var _this = _super.call(this) || this;\n _this.templateFn = _this.templateCompiler(nodeTemplate);\n return _this;\n }\n DiagramHtmlElement.prototype.templateCompiler = function (template) {\n if (template) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var e = void 0;\n try {\n if (document.querySelectorAll(template).length) {\n return baseTemplateComplier(document.querySelector(template).innerHTML.trim());\n }\n }\n catch (e) {\n return baseTemplateComplier(template);\n }\n }\n return undefined;\n };\n /**\n * getNodeTemplate method \\\n *\n * @returns { Function } getNodeTemplate method .\\\n *\n * @private\n */\n DiagramHtmlElement.prototype.getNodeTemplate = function () {\n return this.templateFn;\n };\n return DiagramHtmlElement;\n}(DrawingElement));\nexport { DiagramHtmlElement };\n","import { LineTool } from '../index';\nimport { ZOrderPageTable, PdfAnnotationBase, PdfFormFieldBase } from './pdf-annotation';\nimport { Rect, Point, identityMatrix, rotateMatrix, getDiagramElement, ThumbsConstraints, scaleMatrix, cornersPointsBeforeRotation, ImageElement } from '@syncfusion/ej2-drawings';\nimport { DrawingElement } from '@syncfusion/ej2-drawings';\nimport { PathElement } from '@syncfusion/ej2-drawings';\nimport { createMeasureElements } from '@syncfusion/ej2-drawings';\nimport { randomId } from '@syncfusion/ej2-drawings';\nimport { Size, transformPointByMatrix, RotateTransform, TextElement } from '@syncfusion/ej2-drawings';\nimport { Canvas, refreshDiagramElements, DrawingRenderer } from '@syncfusion/ej2-drawings';\nimport { Selector } from './selector';\nimport { SvgRenderer } from '@syncfusion/ej2-drawings';\nimport { isLineShapes, setElementStype, findPointsLength, getBaseShapeAttributes, isLeader, cloneObject } from './drawing-util';\nimport { getConnectorPoints, updateSegmentElement, getSegmentElement, updateDecoratorElement, getDecoratorElement, clipDecorators, initDistanceLabel, initLeaders, initLeader, getPolygonPath, initPerimeterLabel } from './connector-util';\nimport { isNullOrUndefined, isBlazor, Browser } from '@syncfusion/ej2-base';\nimport { DiagramHtmlElement } from './html-element';\n/**\n * Renderer module is used to render basic diagram elements\n *\n * @hidden\n */\nvar Drawing = /** @class */ (function () {\n function Drawing(viewer) {\n this.isDynamicStamps = false;\n this.pdfViewer = viewer;\n this.renderer = new DrawingRenderer('this.pdfViewer.element.id', false);\n this.svgRenderer = new SvgRenderer();\n }\n /**\n * @private\n * @param {PdfViewer} viewer - Specified the pdfViewer element.\n * @returns {void}\n */\n Drawing.prototype.renderLabels = function (viewer) {\n var annotations = viewer.annotations;\n if (annotations) {\n for (var i = 0; i < annotations.length; i++) {\n var annotation = annotations[parseInt(i.toString(), 10)];\n this.initObject(annotation);\n }\n }\n };\n Drawing.prototype.createNewZindexTable = function (pageId) {\n var zIndexTable = new ZOrderPageTable();\n this.pdfViewer.zIndex++;\n zIndexTable.pageId = this.pdfViewer.zIndex;\n this.pdfViewer.zIndexTable.push(zIndexTable);\n return zIndexTable;\n };\n /**\n * @private\n * @param {number} pageId - Specified the page Id.\n * @returns {ZOrderPageTable} - Returns the ZOrder page table.\n */\n Drawing.prototype.getPageTable = function (pageId) {\n var zIndexTable;\n if (this.pdfViewer.zIndexTable.length !== undefined) {\n var notFound = true;\n for (var i = 0; i < this.pdfViewer.zIndexTable.length; i++) {\n if (this.pdfViewer.zIndexTable[parseInt(i.toString(), 10)].pageId === pageId) {\n notFound = false;\n zIndexTable = this.pdfViewer.zIndexTable[parseInt(i.toString(), 10)];\n break;\n }\n }\n if (notFound) {\n zIndexTable = this.createNewZindexTable(pageId);\n zIndexTable.pageId = pageId;\n }\n }\n else {\n zIndexTable = this.createNewZindexTable(pageId);\n }\n return zIndexTable;\n };\n /**\n * @private\n * @param {number} index - Specified the page index value.\n * @param {PdfAnnotationBaseModel} obj - Specified the annotation object.\n * @returns {void}\n */\n Drawing.prototype.setZIndex = function (index, obj) {\n if (obj.pageIndex !== undefined) {\n var pageTable = this.getPageTable(obj.pageIndex);\n if (obj.zIndex === -1) {\n pageTable.zIndex++;\n obj.zIndex = pageTable.zIndex;\n pageTable.objects.push(obj);\n }\n else {\n var index_1 = obj.zIndex;\n var tabelLength = pageTable.objects.length;\n obj.zIndex = tabelLength++;\n pageTable.objects.push(obj);\n }\n }\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel | PdfFormFieldBaseModel} obj - Specified the annotation object.\n * @returns {PdfAnnotationBaseModel | PdfFormFieldBaseModel} - Returns the annotaion or form fields model.\n */\n Drawing.prototype.initObject = function (obj) {\n //Move the common properties like zindex and id to an abstract class\n this.setZIndex(this.pdfViewer.zIndex, obj);\n createMeasureElements();\n if (!isLineShapes(obj)) {\n this.initNode(obj);\n }\n else {\n this.initLine(obj);\n obj.wrapper.measure(new Size(undefined, undefined));\n obj.wrapper.arrange(obj.wrapper.desiredSize);\n }\n if (obj.wrapper === null) {\n //Init default wrapper\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.pdfViewer.nameTable[obj.id] = obj;\n if (obj.formFieldAnnotationType) {\n this.nodePropertyChange(obj, { bounds: { width: obj.bounds.width, height: obj.bounds.height } });\n }\n //Add some methodologies to add the children of group to name table\n return obj;\n };\n Drawing.prototype.initNode = function (obj) {\n var canvas = this.initContainer(obj);\n var content;\n if (!canvas.children) {\n canvas.children = [];\n }\n if (!content) {\n content = this.init(obj, canvas);\n }\n //canvas.children.push(content);\n canvas.rotateAngle = obj.rotateAngle;\n // eslint-disable-next-line max-len\n canvas.measure(new Size(obj.wrapper.width, obj.wrapper.height));\n canvas.arrange(canvas.desiredSize);\n if (this.isDynamicStamps) {\n this.pdfViewer.annotation.stampAnnotationModule.updateSessionStorage(obj, null, 'dynamicStamp');\n this.isDynamicStamps = false;\n }\n };\n /**\n * Allows to initialize the UI of a node\n */\n /**\n * @private\n * @param {PdfAnnotationBaseModel | PdfFormFieldBaseModel} obj - Specified the annotation object.\n * @param {Container} canvas - Specified the canvas element.\n * @returns {DrawingElement} - Returns the drawing element.\n */\n Drawing.prototype.init = function (obj, canvas) {\n var content;\n content = new DrawingElement();\n var pathContent;\n var basicElement;\n var isStamp = false;\n // eslint-disable-next-line\n var annotationSettings = this.pdfViewer.annotationModule ? this.pdfViewer.annotationModule.findAnnotationSettings(obj) : {};\n var annotationMaxHeight = 0;\n var annotationMaxWidth = 0;\n var annotationMinHeight = 0;\n var annotationMinWidth = 0;\n if (annotationSettings.minWidth || annotationSettings.maxWidth || annotationSettings.minHeight || annotationSettings.maxHeight) {\n annotationMaxHeight = annotationSettings.maxHeight ? annotationSettings.maxHeight : 2000;\n annotationMaxWidth = annotationSettings.maxWidth ? annotationSettings.maxWidth : 2000;\n annotationMinHeight = annotationSettings.minHeight ? annotationSettings.minHeight : 0;\n annotationMinWidth = annotationSettings.minWidth ? annotationSettings.minWidth : 0;\n }\n var isAnnotationSet = false;\n if (annotationMinHeight || annotationMinWidth || annotationMaxHeight || annotationMaxWidth) {\n isAnnotationSet = true;\n }\n if (obj.formFieldAnnotationType) {\n content = this.initFormFields(obj, content, canvas);\n }\n else {\n // eslint-disable-next-line max-len\n content = this.initAnnotationObject(obj, pathContent, content, canvas, isStamp, basicElement, isAnnotationSet, annotationMaxHeight, annotationMaxWidth, annotationMinWidth, annotationMinHeight);\n }\n content.id = obj.id + '_content';\n content.relativeMode = 'Object';\n if (obj.shapeAnnotationType !== 'Stamp') {\n if (obj.bounds.width !== undefined) {\n content.width = obj.bounds.width;\n if (isAnnotationSet) {\n if ((content.width < annotationMinWidth) || (content.width > annotationMaxWidth)) {\n if (content.width < annotationMinWidth) {\n content.width = annotationMinWidth;\n }\n if (content.width > annotationMaxWidth) {\n content.width = annotationMaxWidth;\n }\n }\n }\n }\n content.horizontalAlignment = 'Stretch';\n if (obj.bounds.height !== undefined) {\n content.height = obj.bounds.height;\n if (isAnnotationSet) {\n if ((content.height < annotationMinHeight) || (content.width > annotationMaxHeight)) {\n if (content.height < annotationMinHeight) {\n content.height = annotationMinHeight;\n }\n if (content.height > annotationMaxHeight) {\n content.height = annotationMaxHeight;\n }\n }\n }\n }\n setElementStype(obj, content);\n if (this.pdfViewer.viewerBase.drawSignatureWithTool && obj.shapeAnnotationType === 'SignatureText') {\n content.style.strokeWidth = 0;\n }\n }\n content.isRectElement = true;\n content.verticalAlignment = 'Stretch';\n return content;\n };\n Drawing.prototype.initFormFields = function (obj, content, canvas) {\n switch (obj.formFieldAnnotationType) {\n case 'Textbox':\n case 'PasswordField':\n case 'Checkbox':\n case 'RadioButton':\n case 'DropdownList':\n case 'ListBox':\n case 'SignatureField':\n case 'InitialField':\n // eslint-disable-next-line\n var htmlContent = new DiagramHtmlElement();\n content = htmlContent;\n content.id = obj.id + '_content';\n canvas.children.push(content);\n break;\n }\n return content;\n };\n // eslint-disable-next-line\n Drawing.prototype.initAnnotationObject = function (obj, pathContent, content, canvas, isStamp, basicElement, isAnnotationSet, annotationMaxHeight, annotationMaxWidth, annotationMinWidth, annotationMinHeight) {\n switch (obj.shapeAnnotationType) {\n case 'Ellipse':\n pathContent = new PathElement();\n pathContent.data = 'M80.5,12.5 C80.5,19.127417 62.59139,24.5 40.5,24.5 C18.40861,24.5 0.5,19.127417 0.5,12.5' +\n 'C0.5,5.872583 18.40861,0.5 40.5,0.5 C62.59139,0.5 80.5,5.872583 80.5,12.5 z';\n content = pathContent;\n canvas.children.push(content);\n if (obj.enableShapeLabel) {\n var textLabel = this.textElement(obj);\n textLabel.content = obj.labelContent;\n textLabel.style.color = obj.fontColor;\n textLabel.style.strokeColor = obj.labelBorderColor;\n textLabel.style.fill = obj.labelFillColor;\n textLabel.style.fontSize = obj.fontSize;\n textLabel.style.fontFamily = obj.fontFamily;\n textLabel.style.opacity = obj.labelOpacity;\n canvas.children.push(textLabel);\n }\n break;\n case 'Path':\n pathContent = new PathElement();\n pathContent.data = obj.data;\n content = pathContent;\n canvas.children.push(content);\n break;\n case 'HandWrittenSignature':\n case 'Ink':\n pathContent = new PathElement();\n pathContent.data = obj.data;\n pathContent.style.strokeColor = obj.strokeColor;\n pathContent.style.strokeWidth = obj.thickness;\n pathContent.style.opacity = obj.opacity;\n content = pathContent;\n canvas.children.push(content);\n break;\n case 'Polygon':\n pathContent = new PathElement();\n pathContent.data = getPolygonPath(obj.vertexPoints);\n content = pathContent;\n canvas.children.push(content);\n break;\n case 'Stamp':\n isStamp = true;\n this.isDynamicStamps = true;\n if (obj && obj.annotationAddMode && (obj.annotationAddMode === 'Existing Annotation' || obj.annotationAddMode === 'Imported Annotation')) {\n obj.bounds.width = obj.bounds.width - 20;\n obj.bounds.height = obj.bounds.height - 20;\n }\n if (obj.isDynamicStamp) {\n canvas.horizontalAlignment = 'Left';\n basicElement = new DrawingElement();\n content = basicElement;\n content.cornerRadius = 10;\n content.style.fill = obj.stampFillColor;\n content.style.strokeColor = obj.stampStrokeColor;\n canvas.children.push(content);\n var textele_1 = this.textElement(obj);\n textele_1 = new TextElement();\n textele_1.style.fontFamily = 'Helvetica';\n textele_1.style.fontSize = 14;\n textele_1.style.italic = true;\n textele_1.style.bold = true;\n textele_1.style.color = obj.fillColor;\n textele_1.rotateValue = undefined;\n textele_1.content = obj.dynamicText;\n textele_1.relativeMode = 'Point';\n textele_1.margin.left = 10;\n textele_1.margin.bottom = -7;\n textele_1.setOffsetWithRespectToBounds(0, 0.57, null);\n textele_1.relativeMode = 'Point';\n canvas.children.push(textele_1);\n // eslint-disable-next-line\n var pathContent1 = new PathElement();\n pathContent1.id = randomId() + '_stamp';\n pathContent1.data = obj.data;\n pathContent1.width = obj.bounds.width;\n if (isAnnotationSet && (obj.bounds.width > annotationMaxWidth)) {\n pathContent1.width = annotationMaxWidth;\n obj.bounds.width = annotationMaxWidth;\n }\n pathContent1.height = obj.bounds.height / 2;\n if (isAnnotationSet && (obj.bounds.height > annotationMaxHeight)) {\n pathContent1.height = annotationMaxHeight / 2;\n obj.bounds.height = annotationMaxHeight / 2;\n }\n pathContent1.rotateValue = undefined;\n pathContent1.margin.left = 10;\n pathContent1.margin.bottom = -5;\n pathContent1.relativeMode = 'Point';\n pathContent1.setOffsetWithRespectToBounds(0, 0.1, null);\n // eslint-disable-next-line\n var content1 = pathContent1;\n pathContent1.style.fill = obj.fillColor;\n pathContent1.style.strokeColor = obj.strokeColor;\n pathContent1.style.opacity = obj.opacity;\n content.width = obj.bounds.width + 20;\n content.height = obj.bounds.height + 20;\n content.style.opacity = obj.opacity;\n canvas.children.push(content1);\n }\n else {\n canvas.horizontalAlignment = 'Left';\n basicElement = new DrawingElement();\n content = basicElement;\n content.cornerRadius = 10;\n content.style.fill = obj.stampFillColor;\n content.style.strokeColor = obj.stampStrokeColor;\n canvas.children.push(content);\n // eslint-disable-next-line\n var pathContent1 = new PathElement();\n pathContent1.id = randomId() + '_stamp';\n pathContent1.data = obj.data;\n pathContent1.width = obj.bounds.width;\n if (isAnnotationSet && (obj.bounds.width > annotationMaxWidth)) {\n pathContent1.width = annotationMaxWidth;\n obj.bounds.width = annotationMaxWidth;\n }\n pathContent1.height = obj.bounds.height;\n if (isAnnotationSet && (obj.bounds.height > annotationMaxHeight)) {\n pathContent1.height = annotationMaxHeight;\n obj.bounds.height = annotationMaxHeight;\n }\n pathContent1.minWidth = pathContent1.width / 2;\n pathContent1.minHeight = pathContent1.height / 2;\n // eslint-disable-next-line\n var content1 = pathContent1;\n pathContent1.style.fill = obj.fillColor;\n pathContent1.style.strokeColor = obj.strokeColor;\n pathContent1.style.opacity = obj.opacity;\n content.width = obj.bounds.width + 20;\n content.height = obj.bounds.height + 20;\n content.minWidth = pathContent1.width / 2;\n content.minHeight = pathContent1.height / 2;\n content.style.opacity = obj.opacity;\n canvas.children.push(content1);\n canvas.minHeight = content.minHeight + 20;\n canvas.minWidth = content.minWidth + 20;\n }\n break;\n case 'Image':\n case 'SignatureImage':\n // eslint-disable-next-line\n var pathContent11 = new ImageElement();\n pathContent11.source = obj.data;\n content = pathContent11;\n content.style.strokeWidth = 0;\n canvas.children.push(content);\n break;\n case 'Rectangle':\n basicElement = new DrawingElement();\n content = basicElement;\n canvas.children.push(content);\n if (obj.enableShapeLabel) {\n var textLabel = this.textElement(obj);\n textLabel.content = obj.labelContent;\n textLabel.style.color = obj.fontColor;\n textLabel.style.strokeColor = obj.labelBorderColor;\n textLabel.style.fill = obj.labelFillColor;\n textLabel.style.fontSize = obj.fontSize;\n textLabel.style.fontFamily = obj.fontFamily;\n textLabel.style.opacity = obj.labelOpacity;\n canvas.children.push(textLabel);\n }\n break;\n case 'Perimeter':\n pathContent = new PathElement();\n pathContent.data = 'M80.5,12.5 C80.5,19.127417 62.59139,24.5 40.5,24.5 C18.40861,24.5 0.5,19.127417 0.5,12.5' +\n 'C0.5,5.872583 18.40861,0.5 40.5,0.5 C62.59139,0.5 80.5,5.872583 80.5,12.5 z';\n content = pathContent;\n setElementStype(obj, pathContent);\n canvas.children.push(content);\n basicElement = new DrawingElement();\n basicElement.id = 'perimeter_' + randomId();\n basicElement.height = .2;\n basicElement.width = .2;\n basicElement.transform = RotateTransform.Self;\n basicElement.horizontalAlignment = 'Stretch';\n this.setNodePosition(basicElement, obj);\n basicElement.rotateAngle = obj.rotateAngle;\n setElementStype(obj, basicElement);\n canvas.children.push(basicElement);\n // eslint-disable-next-line\n var textele = this.textElement(obj);\n textele = new TextElement();\n textele.content = textele.content = findPointsLength([\n { x: obj.bounds.x, y: obj.bounds.y },\n { x: obj.bounds.x + obj.bounds.width, y: obj.bounds.y + obj.bounds.height }\n ]).toString();\n textele.rotateValue = { y: -10, angle: obj.rotateAngle };\n canvas.children.push(textele);\n break;\n case 'Radius':\n pathContent = new PathElement();\n pathContent.data = 'M80.5,12.5 C80.5,19.127417 62.59139,24.5 40.5,24.5 C18.40861,24.5 0.5,19.127417 0.5,12.5' +\n 'C0.5,5.872583 18.40861,0.5 40.5,0.5 C62.59139,0.5 80.5,5.872583 80.5,12.5 z';\n content = pathContent;\n setElementStype(obj, pathContent);\n canvas.children.push(content);\n basicElement = new DrawingElement();\n basicElement.id = 'radius_' + randomId();\n basicElement.height = .2;\n basicElement.width = obj.bounds.width / 2;\n basicElement.transform = RotateTransform.Self;\n this.setNodePosition(basicElement, obj);\n basicElement.rotateAngle = obj.rotateAngle;\n setElementStype(obj, basicElement);\n canvas.children.push(basicElement);\n // eslint-disable-next-line\n var radiusTextEle = this.textElement(obj);\n if (obj.enableShapeLabel) {\n radiusTextEle.style.color = obj.fontColor;\n radiusTextEle.style.strokeColor = obj.labelBorderColor;\n radiusTextEle.style.fill = obj.labelFillColor;\n radiusTextEle.style.fontSize = obj.fontSize;\n radiusTextEle.style.fontFamily = obj.fontFamily;\n radiusTextEle.style.opacity = obj.labelOpacity;\n }\n // eslint-disable-next-line\n var length_1 = findPointsLength([\n { x: obj.bounds.x, y: obj.bounds.y },\n { x: obj.bounds.x + obj.bounds.width, y: obj.bounds.y + obj.bounds.height }\n ]);\n if (!this.pdfViewer.enableImportAnnotationMeasurement && obj.notes && obj.notes !== '') {\n radiusTextEle.content = obj.notes;\n }\n else {\n // eslint-disable-next-line max-len\n radiusTextEle.content = this.pdfViewer.annotation.measureAnnotationModule.setConversion((obj.bounds.width / 2) * this.pdfViewer.annotation.measureAnnotationModule.pixelToPointFactor, obj);\n }\n radiusTextEle.rotateValue = { y: -10, x: obj.bounds.width / 4, angle: obj.rotateAngle };\n canvas.children.push(radiusTextEle);\n break;\n case 'StickyNotes':\n // eslint-disable-next-line\n var pathContent2 = new ImageElement();\n pathContent2.source = obj.data;\n pathContent2.width = obj.bounds.width;\n pathContent2.height = obj.bounds.height;\n pathContent2.style.strokeColor = obj.strokeColor;\n pathContent2.style.strokeWidth = 0;\n content = pathContent2;\n canvas.children.push(content);\n break;\n case 'SignatureText':\n //eslint-disable-next-line\n var rectElements = new DrawingElement();\n rectElements.style.strokeWidth = 0;\n content = rectElements;\n content.style.strokeWidth = 0;\n canvas.style.strokeWidth = 0;\n canvas.children.push(content);\n // eslint-disable-next-line\n var signatureText = this.textElement(obj);\n signatureText.style.fontFamily = obj.fontFamily;\n signatureText.style.fontSize = obj.fontSize;\n signatureText.style.textAlign = 'Left';\n signatureText.rotateValue = undefined;\n signatureText.content = obj.data;\n signatureText.style.strokeWidth = 0;\n canvas.children.push(signatureText);\n break;\n case 'FreeText':\n // eslint-disable-next-line\n var rectElement = new DrawingElement();\n content = rectElement;\n canvas.children.push(content);\n // eslint-disable-next-line\n var freeTextEle = this.textElement(obj);\n freeTextEle = new TextElement();\n freeTextEle.style.fontFamily = obj.fontFamily;\n freeTextEle.style.fontSize = obj.fontSize;\n freeTextEle.style.textAlign = 'Left';\n if (obj.textAlign.toLowerCase() === 'center') {\n freeTextEle.style.textAlign = 'Center';\n }\n else if (obj.textAlign.toLowerCase() === 'right') {\n freeTextEle.style.textAlign = 'Right';\n }\n else if (obj.textAlign.toLowerCase() === 'justify') {\n freeTextEle.style.textAlign = 'Justify';\n }\n freeTextEle.style.color = obj.fontColor;\n freeTextEle.style.bold = obj.font.isBold;\n freeTextEle.style.italic = obj.font.isItalic;\n if (obj.font.isUnderline === true) {\n freeTextEle.style.textDecoration = 'Underline';\n }\n else if (obj.font.isStrikeout === true) {\n freeTextEle.style.textDecoration = 'LineThrough';\n }\n freeTextEle.rotateValue = undefined;\n freeTextEle.content = obj.dynamicText;\n freeTextEle.style.opacity = obj.opacity;\n freeTextEle.margin.left = 4;\n freeTextEle.margin.top = 5 * (obj.fontSize / 16);\n if (this.pdfViewer.freeTextSettings.enableAutoFit) {\n freeTextEle.style.textWrapping = 'Wrap';\n }\n else {\n freeTextEle.style.textWrapping = 'WrapWithOverflow';\n }\n freeTextEle.relativeMode = 'Point';\n freeTextEle.setOffsetWithRespectToBounds(0, 0, null);\n freeTextEle.relativeMode = 'Point';\n canvas.children.push(freeTextEle);\n break;\n }\n content.id = obj.id + '_content';\n content.relativeMode = 'Object';\n if (!isStamp) {\n if (obj.bounds.width !== undefined) {\n content.width = obj.bounds.width;\n if (isAnnotationSet) {\n if ((content.width < annotationMinWidth) || (content.width > annotationMaxWidth)) {\n if (content.width < annotationMinWidth) {\n content.width = annotationMinWidth;\n }\n if (content.width > annotationMaxWidth) {\n content.width = annotationMaxWidth;\n }\n }\n }\n }\n content.horizontalAlignment = 'Stretch';\n if (obj.bounds.height !== undefined) {\n content.height = obj.bounds.height;\n if (isAnnotationSet) {\n if ((content.height < annotationMinHeight) || (content.width > annotationMaxHeight)) {\n if (content.height < annotationMinHeight) {\n content.height = annotationMinHeight;\n }\n if (content.height > annotationMaxHeight) {\n content.height = annotationMaxHeight;\n }\n }\n }\n }\n setElementStype(obj, content);\n }\n content.isRectElement = true;\n content.verticalAlignment = 'Stretch';\n return content;\n };\n Drawing.prototype.textElement = function (obj) {\n var textele = new TextElement();\n setElementStype(obj, textele);\n textele.horizontalAlignment = 'Center';\n obj.shapeAnnotationType === 'SignatureText' ? textele.verticalAlignment = 'Center' : textele.verticalAlignment = 'Top';\n textele.relativeMode = 'Object';\n textele.setOffsetWithRespectToBounds(.5, .5, 'Absolute');\n return textele;\n };\n /**\n * @private\n * @param {DrawingElement} obj - Specified the drawing element.\n * @param {PdfAnnotationBaseModel} node - Specified the node element.\n * @returns {void}\n */\n Drawing.prototype.setNodePosition = function (obj, node) {\n if (node.shapeAnnotationType === 'Perimeter') {\n obj.offsetX = node.bounds.x + node.bounds.width / 2;\n obj.offsetY = node.bounds.y + node.bounds.height / 2;\n }\n else if (node.shapeAnnotationType === 'Radius') {\n // eslint-disable-next-line max-len\n var trasPoint = { x: node.bounds.x + (node.bounds.width / 2) + (node.bounds.width / 4), y: node.bounds.y + (node.bounds.height / 2) };\n var center = { x: (node.bounds.x + (node.bounds.width / 2)), y: (node.bounds.y + (node.bounds.height / 2)) };\n var matrix = identityMatrix();\n rotateMatrix(matrix, node.rotateAngle, center.x, center.y);\n var rotatedPoint = transformPointByMatrix(matrix, trasPoint);\n var newPoint1 = { x: rotatedPoint.x, y: rotatedPoint.y };\n obj.offsetX = newPoint1.x;\n obj.offsetY = newPoint1.y;\n obj.width = node.bounds.width / 2;\n }\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel} obj - Specified the annotation object.\n * @returns {Container} - Returns the container element.\n */\n Drawing.prototype.initContainer = function (obj) {\n if (!obj.id) {\n obj.id = randomId();\n }\n // Creates canvas element\n var canvas = new Canvas();\n canvas.id = obj.id;\n canvas.offsetX = obj.bounds.x + (obj.bounds.width * 0.5);\n canvas.offsetY = obj.bounds.y + (obj.bounds.height * 0.5);\n canvas.style.fill = 'transparent';\n canvas.style.strokeColor = 'transparent';\n canvas.rotateAngle = obj.rotateAngle;\n obj.wrapper = canvas;\n return canvas;\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel} obj - Specified the annotation object.\n * @returns {Canvas} - Returns the canvas element.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Drawing.prototype.initLine = function (obj) {\n if (!obj.id) {\n obj.id = randomId();\n }\n var bpmnElement;\n var container = new Canvas();\n var segment = new PathElement();\n segment.id = obj.id + '_path';\n var srcDecorator = new PathElement();\n var targetDecorator = new PathElement();\n if (obj.vertexPoints.length) {\n obj.sourcePoint = obj.vertexPoints[0];\n obj.targetPoint = obj.vertexPoints[obj.vertexPoints.length - 1];\n for (var i = 0; i < obj.vertexPoints.length; i++) {\n if (i !== 0 && i !== obj.vertexPoints.length - 1) {\n obj.segments.push(obj.vertexPoints[parseInt(i.toString(), 10)]);\n }\n }\n }\n segment = getSegmentElement(obj, segment);\n var points = [];\n points = getConnectorPoints(obj);\n // points = this.clipDecorators(this, points);\n var leaders = [];\n var labels = [];\n if (obj.shapeAnnotationType === 'Distance') {\n leaders = initLeaders(obj, points);\n labels = initDistanceLabel(obj, points, this.pdfViewer.annotation.measureAnnotationModule, this.pdfViewer);\n }\n if ((obj.shapeAnnotationType === 'Line' || obj.shapeAnnotationType === 'LineWidthArrowHead') && obj.measureType === 'Perimeter') {\n labels = initPerimeterLabel(obj, points, this.pdfViewer.annotation.measureAnnotationModule, this.pdfViewer);\n }\n if (obj.enableShapeLabel === true && !(obj.shapeAnnotationType === 'Distance') && !(obj.measureType === 'Perimeter')) {\n var angle = Point.findAngle(points[0], points[1]);\n var textele = this.textElement(obj);\n textele.id = randomId();\n if (!this.pdfViewer.enableImportAnnotationMeasurement && obj.notes && obj.notes !== '') {\n textele.content = obj.notes;\n }\n else {\n textele.content = obj.labelContent;\n }\n textele.style.strokeColor = obj.labelBorderColor;\n textele.style.fill = obj.labelFillColor;\n textele.style.fontSize = obj.fontSize;\n textele.style.color = obj.fontColor;\n textele.style.fontFamily = obj.fontFamily;\n textele.style.opacity = obj.labelOpacity;\n textele.rotateValue = { y: -10, angle: angle };\n labels.push(textele);\n }\n points = clipDecorators(obj, points);\n var bounds = Rect.toBounds(points);\n container.width = bounds.width;\n container.height = bounds.height;\n container.offsetX = bounds.x + container.pivot.x * bounds.width;\n container.offsetY = bounds.y + container.pivot.y * bounds.height;\n var anglePoints = obj.vertexPoints;\n var accessContent = 'getDescription';\n // eslint-disable-next-line max-len\n if (obj.shapeAnnotationType === 'Line' || obj.shapeAnnotationType === 'LineWidthArrowHead' || obj.shapeAnnotationType === 'Distance') {\n srcDecorator = getDecoratorElement(obj, points[0], anglePoints[1], true);\n targetDecorator = getDecoratorElement(obj, points[points.length - 1], anglePoints[anglePoints.length - 2], false);\n }\n srcDecorator.id = obj.id + '_srcDec';\n targetDecorator.id = obj.id + '_tarDec';\n /* eslint-disable @typescript-eslint/dot-notation */\n segment.style['fill'] = 'transparent';\n container.style.strokeColor = 'transparent';\n container.style.fill = 'transparent';\n container.style.strokeWidth = 0;\n container.children = [];\n setElementStype(obj, segment);\n container.children.push(segment);\n if (leaders.length > 0) {\n for (var i = 0; i < leaders.length; i++) {\n container.children.push(leaders[parseInt(i.toString(), 10)]);\n }\n }\n if (labels.length > 0) {\n for (var i = 0; i < labels.length; i++) {\n container.children.push(labels[parseInt(i.toString(), 10)]);\n }\n }\n container.children.push(srcDecorator);\n container.children.push(targetDecorator);\n if (obj.shapeAnnotationType === 'LineWidthArrowHead') {\n container.children[1].width = 12 * obj.thickness;\n container.children[1].height = 12 * obj.thickness;\n container.children[2].width = 12 * obj.thickness;\n container.children[2].height = 12 * obj.thickness;\n }\n container.id = obj.id;\n container.offsetX = segment.offsetX;\n container.offsetY = segment.offsetY;\n container.width = segment.width;\n container.height = segment.height;\n points = getConnectorPoints(obj);\n obj.wrapper = container;\n return container;\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel} obj - Specified the annotation object.\n * @returns {PdfAnnotationBaseModel} - Returns the added annotaion object.\n */\n Drawing.prototype.add = function (obj) {\n var allowServerDataBind = this.pdfViewer.allowServerDataBinding;\n this.pdfViewer.enableServerDataBinding(false);\n if (obj.formFieldAnnotationType && this.pdfViewer.formDesignerModule) {\n obj = new PdfFormFieldBase(this.pdfViewer, 'formFields', obj, true);\n obj = this.initObject(obj);\n this.pdfViewer.formFields.push(obj);\n }\n else {\n obj = new PdfAnnotationBase(this.pdfViewer, 'annotations', obj, true);\n obj = this.initObject(obj);\n this.pdfViewer.annotations.push(obj);\n }\n this.pdfViewer.enableServerDataBinding(allowServerDataBind, true);\n return obj;\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel} obj - Specified the annotation object.\n * @returns {void}\n */\n Drawing.prototype.remove = function (obj) {\n var allowServerDataBind = this.pdfViewer.allowServerDataBinding;\n this.pdfViewer.enableServerDataBinding(false);\n var index = obj.pageIndex;\n for (var i = 0; i < this.pdfViewer.annotations.length; i++) {\n var annotation = this.pdfViewer.annotations[parseInt(i.toString(), 10)];\n if ((annotation.id && (annotation.id === obj.id || annotation.id.split('_')[0] === obj.id)) || (annotation.wrapper && annotation.wrapper.id === obj.id)) {\n this.pdfViewer.annotations.splice(i, 1);\n var objects = this.getPageObjects(obj.pageIndex);\n for (var j = 0; j < objects.length; j++) {\n if (objects[parseInt(j.toString(), 10)].id === obj.id) {\n objects.splice(j, 1);\n if (obj.shapeAnnotationType === 'Path' || obj.shapeAnnotationType === 'SignatureImage' || obj.shapeAnnotationType === 'SignatureText') {\n this.refreshCanvasDiagramLayer(undefined, index, obj.id);\n }\n else {\n this.pdfViewer.renderDrawing(undefined, index);\n }\n }\n }\n // need to add code snippet to remove from z index table \n }\n }\n for (var i = 0; i < this.pdfViewer.formFields.length; i++) {\n var element = this.pdfViewer.formFields[parseInt(i.toString(), 10)];\n if (element.id === obj.id || element.wrapper.id === obj.id) {\n this.pdfViewer.formFields.splice(i, 1);\n if (this.pdfViewer.formDesignerModule && obj.formFieldAnnotationType) {\n this.pdfViewer.formFieldCollection.splice(i, 1);\n }\n var objects = this.getPageObjects(obj.pageIndex);\n for (var j = 0; j < objects.length; j++) {\n if (objects[parseInt(j.toString(), 10)].id === obj.id) {\n objects.splice(j, 1);\n break;\n }\n if (objects[parseInt(j.toString(), 10)] && objects[parseInt(j.toString(), 10)].id && objects[parseInt(j.toString(), 10)].id.indexOf(obj.id) !== -1) {\n objects.splice(j, 1);\n }\n }\n }\n }\n if (obj.formFieldAnnotationType === 'Textbox' || obj.formFieldAnnotationType === 'Checkbox' || obj.formFieldAnnotationType === 'RadioButton'\n || obj.formFieldAnnotationType === 'PasswordField' || obj.formFieldAnnotationType === 'DropdownList' || obj.formFieldAnnotationType === 'ListBox' || obj.formFieldAnnotationType === 'SignatureField' || obj.formFieldAnnotationType === 'InitialField') {\n for (var i = 0; i < this.pdfViewer.formFieldCollections.length; i++) {\n // eslint-disable-next-line\n var element = this.pdfViewer.formFieldCollections[i];\n if (element.id === obj.id) {\n this.pdfViewer.formFieldCollections.splice(i, 1);\n }\n }\n }\n if (obj.formFieldAnnotationType === 'Textbox' || obj.formFieldAnnotationType === 'Checkbox' || obj.formFieldAnnotationType === 'RadioButton'\n || obj.formFieldAnnotationType === 'PasswordField' || obj.formFieldAnnotationType === 'DropdownList' || obj.formFieldAnnotationType === 'ListBox' || obj.formFieldAnnotationType === 'SignatureField' || obj.formFieldAnnotationType === 'InitialField') {\n // eslint-disable-next-line\n var inputField = document.getElementById('form_field_' + obj.id + '_content_html_element');\n if (inputField) {\n inputField.remove();\n this.pdfViewer.renderDrawing(undefined, index);\n var field = {\n // eslint-disable-next-line\n name: obj.name, id: obj.id, value: obj.value, fontFamily: obj.fontFamily, fontSize: obj.fontSize, fontStyle: obj.fontStyle,\n // eslint-disable-next-line\n color: obj.color, backgroundColor: obj.backgroundColor, alignment: obj.alignment, isReadonly: obj.isReadonly, visibility: obj.visibility,\n // eslint-disable-next-line\n maxLength: obj.maxLength, isRequired: obj.isRequired, isPrint: obj.isPrint, rotation: obj.rotateAngle, tooltip: obj.tooltip,\n // eslint-disable-next-line\n options: obj.options, isChecked: obj.isChecked, isSelected: obj.isSelected\n };\n this.pdfViewer.fireFormFieldRemoveEvent('formFieldRemove', field, obj.pageIndex);\n this.pdfViewer.formDesignerModule.removeFieldsFromAnnotationCollections(obj.id);\n }\n }\n this.pdfViewer.enableServerDataBinding(allowServerDataBind, true);\n };\n /**\n * @private\n * @param {number} pageIndex - Specified the page index.\n * @returns {PdfAnnotationBaseModel[]} - Returns the annotation base model collections.\n */\n Drawing.prototype.getPageObjects = function (pageIndex) {\n var pageTable = this.getPageTable(pageIndex);\n return pageTable.objects;\n };\n /**\n * @private\n * @param {HTMLCanvasElement} diagramLayer - Specified the diagram layer element.\n * @param {number} pageIndex - Specified the page index.\n * @param {string} objectId - Specified the object id.\n * @returns {void}\n */\n Drawing.prototype.refreshCanvasDiagramLayer = function (diagramLayer, pageIndex, objectId) {\n if (!diagramLayer) {\n diagramLayer = document.getElementById(this.pdfViewer.element.id + '_annotationCanvas_' + pageIndex);\n }\n if (diagramLayer) {\n var zoom = this.pdfViewer.viewerBase.getZoomFactor();\n var width = diagramLayer.width / zoom;\n var height = diagramLayer.height / zoom;\n var ctx = diagramLayer.getContext('2d');\n ctx.lineCap = \"round\";\n ctx.lineJoin = \"round\";\n if (zoom < 1) {\n ctx.lineWidth = ctx.lineWidth / zoom;\n }\n var devicePixelRatio_1 = this.pdfViewer.viewerBase.getWindowDevicePixelRatio();\n var zoomRatio = zoom * devicePixelRatio_1;\n if (!Browser.isDevice || (Browser.isDevice && zoom <= 0.7)) {\n ctx.setTransform(zoomRatio, 0, 0, zoomRatio, 0, 0);\n }\n else {\n ctx.setTransform(zoom, 0, 0, zoom, 0, 0);\n }\n ctx.clearRect(0, 0, width, height);\n var objects = this.getPageObjects(pageIndex);\n for (var i = 0; i < objects.length; i++) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var renderElement = void 0;\n if (diagramLayer.id === this.pdfViewer.element.id + '_print_annotation_layer_' + pageIndex) {\n if (objects[parseInt(i.toString(), 10)].isPrint) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n renderElement = this.pdfViewer.nameTable[objects[parseInt(i.toString(), 10)].id].wrapper;\n if (!isNullOrUndefined(renderElement)) {\n refreshDiagramElements(diagramLayer, [renderElement], this.renderer);\n }\n }\n }\n else {\n // eslint-disable-next-line\n renderElement = this.pdfViewer.nameTable[objects[i].id].wrapper;\n refreshDiagramElements(diagramLayer, [renderElement], this.renderer);\n }\n }\n }\n };\n /**\n * @private\n * @param {number} index - Specified the page index.\n * @returns {void}\n */\n Drawing.prototype.clearHighlighter = function (index) {\n var adornerSvg = this.getAdornerLayerSvg(this.pdfViewer.element.id + index + '_diagramAdornerLayer', index);\n if (adornerSvg) {\n var highlighter = adornerSvg.getElementById(adornerSvg.id + '_highlighter');\n if (highlighter) {\n highlighter.parentNode.removeChild(highlighter);\n }\n }\n };\n /**\n * @private\n * @param {string} diagramId - Specified the diagram id.\n * @param {number} index - Specified the page index.\n * @returns {SVGSVGElement} Return the svg element.\n */\n Drawing.prototype.getSelectorElement = function (diagramId, index) {\n var adornerLayer = null;\n var adornerSvg = this.getAdornerLayerSvg(diagramId, index);\n if (adornerSvg) {\n adornerLayer = adornerSvg.getElementById(diagramId + index + '_SelectorElement');\n }\n return adornerLayer;\n };\n /**\n * @private\n * @param {string} diagramId - Specified the diagram id.\n * @param {number} index - Specified the page index.\n * @returns {SVGSVGElement} Return the svg element.\n */\n Drawing.prototype.getAdornerLayerSvg = function (diagramId, index) {\n var adornerLayerSvg = null;\n var diagramElement = getDiagramElement(diagramId + index + '_diagramAdornerLayer');\n // eslint-disable-next-line\n var elementcoll;\n if (diagramElement) {\n elementcoll = diagramElement.getElementsByClassName('e-adorner-layer' + index);\n adornerLayerSvg = elementcoll[0];\n }\n return adornerLayerSvg;\n };\n /**\n * @private\n * @param {number} index - Specified the page index.\n * @returns {void}\n */\n Drawing.prototype.clearSelectorLayer = function (index) {\n var adornerSvg = this.getAdornerLayerSvg(this.pdfViewer.element.id, index);\n if (adornerSvg) {\n var selectionRect = adornerSvg.getElementById(this.pdfViewer.adornerSvgLayer.id + '_selected_region');\n if (selectionRect) {\n selectionRect.parentNode.removeChild(selectionRect);\n }\n this.clearHighlighter(index);\n var childNodes = this.getSelectorElement(this.pdfViewer.element.id, index).childNodes;\n var child = void 0;\n for (var i = childNodes.length; i > 0; i--) {\n child = childNodes[i - 1];\n child.parentNode.removeChild(child);\n }\n }\n };\n /**\n * @private\n * @param {number} select - Specified the select value.\n * @param {AnnotationSelectorSettingsModel} currentSelector - Specified the annotation selector element.\n * @param {PdfAnnotationBaseModel} helper - Specified the annotation helper element.\n * @param {boolean} isSelect - Specified the is select or not.\n * @returns {void}\n */\n // eslint-disable-next-line max-len\n Drawing.prototype.renderSelector = function (select, currentSelector, helper, isSelect) {\n if (!helper || isSelect) {\n var size = new Size();\n var selectorModel = this.pdfViewer.selectedItems;\n this.clearSelectorLayer(select);\n if (selectorModel.wrapper) {\n selectorModel.wrapper.measure(size);\n var zoom = this.pdfViewer.viewerBase.getZoomFactor();\n selectorModel.wrapper.arrange(selectorModel.wrapper.desiredSize);\n selectorModel.width = selectorModel.wrapper.actualSize.width;\n selectorModel.height = selectorModel.wrapper.actualSize.height;\n selectorModel.offsetX = selectorModel.wrapper.offsetX;\n selectorModel.offsetY = selectorModel.wrapper.offsetY;\n if (selectorModel.annotations.length === 1) {\n selectorModel.rotateAngle = selectorModel.annotations[0].rotateAngle;\n selectorModel.wrapper.rotateAngle = selectorModel.annotations[0].rotateAngle;\n //selectorModel.pivot = selectorModel.annotations[0].pivot;\n }\n var bounds = selectorModel.wrapper.bounds;\n // eslint-disable-next-line\n var selectorElement = void 0;\n if (selectorModel.formFields.length) {\n for (var i = 0; i < selectorModel.formFields.length; i++) {\n var node = selectorModel.formFields[parseInt(i.toString(), 10)];\n selectorElement = this.getSelectorElement(this.pdfViewer.element.id, select);\n if (selectorElement && node.pageIndex === select && this.pdfViewer.designerMode) {\n this.renderResizeHandle(node.wrapper.children[0], selectorElement, selectorModel.thumbsConstraints, zoom, undefined, undefined, undefined, false, true, null, null, currentSelector);\n }\n if (this.pdfViewer.formDesignerModule && node.formFieldAnnotationType) {\n // eslint-disable-next-line max-len\n if (!this.pdfViewer.viewerBase.isFormFieldSelect && !this.pdfViewer.viewerBase.isFormFieldMouseDown && !this.pdfViewer.viewerBase.isFormFieldMouseMove) {\n this.pdfViewer.viewerBase.isFormFieldSelect = true;\n var field = {\n // eslint-disable-next-line\n name: node.name, id: node.id, value: node.value, fontFamily: node.fontFamily, fontSize: node.fontSize, fontStyle: node.fontStyle, color: node.color, backgroundColor: node.backgroundColor, alignment: node.alignment, isReadonly: node.isReadonly, visibility: node.visibility,\n // eslint-disable-next-line\n maxLength: node.maxLength, isRequired: node.isRequired, isPrint: node.isPrint, rotation: node.rotateAngle, tooltip: node.tooltip,\n // eslint-disable-next-line\n options: node.options, isChecked: node.isChecked, isSelected: node.isSelected\n };\n this.pdfViewer.fireFormFieldSelectEvent('formFieldSelect', field, node.pageIndex, this.pdfViewer.formDesignerModule.isProgrammaticSelection);\n }\n }\n }\n }\n if (selectorModel.annotations.length) {\n for (var j = 0; j < selectorModel.annotations.length; j++) {\n var node = selectorModel.annotations[parseInt(j.toString(), 10)];\n selectorElement = this.getSelectorElement(this.pdfViewer.element.id, select);\n var constraints = true;\n if (selectorElement && node.pageIndex === select) {\n if (node.shapeAnnotationType === 'Distance' || node.shapeAnnotationType === 'Line' ||\n node.shapeAnnotationType === 'LineWidthArrowHead' || node.shapeAnnotationType === 'Polygon') {\n this.renderEndPointHandle(node, selectorElement, selectorModel.thumbsConstraints, { scale: zoom, tx: 0, ty: 0 }, undefined, undefined, true, currentSelector);\n }\n else {\n if (node.shapeAnnotationType === 'StickyNotes') {\n this.renderResizeHandle(node.wrapper.children[0], selectorElement, selectorModel.thumbsConstraints, zoom, undefined, undefined, undefined, false, true, null, null, currentSelector);\n }\n else {\n if (this.pdfViewer.tool !== 'Stamp') {\n // eslint-disable-next-line\n var isSignature = node.shapeAnnotationType === 'Path' || node.formFieldAnnotationType === 'SignatureField' || node.formFieldAnnotationType === 'InitialField';\n this.renderResizeHandle(node.wrapper.children[0], selectorElement, selectorModel.thumbsConstraints, zoom, undefined, undefined, undefined, node.shapeAnnotationType === 'Stamp', false, isSignature, (node.shapeAnnotationType === 'FreeText' || node.shapeAnnotationType === 'HandWrittenSignature' || node.shapeAnnotationType === 'SignatureImage' || node.shapeAnnotationType === 'Image' || node.shapeAnnotationType === 'SignatureText'), currentSelector);\n }\n }\n }\n if (!this.pdfViewer.viewerBase.isNewSignatureAdded && (node.shapeAnnotationType === 'HandWrittenSignature' || node.shapeAnnotationType === 'SignatureText' || node.shapeAnnotationType === 'SignatureImage')) {\n this.pdfViewer.annotationModule.selectSignature(node.signatureName, node.pageIndex, node);\n }\n if (this.pdfViewer.formDesignerModule && node.formFieldAnnotationType) {\n // eslint-disable-next-line max-len\n if (!this.pdfViewer.viewerBase.isFormFieldSelect && !this.pdfViewer.viewerBase.isFormFieldMouseDown && !this.pdfViewer.viewerBase.isFormFieldMouseMove) {\n this.pdfViewer.viewerBase.isFormFieldSelect = true;\n var field = {\n // eslint-disable-next-line\n value: node.value, fontFamily: node.fontFamily, fontSize: node.fontSize, fontStyle: node.fontStyle,\n // eslint-disable-next-line\n color: node.color, backgroundColor: node.backgroundColor, alignment: node.alignment, isReadonly: node.isReadonly, visibility: node.visibility,\n // eslint-disable-next-line\n maxLength: node.maxLength, isRequired: node.isRequired, isPrint: node.isPrint, rotation: node.rotateAngle, tooltip: node.tooltip,\n // eslint-disable-next-line\n options: node.options, isChecked: node.isChecked, isSelected: node.isSelected\n };\n this.pdfViewer.fireFormFieldSelectEvent('formFieldSelect', field, node.pageIndex, this.pdfViewer.formDesignerModule.isProgrammaticSelection);\n }\n }\n if (node.annotName !== '' && node.annotName !== 'SignatureText') {\n if (helper && (node === helper) && !node.formFieldAnnotationType) {\n // eslint-disable-next-line max-len\n if (!this.pdfViewer.viewerBase.isAddComment && !this.pdfViewer.viewerBase.isAnnotationSelect && !this.pdfViewer.viewerBase.isAnnotationMouseDown && !this.pdfViewer.viewerBase.isAnnotationMouseMove && !this.pdfViewer.viewerBase.isInkAdded && !this.pdfViewer.viewerBase.isNewStamp) {\n this.pdfViewer.viewerBase.isAnnotationSelect = true;\n this.pdfViewer.annotationModule.annotationSelect(node.annotName, node.pageIndex, node);\n }\n }\n }\n }\n }\n }\n }\n }\n };\n /**\n * Rotates the given nodes/connectors by the given angle\n *\n * @private\n * @param {PdfAnnotationBaseModel | SelectorModel} obj - Specified the objects to be rotated.\n * @param {number} angle - Specified the angle by which the objects have to be rotated.\n * @param {PointModel} pivot - Specified the reference point with reference to which the objects have to be rotated.\n * @param {AnnotationSelectorSettingsModel} currentSelector - Specified the current selector value.\n * @returns {void}\n */\n // eslint-disable-next-line max-len\n Drawing.prototype.rotate = function (obj, angle, pivot, currentSelector) {\n var checkBoundaryConstraints;\n if (obj) {\n pivot = pivot || { x: obj.wrapper.offsetX, y: obj.wrapper.offsetY };\n if (obj instanceof Selector) {\n obj.rotateAngle += angle;\n obj.wrapper.rotateAngle += angle;\n var objects = [];\n objects = objects.concat(obj.annotations);\n this.rotateObjects(obj, objects, angle, pivot, null, currentSelector);\n }\n else {\n this.rotateObjects(obj, [obj], angle, pivot);\n }\n }\n return checkBoundaryConstraints;\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel | SelectorModel} parent - Specified the annotation object.\n * @param {PdfAnnotationBaseModel[]} objects - Specified the annotation objects.\n * @param {number} angle - Specified the annotation angle.\n * @param {PointModel} pivot - Specified the pivot value.\n * @param {boolean} includeParent - Specified the include parent value.\n * @param {AnnotationSelectorSettingsModel} currentSelector - Specified the current selector value.\n * @returns {void}\n */\n Drawing.prototype.rotateObjects = function (parent, objects, angle, pivot, includeParent, currentSelector) {\n pivot = pivot || {};\n var matrix = identityMatrix();\n rotateMatrix(matrix, angle, pivot.x, pivot.y);\n for (var _i = 0, objects_1 = objects; _i < objects_1.length; _i++) {\n var obj = objects_1[_i];\n if (obj instanceof PdfAnnotationBase) {\n if (includeParent !== false || parent !== obj) {\n obj.rotateAngle += angle;\n obj.rotateAngle = (obj.rotateAngle + 360) % 360;\n var newOffset = transformPointByMatrix(matrix, { x: obj.wrapper.offsetX, y: obj.wrapper.offsetY });\n obj.wrapper.offsetX = newOffset.x;\n obj.wrapper.offsetY = newOffset.y;\n this.nodePropertyChange(obj, { rotateAngle: obj.rotateAngle });\n }\n this.renderSelector(obj.pageIndex, currentSelector);\n }\n }\n };\n Drawing.prototype.getParentSvg = function (element, targetElement, canvas) {\n if (element && element.id) {\n if (targetElement && targetElement === 'selector') {\n return this.pdfViewer.adornerSvgLayer;\n }\n }\n return canvas;\n };\n /**\n * @private\n * @param {DrawingElement} selector - Specified the annotation selector object.\n * @param {HTMLCanvasElement | SVGElement} canvas - Specified the canvas element.\n * @param {any} currentSelector - Specified the current selector value.\n * @param {Transforms} transform - Specfied the transform value.\n * @param {number} enableNode - Specified the node number.\n * @param {boolean} isBorderTickness - Specified is thickness or not.\n * @param {boolean} isSwimlane - Specified is swimlane annotation or not.\n * @param {boolean} isSticky - Specified is sticky annotation or not.\n * @returns {void}\n */\n // eslint-disable-next-line\n Drawing.prototype.renderBorder = function (selector, canvas, currentSelector, transform, enableNode, isBorderTickness, isSwimlane, isSticky) {\n var wrapper = selector;\n var options = getBaseShapeAttributes(wrapper, transform);\n transform = transform || { scale: 1, tx: 0, ty: 0 };\n if (!isSticky) {\n options.x *= transform.scale;\n options.y *= transform.scale;\n options.width *= transform.scale;\n options.height *= transform.scale;\n options.fill = 'transparent';\n // eslint-disable-next-line max-len\n var shapeType = this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType;\n if (currentSelector && (typeof (currentSelector) !== 'object') && currentSelector !== '') {\n // eslint-disable-next-line\n var annotationSelector = JSON.parse(currentSelector);\n var borderColor = annotationSelector.selectionBorderColor === '' ? 'black' : annotationSelector.selectionBorderColor;\n options.stroke = borderColor;\n options.strokeWidth = currentSelector.selectionBorderThickness === 1 ? 1 : annotationSelector.selectionBorderThickness;\n // eslint-disable-next-line max-len\n var lineDash = annotationSelector.selectorLineDashArray.length === 0 ? [6, 3] : annotationSelector.selectorLineDashArray;\n if (lineDash.length > 2) {\n lineDash = [lineDash[0], lineDash[1]];\n }\n options.dashArray = lineDash.toString();\n }\n else {\n if (!this.pdfViewer.designerMode) {\n if ((shapeType === 'HandWrittenSignature' || shapeType === 'SignatureText' || shapeType === 'SignatureImage') || shapeType === 'Ink') {\n // eslint-disable-next-line\n var formField = this.pdfViewer.nameTable[selector.id.split('_')[0]];\n var isFormFieldSign = this.pdfViewer.viewerBase.checkSignatureFormField(selector.id);\n // if (isFormFieldSign && options.width + 21 !== formField.bounds.width && options.height + 21 !== formField.bounds.height) {\n // if (this.pdfViewer.signatureFitMode === 'Default') {\n // let selectorBounds: any = this.pdfViewer.formFieldsModule.getDefaultBoundsforSign(formField.bounds);\n // options.x = selectorBounds.x; options.y = selectorBounds.y; options.width = selectorBounds.width; options.height = selectorBounds.height;\n // } else {\n // options.x = formField.bounds.x; options.y = formField.bounds.y; options.width = formField.bounds.width; options.height = formField.bounds.height;\n // }\n // }\n this.getSignBorder(shapeType, options, isFormFieldSign);\n }\n else {\n this.getBorderSelector(shapeType, options);\n }\n }\n }\n options.class = 'e-pv-diagram-border';\n if (isSwimlane) {\n options.class += ' e-diagram-lane';\n }\n options.id = 'borderRect';\n options.id = 'borderRect';\n if (!enableNode) {\n options.class += ' e-disabled';\n }\n if (isBorderTickness) {\n options.class += ' e-thick-border';\n }\n options.cornerRadius = 0;\n }\n else {\n options.x *= transform.scale;\n options.y *= transform.scale;\n options.width *= transform.scale;\n options.height *= transform.scale;\n // eslint-disable-next-line max-len\n var shapeType = this.pdfViewer.selectedItems.annotations.length > 0 ? this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType\n : this.pdfViewer.selectedItems.formFields[0].formFieldAnnotationType;\n if (currentSelector && (typeof (currentSelector) !== 'object') && currentSelector !== '') {\n var annotationSelector = JSON.parse(currentSelector);\n var borderColor = annotationSelector.selectionBorderColor === '' ? 'black' : annotationSelector.selectionBorderColor;\n options.stroke = borderColor;\n options.strokeWidth = currentSelector.selectionBorderThickness === 1 ? 1 : annotationSelector.selectionBorderThickness;\n // eslint-disable-next-line max-len\n var lineDash = annotationSelector.selectorLineDashArray.length === 0 ? [6, 3] : annotationSelector.selectorLineDashArray;\n if (lineDash.length > 2) {\n lineDash = [lineDash[0], lineDash[1]];\n }\n options.dashArray = lineDash.toString();\n }\n else {\n this.getBorderSelector(shapeType, options);\n }\n }\n var parentSvg = this.getParentSvg(selector, 'selector');\n // eslint-disable-next-line max-len\n this.svgRenderer.drawRectangle(canvas, options, this.pdfViewer.element.id, undefined, true, parentSvg);\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel} type - Specified the annotation object.\n * @param {BaseAttributes} options - Specified the options value.\n * @param {boolean} isFormFieldSign - Specified is form field sign or not.\n * @returns {void}\n */\n Drawing.prototype.getSignBorder = function (type, options, isFormFieldSign) {\n if (!isFormFieldSign && (type === 'HandWrittenSignature' || type === 'SignatureText' || type === 'SignatureImage') && this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings) {\n var borderColor = isNullOrUndefined(this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.selectionBorderColor) || this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.selectionBorderColor === '' ? '#0000ff' : this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.selectionBorderColor;\n options.stroke = borderColor;\n // eslint-disable-next-line max-len\n var thickness = isNullOrUndefined(this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.selectionBorderThickness) ? 1 : this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.selectionBorderThickness;\n options.strokeWidth = thickness;\n // eslint-disable-next-line max-len\n var lineDash = isNullOrUndefined(this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.selectorLineDashArray) || this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.selectorLineDashArray.length === 0 ? [4] : this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.selectorLineDashArray;\n if (lineDash.length > 2) {\n lineDash = [lineDash[0], lineDash[1]];\n }\n options.dashArray = lineDash.toString();\n }\n else if (type === 'Ink' && this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings) {\n var borderColor = isNullOrUndefined(this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.selectionBorderColor) || this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.selectionBorderColor === '' ? '#0000ff' : this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.selectionBorderColor;\n options.stroke = borderColor;\n // eslint-disable-next-line max-len\n var thickness = isNullOrUndefined(this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.selectionBorderThickness) ? 1 : this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.selectionBorderThickness;\n options.strokeWidth = thickness;\n // eslint-disable-next-line max-len\n var lineDash = isNullOrUndefined(this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.selectorLineDashArray) || this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.selectorLineDashArray.length === 0 ? [4] : this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.selectorLineDashArray;\n if (lineDash.length > 2) {\n lineDash = [lineDash[0], lineDash[1]];\n }\n options.dashArray = lineDash.toString();\n }\n else {\n var annotationSelector = this.pdfViewer.annotationSelectorSettings;\n var borderColor = annotationSelector.selectionBorderColor === '' ? 'black' : annotationSelector.selectionBorderColor;\n options.stroke = borderColor;\n options.strokeWidth = annotationSelector.selectionBorderThickness === 1 ? 1 : annotationSelector.selectionBorderThickness;\n // eslint-disable-next-line max-len\n var lineDash = annotationSelector.selectorLineDashArray.length === 0 ? [6, 3] : annotationSelector.selectorLineDashArray;\n if (lineDash.length > 2) {\n lineDash = [lineDash[0], lineDash[1]];\n }\n options.dashArray = lineDash.toString();\n }\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel} type - Specified the annotation object.\n * @param {BaseAttributes} options - Specified the base attributes.\n * @returns {void}\n */\n Drawing.prototype.getBorderSelector = function (type, options) {\n var annotationSelector = this.pdfViewer.annotationSelectorSettings;\n var borderColor = isNullOrUndefined(annotationSelector.selectionBorderColor) || annotationSelector.selectionBorderColor === '' ? 'black' : annotationSelector.selectionBorderColor;\n options.stroke = borderColor;\n // eslint-disable-next-line max-len\n options.strokeWidth = isNullOrUndefined(annotationSelector.selectionBorderThickness) || annotationSelector.selectionBorderThickness === 1 ? 1 : annotationSelector.selectionBorderThickness;\n // eslint-disable-next-line max-len\n var lineDash = isNullOrUndefined(annotationSelector.selectorLineDashArray) || annotationSelector.selectorLineDashArray.length === 0 ? [6, 3] : annotationSelector.selectorLineDashArray;\n if (lineDash.length > 2) {\n lineDash = [lineDash[0], lineDash[1]];\n }\n options.dashArray = lineDash.toString();\n if (type === 'Rectangle' && this.pdfViewer.rectangleSettings.annotationSelectorSettings) {\n var borderColor_1 = isNullOrUndefined(this.pdfViewer.rectangleSettings.annotationSelectorSettings.selectionBorderColor) || this.pdfViewer.rectangleSettings.annotationSelectorSettings.selectionBorderColor === '' ? 'black' : this.pdfViewer.rectangleSettings.annotationSelectorSettings.selectionBorderColor;\n options.stroke = borderColor_1;\n // eslint-disable-next-line max-len\n var thickness = isNullOrUndefined(this.pdfViewer.rectangleSettings.annotationSelectorSettings.selectionBorderThickness) ? 1 : this.pdfViewer.rectangleSettings.annotationSelectorSettings.selectionBorderThickness;\n options.strokeWidth = thickness;\n // eslint-disable-next-line max-len\n var lineDash_1 = isNullOrUndefined(this.pdfViewer.rectangleSettings.annotationSelectorSettings.selectorLineDashArray) || this.pdfViewer.rectangleSettings.annotationSelectorSettings.selectorLineDashArray.length === 0 ? [4] : this.pdfViewer.rectangleSettings.annotationSelectorSettings.selectorLineDashArray;\n if (lineDash_1.length > 2) {\n lineDash_1 = [lineDash_1[0], lineDash_1[1]];\n }\n options.dashArray = lineDash_1.toString();\n }\n else if ((type === 'Textbox' || type === 'Checkbox' || type === 'RadioButton' || type === 'SignatureField' || type === 'InitialField' || type === 'DropdownList' || type === 'ListBox' || type === 'PasswordField') && this.pdfViewer.rectangleSettings.annotationSelectorSettings) {\n var borderColor_2 = isNullOrUndefined(this.pdfViewer.rectangleSettings.annotationSelectorSettings.selectionBorderColor) || this.pdfViewer.rectangleSettings.annotationSelectorSettings.selectionBorderColor === '' ? 'black' : this.pdfViewer.rectangleSettings.annotationSelectorSettings.selectionBorderColor;\n options.stroke = borderColor_2;\n // eslint-disable-next-line max-len\n var thickness = isNullOrUndefined(this.pdfViewer.rectangleSettings.annotationSelectorSettings.selectionBorderThickness) ? 1 : this.pdfViewer.rectangleSettings.annotationSelectorSettings.selectionBorderThickness;\n options.strokeWidth = thickness;\n // eslint-disable-next-line max-len\n var lineDash_2 = isNullOrUndefined(this.pdfViewer.rectangleSettings.annotationSelectorSettings.selectorLineDashArray) || this.pdfViewer.rectangleSettings.annotationSelectorSettings.selectorLineDashArray.length === 0 ? [4] : this.pdfViewer.rectangleSettings.annotationSelectorSettings.selectorLineDashArray;\n if (lineDash_2.length > 2) {\n lineDash_2 = [lineDash_2[0], lineDash_2[1]];\n }\n options.dashArray = lineDash_2.toString();\n }\n else if (type === 'Ellipse' && this.pdfViewer.circleSettings.annotationSelectorSettings) {\n var borderColor_3 = isNullOrUndefined(this.pdfViewer.circleSettings.annotationSelectorSettings.selectionBorderColor) || this.pdfViewer.circleSettings.annotationSelectorSettings.selectionBorderColor === '' ? 'black' : this.pdfViewer.circleSettings.annotationSelectorSettings.selectionBorderColor;\n options.stroke = borderColor_3;\n // eslint-disable-next-line max-len\n var thickness = isNullOrUndefined(this.pdfViewer.circleSettings.annotationSelectorSettings.selectionBorderThickness) ? 1 : this.pdfViewer.circleSettings.annotationSelectorSettings.selectionBorderThickness;\n options.strokeWidth = thickness;\n // eslint-disable-next-line max-len\n var lineDash_3 = isNullOrUndefined(this.pdfViewer.circleSettings.annotationSelectorSettings.selectorLineDashArray) || this.pdfViewer.circleSettings.annotationSelectorSettings.selectorLineDashArray.length === 0 ? [4] : this.pdfViewer.circleSettings.annotationSelectorSettings.selectorLineDashArray;\n if (lineDash_3.length > 2) {\n lineDash_3 = [lineDash_3[0], lineDash_3[1]];\n }\n options.dashArray = lineDash_3.toString();\n }\n else if (type === 'Radius' && this.pdfViewer.radiusSettings.annotationSelectorSettings) {\n var borderColor_4 = isNullOrUndefined(this.pdfViewer.radiusSettings.annotationSelectorSettings.selectionBorderColor) || this.pdfViewer.radiusSettings.annotationSelectorSettings.selectionBorderColor === '' ? 'black' : this.pdfViewer.radiusSettings.annotationSelectorSettings.selectionBorderColor;\n options.stroke = borderColor_4;\n // eslint-disable-next-line max-len\n var thickness = isNullOrUndefined(this.pdfViewer.radiusSettings.annotationSelectorSettings.selectionBorderThickness) ? 1 : this.pdfViewer.radiusSettings.annotationSelectorSettings.selectionBorderThickness;\n options.strokeWidth = thickness;\n // eslint-disable-next-line max-len\n var lineDash_4 = isNullOrUndefined(this.pdfViewer.radiusSettings.annotationSelectorSettings.selectorLineDashArray) || this.pdfViewer.radiusSettings.annotationSelectorSettings.selectorLineDashArray.length === 0 ? [4] : this.pdfViewer.radiusSettings.annotationSelectorSettings.selectorLineDashArray;\n if (lineDash_4.length > 2) {\n lineDash_4 = [lineDash_4[0], lineDash_4[1]];\n }\n options.dashArray = lineDash_4.toString();\n }\n else if (type === 'FreeText' && this.pdfViewer.freeTextSettings.annotationSelectorSettings) {\n var borderColor_5 = isNullOrUndefined(this.pdfViewer.freeTextSettings.annotationSelectorSettings.selectionBorderColor) || this.pdfViewer.freeTextSettings.annotationSelectorSettings.selectionBorderColor === '' ? 'black' : this.pdfViewer.freeTextSettings.annotationSelectorSettings.selectionBorderColor;\n options.stroke = borderColor_5;\n // eslint-disable-next-line max-len\n var thickness = isNullOrUndefined(this.pdfViewer.freeTextSettings.annotationSelectorSettings.selectionBorderThickness) ? 1 : this.pdfViewer.freeTextSettings.annotationSelectorSettings.selectionBorderThickness;\n options.strokeWidth = thickness;\n // eslint-disable-next-line max-len\n var lineDash_5 = isNullOrUndefined(this.pdfViewer.freeTextSettings.annotationSelectorSettings.selectorLineDashArray) || this.pdfViewer.freeTextSettings.annotationSelectorSettings.selectorLineDashArray.length === 0 ? [4] : this.pdfViewer.freeTextSettings.annotationSelectorSettings.selectorLineDashArray;\n if (lineDash_5.length > 2) {\n lineDash_5 = [lineDash_5[0], lineDash_5[1]];\n }\n options.dashArray = lineDash_5.toString();\n }\n else if (type === 'StickyNotes' && this.pdfViewer.stickyNotesSettings.annotationSelectorSettings) {\n var borderColor_6 = isNullOrUndefined(this.pdfViewer.stickyNotesSettings.annotationSelectorSettings.selectionBorderColor) || this.pdfViewer.stickyNotesSettings.annotationSelectorSettings.selectionBorderColor === '' ? 'black' : this.pdfViewer.stickyNotesSettings.annotationSelectorSettings.selectionBorderColor;\n options.stroke = borderColor_6;\n // eslint-disable-next-line max-len\n var thickness = isNullOrUndefined(this.pdfViewer.stickyNotesSettings.annotationSelectorSettings.selectionBorderThickness) ? 1 : this.pdfViewer.stickyNotesSettings.annotationSelectorSettings.selectionBorderThickness;\n options.strokeWidth = thickness;\n // eslint-disable-next-line max-len\n var lineDash_6 = isNullOrUndefined(this.pdfViewer.stickyNotesSettings.annotationSelectorSettings.selectorLineDashArray) || this.pdfViewer.stickyNotesSettings.annotationSelectorSettings.selectorLineDashArray.length === 0 ? [6, 3] : this.pdfViewer.stickyNotesSettings.annotationSelectorSettings.selectorLineDashArray;\n if (lineDash_6.length > 2) {\n lineDash_6 = [lineDash_6[0], lineDash_6[1]];\n }\n options.dashArray = lineDash_6.toString();\n }\n else if (type === 'Stamp' && this.pdfViewer.stampSettings.annotationSelectorSettings) {\n var borderColor_7 = isNullOrUndefined(this.pdfViewer.stampSettings.annotationSelectorSettings.selectionBorderColor) || this.pdfViewer.stampSettings.annotationSelectorSettings.selectionBorderColor === '' ? '#0000ff' : this.pdfViewer.stampSettings.annotationSelectorSettings.selectionBorderColor;\n options.stroke = borderColor_7;\n // eslint-disable-next-line max-len\n var thickness = isNullOrUndefined(this.pdfViewer.stampSettings.annotationSelectorSettings.selectionBorderThickness) ? 1 : this.pdfViewer.stampSettings.annotationSelectorSettings.selectionBorderThickness;\n options.strokeWidth = thickness;\n // eslint-disable-next-line max-len\n var lineDash_7 = isNullOrUndefined(this.pdfViewer.stampSettings.annotationSelectorSettings.selectorLineDashArray) || this.pdfViewer.stampSettings.annotationSelectorSettings.selectorLineDashArray.length === 0 ? [4] : this.pdfViewer.stampSettings.annotationSelectorSettings.selectorLineDashArray;\n if (lineDash_7.length > 2) {\n lineDash_7 = [lineDash_7[0], lineDash_7[1]];\n }\n options.dashArray = lineDash_7.toString();\n }\n };\n /**\n * @private\n * @param {string} id - Specified the annotaion id.\n * @param {DrawingElement} selector - Specified the drawing element.\n * @param {number} cx - Specified the cx number.\n * @param {number} cy - Specified the cy number.\n * @param {HTMLCanvasElement | SVGElement} canvas - Specified the html canvas element.\n * @param {boolean} visible - Specified the annotation visible or not.\n * @param {number} enableSelector - Specified the enable selector value.\n * @param {Transforms} t - Specified the transforms value.\n * @param {boolean} connected - Specified is connected or not.\n * @param {boolean} canMask - Specified is mask or not.\n * @param {Object} ariaLabel - Specified the aria label object.\n * @param {number} count - Specified the count value.\n * @param {string} className - Specified the class name.\n * @param {AnnotationSelectorSettingsModel} currentSelector - Specified the annotation selector settings.\n * @returns {void}\n */\n Drawing.prototype.renderCircularHandle = function (id, selector, cx, cy, canvas, visible, enableSelector, t, connected, canMask, ariaLabel, count, className, currentSelector) {\n var wrapper = selector;\n var radius = 7;\n var newPoint = { x: cx, y: cy };\n t = t || { scale: 1, tx: 0, ty: 0 };\n if (wrapper.rotateAngle !== 0 || wrapper.parentTransform !== 0) {\n var matrix = identityMatrix();\n rotateMatrix(matrix, wrapper.rotateAngle + wrapper.parentTransform, wrapper.offsetX, wrapper.offsetY);\n newPoint = transformPointByMatrix(matrix, newPoint);\n }\n var options = getBaseShapeAttributes(wrapper);\n var shapeType;\n if (this.pdfViewer.selectedItems.annotations.length > 0 && this.pdfViewer.selectedItems.annotations[0].measureType) {\n shapeType = this.pdfViewer.selectedItems.annotations[0].measureType;\n }\n else if (this.pdfViewer.selectedItems.formFields.length > 0) {\n shapeType = this.pdfViewer.selectedItems.formFields[0].formFieldAnnotationType;\n }\n else {\n shapeType = this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType;\n }\n this.getResizerColors(shapeType, options, currentSelector, t);\n this.getShapeSize(shapeType, options, currentSelector, t);\n options.strokeWidth = 1;\n if (count !== undefined) {\n radius = 5;\n options.id = 'segmentEnd_' + count;\n }\n options.centerX = (newPoint.x + t.tx) * t.scale;\n options.centerY = (newPoint.y + t.ty) * t.scale;\n options.angle = 0;\n options.id = id;\n options.visible = visible;\n options.class = className;\n options.opacity = 1;\n if (connected) {\n options.class += ' e-connected';\n }\n if (canMask) {\n options.visible = false;\n }\n options.x = (newPoint.x * t.scale) - (options.width / 2);\n options.y = (newPoint.y * t.scale) - (options.height / 2);\n var parentSvg = this.getParentSvg(selector, 'selector');\n if (this.getShape(shapeType, currentSelector) === 'Square') {\n this.svgRenderer.drawRectangle(canvas, options, id, undefined, true, parentSvg);\n }\n else if (this.getShape(shapeType, currentSelector) === 'Circle') {\n this.svgRenderer.drawCircle(canvas, options, 1);\n }\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel} type - Specified the annotaion object.\n * @param {CircleAttributes} options - Specified the circle attributes value.\n * @param {any} currentSelector - Specified the current selector value.\n * @param {Transforms} t - Specified the transforms value.\n * @returns {void}\n */\n // eslint-disable-next-line\n Drawing.prototype.getShapeSize = function (type, options, currentSelector, t) {\n if (currentSelector && typeof (currentSelector) !== 'object' && currentSelector !== '') {\n // eslint-disable-next-line\n var annotationSelector = JSON.parse(currentSelector);\n // eslint-disable-next-line max-len\n options.radius = (isNullOrUndefined(annotationSelector.resizerSize) || annotationSelector.resizerSize === 8 ? 8 : annotationSelector.resizerSize) / 2;\n // eslint-disable-next-line max-len\n options.width = (isNullOrUndefined(annotationSelector.resizerSize) || annotationSelector.resizerSize === 8 ? 8 : annotationSelector.resizerSize) * t.scale;\n // eslint-disable-next-line max-len\n options.height = (isNullOrUndefined(annotationSelector.resizerSize) || annotationSelector.resizerSize === 8 ? 8 : annotationSelector.resizerSize) * t.scale;\n }\n else {\n // eslint-disable-next-line\n var annotationSelector = this.pdfViewer.annotationSelectorSettings;\n // eslint-disable-next-line max-len\n options.radius = (isNullOrUndefined(annotationSelector.resizerSize) || annotationSelector.resizerSize === 8 ? 8 : annotationSelector.resizerSize) / 2;\n // eslint-disable-next-line max-len\n options.width = (isNullOrUndefined(annotationSelector.resizerSize) || annotationSelector.resizerSize === 8 ? 8 : annotationSelector.resizerSize) * t.scale;\n // eslint-disable-next-line max-len\n options.height = (isNullOrUndefined(annotationSelector.resizerSize) || annotationSelector.resizerSize === 8 ? 8 : annotationSelector.resizerSize) * t.scale;\n if (type === 'Line' && this.pdfViewer.lineSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n options.radius = (isNullOrUndefined(this.pdfViewer.lineSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.lineSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.lineSettings.annotationSelectorSettings.resizerSize) / 2;\n // eslint-disable-next-line max-len\n options.width = (isNullOrUndefined(this.pdfViewer.lineSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.lineSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.lineSettings.annotationSelectorSettings.resizerSize) * t.scale;\n // eslint-disable-next-line max-len\n options.height = (isNullOrUndefined(this.pdfViewer.lineSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.lineSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.lineSettings.annotationSelectorSettings.resizerSize) * t.scale;\n }\n else if (type === 'LineWidthArrowHead' && this.pdfViewer.arrowSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n options.radius = (isNullOrUndefined(this.pdfViewer.arrowSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.arrowSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.arrowSettings.annotationSelectorSettings.resizerSize) / 2;\n // eslint-disable-next-line max-len\n options.width = (isNullOrUndefined(this.pdfViewer.arrowSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.arrowSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.arrowSettings.annotationSelectorSettings.resizerSize) * t.scale;\n // eslint-disable-next-line max-len\n options.height = (isNullOrUndefined(this.pdfViewer.arrowSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.arrowSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.arrowSettings.annotationSelectorSettings.resizerSize) * t.scale;\n }\n else if (type === 'Rectangle' && this.pdfViewer.rectangleSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n options.radius = (isNullOrUndefined(this.pdfViewer.rectangleSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.rectangleSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.rectangleSettings.annotationSelectorSettings.resizerSize) / 2;\n // eslint-disable-next-line max-len\n options.width = (isNullOrUndefined(this.pdfViewer.rectangleSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.rectangleSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.rectangleSettings.annotationSelectorSettings.resizerSize) * t.scale;\n // eslint-disable-next-line max-len\n options.height = (isNullOrUndefined(this.pdfViewer.rectangleSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.rectangleSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.rectangleSettings.annotationSelectorSettings.resizerSize) * t.scale;\n }\n else if (type === 'Ellipse' && this.pdfViewer.circleSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n options.radius = (isNullOrUndefined(this.pdfViewer.circleSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.circleSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.circleSettings.annotationSelectorSettings.resizerSize) / 2;\n // eslint-disable-next-line max-len\n options.width = (isNullOrUndefined(this.pdfViewer.circleSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.circleSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.circleSettings.annotationSelectorSettings.resizerSize) * t.scale;\n // eslint-disable-next-line max-len\n options.height = (isNullOrUndefined(this.pdfViewer.circleSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.circleSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.circleSettings.annotationSelectorSettings.resizerSize) * t.scale;\n }\n else if (type === 'Distance' && this.pdfViewer.distanceSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n options.radius = (isNullOrUndefined(this.pdfViewer.distanceSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.distanceSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.distanceSettings.annotationSelectorSettings.resizerSize) / 2;\n // eslint-disable-next-line max-len\n options.width = (isNullOrUndefined(this.pdfViewer.distanceSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.distanceSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.distanceSettings.annotationSelectorSettings.resizerSize) * t.scale;\n // eslint-disable-next-line max-len\n options.height = (isNullOrUndefined(this.pdfViewer.distanceSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.distanceSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.distanceSettings.annotationSelectorSettings.resizerSize) * t.scale;\n }\n else if (type === 'Polygon' && this.pdfViewer.polygonSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n options.radius = (isNullOrUndefined(this.pdfViewer.polygonSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.polygonSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.polygonSettings.annotationSelectorSettings.resizerSize) / 2;\n // eslint-disable-next-line max-len\n options.width = (isNullOrUndefined(this.pdfViewer.polygonSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.polygonSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.polygonSettings.annotationSelectorSettings.resizerSize) * t.scale;\n // eslint-disable-next-line max-len\n options.height = (isNullOrUndefined(this.pdfViewer.polygonSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.polygonSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.polygonSettings.annotationSelectorSettings.resizerSize) * t.scale;\n }\n else if (type === 'Radius' && this.pdfViewer.radiusSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n options.radius = (isNullOrUndefined(this.pdfViewer.radiusSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.radiusSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.radiusSettings.annotationSelectorSettings.resizerSize) / 2;\n // eslint-disable-next-line max-len\n options.width = (isNullOrUndefined(this.pdfViewer.radiusSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.radiusSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.radiusSettings.annotationSelectorSettings.resizerSize) * t.scale;\n // eslint-disable-next-line max-len\n options.height = (isNullOrUndefined(this.pdfViewer.radiusSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.radiusSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.radiusSettings.annotationSelectorSettings.resizerSize) * t.scale;\n }\n else if (type === 'Stamp' && this.pdfViewer.stampSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n options.radius = (isNullOrUndefined(this.pdfViewer.stampSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.stampSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.stampSettings.annotationSelectorSettings.resizerSize) / 2;\n // eslint-disable-next-line max-len\n options.width = (isNullOrUndefined(this.pdfViewer.stampSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.stampSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.stampSettings.annotationSelectorSettings.resizerSize) * t.scale;\n // eslint-disable-next-line max-len\n options.height = (isNullOrUndefined(this.pdfViewer.stampSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.stampSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.stampSettings.annotationSelectorSettings.resizerSize) * t.scale;\n }\n else if (type === 'FreeText' && this.pdfViewer.freeTextSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n options.radius = (isNullOrUndefined(this.pdfViewer.freeTextSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.freeTextSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.freeTextSettings.annotationSelectorSettings.resizerSize) / 2;\n // eslint-disable-next-line max-len\n options.width = (isNullOrUndefined(this.pdfViewer.freeTextSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.freeTextSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.freeTextSettings.annotationSelectorSettings.resizerSize) * t.scale;\n // eslint-disable-next-line max-len\n options.height = (isNullOrUndefined(this.pdfViewer.freeTextSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.freeTextSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.freeTextSettings.annotationSelectorSettings.resizerSize) * t.scale;\n }\n else if ((type === 'HandWrittenSignature' || type === 'SignatureText' || type === 'SignatureImage') && this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n options.radius = (isNullOrUndefined(this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.resizerSize) / 2;\n // eslint-disable-next-line max-len\n options.width = (isNullOrUndefined(this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.resizerSize) * t.scale;\n // eslint-disable-next-line max-len\n options.height = (isNullOrUndefined(this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.resizerSize) * t.scale;\n }\n else if (type === 'Perimeter' && this.pdfViewer.perimeterSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n options.radius = (isNullOrUndefined(this.pdfViewer.perimeterSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.perimeterSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.perimeterSettings.annotationSelectorSettings.resizerSize) / 2;\n // eslint-disable-next-line max-len\n options.width = (isNullOrUndefined(this.pdfViewer.perimeterSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.perimeterSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.perimeterSettings.annotationSelectorSettings.resizerSize) * t.scale;\n // eslint-disable-next-line max-len\n options.height = (isNullOrUndefined(this.pdfViewer.perimeterSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.perimeterSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.perimeterSettings.annotationSelectorSettings.resizerSize) * t.scale;\n }\n else if (type === 'Area' && this.pdfViewer.areaSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n options.radius = (isNullOrUndefined(this.pdfViewer.areaSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.areaSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.areaSettings.annotationSelectorSettings.resizerSize) / 2;\n // eslint-disable-next-line max-len\n options.width = (isNullOrUndefined(this.pdfViewer.areaSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.areaSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.areaSettings.annotationSelectorSettings.resizerSize) * t.scale;\n // eslint-disable-next-line max-len\n options.height = (isNullOrUndefined(this.pdfViewer.areaSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.areaSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.areaSettings.annotationSelectorSettings.resizerSize) * t.scale;\n }\n else if (type === 'Volume' && this.pdfViewer.volumeSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n options.radius = (isNullOrUndefined(this.pdfViewer.volumeSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.volumeSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.volumeSettings.annotationSelectorSettings.resizerSize) / 2;\n // eslint-disable-next-line max-len\n options.width = (isNullOrUndefined(this.pdfViewer.volumeSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.volumeSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.volumeSettings.annotationSelectorSettings.resizerSize) * t.scale;\n // eslint-disable-next-line max-len\n options.height = (isNullOrUndefined(this.pdfViewer.volumeSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.volumeSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.volumeSettings.annotationSelectorSettings.resizerSize) * t.scale;\n }\n else if (type === 'Ink' && this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n options.radius = (isNullOrUndefined(this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.resizerSize) / 2;\n // eslint-disable-next-line max-len\n options.width = (isNullOrUndefined(this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.resizerSize) * t.scale;\n // eslint-disable-next-line max-len\n options.height = (isNullOrUndefined(this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.resizerSize) || this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.resizerSize === 8 ? 8 : this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.resizerSize) * t.scale;\n }\n }\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel} type - Specified the annotation object.\n * @param {any} currentSelector - Specified the current selector value.\n * @returns {AnnotationSelectorSettingsModel} - Specified the annotation selector settings model.\n */\n // eslint-disable-next-line\n Drawing.prototype.getShape = function (type, currentSelector) {\n // eslint-disable-next-line\n var shapeType;\n {\n if (currentSelector && typeof (currentSelector) !== 'object' && currentSelector !== '') {\n // eslint-disable-next-line\n var annotationSelector = JSON.parse(currentSelector);\n shapeType = isNullOrUndefined(annotationSelector.resizerShape) || annotationSelector.resizerShape === 'Square' ? 'Square' : annotationSelector.resizerShape;\n }\n else {\n // eslint-disable-next-line\n var annotationSelector = this.pdfViewer.annotationSelectorSettings;\n shapeType = isNullOrUndefined(annotationSelector.resizerShape) || annotationSelector.resizerShape === 'Square' ? 'Square' : annotationSelector.resizerShape;\n if (type === 'Line' && this.pdfViewer.lineSettings.annotationSelectorSettings) {\n shapeType = isNullOrUndefined(this.pdfViewer.lineSettings.annotationSelectorSettings.resizerShape) || this.pdfViewer.lineSettings.annotationSelectorSettings.resizerShape === 'Square' ? 'Square' : this.pdfViewer.lineSettings.annotationSelectorSettings.resizerShape;\n }\n else if (type === 'LineWidthArrowHead' && this.pdfViewer.arrowSettings.annotationSelectorSettings) {\n shapeType = isNullOrUndefined(this.pdfViewer.arrowSettings.annotationSelectorSettings.resizerShape) || this.pdfViewer.arrowSettings.annotationSelectorSettings.resizerShape === 'Square' ? 'Square' : this.pdfViewer.arrowSettings.annotationSelectorSettings.resizerShape;\n }\n else if (type === 'Rectangle' && this.pdfViewer.rectangleSettings.annotationSelectorSettings) {\n shapeType = isNullOrUndefined(this.pdfViewer.rectangleSettings.annotationSelectorSettings.resizerShape) || this.pdfViewer.rectangleSettings.annotationSelectorSettings.resizerShape === 'Square' ? 'Square' : this.pdfViewer.rectangleSettings.annotationSelectorSettings.resizerShape;\n }\n else if (type === 'Ellipse' && this.pdfViewer.circleSettings.annotationSelectorSettings) {\n shapeType = isNullOrUndefined(this.pdfViewer.circleSettings.annotationSelectorSettings.resizerShape) || this.pdfViewer.circleSettings.annotationSelectorSettings.resizerShape === 'Square' ? 'Square' : this.pdfViewer.circleSettings.annotationSelectorSettings.resizerShape;\n }\n else if (type === 'Polygon' && this.pdfViewer.polygonSettings.annotationSelectorSettings) {\n shapeType = isNullOrUndefined(this.pdfViewer.polygonSettings.annotationSelectorSettings.resizerShape) || this.pdfViewer.polygonSettings.annotationSelectorSettings.resizerShape === 'Square' ? 'Square' : this.pdfViewer.polygonSettings.annotationSelectorSettings.resizerShape;\n }\n else if (type === 'Distance' && this.pdfViewer.distanceSettings.annotationSelectorSettings) {\n shapeType = isNullOrUndefined(this.pdfViewer.distanceSettings.annotationSelectorSettings.resizerShape) || this.pdfViewer.distanceSettings.annotationSelectorSettings.resizerShape === 'Square' ? 'Square' : this.pdfViewer.distanceSettings.annotationSelectorSettings.resizerShape;\n }\n else if (type === 'Radius' && this.pdfViewer.radiusSettings.annotationSelectorSettings) {\n shapeType = isNullOrUndefined(this.pdfViewer.radiusSettings.annotationSelectorSettings.resizerShape) || this.pdfViewer.radiusSettings.annotationSelectorSettings.resizerShape === 'Square' ? 'Square' : this.pdfViewer.radiusSettings.annotationSelectorSettings.resizerShape;\n }\n else if (type === 'Stamp' && this.pdfViewer.stampSettings.annotationSelectorSettings) {\n shapeType = isNullOrUndefined(this.pdfViewer.stampSettings.annotationSelectorSettings.resizerShape) || this.pdfViewer.stampSettings.annotationSelectorSettings.resizerShape === 'Square' ? 'Square' : this.pdfViewer.stampSettings.annotationSelectorSettings.resizerShape;\n }\n else if (type === 'FreeText' && this.pdfViewer.freeTextSettings.annotationSelectorSettings) {\n shapeType = isNullOrUndefined(this.pdfViewer.freeTextSettings.annotationSelectorSettings.resizerShape) || this.pdfViewer.freeTextSettings.annotationSelectorSettings.resizerShape === 'Square' ? 'Square' : this.pdfViewer.freeTextSettings.annotationSelectorSettings.resizerShape;\n }\n else if ((type === 'HandWrittenSignature' || type === 'SignatureText' || type === 'SignatureImage') && this.pdfViewer.handWrittenSignatureSettings && this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings) {\n shapeType = isNullOrUndefined(this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.resizerShape) || this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.resizerShape === 'Square' ? 'Square' : this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.resizerShape;\n }\n else if (type === 'Perimeter' && this.pdfViewer.perimeterSettings.annotationSelectorSettings) {\n shapeType = isNullOrUndefined(this.pdfViewer.perimeterSettings.annotationSelectorSettings.resizerShape) || this.pdfViewer.perimeterSettings.annotationSelectorSettings.resizerShape === 'Square' ? 'Square' : this.pdfViewer.perimeterSettings.annotationSelectorSettings.resizerShape;\n }\n else if (type === 'Area' && this.pdfViewer.areaSettings.annotationSelectorSettings) {\n shapeType = isNullOrUndefined(this.pdfViewer.areaSettings.annotationSelectorSettings.resizerShape) || this.pdfViewer.areaSettings.annotationSelectorSettings.resizerShape === 'Square' ? 'Square' : this.pdfViewer.areaSettings.annotationSelectorSettings.resizerShape;\n }\n else if (type === 'Volume' && this.pdfViewer.volumeSettings.annotationSelectorSettings) {\n shapeType = isNullOrUndefined(this.pdfViewer.volumeSettings.annotationSelectorSettings.resizerShape) || this.pdfViewer.volumeSettings.annotationSelectorSettings.resizerShape === 'Square' ? 'Square' : this.pdfViewer.volumeSettings.annotationSelectorSettings.resizerShape;\n }\n else if (type === 'Ink' && this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings) {\n shapeType = isNullOrUndefined(this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.resizerShape) || this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.resizerShape === 'Square' ? 'Square' : this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.resizerShape;\n }\n }\n return shapeType;\n }\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel} type - Specified the annotaion object.\n * @param {CircleAttributes} options - Specified the circle attributes value.\n * @param {any} currentSelector - Specified the current selector value.\n * @param {Transforms} t - Specified the transforms value.\n * @returns {void}\n */\n // eslint-disable-next-line\n Drawing.prototype.getResizerColors = function (type, options, currentSelector, t) {\n if (currentSelector && typeof (currentSelector) !== 'object' && currentSelector !== '') {\n // eslint-disable-next-line\n var annotationSelector = JSON.parse(currentSelector);\n options.stroke = isNullOrUndefined(annotationSelector.resizerBorderColor) || annotationSelector.resizerBorderColor === 'black' ? 'black' : annotationSelector.resizerBorderColor;\n options.fill = isNullOrUndefined(annotationSelector.resizerFillColor) || annotationSelector.resizerFillColor === '#FF4081' ? '#FF4081' : annotationSelector.resizerFillColor;\n }\n else {\n // eslint-disable-next-line\n var annotationSelector = this.pdfViewer.annotationSelectorSettings;\n options.stroke = isNullOrUndefined(annotationSelector.resizerBorderColor) || annotationSelector.resizerBorderColor === 'black' ? 'black' : annotationSelector.resizerBorderColor;\n options.fill = isNullOrUndefined(annotationSelector.resizerFillColor) || annotationSelector.resizerFillColor === '#FF4081' ? '#FF4081' : annotationSelector.resizerFillColor;\n if (type === 'Line' && this.pdfViewer.lineSettings.annotationSelectorSettings) {\n options.stroke = isNullOrUndefined(this.pdfViewer.lineSettings.annotationSelectorSettings.resizerBorderColor) || this.pdfViewer.lineSettings.annotationSelectorSettings.resizerBorderColor === 'black' ? 'black' : this.pdfViewer.lineSettings.annotationSelectorSettings.resizerBorderColor;\n options.fill = isNullOrUndefined(this.pdfViewer.lineSettings.annotationSelectorSettings.resizerFillColor) || this.pdfViewer.lineSettings.annotationSelectorSettings.resizerFillColor === '#FF4081' ? '#FF4081' : this.pdfViewer.lineSettings.annotationSelectorSettings.resizerFillColor;\n }\n else if (type === 'LineWidthArrowHead' && this.pdfViewer.arrowSettings.annotationSelectorSettings) {\n options.stroke = isNullOrUndefined(this.pdfViewer.arrowSettings.annotationSelectorSettings.resizerBorderColor) || this.pdfViewer.arrowSettings.annotationSelectorSettings.resizerBorderColor === 'black' ? 'black' : this.pdfViewer.arrowSettings.annotationSelectorSettings.resizerBorderColor;\n options.fill = isNullOrUndefined(this.pdfViewer.arrowSettings.annotationSelectorSettings.resizerFillColor) || this.pdfViewer.arrowSettings.annotationSelectorSettings.resizerFillColor === '#FF4081' ? '#FF4081' : this.pdfViewer.arrowSettings.annotationSelectorSettings.resizerFillColor;\n }\n else if (type === 'Rectangle' && this.pdfViewer.rectangleSettings.annotationSelectorSettings) {\n options.stroke = isNullOrUndefined(this.pdfViewer.rectangleSettings.annotationSelectorSettings.resizerBorderColor) || this.pdfViewer.rectangleSettings.annotationSelectorSettings.resizerBorderColor === 'black' ? 'black' : this.pdfViewer.rectangleSettings.annotationSelectorSettings.resizerBorderColor;\n options.fill = isNullOrUndefined(this.pdfViewer.rectangleSettings.annotationSelectorSettings.resizerFillColor) || this.pdfViewer.rectangleSettings.annotationSelectorSettings.resizerFillColor === '#FF4081' ? '#FF4081' : this.pdfViewer.rectangleSettings.annotationSelectorSettings.resizerFillColor;\n }\n else if (type === 'Ellipse' && this.pdfViewer.circleSettings.annotationSelectorSettings) {\n options.stroke = isNullOrUndefined(this.pdfViewer.circleSettings.annotationSelectorSettings.resizerBorderColor) || this.pdfViewer.circleSettings.annotationSelectorSettings.resizerBorderColor === 'black' ? 'black' : this.pdfViewer.circleSettings.annotationSelectorSettings.resizerBorderColor;\n options.fill = isNullOrUndefined(this.pdfViewer.circleSettings.annotationSelectorSettings.resizerFillColor) || this.pdfViewer.circleSettings.annotationSelectorSettings.resizerFillColor === '#FF4081' ? '#FF4081' : this.pdfViewer.circleSettings.annotationSelectorSettings.resizerFillColor;\n }\n else if (type === 'Distance' && this.pdfViewer.distanceSettings.annotationSelectorSettings) {\n options.stroke = isNullOrUndefined(this.pdfViewer.distanceSettings.annotationSelectorSettings.resizerBorderColor) || this.pdfViewer.distanceSettings.annotationSelectorSettings.resizerBorderColor === 'black' ? 'black' : this.pdfViewer.distanceSettings.annotationSelectorSettings.resizerBorderColor;\n options.fill = isNullOrUndefined(this.pdfViewer.distanceSettings.annotationSelectorSettings.resizerFillColor) || this.pdfViewer.distanceSettings.annotationSelectorSettings.resizerFillColor === '#FF4081' ? '#FF4081' : this.pdfViewer.distanceSettings.annotationSelectorSettings.resizerFillColor;\n }\n else if (type === 'Polygon' && this.pdfViewer.polygonSettings.annotationSelectorSettings) {\n options.stroke = isNullOrUndefined(this.pdfViewer.polygonSettings.annotationSelectorSettings.resizerBorderColor) || this.pdfViewer.polygonSettings.annotationSelectorSettings.resizerBorderColor === 'black' ? 'black' : this.pdfViewer.polygonSettings.annotationSelectorSettings.resizerBorderColor;\n options.fill = isNullOrUndefined(this.pdfViewer.polygonSettings.annotationSelectorSettings.resizerFillColor) || this.pdfViewer.polygonSettings.annotationSelectorSettings.resizerFillColor === '#FF4081' ? '#FF4081' : this.pdfViewer.polygonSettings.annotationSelectorSettings.resizerFillColor;\n }\n else if (type === 'Radius' && this.pdfViewer.radiusSettings.annotationSelectorSettings) {\n options.stroke = isNullOrUndefined(this.pdfViewer.radiusSettings.annotationSelectorSettings.resizerBorderColor) || this.pdfViewer.radiusSettings.annotationSelectorSettings.resizerBorderColor === 'black' ? 'black' : this.pdfViewer.radiusSettings.annotationSelectorSettings.resizerBorderColor;\n options.fill = isNullOrUndefined(this.pdfViewer.radiusSettings.annotationSelectorSettings.resizerFillColor) || this.pdfViewer.radiusSettings.annotationSelectorSettings.resizerFillColor === '#FF4081' ? '#FF4081' : this.pdfViewer.radiusSettings.annotationSelectorSettings.resizerFillColor;\n }\n else if (type === 'Stamp' && this.pdfViewer.stampSettings.annotationSelectorSettings) {\n options.stroke = isNullOrUndefined(this.pdfViewer.stampSettings.annotationSelectorSettings.resizerBorderColor) || this.pdfViewer.stampSettings.annotationSelectorSettings.resizerBorderColor === 'black' ? 'black' : this.pdfViewer.stampSettings.annotationSelectorSettings.resizerBorderColor;\n options.fill = isNullOrUndefined(this.pdfViewer.stampSettings.annotationSelectorSettings.resizerFillColor) || this.pdfViewer.stampSettings.annotationSelectorSettings.resizerFillColor === '#FF4081' ? '#FF4081' : this.pdfViewer.stampSettings.annotationSelectorSettings.resizerFillColor;\n }\n else if (type === 'FreeText' && this.pdfViewer.freeTextSettings.annotationSelectorSettings) {\n options.stroke = isNullOrUndefined(this.pdfViewer.freeTextSettings.annotationSelectorSettings.resizerBorderColor) || this.pdfViewer.freeTextSettings.annotationSelectorSettings.resizerBorderColor === 'black' ? 'black' : this.pdfViewer.freeTextSettings.annotationSelectorSettings.resizerBorderColor;\n options.fill = isNullOrUndefined(this.pdfViewer.freeTextSettings.annotationSelectorSettings.resizerFillColor) || this.pdfViewer.freeTextSettings.annotationSelectorSettings.resizerFillColor === '#FF4081' ? '#FF4081' : this.pdfViewer.freeTextSettings.annotationSelectorSettings.resizerFillColor;\n }\n else if ((type === 'HandWrittenSignature' || type === 'SignatureText' || type === 'SignatureImage') && this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings) {\n options.stroke = isNullOrUndefined(this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.resizerBorderColor) || this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.resizerBorderColor === 'black' ? 'black' : this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.resizerBorderColor;\n options.fill = isNullOrUndefined(this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.resizerFillColor) || this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.resizerFillColor === '#FF4081' ? '#FF4081' : this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.resizerFillColor;\n }\n else if (type === 'Perimeter' && this.pdfViewer.perimeterSettings.annotationSelectorSettings) {\n options.stroke = isNullOrUndefined(this.pdfViewer.perimeterSettings.annotationSelectorSettings.resizerBorderColor) || this.pdfViewer.perimeterSettings.annotationSelectorSettings.resizerBorderColor === 'black' ? 'black' : this.pdfViewer.perimeterSettings.annotationSelectorSettings.resizerBorderColor;\n options.fill = isNullOrUndefined(this.pdfViewer.perimeterSettings.annotationSelectorSettings.resizerFillColor) || this.pdfViewer.perimeterSettings.annotationSelectorSettings.resizerFillColor === '#FF4081' ? '#FF4081' : this.pdfViewer.perimeterSettings.annotationSelectorSettings.resizerFillColor;\n }\n else if (type === 'Area' && this.pdfViewer.areaSettings.annotationSelectorSettings) {\n options.stroke = isNullOrUndefined(this.pdfViewer.areaSettings.annotationSelectorSettings.resizerBorderColor) || this.pdfViewer.areaSettings.annotationSelectorSettings.resizerBorderColor === 'black' ? 'black' : this.pdfViewer.areaSettings.annotationSelectorSettings.resizerBorderColor;\n options.fill = isNullOrUndefined(this.pdfViewer.areaSettings.annotationSelectorSettings.resizerFillColor) || this.pdfViewer.areaSettings.annotationSelectorSettings.resizerFillColor === '#FF4081' ? '#FF4081' : this.pdfViewer.areaSettings.annotationSelectorSettings.resizerFillColor;\n }\n else if (type === 'Volume' && this.pdfViewer.volumeSettings.annotationSelectorSettings) {\n options.stroke = isNullOrUndefined(this.pdfViewer.volumeSettings.annotationSelectorSettings.resizerBorderColor) || this.pdfViewer.volumeSettings.annotationSelectorSettings.resizerBorderColor === 'black' ? 'black' : this.pdfViewer.volumeSettings.annotationSelectorSettings.resizerBorderColor;\n options.fill = isNullOrUndefined(this.pdfViewer.volumeSettings.annotationSelectorSettings.resizerFillColor) || this.pdfViewer.volumeSettings.annotationSelectorSettings.resizerFillColor === '#FF4081' ? '#FF4081' : this.pdfViewer.volumeSettings.annotationSelectorSettings.resizerFillColor;\n }\n else if (type === 'Ink' && this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings) {\n options.stroke = isNullOrUndefined(this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.resizerBorderColor) || this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.resizerBorderColor === 'black' ? 'black' : this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.resizerBorderColor;\n options.fill = isNullOrUndefined(this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.resizerFillColor) || this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.resizerFillColor === '#FF4081' ? '#FF4081' : this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.resizerFillColor;\n }\n }\n };\n /**\n * @private\n * @param {DrawingElement} wrapper - Specified the drawing element.\n * @param {HTMLCanvasElement | SVGElement} canvas - Specified the canvas element.\n * @param {Transforms} transform - Specified the transform value.\n * @param {SelectorConstraints} selectorConstraints - Specified the selector constraints value.\n * @param {boolean} canMask - Specified the is mask or not.\n * @returns {void}\n */\n Drawing.prototype.renderRotateThumb = function (wrapper, canvas, transform, selectorConstraints, canMask) {\n var element = new PathElement();\n var newPoint;\n var top = wrapper.offsetY - wrapper.actualSize.height * wrapper.pivot.y;\n var left = wrapper.offsetX - wrapper.actualSize.width * wrapper.pivot.x;\n var pivotX = left + wrapper.pivot.x * wrapper.actualSize.width;\n var pivotY = top;\n pivotX = (pivotX + transform.tx) * transform.scale;\n pivotY = (pivotY + transform.ty) * transform.scale;\n newPoint = { x: pivotX, y: pivotY - 25 };\n if (wrapper.rotateAngle !== 0 || wrapper.parentTransform !== 0) {\n var matrix = identityMatrix();\n rotateMatrix(matrix, wrapper.rotateAngle + wrapper.parentTransform, (transform.tx + wrapper.offsetX) * transform.scale, (transform.ty + wrapper.offsetY) * transform.scale);\n newPoint = transformPointByMatrix(matrix, newPoint);\n }\n var options = getBaseShapeAttributes(wrapper);\n options.stroke = 'black';\n options.strokeWidth = 1;\n options.opacity = 1;\n options.fill = '#FF4081';\n options.centerX = newPoint.x;\n options.centerY = newPoint.y;\n options.radius = 4;\n options.angle = 0;\n options.visible = true;\n options.class = 'e-diagram-rotate-handle';\n options.id = 'rotateThumb';\n this.svgRenderer.drawCircle(canvas, options, ThumbsConstraints.Rotate, { 'aria-label': 'Thumb to rotate the selected object' });\n var circleHandle = canvas.querySelector('#' + options.id);\n if (circleHandle) {\n circleHandle.setAttribute('role', 'separator');\n }\n };\n /**\n * @private\n * @param {DrawingElement} element - Specified the drawing element.\n * @param {HTMLCanvasElement | SVGElement} canvas - Specified the canvas element.\n * @param {ThumbsConstraints} constraints - Specified the thumbs constraints element.\n * @param {number} currentZoom - Specified the current zoom value.\n * @param {boolean} canMask - Specified the is mask or not.\n * @param {number} enableNode - Specified the node number.\n * @param {boolean} nodeConstraints - Specified the node constraints or not.\n * @param {boolean} isStamp - Specified is stamp or not.\n * @param {boolean} isSticky - Specified is sticky or not.\n * @param {boolean} isPath - Specified is path or not.\n * @param {boolean} isFreeText - Specified is free text or not.\n * @param {AnnotationSelectorSettingsModel} currentSelector - Specified the current selector settings value.\n * @returns {void}\n */\n Drawing.prototype.renderResizeHandle = function (element, canvas, constraints, currentZoom, canMask, enableNode, nodeConstraints, isStamp, isSticky, isPath, isFreeText, currentSelector) {\n var left = element.offsetX - element.actualSize.width * element.pivot.x;\n var top = element.offsetY - element.actualSize.height * element.pivot.y;\n var height = element.actualSize.height;\n var width = element.actualSize.width;\n var transform = { scale: currentZoom, tx: 0, ty: 0 };\n if (isStamp) {\n this.renderPivotLine(element, canvas, transform);\n this.renderRotateThumb(element, canvas, transform);\n }\n if (isFreeText) {\n isStamp = true;\n }\n this.renderBorder(element, canvas, currentSelector, transform, enableNode, nodeConstraints, true, isSticky);\n var nodeWidth = element.actualSize.width * currentZoom;\n var nodeHeight = element.actualSize.height * currentZoom;\n // eslint-disable-next-line max-len\n var shapeType = this.pdfViewer.selectedItems.annotations.length > 0 ? this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType : this.pdfViewer.selectedItems.formFields[0].formFieldAnnotationType;\n var allowPermission = false;\n if (!this.pdfViewer.formDesignerModule) {\n // eslint-disable-next-line\n var annotation = this.pdfViewer.selectedItems.annotations[0];\n // eslint-disable-next-line\n var allowedInteraction = this.pdfViewer.annotationModule.updateAnnotationAllowedInteractions(annotation);\n var isLock = this.pdfViewer.annotationModule.checkIsLockSettings(annotation);\n if ((isLock || annotation.annotationSettings.isLock) && this.getAllowedInteractions(allowedInteraction)) {\n allowPermission = true;\n }\n }\n var resizerLocation = this.getResizerLocation(shapeType, currentSelector);\n if (resizerLocation < 1 || resizerLocation > 3) {\n resizerLocation = 3;\n }\n var isNodeShape = false;\n if (this.pdfViewer.selectedItems.annotations[0] && (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Ellipse' || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Radius' || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Rectangle' || this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Ink')) {\n isNodeShape = true;\n }\n if (!this.pdfViewer.viewerBase.checkSignatureFormField(element.id) && !nodeConstraints && !isSticky && !isPath && !allowPermission) {\n if (isStamp || (isNodeShape && (nodeWidth >= 40 && nodeHeight >= 40) && (resizerLocation === 1 || resizerLocation === 3))) {\n //Hide corners when the size is less than 40\n this.renderCircularHandle('resizeNorthWest', element, left, top, canvas, true, constraints & ThumbsConstraints.ResizeNorthWest, transform, undefined, canMask, { 'aria-label': 'Thumb to resize the selected object on top left side direction' }, undefined, 'e-pv-diagram-resize-handle e-northwest', currentSelector);\n this.renderCircularHandle('resizeNorthEast', element, left + width, top, canvas, true, constraints & ThumbsConstraints.ResizeNorthEast, transform, undefined, canMask, { 'aria-label': 'Thumb to resize the selected object on top right side direction' }, undefined, 'e-pv-diagram-resize-handle e-northeast', currentSelector);\n this.renderCircularHandle('resizeSouthWest', element, left, top + height, canvas, true, constraints & ThumbsConstraints.ResizeSouthWest, transform, undefined, canMask, { 'aria-label': 'Thumb to resize the selected object on bottom left side direction' }, undefined, 'e-pv-diagram-resize-handle e-southwest', currentSelector);\n this.renderCircularHandle('resizeSouthEast', element, left + width, top + height, canvas, true, constraints & ThumbsConstraints.ResizeSouthEast, transform, undefined, canMask, { 'aria-label': 'Thumb to resize the selected object on bottom right side direction' }, undefined, 'e-pv-diagram-resize-handle e-southeast', currentSelector);\n }\n // eslint-disable-next-line max-len\n if ((!isStamp && !isNodeShape) || (isNodeShape && (resizerLocation === 2 || resizerLocation === 3 || (!(nodeWidth >= 40 && nodeHeight >= 40) && resizerLocation === 1)))) {\n this.renderCircularHandle('resizeNorth', element, left + width / 2, top, canvas, true, constraints & ThumbsConstraints.ResizeNorth, transform, undefined, canMask, { 'aria-label': 'Thumb to resize the selected object on top side direction' }, undefined, 'e-pv-diagram-resize-handle e-north', currentSelector);\n this.renderCircularHandle('resizeSouth', element, left + width / 2, top + height, canvas, true, constraints & ThumbsConstraints.ResizeSouth, transform, undefined, canMask, { 'aria-label': 'Thumb to resize the selected object on bottom side direction' }, undefined, 'e-pv-diagram-resize-handle e-south', currentSelector);\n this.renderCircularHandle('resizeWest', element, left, top + height / 2, canvas, true, constraints & ThumbsConstraints.ResizeWest, transform, undefined, canMask, { 'aria-label': 'Thumb to resize the selected object on left side direction' }, undefined, 'e-pv-diagram-resize-handle e-west', currentSelector);\n this.renderCircularHandle('resizeEast', element, left + width, top + height / 2, canvas, true, constraints & ThumbsConstraints.ResizeEast, transform, undefined, canMask, { 'aria-label': 'Thumb to resize the selected object on right side direction' }, undefined, 'e-pv-diagram-resize-handle e-east', currentSelector);\n }\n }\n if ((shapeType === 'Textbox' || shapeType === 'Checkbox' || shapeType === 'RadioButton' || shapeType === 'SignatureField' || shapeType === 'InitialField' || shapeType === 'DropdownList' ||\n shapeType === 'ListBox' || shapeType === 'PasswordField')) {\n this.renderCircularHandle('resizeNorth', element, left + width / 2, top, canvas, true, constraints & ThumbsConstraints.ResizeNorth, transform, undefined, canMask, { 'aria-label': 'Thumb to resize the selected object on top side direction' }, undefined, 'e-pv-diagram-resize-handle e-north', currentSelector);\n this.renderCircularHandle('resizeSouth', element, left + width / 2, top + height, canvas, true, constraints & ThumbsConstraints.ResizeSouth, transform, undefined, canMask, { 'aria-label': 'Thumb to resize the selected object on bottom side direction' }, undefined, 'e-pv-diagram-resize-handle e-south', currentSelector);\n this.renderCircularHandle('resizeWest', element, left, top + height / 2, canvas, true, constraints & ThumbsConstraints.ResizeWest, transform, undefined, canMask, { 'aria-label': 'Thumb to resize the selected object on left side direction' }, undefined, 'e-pv-diagram-resize-handle e-west', currentSelector);\n this.renderCircularHandle('resizeEast', element, left + width, top + height / 2, canvas, true, constraints & ThumbsConstraints.ResizeEast, transform, undefined, canMask, { 'aria-label': 'Thumb to resize the selected object on right side direction' }, undefined, 'e-pv-diagram-resize-handle e-east', currentSelector);\n }\n };\n // eslint-disable-next-line\n Drawing.prototype.getAllowedInteractions = function (allowedInteraction) {\n if (allowedInteraction && allowedInteraction.length > 0) {\n for (var i = 0; i < allowedInteraction.length; i++) {\n if (allowedInteraction[0] !== 'None' && allowedInteraction[parseInt(i.toString(), 10)] === 'Resize') {\n return false;\n }\n }\n }\n return true;\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel} type - Specified the annotation base model.\n * @param {any} currentSelector - Specified the current selector value\n * @returns {AnnotationResizerLocation} - Returns the annotation resizer location value.\n */\n // eslint-disable-next-line\n Drawing.prototype.getResizerLocation = function (type, currentSelector) {\n // eslint-disable-next-line\n var resizerLocation;\n {\n if (currentSelector && typeof (currentSelector) !== 'object' && currentSelector !== '') {\n // eslint-disable-next-line\n var annotationSelector = JSON.parse(currentSelector);\n // eslint-disable-next-line max-len\n resizerLocation = isNullOrUndefined(annotationSelector.resizerLocation) || annotationSelector.resizerLocation === 3 ? 3 : annotationSelector.resizerLocation;\n }\n else {\n // eslint-disable-next-line\n var annotationSelector = this.pdfViewer.annotationSelectorSettings;\n // eslint-disable-next-line max-len\n resizerLocation = isNullOrUndefined(annotationSelector.resizerLocation) || annotationSelector.resizerLocation === 3 ? 3 : annotationSelector.resizerLocation;\n if (type === 'Line' && this.pdfViewer.lineSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n resizerLocation = isNullOrUndefined(this.pdfViewer.lineSettings.annotationSelectorSettings.resizerLocation) || this.pdfViewer.lineSettings.annotationSelectorSettings.resizerLocation === 3 ? 3 : this.pdfViewer.lineSettings.annotationSelectorSettings.resizerLocation;\n }\n else if (type === 'LineWidthArrowHead' && this.pdfViewer.arrowSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n resizerLocation = isNullOrUndefined(this.pdfViewer.arrowSettings.annotationSelectorSettings.resizerLocation) || this.pdfViewer.arrowSettings.annotationSelectorSettings.resizerLocation === 3 ? 3 : this.pdfViewer.arrowSettings.annotationSelectorSettings.resizerLocation;\n }\n else if (type === 'Rectangle' && this.pdfViewer.rectangleSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n resizerLocation = isNullOrUndefined(this.pdfViewer.rectangleSettings.annotationSelectorSettings.resizerLocation) || this.pdfViewer.rectangleSettings.annotationSelectorSettings.resizerLocation === 3 ? 3 : this.pdfViewer.rectangleSettings.annotationSelectorSettings.resizerLocation;\n }\n else if (type === 'Ellipse' && this.pdfViewer.circleSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n resizerLocation = isNullOrUndefined(this.pdfViewer.circleSettings.annotationSelectorSettings.resizerLocation) || this.pdfViewer.circleSettings.annotationSelectorSettings.resizerLocation === 3 ? 3 : this.pdfViewer.circleSettings.annotationSelectorSettings.resizerLocation;\n }\n else if (type === 'Polygon' && this.pdfViewer.polygonSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n resizerLocation = isNullOrUndefined(this.pdfViewer.polygonSettings.annotationSelectorSettings.resizerLocation) || this.pdfViewer.polygonSettings.annotationSelectorSettings.resizerLocation === 3 ? 3 : this.pdfViewer.polygonSettings.annotationSelectorSettings.resizerLocation;\n }\n else if (type === 'Distance') {\n // eslint-disable-next-line max-len\n resizerLocation = isNullOrUndefined(this.pdfViewer.distanceSettings.annotationSelectorSettings.resizerLocation) || this.pdfViewer.distanceSettings.annotationSelectorSettings.resizerLocation === 3 ? 3 : this.pdfViewer.distanceSettings.annotationSelectorSettings.resizerLocation;\n }\n else if (type === 'Radius' && this.pdfViewer.radiusSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n resizerLocation = isNullOrUndefined(this.pdfViewer.radiusSettings.annotationSelectorSettings.resizerLocation) || this.pdfViewer.radiusSettings.annotationSelectorSettings.resizerLocation === 3 ? 3 : this.pdfViewer.radiusSettings.annotationSelectorSettings.resizerLocation;\n }\n else if (type === 'Stamp' && this.pdfViewer.stampSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n resizerLocation = isNullOrUndefined(this.pdfViewer.stampSettings.annotationSelectorSettings.resizerLocation) || this.pdfViewer.stampSettings.annotationSelectorSettings.resizerLocation === 3 ? 3 : this.pdfViewer.stampSettings.annotationSelectorSettings.resizerLocation;\n }\n else if (type === 'FreeText' && this.pdfViewer.freeTextSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n resizerLocation = isNullOrUndefined(this.pdfViewer.freeTextSettings.annotationSelectorSettings.resizerLocation) || this.pdfViewer.freeTextSettings.annotationSelectorSettings.resizerLocation === 3 ? 3 : this.pdfViewer.freeTextSettings.annotationSelectorSettings.resizerLocation;\n }\n else if ((type === 'HandWrittenSignature' || type === 'SignatureText' || type === 'SignatureImage') && this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n resizerLocation = isNullOrUndefined(this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.resizerLocation) || this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.resizerLocation === 3 ? 3 : this.pdfViewer.handWrittenSignatureSettings.annotationSelectorSettings.resizerLocation;\n }\n else if (type === 'Ink' && this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings) {\n // eslint-disable-next-line max-len\n resizerLocation = isNullOrUndefined(this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.resizerLocation) || this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.resizerLocation === 3 ? 3 : this.pdfViewer.inkAnnotationSettings.annotationSelectorSettings.resizerLocation;\n }\n }\n return resizerLocation;\n }\n };\n /**\n * @private\n * @param {DrawingElement} element - Specified the drawing element.\n * @param {HTMLCanvasElement | SVGAElement} canvas - Specified the canvas element.\n * @param {Transforms} transform - Specified the transform values.\n * @param {SelectorConstraints} selectorConstraints - Specified the selector constraints value.\n * @param {boolean} canMask - Specified is mask value or not.\n * @returns {void}\n */\n Drawing.prototype.renderPivotLine = function (element, canvas, transform, selectorConstraints, canMask) {\n var wrapper = element;\n var dashArray = '2,3';\n var visible = true;\n if (canMask) {\n visible = false;\n }\n var options = getBaseShapeAttributes(wrapper, transform);\n options.fill = 'None';\n options.stroke = 'black';\n options.strokeWidth = 1;\n options.dashArray = dashArray;\n options.visible = visible;\n var scale = transform.scale;\n options.x *= scale;\n options.y *= scale;\n options.width *= scale;\n options.height *= scale;\n options.id = 'pivotLine';\n options.class = 'e-diagram-pivot-line';\n var startPoint = { x: wrapper.actualSize.width * wrapper.pivot.x * scale, y: -20 };\n var endPoint = { x: wrapper.actualSize.width * wrapper.pivot.x * scale, y: 0 };\n options.startPoint = startPoint;\n options.endPoint = endPoint;\n this.svgRenderer.drawLine(canvas, options);\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel} selector - Specified the annotation element.\n * @param {HTMLCanvasElement | SVGAElement} canvas - Specified the canvas element.\n * @param {SelectorConstraints} constraints - Specified the selector constraints value.\n * @param {Transforms} transform - Specified the transform values.\n * @param {boolean} connectedSource - Specified is connected source or not.\n * @param {boolean} connectedTarget - Specified is connected target or not.\n * @param {boolean} isSegmentEditing - Specified is segment editing or not.\n * @param {AnnotationSelectorSettingsModel} currentSelector - Specified the current selector value.\n * @returns {void}\n */\n Drawing.prototype.renderEndPointHandle = function (selector, canvas, constraints, transform, connectedSource, connectedTarget, isSegmentEditing, currentSelector) {\n transform = transform || { tx: 0, ty: 0, scale: 1 };\n var sourcePoint = selector.sourcePoint;\n var targetPoint = selector.targetPoint;\n var wrapper = selector.wrapper;\n var i;\n for (i = 0; i < selector.vertexPoints.length; i++) {\n var segment = selector.vertexPoints[parseInt(i.toString(), 10)];\n this.renderCircularHandle(('segementThumb_' + (i + 1)), wrapper, segment.x, segment.y, canvas, true, constraints & ThumbsConstraints.ConnectorSource, transform, connectedSource, null, null, i, null, currentSelector);\n }\n var leaderCount = 0;\n if (selector.shapeAnnotationType === 'Distance') {\n for (i = 0; i < selector.wrapper.children.length; i++) {\n var segment = selector.wrapper.children[parseInt(i.toString(), 10)];\n var newPoint1 = void 0;\n var angle = Point.findAngle(selector.sourcePoint, selector.targetPoint);\n if (segment.id.indexOf('leader') > -1) {\n var center = selector.wrapper.children[0].bounds.center;\n if (leaderCount === 0) {\n newPoint1 = { x: selector.sourcePoint.x, y: selector.sourcePoint.y - selector.leaderHeight };\n center = sourcePoint;\n }\n else {\n newPoint1 = { x: selector.targetPoint.x, y: selector.targetPoint.y - selector.leaderHeight };\n center = targetPoint;\n }\n var matrix = identityMatrix();\n rotateMatrix(matrix, angle, center.x, center.y);\n var rotatedPoint = transformPointByMatrix(matrix, { x: newPoint1.x, y: newPoint1.y });\n this.renderCircularHandle(('leaderThumb_' + (i + 1)), wrapper, rotatedPoint.x, rotatedPoint.y, canvas, true, constraints & ThumbsConstraints.ConnectorSource, transform, connectedSource, null, null, i, null, currentSelector);\n leaderCount++;\n }\n }\n }\n };\n /**\n * @private\n * @returns {void}\n */\n Drawing.prototype.initSelectorWrapper = function () {\n var selectorModel = this.pdfViewer.selectedItems;\n selectorModel.init(this);\n };\n /**\n * @private\n * @param {string[]} objArray - Specified the annotation object array.\n * @param {any} currentSelector - Specified the current selector value.\n * @param {boolean} multipleSelection - Specified the multiple selection or not.\n * @param {boolean} preventUpdate - Specified the prevent update or not.\n * @returns {void}\n */\n // eslint-disable-next-line\n Drawing.prototype.select = function (objArray, currentSelector, multipleSelection, preventUpdate) {\n var selectorModel = this.pdfViewer.selectedItems;\n for (var i = 0; i < objArray.length; i++) {\n // eslint-disable-next-line\n var obj = this.pdfViewer.nameTable[objArray[i]];\n if (obj.formFieldAnnotationType && this.pdfViewer.designerMode) {\n selectorModel.formFields.push(obj);\n this.initSelectorWrapper();\n selectorModel.wrapper.children.push(obj.wrapper);\n this.renderSelector(obj.pageIndex, currentSelector, obj, true);\n }\n else if (obj && !obj.formFieldAnnotationType) {\n if (!(obj instanceof Selector) && obj.wrapper.visible && this.pdfViewer.annotationModule) {\n // eslint-disable-next-line\n var annotationSettings = void 0;\n if (obj.annotationSettings) {\n annotationSettings = obj.annotationSettings;\n annotationSettings.isLock = JSON.parse(annotationSettings.isLock);\n }\n else if (!obj.formFieldAnnotationType) {\n annotationSettings = this.pdfViewer.annotationModule.findAnnotationSettings(obj, true);\n obj.annotationSettings = annotationSettings;\n }\n var isLock = !obj.formFieldAnnotationType ? annotationSettings.isLock : false;\n if (annotationSettings && annotationSettings.isLock && this.pdfViewer.annotationModule.checkAllowedInteractions('Select', obj)) {\n isLock = false;\n }\n if (!isLock) {\n selectorModel.annotations.push(obj);\n this.initSelectorWrapper();\n selectorModel.wrapper.rotateAngle = selectorModel.rotateAngle = 0;\n selectorModel.wrapper.children.push(obj.wrapper);\n if (!preventUpdate) {\n this.renderSelector(obj.pageIndex, currentSelector, obj, true);\n }\n }\n }\n }\n }\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel} obj - Specified the annotaion object.\n * @param {number} tx - Specified the tx value.\n * @param {number} ty - Specified the ty value.\n * @param {number} pageIndex - Specified the page index value.\n * @param {any} currentSelector - Specified the current selector value.\n * @param {PdfAnnotationBaseModel} helper - Specified the helper object.\n * @returns {void}\n */\n // eslint-disable-next-line\n Drawing.prototype.dragSelectedObjects = function (tx, ty, pageIndex, currentSelector, helper) {\n var obj = this.pdfViewer.selectedItems;\n this.drag(obj, tx, ty, currentSelector, helper);\n return true;\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel} obj - Specified the annotaion object.\n * @param {number} tx - Specified the tx value.\n * @param {number} ty - Specified the ty value.\n * @param {any} currentSelector - Specified the current selector value.\n * @param {PdfAnnotationBaseModel} helper - Specified the helper object.\n * @returns {void}\n */\n // eslint-disable-next-line\n Drawing.prototype.drag = function (obj, tx, ty, currentSelector, helper) {\n if (obj instanceof Selector) {\n if (obj.annotations.length) {\n for (var _i = 0, _a = obj.annotations; _i < _a.length; _i++) {\n var node = _a[_i];\n this.drag(node, tx, ty, currentSelector, helper);\n this.renderSelector(node.pageIndex, currentSelector, helper);\n }\n }\n else if (obj.formFields.length) {\n for (var _b = 0, _c = obj.formFields; _b < _c.length; _b++) {\n var node = _c[_b];\n this.drag(node, tx, ty, currentSelector, helper);\n this.renderSelector(node.pageIndex, currentSelector, helper);\n }\n }\n }\n else {\n this.dragAnnotation(obj, tx, ty);\n }\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel} obj - Specified the annotaion object.\n * @param {number} tx - Specified the tx value.\n * @param {number} ty - Specified the ty value.\n * @returns {void}\n */\n Drawing.prototype.dragAnnotation = function (obj, tx, ty) {\n var tempNode;\n var elements = [];\n // eslint-disable-next-line\n var oldValues = { x: obj.wrapper.offsetX, y: obj.wrapper.offsetY };\n //bug (EJ2-62649) : fixed an issue with difficulty on moving/ resizing free text annotation that added in edge of viewer\n var newDiff = this.moveInsideViewer(obj, tx, ty);\n obj.wrapper.offsetX += newDiff.tx;\n obj.wrapper.offsetY += newDiff.ty;\n if (isLineShapes(obj) || obj.shapeAnnotationType === 'Polygon') {\n if (obj.wrapper.children.length) {\n var nodes = obj.wrapper.children;\n for (var i = 0; i < nodes.length; i++) {\n nodes[parseInt(i.toString(), 10)].offsetX += tx;\n nodes[parseInt(i.toString(), 10)].offsetY += ty;\n }\n }\n this.dragControlPoint(obj, tx, ty, true);\n }\n this.nodePropertyChange(obj, { bounds: { x: obj.wrapper.offsetX, y: obj.wrapper.offsetY } });\n obj.wrapper.measureChildren = false;\n // eslint-disable-next-line\n var canvas = document.getElementById(this.pdfViewer.element.id + '_annotationCanvas_' + obj.pageIndex);\n // eslint-disable-next-line\n this.pdfViewer.renderDrawing(canvas, obj.pageIndex);\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel} obj - Specified the annotaion object.\n * @param {number} tx - Specified the tx value.\n * @param {number} ty - Specified the ty value.\n * @param {boolean} preventUpdate - Specified the prevent update or not.\n * @param {number} segmentNumber - Specified the segment value.\n * @returns {boolean} - Returns true or false.\n */\n Drawing.prototype.dragControlPoint = function (obj, tx, ty, preventUpdate, segmentNumber) {\n // eslint-disable-next-line\n var connector = this.pdfViewer.nameTable[obj.id];\n for (var i = 0; i < connector.vertexPoints.length; i++) {\n (connector.vertexPoints[parseInt(i.toString(), 10)]).x += tx;\n (connector.vertexPoints[parseInt(i.toString(), 10)]).y += ty;\n }\n if (!preventUpdate) {\n this.updateEndPoint(connector);\n }\n return true;\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel} connector - Specified the connector object.\n * @returns {void}\n */\n Drawing.prototype.updateEndPoint = function (connector) {\n this.nodePropertyChange(connector, { vertexPoints: connector.vertexPoints });\n this.renderSelector(connector.pageIndex);\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel} actualObject - Specified the actual annotaion object.\n * @param {PdfAnnotationBaseModel} node - Specified the node annotation object.\n * @returns {void}\n */\n Drawing.prototype.nodePropertyChange = function (actualObject, node) {\n var existingBounds = actualObject.wrapper.outerBounds;\n var existingInnerBounds = actualObject.wrapper.bounds;\n var updateConnector = false;\n var i;\n var j;\n var offsetX;\n var offsetY;\n var update;\n var tx;\n var ty;\n if (node.bounds) {\n if (node.bounds.width !== undefined) {\n actualObject.bounds.width = actualObject.wrapper.width = node.bounds.width;\n }\n if (node.bounds.height !== undefined) {\n actualObject.bounds.height = actualObject.wrapper.height = node.bounds.height;\n }\n if (node.bounds.x !== undefined) {\n actualObject.bounds.x = node.bounds.x - (actualObject.bounds.width * 0.5);\n actualObject.wrapper.offsetX = node.bounds.x;\n update = true;\n updateConnector = true;\n }\n if (node.bounds.y !== undefined) {\n actualObject.bounds.y = node.bounds.y - (actualObject.bounds.height * 0.5);\n actualObject.wrapper.offsetY = node.bounds.y;\n update = true;\n updateConnector = true;\n }\n if (node.leaderHeight !== undefined) {\n actualObject.leaderHeight = node.leaderHeight;\n this.updateConnector(actualObject, actualObject.vertexPoints);\n }\n if (actualObject.wrapper.children.length) {\n var children = actualObject.wrapper.children;\n for (var i_1 = 0; i_1 < children.length; i_1++) {\n if (children[parseInt(i_1.toString(), 10)].id) {\n var names = children[parseInt(i_1.toString(), 10)].id.split('_');\n if (names.length && (names.indexOf('perimeter') > -1 || names.indexOf('radius') > -1)) {\n this.setNodePosition(children[parseInt(i_1.toString(), 10)], actualObject);\n }\n else if (names.length && (names.indexOf('srcDec') > -1)) {\n children[parseInt(i_1.toString(), 10)].offsetX = actualObject.vertexPoints[0].x;\n children[parseInt(i_1.toString(), 10)].offsetY = actualObject.vertexPoints[0].y;\n }\n else if (names.length && names.indexOf('tarDec') > -1) {\n children[parseInt(i_1.toString(), 10)].offsetX = actualObject.vertexPoints[actualObject.vertexPoints.length - 1].x;\n children[parseInt(i_1.toString(), 10)].offsetY = actualObject.vertexPoints[actualObject.vertexPoints.length - 1].y;\n }\n else if (names.length && (names.indexOf('stamp') > -1)) {\n // eslint-disable-next-line\n var ratio = 0;\n var heightRatio = 2;\n if (actualObject.wrapper.width !== undefined && actualObject.wrapper.height !== undefined) {\n ratio = 20;\n heightRatio = 2.9;\n }\n if (actualObject.isDynamicStamp) {\n children[parseInt(i_1.toString(), 10)].width = actualObject.bounds.width - ratio;\n children[parseInt(i_1.toString(), 10)].height = (actualObject.bounds.height / 2) - ratio;\n // eslint-disable-next-line\n var element = children[1];\n // eslint-disable-next-line\n var annotationSettings = this.pdfViewer.stampSettings ? this.pdfViewer.stampSettings : this.pdfViewer.annotationSettings;\n // eslint-disable-next-line max-len\n if (annotationSettings && (annotationSettings.maxHeight || annotationSettings.maxWidth) && (actualObject.bounds.height > 60)) {\n if (ratio != 0) {\n element.style.fontSize = (actualObject.bounds.width / ratio);\n }\n else {\n element.style.fontSize = (actualObject.wrapper.bounds.width / 20);\n }\n }\n else {\n if (ratio != 0) {\n element.style.fontSize = this.fontSizeCalculation(actualObject, element, (actualObject.bounds.width - 20));\n }\n else {\n element.style.fontSize = this.fontSizeCalculation(actualObject, element, (actualObject.wrapper.bounds.width - 20));\n }\n }\n if (ratio !== 0) {\n element.margin.bottom = -(children[parseInt(i_1.toString(), 10)].height / 2);\n }\n }\n else {\n children[parseInt(i_1.toString(), 10)].width = actualObject.bounds.width - ratio;\n children[parseInt(i_1.toString(), 10)].height = actualObject.bounds.height - ratio;\n }\n children[parseInt(i_1.toString(), 10)].offsetX = actualObject.wrapper.offsetX;\n children[parseInt(i_1.toString(), 10)].offsetY = actualObject.wrapper.offsetX;\n children[parseInt(i_1.toString(), 10)].isDirt = true;\n }\n }\n }\n }\n }\n if (node.sourceDecoraterShapes !== undefined) {\n actualObject.sourceDecoraterShapes = node.sourceDecoraterShapes;\n this.updateConnector(actualObject, actualObject.vertexPoints);\n }\n if (node.isReadonly !== undefined && actualObject.shapeAnnotationType === 'FreeText') {\n actualObject.isReadonly = node.isReadonly;\n }\n if (node.taregetDecoraterShapes !== undefined) {\n actualObject.taregetDecoraterShapes = node.taregetDecoraterShapes;\n update = true;\n this.updateConnector(actualObject, actualObject.vertexPoints);\n }\n if (node.fillColor !== undefined) {\n actualObject.fillColor = node.fillColor;\n actualObject.wrapper.children[0].style.fill = node.fillColor;\n if ((actualObject.enableShapeLabel || actualObject.measureType) && actualObject.wrapper && actualObject.wrapper.children) {\n // eslint-disable-next-line\n var children = actualObject.wrapper.children;\n for (var i_2 = 0; i_2 < children.length; i_2++) {\n if (children[parseInt(i_2.toString(), 10)].textNodes) {\n if (actualObject.enableShapeLabel) {\n actualObject.labelFillColor = node.fillColor;\n children[parseInt(i_2.toString(), 10)].style.fill = node.fillColor;\n }\n if (actualObject.measureType) {\n children[parseInt(i_2.toString(), 10)].style.fill = node.fillColor;\n }\n }\n }\n }\n update = true;\n }\n if (actualObject.enableShapeLabel && node.labelFillColor !== undefined) {\n if (actualObject.enableShapeLabel && actualObject.wrapper && actualObject.wrapper.children) {\n // eslint-disable-next-line\n var children = actualObject.wrapper.children;\n for (var i_3 = 0; i_3 < children.length; i_3++) {\n if (children[parseInt(i_3.toString(), 10)].textNodes) {\n actualObject.labelFillColor = node.labelFillColor;\n children[parseInt(i_3.toString(), 10)].style.fill = node.labelFillColor;\n }\n }\n }\n }\n if (node.opacity !== undefined) {\n if (actualObject.shapeAnnotationType === 'Stamp' || actualObject.shapeAnnotationType === 'FreeText') {\n actualObject.wrapper.children[1].style.opacity = node.opacity;\n if (actualObject.wrapper.children[2]) {\n actualObject.wrapper.children[2].style.opacity = node.opacity;\n }\n }\n else {\n if (actualObject.shapeAnnotationType === 'StickyNotes') {\n // eslint-disable-next-line\n this.pdfViewer.nameTable[actualObject.annotName].wrapper.children[0].style.opacity = node.opacity;\n }\n actualObject.opacity = node.opacity;\n }\n actualObject.wrapper.children[0].style.opacity = node.opacity;\n if (actualObject.enableShapeLabel && actualObject.wrapper && actualObject.wrapper.children) {\n // eslint-disable-next-line\n var children = actualObject.wrapper.children;\n for (var i_4 = 0; i_4 < children.length; i_4++) {\n if (children[parseInt(i_4.toString(), 10)].textNodes) {\n children[parseInt(i_4.toString(), 10)].style.opacity = node.labelOpacity;\n }\n }\n }\n update = true;\n updateConnector = true;\n }\n if (actualObject.enableShapeLabel && node.labelOpacity !== undefined) {\n if (actualObject.enableShapeLabel && actualObject.wrapper && actualObject.wrapper.children) {\n // eslint-disable-next-line\n var children = actualObject.wrapper.children;\n for (var i_5 = 0; i_5 < children.length; i_5++) {\n if (children[parseInt(i_5.toString(), 10)].textNodes) {\n children[parseInt(i_5.toString(), 10)].style.opacity = node.labelOpacity;\n }\n }\n }\n }\n if (node.rotateAngle !== undefined) {\n actualObject.rotateAngle = node.rotateAngle;\n actualObject.wrapper.rotateAngle = node.rotateAngle;\n update = true;\n updateConnector = true;\n }\n if (node.strokeColor !== undefined) {\n actualObject.strokeColor = node.strokeColor;\n actualObject.wrapper.children[0].style.strokeColor = node.strokeColor;\n update = true;\n updateConnector = true;\n }\n if (node.fontColor !== undefined) {\n actualObject.fontColor = node.fontColor;\n if (actualObject.shapeAnnotationType === 'FreeText' && actualObject.wrapper && actualObject.wrapper.children && actualObject.wrapper.children.length) {\n // eslint-disable-next-line\n var children = actualObject.wrapper.children;\n children[1].style.color = node.fontColor;\n if (actualObject.textAlign === 'Justify') {\n children[1].horizontalAlignment = 'Center';\n }\n else {\n children[1].horizontalAlignment = 'Auto';\n }\n }\n if (actualObject.enableShapeLabel && actualObject.wrapper && actualObject.wrapper.children) {\n // eslint-disable-next-line\n var children = actualObject.wrapper.children;\n for (var i_6 = 0; i_6 < children.length; i_6++) {\n if (children[parseInt(i_6.toString(), 10)].textNodes) {\n children[parseInt(i_6.toString(), 10)].style.color = node.fontColor;\n }\n }\n }\n update = true;\n updateConnector = true;\n }\n if (node.fontFamily !== undefined) {\n actualObject.fontFamily = node.fontFamily;\n if (actualObject.shapeAnnotationType === 'FreeText' && actualObject.wrapper && actualObject.wrapper.children && actualObject.wrapper.children.length) {\n // eslint-disable-next-line\n var children = actualObject.wrapper.children;\n children[1].style.fontFamily = node.fontFamily;\n }\n if (actualObject.enableShapeLabel && actualObject.wrapper && actualObject.wrapper.children) {\n // eslint-disable-next-line\n var children = actualObject.wrapper.children;\n for (var i_7 = 0; i_7 < children.length; i_7++) {\n if (children[parseInt(i_7.toString(), 10)].textNodes) {\n children[parseInt(i_7.toString(), 10)].style.fontFamily = node.fontFamily;\n }\n }\n }\n update = true;\n updateConnector = true;\n }\n if (node.fontSize !== undefined) {\n actualObject.fontSize = node.fontSize;\n if ((actualObject.shapeAnnotationType === 'FreeText' || actualObject.shapeAnnotationType === 'SignatureText') && actualObject.wrapper && actualObject.wrapper.children && actualObject.wrapper.children.length) {\n // eslint-disable-next-line\n var children = actualObject.wrapper.children;\n children[1].style.fontSize = node.fontSize;\n if (actualObject.shapeAnnotationType === 'SignatureText') {\n actualObject.wrapper.children[1].bounds.width = actualObject.bounds.width;\n actualObject.wrapper.children[1].desiredSize.width = actualObject.bounds.width;\n actualObject.wrapper.children[1].actualSize.width = actualObject.bounds.width;\n children[1].horizontalAlignment = 'Center';\n children[1].verticalAlignment = 'Center';\n children[1].setOffsetWithRespectToBounds(0, 0, 'Absolute');\n }\n }\n if (actualObject.enableShapeLabel && actualObject.wrapper && actualObject.wrapper.children) {\n // eslint-disable-next-line\n var children = actualObject.wrapper.children;\n for (var i_8 = 0; i_8 < children.length; i_8++) {\n if (children[parseInt(i_8.toString(), 10)].textNodes) {\n children[parseInt(i_8.toString(), 10)].style.fontSize = node.fontSize;\n }\n }\n }\n update = true;\n updateConnector = true;\n }\n if (node.font !== undefined) {\n if (actualObject.shapeAnnotationType === 'FreeText' && actualObject.wrapper && actualObject.wrapper.children && actualObject.wrapper.children.length) {\n // eslint-disable-next-line\n var children = actualObject.wrapper.children;\n if (node.font.isBold !== undefined) {\n children[1].style.bold = node.font.isBold;\n actualObject.font.isBold = node.font.isBold;\n }\n if (node.font.isItalic !== undefined) {\n children[1].style.italic = node.font.isItalic;\n actualObject.font.isItalic = node.font.isItalic;\n }\n if (node.font.isUnderline !== undefined) {\n if (node.font.isUnderline) {\n actualObject.font.isStrikeout = false;\n }\n if (node.font.isUnderline === true) {\n children[1].style.textDecoration = 'Underline';\n }\n else {\n if (!node.font.isStrikeout) {\n children[1].style.textDecoration = 'None';\n }\n }\n actualObject.font.isUnderline = node.font.isUnderline;\n }\n if (node.font.isStrikeout !== undefined) {\n if (node.font.isStrikeout) {\n actualObject.font.isUnderline = false;\n }\n if (node.font.isStrikeout === true) {\n children[1].style.textDecoration = 'LineThrough';\n }\n else {\n if (!node.font.isUnderline) {\n children[1].style.textDecoration = 'None';\n }\n }\n actualObject.font.isStrikeout = node.font.isStrikeout;\n }\n }\n update = true;\n updateConnector = true;\n }\n if (node.textAlign !== undefined) {\n actualObject.textAlign = node.textAlign;\n if (actualObject.shapeAnnotationType === 'FreeText' && actualObject.wrapper && actualObject.wrapper.children && actualObject.wrapper.children.length) {\n // eslint-disable-next-line\n var children = actualObject.wrapper.children;\n children[1].style.textAlign = node.textAlign;\n if (children[1].childNodes.length === 1) {\n if (actualObject.textAlign === 'Justify') {\n children[1].horizontalAlignment = 'Left';\n children[1].setOffsetWithRespectToBounds(0, 0, null);\n }\n else if (actualObject.textAlign === 'Right') {\n children[1].horizontalAlignment = 'Right';\n children[1].setOffsetWithRespectToBounds(0.97, 0, null);\n }\n else if (actualObject.textAlign === 'Left') {\n children[1].horizontalAlignment = 'Left';\n children[1].setOffsetWithRespectToBounds(0, 0, null);\n }\n else if (actualObject.textAlign === 'Center') {\n children[1].horizontalAlignment = 'Center';\n children[1].setOffsetWithRespectToBounds(0.46, 0, null);\n }\n }\n else if (children[1].childNodes.length > 1 && actualObject.textAlign === 'Justify') {\n children[1].horizontalAlignment = 'Center';\n }\n else {\n children[1].horizontalAlignment = 'Auto';\n }\n }\n update = true;\n updateConnector = true;\n }\n if (node.thickness !== undefined) {\n actualObject.thickness = node.thickness;\n actualObject.wrapper.children[0].style.strokeWidth = node.thickness;\n if (actualObject.shapeAnnotationType === 'LineWidthArrowHead') {\n actualObject.wrapper.children[1].width = 12 * node.thickness;\n actualObject.wrapper.children[1].height = 12 * node.thickness;\n actualObject.wrapper.children[2].width = 12 * node.thickness;\n actualObject.wrapper.children[2].height = 12 * node.thickness;\n }\n update = true;\n updateConnector = true;\n }\n if (node.borderDashArray !== undefined) {\n actualObject.borderDashArray = node.borderDashArray;\n actualObject.wrapper.children[0].style.strokeDashArray = node.borderDashArray;\n }\n if (node.borderStyle !== undefined) {\n actualObject.borderStyle = node.borderStyle;\n }\n if (node.author !== undefined) {\n actualObject.author = node.author;\n }\n if (node.modifiedDate !== undefined) {\n actualObject.modifiedDate = node.modifiedDate;\n }\n if (node.subject !== undefined) {\n actualObject.subject = node.subject;\n }\n if (node.vertexPoints !== undefined) {\n actualObject.vertexPoints = node.vertexPoints;\n // eslint-disable-next-line\n this.pdfViewer.nameTable[actualObject.id].vertexPoints = node.vertexPoints;\n this.updateConnector(actualObject, node.vertexPoints);\n }\n if (node.leaderHeight !== undefined && actualObject.shapeAnnotationType !== 'Polygon') {\n actualObject.leaderHeight = node.leaderHeight;\n this.updateConnector(actualObject, actualObject.vertexPoints);\n }\n if (node.notes !== undefined) {\n actualObject.notes = node.notes;\n }\n if (node.annotName !== undefined) {\n actualObject.annotName = node.annotName;\n }\n if (actualObject.shapeAnnotationType === 'Distance') {\n for (i = 0; i < actualObject.wrapper.children.length; i++) {\n // eslint-disable-next-line\n var segment = actualObject.wrapper.children[i];\n // eslint-disable-next-line\n var points = getConnectorPoints(actualObject);\n if (segment.id.indexOf('leader1') > -1) {\n this.setLineDistance(actualObject, points, segment, false);\n }\n if (segment.id.indexOf('leader2') > -1) {\n this.setLineDistance(actualObject, points, segment, true);\n }\n }\n this.updateConnector(actualObject, actualObject.vertexPoints);\n }\n if (actualObject.shapeAnnotationType === 'Polygon' && node.vertexPoints) {\n actualObject.data = getPolygonPath(actualObject.vertexPoints);\n // eslint-disable-next-line\n var path = actualObject.wrapper.children[0];\n path.data = actualObject.data;\n path.canMeasurePath = true;\n }\n if (isLineShapes(actualObject)) {\n for (var i_9 = 0; i_9 < actualObject.wrapper.children.length; i_9++) {\n // eslint-disable-next-line\n var childElement = actualObject.wrapper.children[i_9];\n if (!childElement.textNodes) {\n setElementStype(actualObject, actualObject.wrapper.children[parseInt(i_9.toString(), 10)]);\n }\n if (actualObject.enableShapeLabel === true) {\n if (actualObject.wrapper.children[parseInt(i_9.toString(), 10)] instanceof TextElement) {\n actualObject.wrapper.children[parseInt(i_9.toString(), 10)].style.fill = actualObject.labelFillColor;\n }\n if ((actualObject.wrapper.children[parseInt(i_9.toString(), 10)] instanceof PathElement && actualObject.measureType === 'Perimeter')) {\n actualObject.wrapper.children[parseInt(i_9.toString(), 10)].style.fill = 'transparent';\n }\n }\n else {\n if ((actualObject.wrapper.children[parseInt(i_9.toString(), 10)] instanceof PathElement && actualObject.measureType === 'Perimeter') || actualObject.wrapper.children[parseInt(i_9.toString(), 10)] instanceof TextElement) {\n actualObject.wrapper.children[parseInt(i_9.toString(), 10)].style.fill = 'transparent';\n }\n }\n }\n }\n if (actualObject && (actualObject.shapeAnnotationType === 'FreeText' || actualObject.enableShapeLabel === true)) {\n if (actualObject.wrapper && actualObject.wrapper.children && actualObject.wrapper.children.length) {\n // eslint-disable-next-line\n var children = actualObject.wrapper.children;\n for (var i_10 = 0; i_10 < children.length; i_10++) {\n if (children[parseInt(i_10.toString(), 10)].textNodes) {\n if (actualObject.shapeAnnotationType === 'FreeText') {\n if (node.dynamicText) {\n children[parseInt(i_10.toString(), 10)].content = node.dynamicText;\n actualObject.dynamicText = node.dynamicText;\n }\n else {\n children[parseInt(i_10.toString(), 10)].content = actualObject.dynamicText;\n }\n children[parseInt(i_10.toString(), 10)].width = actualObject.bounds.width;\n }\n else if (actualObject.enableShapeLabel === true && actualObject.measureType) {\n if (node.labelContent) {\n children[parseInt(i_10.toString(), 10)].content = node.labelContent;\n actualObject.labelContent = node.labelContent;\n }\n else {\n children[parseInt(i_10.toString(), 10)].content = actualObject.labelContent;\n }\n actualObject.notes = children[parseInt(i_10.toString(), 10)].content;\n }\n else if (actualObject.enableShapeLabel === true) {\n if (node.labelContent) {\n children[parseInt(i_10.toString(), 10)].content = node.labelContent;\n actualObject.labelContent = node.labelContent;\n }\n else {\n children[parseInt(i_10.toString(), 10)].content = actualObject.labelContent;\n }\n actualObject.notes = children[parseInt(i_10.toString(), 10)].content;\n }\n children[parseInt(i_10.toString(), 10)].isDirt = true;\n }\n /** set text node width less than the parent */\n }\n }\n }\n if (actualObject && actualObject.shapeAnnotationType === \"SignatureText\" && actualObject.wrapper) {\n if (actualObject.wrapper.children && actualObject.wrapper.children.length > 1) {\n actualObject.wrapper.children[1].isDirt = true;\n }\n }\n actualObject.wrapper.measure(new Size(actualObject.wrapper.bounds.width, actualObject.wrapper.bounds.height));\n actualObject.wrapper.arrange(actualObject.wrapper.desiredSize);\n if (actualObject && actualObject.formFieldAnnotationType) {\n if (actualObject.wrapper && actualObject.wrapper.children && actualObject.wrapper.children.length) {\n // eslint-disable-next-line\n var children = actualObject.wrapper.children[0];\n children.actualSize.width = actualObject.wrapper.desiredSize.width;\n children.actualSize.height = actualObject.wrapper.desiredSize.height;\n }\n }\n if (actualObject && actualObject.shapeAnnotationType === 'FreeText' && actualObject.subject === 'Text Box') {\n if (actualObject.wrapper && actualObject.wrapper.children && actualObject.wrapper.children.length) {\n // eslint-disable-next-line\n var children = actualObject.wrapper.children;\n if (children[1].childNodes.length > 1 && actualObject.textAlign === 'Justify') {\n children[1].horizontalAlignment = 'Center';\n }\n else if (children[1].childNodes.length === 1) {\n if (actualObject.textAlign === 'Justify') {\n children[1].horizontalAlignment = 'Left';\n children[1].setOffsetWithRespectToBounds(0, 0, null);\n }\n else if (actualObject.textAlign === 'Right') {\n children[1].horizontalAlignment = 'Right';\n children[1].setOffsetWithRespectToBounds(0.97, 0, null);\n }\n else if (actualObject.textAlign === 'Left') {\n children[1].horizontalAlignment = 'Left';\n children[1].setOffsetWithRespectToBounds(0, 0, null);\n }\n else if (actualObject.textAlign === 'Center') {\n children[1].horizontalAlignment = 'Center';\n children[1].setOffsetWithRespectToBounds(0.46, 0, null);\n }\n }\n for (var i_11 = 0; i_11 < children.length; i_11++) {\n if (children[parseInt(i_11.toString(), 10)].textNodes && children[parseInt(i_11.toString(), 10)].textNodes.length > 0) {\n children[parseInt(i_11.toString(), 10)].isDirt = true;\n var childNodeHeight = children[parseInt(i_11.toString(), 10)].textNodes.length * children[parseInt(i_11.toString(), 10)].textNodes[0].dy;\n var heightDiff = actualObject.bounds.height - childNodeHeight;\n if (heightDiff > 0 && heightDiff < children[parseInt(i_11.toString(), 10)].textNodes[0].dy) {\n childNodeHeight = childNodeHeight + children[parseInt(i_11.toString(), 10)].textNodes[0].dy;\n }\n if (childNodeHeight > actualObject.bounds.height) {\n var contString = '';\n for (var index = 0; index < children[parseInt(i_11.toString(), 10)].textNodes.length; index++) {\n // eslint-disable-next-line\n var childHeight = children[i_11].textNodes[0].dy * (index + 1);\n // eslint-disable-next-line\n childHeight = childHeight;\n contString = contString + children[parseInt(i_11.toString(), 10)].textNodes[parseInt(index.toString(), 10)].text;\n }\n children[parseInt(i_11.toString(), 10)].content = contString;\n }\n }\n /** set text node width less than the parent */\n children[parseInt(i_11.toString(), 10)].width = actualObject.bounds.width;\n }\n }\n actualObject.wrapper.measure(new Size(actualObject.wrapper.bounds.width, actualObject.wrapper.bounds.height));\n actualObject.wrapper.arrange(actualObject.wrapper.desiredSize);\n }\n this.pdfViewer.renderDrawing(undefined, actualObject.pageIndex);\n if (actualObject && actualObject.shapeAnnotationType === 'FreeText') {\n if (actualObject.wrapper && actualObject.wrapper.children && actualObject.wrapper.children.length) {\n // eslint-disable-next-line\n var children = actualObject.wrapper.children;\n if (children[1].childNodes.length === 1 && actualObject.textAlign === 'Justify') {\n children[1].horizontalAlignment = 'Left';\n children[1].setOffsetWithRespectToBounds(0.5, 0, null);\n }\n else if (children[1].childNodes.length > 1 && actualObject.textAlign === 'Justify') {\n children[1].horizontalAlignment = 'Center';\n children[1].setOffsetWithRespectToBounds(0, 0, null);\n }\n }\n }\n };\n Drawing.prototype.fontSizeCalculation = function (actualObject, element, boundsWidth) {\n var canvas = document.getElementById(this.pdfViewer.element.id + '_annotationCanvas_' + actualObject.pageIndex);\n var context = canvas.getContext(\"2d\");\n var textwidth = 0;\n var newsize = 0;\n var fontStyle = '';\n if (element.style.italic && element.style.bold) {\n fontStyle = 'bold italic ';\n }\n else if (element.style.bold) {\n fontStyle = 'bold ';\n }\n else if (element.style.italic) {\n fontStyle = 'italic ';\n }\n while (boundsWidth > textwidth) {\n context.font = fontStyle + newsize + 'px ' + element.style.fontFamily;\n textwidth = context.measureText(actualObject.dynamicText).width;\n newsize += 0.1;\n }\n newsize -= 0.1;\n return newsize;\n };\n // eslint-disable-next-line\n Drawing.prototype.setLineDistance = function (actualObject, points, segment, leader) {\n var node1;\n if (leader) {\n node1 = initLeader(actualObject, points[1], points[0], leader);\n }\n else {\n node1 = initLeader(actualObject, points[0], points[1], leader);\n }\n segment.data = node1.data;\n segment.offsetX = node1.offsetX;\n segment.offsetY = node1.offsetY;\n segment.rotateAngle = node1.rotateAngle;\n segment.width = node1.width;\n segment.height = node1.height;\n segment.pivot = node1.pivot;\n segment.canMeasurePath = true;\n segment.isDirt = true;\n };\n /**\n * @private\n * @param {number} sx - Specified the sx value.\n * @param {number} sy - Specified the sy value.\n * @param {PointModel} pivot - Specified the pivot value.\n * @returns {boolean} - Returns true or false.\n */\n Drawing.prototype.scaleSelectedItems = function (sx, sy, pivot) {\n var obj = this.pdfViewer.selectedItems;\n return this.scale(obj, sx, sy, pivot);\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel | SelectorModel} obj - Specified the annotaion object.\n * @param {number} sx - Specified the sx value.\n * @param {number} sy - Specified the sy value.\n * @param {PointModel} pivot - Specified the pivot value.\n * @returns {boolean} - Returns true or false.\n */\n Drawing.prototype.scale = function (obj, sx, sy, pivot) {\n var checkBoundaryConstraints = true;\n if (obj instanceof Selector) {\n if (obj.annotations && obj.annotations.length) {\n for (var _i = 0, _a = obj.annotations; _i < _a.length; _i++) {\n var node = _a[_i];\n checkBoundaryConstraints = this.scaleAnnotation(node, sx, sy, pivot, obj);\n }\n }\n else if (obj.formFields && obj.formFields.length) {\n for (var _b = 0, _c = obj.formFields; _b < _c.length; _b++) {\n var node = _c[_b];\n checkBoundaryConstraints = this.scaleAnnotation(node, sx, sy, pivot, obj);\n }\n }\n }\n else {\n checkBoundaryConstraints = this.scaleAnnotation(obj, sx, sy, pivot, undefined);\n }\n return checkBoundaryConstraints;\n };\n /**\n * @private\n * @param {number} sw - Specified the sw value.\n * @param {number} sh - Specified the sh value.\n * @param {PointModel} pivot - Specified the pivot value.\n * @param {IElement} obj - Specified the annotation object.\n * @param {DrawingElement} element - Specified the annotation element.\n * @param {IElement} refObject - Specified the annotation reference object.\n * @returns {void}\n */\n Drawing.prototype.scaleObject = function (sw, sh, pivot, obj, element, refObject) {\n sw = sw < 0 ? 1 : sw;\n sh = sh < 0 ? 1 : sh;\n if (sw !== 1 || sh !== 1) {\n var width = void 0;\n var height = void 0;\n if (!isLineShapes(obj)) {\n var node = obj;\n var isResize = void 0;\n var bound = void 0;\n width = node.wrapper.actualSize.width * sw;\n height = node.wrapper.actualSize.height * sh;\n if (isResize) {\n width = Math.max(width, (bound.right - node.wrapper.bounds.x));\n height = Math.max(height, (bound.bottom - node.wrapper.bounds.y));\n }\n sw = width / node.wrapper.actualSize.width;\n sh = height / node.wrapper.actualSize.height;\n }\n var matrix = identityMatrix();\n if (!refObject) {\n refObject = obj;\n }\n var refWrapper = refObject.wrapper;\n rotateMatrix(matrix, -refWrapper.rotateAngle, pivot.x, pivot.y);\n scaleMatrix(matrix, sw, sh, pivot.x, pivot.y);\n rotateMatrix(matrix, refWrapper.rotateAngle, pivot.x, pivot.y);\n if (!isLineShapes(obj)) {\n var node = obj;\n var newPosition = transformPointByMatrix(matrix, { x: node.wrapper.offsetX, y: node.wrapper.offsetY });\n if (width > 0) {\n node.wrapper.width = width;\n node.wrapper.offsetX = newPosition.x;\n }\n if (height > 0) {\n node.wrapper.height = height;\n node.wrapper.offsetY = newPosition.y;\n }\n this.nodePropertyChange(obj, {\n bounds: { width: node.wrapper.width, height: node.wrapper.height, x: node.wrapper.offsetX, y: node.wrapper.offsetY }\n });\n }\n }\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel} obj - Specified the annotaion object.\n * @param {number} sw - Specified the sw value.\n * @param {number} sh - Specified the sh value.\n * @param {PointModel} pivot - Specified the pivot value.\n * @param {IElement} refObject - Specified the reference object.\n * @returns {boolean} - Returns true or false.\n */\n Drawing.prototype.scaleAnnotation = function (obj, sw, sh, pivot, refObject) {\n // eslint-disable-next-line\n var node = this.pdfViewer.nameTable[obj.id];\n var tempNode = node;\n var elements = [];\n var element = node.wrapper;\n if (!refObject) {\n refObject = obj;\n }\n var refWrapper = refObject.wrapper;\n var x = refWrapper.offsetX - refWrapper.actualSize.width * refWrapper.pivot.x;\n var y = refWrapper.offsetY - refWrapper.actualSize.height * refWrapper.pivot.y;\n var refPoint = this.getShapePoint(x, y, refWrapper.actualSize.width, refWrapper.actualSize.height, refWrapper.rotateAngle, refWrapper.offsetX, refWrapper.offsetY, pivot);\n if (element.actualSize.width !== undefined && element.actualSize.height !== undefined) {\n this.scaleObject(sw, sh, refPoint, node, element, refObject);\n }\n // eslint-disable-next-line max-len\n var constraints = this.checkBoundaryConstraints(undefined, undefined, obj.pageIndex, obj.wrapper.bounds);\n if (!constraints) {\n this.scaleObject(1 / sw, 1 / sh, refPoint, node, element, refObject);\n //bug (EJ2-62649) : fixed an issue with difficulty on moving/ resizing free text annotation that added in edge of viewer \n // eslint-disable-next-line\n if (obj.shapeAnnotationType === 'FreeText' && (obj.id.slice(0, 9) === 'free_text' || obj.id.slice(0, 8) === 'freetext')) {\n var newDiff = this.moveInsideViewer(obj);\n this.nodePropertyChange(obj, {\n bounds: { width: obj.wrapper.width, height: obj.wrapper.height, x: obj.wrapper.offsetX + newDiff.tx, y: obj.wrapper.offsetY + newDiff.ty }\n });\n }\n }\n return constraints;\n };\n //bug (EJ2-62649) : Implemnted method for calculating optimal bound for free text annotation that outside viewer container \n Drawing.prototype.moveInsideViewer = function (obj, tx, ty) {\n tx = tx ? tx : 0;\n ty = ty ? ty : 0;\n if (obj.shapeAnnotationType === 'FreeText' && (obj.id.slice(0, 9) === 'free_text' || obj.id.slice(0, 8) === 'freetext')) {\n // eslint-disable-next-line\n var canvas = document.getElementById(this.pdfViewer.element.id + '_annotationCanvas_' + obj.pageIndex);\n if (canvas) {\n var bounds = obj.wrapper.bounds;\n var width = canvas.clientWidth / this.pdfViewer.viewerBase.getZoomFactor();\n var height = canvas.clientHeight / this.pdfViewer.viewerBase.getZoomFactor();\n var right = bounds.right;\n var left = bounds.left;\n var top_1 = bounds.top;\n var bottom = bounds.bottom;\n // eslint-disable-next-line\n if (!(right + tx <= width - 3 && left + tx >= 1 && bottom + ty <= height - 3 && top_1 + ty >= 1)) {\n var txNew = 0;\n var tyNew = 0;\n if (!(right <= width - 3)) {\n txNew = width - right - 3;\n }\n if (!(left >= 1)) {\n txNew = txNew - left + 1;\n }\n if (!(bottom <= height - 3)) {\n tyNew = height - bottom - 3;\n }\n if (!(top_1 >= 1)) {\n tyNew = tyNew - top_1 + 1;\n }\n if (txNew !== 0) {\n tx = txNew;\n }\n if (tyNew !== 0) {\n ty = tyNew;\n }\n }\n }\n }\n return { tx: tx, ty: ty };\n };\n /**\n * @private\n * @param {number} tx - Specified the tx value.\n * @param {number} ty - Specified the ty value.\n * @param {number} pageIndex - Specified the page index value.\n * @param {Rect} nodeBounds - Specified the node bounds value.\n * @param {boolean} isStamp - Specified the annotation is stamp or not.\n * @param {boolean} isSkip - Specified the annotaion is skip or not.\n * @returns {boolean} - Returns true or false.\n */\n // eslint-disable-next-line max-len\n Drawing.prototype.checkBoundaryConstraints = function (tx, ty, pageIndex, nodeBounds, isStamp, isSkip) {\n var selectorBounds = !nodeBounds ? this.pdfViewer.selectedItems.wrapper.bounds : undefined;\n var bounds = nodeBounds;\n // eslint-disable-next-line\n var canvas = document.getElementById(this.pdfViewer.element.id + '_annotationCanvas_' + pageIndex);\n var heightDifference = 1;\n if (canvas) {\n var width = canvas.clientWidth / this.pdfViewer.viewerBase.getZoomFactor();\n var height = canvas.clientHeight / this.pdfViewer.viewerBase.getZoomFactor();\n var right = (nodeBounds ? bounds.right : selectorBounds.right) + (tx || 0);\n var left = (nodeBounds ? bounds.left : selectorBounds.left) + (tx || 0);\n var top_2 = (nodeBounds ? bounds.top : selectorBounds.top) + (ty || 0);\n var bottom = (nodeBounds ? bounds.bottom : selectorBounds.bottom) + (ty || 0);\n if (isStamp) {\n heightDifference = 50;\n if (this.pdfViewer.viewerBase.eventArgs && this.pdfViewer.viewerBase.eventArgs.source) {\n if (this.RestrictStamp(this.pdfViewer.viewerBase.eventArgs.source)) {\n return false;\n }\n }\n }\n if ((right <= width - 3 && left >= 1 && bottom <= height - 3 && top_2 >= heightDifference) || isSkip) {\n return true;\n }\n }\n return false;\n };\n // eslint-disable-next-line\n Drawing.prototype.RestrictStamp = function (source) {\n // eslint-disable-next-line max-len\n if (source && source.pageIndex !== undefined && this.pdfViewer.viewerBase.activeElements && source.pageIndex !== this.pdfViewer.viewerBase.activeElements.activePageID) {\n return true;\n }\n return false;\n };\n /**\n * @private\n * @param {DrawingElement} shapeElement - Specified the shape element.\n * @returns {Rect} - Returns the rectangle object.\n */\n Drawing.prototype.getShapeBounds = function (shapeElement) {\n var shapeBounds = new Rect();\n var shapeCorners = cornersPointsBeforeRotation(shapeElement);\n var shapeMiddleLeft = shapeCorners.middleLeft;\n var shapeTopCenter = shapeCorners.topCenter;\n var shapeBottomCenter = shapeCorners.bottomCenter;\n var shapeMiddleRight = shapeCorners.middleRight;\n var shapeTopLeft = shapeCorners.topLeft;\n var shapeTopRight = shapeCorners.topRight;\n var shapeBottomLeft = shapeCorners.bottomLeft;\n var shapeBottomRight = shapeCorners.bottomRight;\n shapeElement.corners = {\n topLeft: shapeTopLeft, topCenter: shapeTopCenter, topRight: shapeTopRight, middleLeft: shapeMiddleLeft,\n middleRight: shapeMiddleRight, bottomLeft: shapeBottomLeft, bottomCenter: shapeBottomCenter, bottomRight: shapeBottomRight\n };\n if (shapeElement.rotateAngle !== 0 || shapeElement.parentTransform !== 0) {\n var matrix = identityMatrix();\n rotateMatrix(matrix, shapeElement.rotateAngle + shapeElement.parentTransform, shapeElement.offsetX, shapeElement.offsetY);\n shapeElement.corners.topLeft = shapeTopLeft = transformPointByMatrix(matrix, shapeTopLeft);\n shapeElement.corners.topCenter = shapeTopCenter = transformPointByMatrix(matrix, shapeTopCenter);\n shapeElement.corners.topRight = shapeTopRight = transformPointByMatrix(matrix, shapeTopRight);\n shapeElement.corners.middleLeft = shapeMiddleLeft = transformPointByMatrix(matrix, shapeMiddleLeft);\n shapeElement.corners.middleRight = shapeMiddleRight = transformPointByMatrix(matrix, shapeMiddleRight);\n shapeElement.corners.bottomLeft = shapeBottomLeft = transformPointByMatrix(matrix, shapeBottomLeft);\n shapeElement.corners.bottomCenter = shapeBottomCenter = transformPointByMatrix(matrix, shapeBottomCenter);\n shapeElement.corners.bottomRight = shapeBottomRight = transformPointByMatrix(matrix, shapeBottomRight);\n //Set corners based on rotate angle\n }\n shapeBounds = Rect.toBounds([shapeTopLeft, shapeTopRight, shapeBottomLeft, shapeBottomRight]);\n shapeElement.corners.left = shapeBounds.left;\n shapeElement.corners.right = shapeBounds.right;\n shapeElement.corners.top = shapeBounds.top;\n shapeElement.corners.bottom = shapeBounds.bottom;\n shapeElement.corners.center = shapeBounds.center;\n shapeElement.corners.width = shapeBounds.width;\n shapeElement.corners.height = shapeBounds.height;\n return shapeBounds;\n };\n /**\n * @private\n * @param {number} x - Specified the x value.\n * @param {number} y - Specified the y value.\n * @param {number} w - Specified the w value.\n * @param {number} h - Specified the h value.\n * @param {number} angle - Specified the angle value.\n * @param {number} offsetX - Specified the offset x value.\n * @param {number} offsetY - Specified the offset y value.\n * @param {PointModel} cornerPoint - Specified the corner point value.\n * @returns {PointModel} - Returns the point model.\n */\n Drawing.prototype.getShapePoint = function (x, y, w, h, angle, offsetX, offsetY, cornerPoint) {\n var pivotPoint = { x: 0, y: 0 };\n var transformMatrix = identityMatrix();\n rotateMatrix(transformMatrix, angle, offsetX, offsetY);\n switch (cornerPoint.x) {\n case 1:\n switch (cornerPoint.y) {\n case 1:\n pivotPoint = transformPointByMatrix(transformMatrix, ({ x: x + w, y: y + h }));\n break;\n case 0:\n pivotPoint = transformPointByMatrix(transformMatrix, ({ x: x + w, y: y }));\n break;\n case 0.5:\n pivotPoint = transformPointByMatrix(transformMatrix, ({ x: x + w, y: y + h / 2 }));\n break;\n }\n break;\n case 0:\n switch (cornerPoint.y) {\n case 0.5:\n pivotPoint = transformPointByMatrix(transformMatrix, ({ x: x, y: y + h / 2 }));\n break;\n case 1:\n pivotPoint = transformPointByMatrix(transformMatrix, ({ x: x, y: y + h }));\n break;\n case 0:\n pivotPoint = transformPointByMatrix(transformMatrix, ({ x: x, y: y }));\n break;\n }\n break;\n case 0.5:\n switch (cornerPoint.y) {\n case 0:\n pivotPoint = transformPointByMatrix(transformMatrix, ({ x: x + w / 2, y: y }));\n break;\n case 0.5:\n pivotPoint = transformPointByMatrix(transformMatrix, ({ x: x + w / 2, y: y + h / 2 }));\n break;\n case 1:\n pivotPoint = transformPointByMatrix(transformMatrix, ({ x: x + w / 2, y: y + h }));\n break;\n }\n break;\n }\n return { x: pivotPoint.x, y: pivotPoint.y };\n };\n /**\n * @private\n * @param {string} endPoint - Specified the end point value.\n * @param {IElement} obj - Specified the annotaion object.\n * @param {PointModel} point - Specified the annotation points.\n * @param {PointModel} segment - Specified the annotaion segment.\n * @param {IElement} target - Specified the target element.\n * @param {string} targetPortId - Specified the target port id.\n * @param {any} currentSelector - Specified the current selector value.\n * @returns {boolean} - Returns true or false.\n */\n // eslint-disable-next-line\n Drawing.prototype.dragConnectorEnds = function (endPoint, obj, point, segment, target, targetPortId, currentSelector) {\n var selectorModel;\n var connector;\n var node;\n var tx;\n var segmentPoint;\n var ty;\n var index;\n // eslint-disable-next-line\n var checkBezierThumb = false;\n if (obj instanceof Selector) {\n selectorModel = obj;\n connector = selectorModel.annotations[0];\n }\n else {\n connector = obj;\n }\n point = { x: point.x / this.pdfViewer.viewerBase.getZoomFactor(), y: point.y / this.pdfViewer.viewerBase.getZoomFactor() };\n if (this.checkBoundaryConstraints(undefined, undefined, connector.pageIndex, connector.wrapper.bounds)) {\n if (connector.shapeAnnotationType === 'Distance') {\n var leader = isLeader(connector, endPoint);\n if (endPoint === 'Leader0') {\n if (this.pdfViewer.viewerBase.tool instanceof LineTool) {\n connector.vertexPoints[0].x = point.x;\n connector.vertexPoints[0].y = point.y;\n }\n else {\n tx = point.x - leader.point.x;\n ty = point.y - leader.point.y;\n connector.vertexPoints[0].x += tx;\n connector.vertexPoints[0].y += ty;\n }\n }\n else if (endPoint === 'Leader1') {\n var length_2 = connector.vertexPoints.length - 1;\n if (this.pdfViewer.viewerBase.tool instanceof LineTool) {\n connector.vertexPoints[parseInt(length_2.toString(), 10)].x = point.x;\n connector.vertexPoints[parseInt(length_2.toString(), 10)].y = point.y;\n }\n else {\n tx = point.x - leader.point.x;\n ty = point.y - leader.point.y;\n connector.vertexPoints[parseInt(length_2.toString(), 10)].x += tx;\n connector.vertexPoints[parseInt(length_2.toString(), 10)].y += ty;\n }\n }\n else {\n // eslint-disable-next-line\n var angle = Point.findAngle(connector.sourcePoint, connector.targetPoint);\n // eslint-disable-next-line\n var center = obj.wrapper.children[0].bounds.center;\n // eslint-disable-next-line\n var matrix = identityMatrix();\n rotateMatrix(matrix, -angle, center.x, center.y);\n // eslint-disable-next-line\n var rotatedPoint = transformPointByMatrix(matrix, { x: point.x, y: point.y });\n if (endPoint.split('_')[0] === 'ConnectorSegmentPoint') {\n // eslint-disable-next-line\n var matrix = identityMatrix();\n rotateMatrix(matrix, -angle, center.x, center.y);\n // eslint-disable-next-line\n var rotatedPoint1 = transformPointByMatrix(matrix, connector.vertexPoints[0]);\n // eslint-disable-next-line\n var rotatedPoint2 = transformPointByMatrix(matrix, connector.vertexPoints[connector.vertexPoints.length - 1]);\n ty = rotatedPoint.y - rotatedPoint1.y;\n if (connector.leaderHeight === 0 && connector.leaderHeight != null) {\n connector.leaderHeight = this.pdfViewer.distanceSettings.leaderLength;\n }\n else {\n connector.leaderHeight += ty;\n rotatedPoint1.y += ty;\n rotatedPoint2.y += ty;\n // eslint-disable-next-line\n var matrix = identityMatrix();\n rotateMatrix(matrix, angle, center.x, center.y);\n connector.vertexPoints[0] = transformPointByMatrix(matrix, rotatedPoint1);\n connector.vertexPoints[connector.vertexPoints.length - 1] = transformPointByMatrix(matrix, rotatedPoint2);\n }\n }\n }\n }\n else if (endPoint.split('_')[0] === 'ConnectorSegmentPoint') {\n var i = Number(endPoint.split('_')[1]);\n tx = point.x - connector.vertexPoints[parseInt(i.toString(), 10)].x;\n ty = point.y - connector.vertexPoints[parseInt(i.toString(), 10)].y;\n connector.vertexPoints[parseInt(i.toString(), 10)].x += tx;\n connector.vertexPoints[parseInt(i.toString(), 10)].y += ty;\n if (connector.vertexPoints.length > 2 && obj.measureType !== 'Perimeter') {\n if (parseFloat(endPoint.split('_')[1]) === 0) {\n connector.vertexPoints[connector.vertexPoints.length - 1].x += tx;\n connector.vertexPoints[connector.vertexPoints.length - 1].y += ty;\n }\n else if (parseFloat(endPoint.split('_')[1]) === connector.vertexPoints.length - 1) {\n connector.vertexPoints[0].x += tx;\n connector.vertexPoints[0].y += ty;\n }\n }\n }\n this.nodePropertyChange(connector, { vertexPoints: connector.vertexPoints });\n this.renderSelector(connector.pageIndex, currentSelector);\n }\n this.pdfViewer.renderDrawing();\n return true;\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel} obj - Specified the annotation object.\n * @param {number} tx - Specified the tx value.\n * @param {number} ty - Specified the y value.\n * @param {number} i - Specified the index value.\n * @returns {boolean} - Returns true or false.\n */\n Drawing.prototype.dragSourceEnd = function (obj, tx, ty, i) {\n // eslint-disable-next-line\n var connector = this.pdfViewer.nameTable[obj.id];\n connector.vertexPoints[parseInt(i.toString(), 10)].x += tx;\n connector.vertexPoints[parseInt(i.toString(), 10)].y += ty;\n this.pdfViewer.renderDrawing();\n return true;\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel} connector - Specified the connector object.\n * @param {PointModel[]} points - Specified the points value.\n * @returns {void}\n */\n Drawing.prototype.updateConnector = function (connector, points) {\n var srcDecorator;\n var tarDecorator;\n var targetPoint;\n connector.vertexPoints = points;\n updateSegmentElement(connector, points, connector.wrapper.children[0]);\n var srcPoint = connector.sourcePoint;\n var anglePoint = connector.vertexPoints;\n // points = this.clipDecorators(connector, points);\n var element = connector.wrapper.children[0];\n element.canMeasurePath = true;\n for (var i = 0; i < connector.wrapper.children.length; i++) {\n element = connector.wrapper.children[parseInt(i.toString(), 10)];\n if (connector.shapeAnnotationType !== 'Polygon') {\n if (element.id.indexOf('srcDec') > -1) {\n updateDecoratorElement(connector, element, points[0], anglePoint[1], true);\n }\n targetPoint = connector.targetPoint;\n if (element.id.indexOf('tarDec') > -1) {\n updateDecoratorElement(connector, element, points[points.length - 1], anglePoint[anglePoint.length - 2], false);\n }\n }\n }\n };\n /**\n * @private\n * @returns {Object} - Returns the object.\n */\n Drawing.prototype.copy = function () {\n if (((this.pdfViewer.formDesignerModule && !this.pdfViewer.formDesigner.isPropertyDialogOpen) || this.pdfViewer.annotationModule) && (this.pdfViewer.designerMode || this.pdfViewer.enableAnnotation) && (this.pdfViewer.selectedItems.formFields.length !== 0 || this.pdfViewer.selectedItems.annotations.length !== 0)) {\n this.pdfViewer.clipboardData.pasteIndex = 1;\n this.pdfViewer.clipboardData.clipObject = this.copyObjects();\n }\n var isSearchboxDialogOpen;\n var searchBoxId = document.getElementById(this.pdfViewer.element.id + \"_search_box\");\n if (searchBoxId) {\n isSearchboxDialogOpen = searchBoxId.style.display !== \"none\";\n }\n if (this.pdfViewer.formDesigner && this.pdfViewer.formDesigner.isPropertyDialogOpen || isSearchboxDialogOpen) {\n this.pdfViewer.clipboardData.clipObject = {};\n }\n return this.pdfViewer.clipboardData.clipObject;\n };\n /**\n * @private\n * @returns {Object[]} - Returns the object array.\n */\n Drawing.prototype.copyObjects = function () {\n var selectedItems = [];\n var obj = [];\n this.pdfViewer.clipboardData.childTable = {};\n if (this.pdfViewer.selectedItems.annotations.length > 0) {\n selectedItems = this.pdfViewer.selectedItems.annotations;\n for (var j = 0; j < selectedItems.length; j++) {\n var element = cloneObject((selectedItems[parseInt(j.toString(), 10)]));\n obj.push(element);\n }\n }\n if (this.pdfViewer.selectedItems.formFields.length > 0) {\n selectedItems = this.pdfViewer.selectedItems.formFields;\n for (var j = 0; j < selectedItems.length; j++) {\n var element = cloneObject((selectedItems[parseInt(j.toString(), 10)]));\n obj.push(element);\n }\n }\n if (this.pdfViewer.clipboardData.pasteIndex === 0) {\n for (var _i = 0, selectedItems_1 = selectedItems; _i < selectedItems_1.length; _i++) {\n var item = selectedItems_1[_i];\n // eslint-disable-next-line\n if (this.pdfViewer.nameTable[item.id]) {\n if (!item.formFieldAnnotationType) {\n if (item.annotName)\n this.pdfViewer.annotationModule.deleteAnnotationById(item.annotName);\n else\n this.pdfViewer.annotationModule.deleteAnnotation();\n }\n else {\n this.pdfViewer.clearSelection(item.pageIndex);\n this.pdfViewer.formDesignerModule.deleteFormField(item.id);\n }\n }\n }\n //this.endGroupAction();\n }\n this.sortByZIndex(obj, 'zIndex');\n return obj;\n };\n Drawing.prototype.getNewObject = function (obj) {\n var newObj;\n var newobjs = [];\n this.pdfViewer.clipboardData.pasteIndex = 1;\n for (var i = 0; i < obj.length; i++) {\n newObj = cloneObject(obj[parseInt(i.toString(), 10)]);\n newobjs.push(newObj);\n }\n return newobjs;\n };\n /**\n * @private\n * @param {PdfAnnotationBaseModel[]} obj - Specified the annotation object.\n * @param {number} index - Specified the annotation index.\n * @returns {void}\n */\n Drawing.prototype.paste = function (obj, index) {\n var zoomfactor = this.pdfViewer.viewerBase.getZoomFactor();\n var allowServerDataBind = this.pdfViewer.allowServerDataBinding;\n this.pdfViewer.enableServerDataBinding(false);\n var fieldId;\n if (obj || this.pdfViewer.clipboardData.clipObject) {\n var copiedItems = obj ? this.getNewObject(obj) :\n this.pdfViewer.clipboardData.clipObject;\n if (copiedItems) {\n var objectTable = {};\n if (this.pdfViewer.clipboardData.pasteIndex !== 0) {\n this.pdfViewer.clearSelection(index);\n }\n for (var _i = 0, copiedItems_1 = copiedItems; _i < copiedItems_1.length; _i++) {\n var copy = copiedItems_1[_i];\n fieldId = copy.id;\n copy.id += randomId();\n var fieldName = this.splitFormFieldName(copy);\n var maxNumber = 0; // this.pdfViewer.formFieldCollection.length;\n if (this.pdfViewer.formDesigner) {\n this.pdfViewer.formDesigner.setFormFieldIndex();\n maxNumber = this.pdfViewer.formDesigner.formFieldIndex;\n copy.name = fieldName + maxNumber;\n }\n // eslint-disable-next-line\n objectTable[copy.id] = copy;\n }\n for (var j = 0; j < copiedItems.length; j++) {\n var copy = copiedItems[parseInt(j.toString(), 10)];\n var pageDiv = this.pdfViewer.viewerBase.getElement('_pageDiv_' + copy.pageIndex);\n // eslint-disable-next-line\n var events = event;\n if (events && !events.clientX && !events.clientY) {\n events = { clientX: this.pdfViewer.viewerBase.mouseLeft, clientY: this.pdfViewer.viewerBase.mouseTop };\n }\n if (isBlazor()) {\n events = this.pdfViewer.viewerBase.mouseDownEvent;\n }\n if (isLineShapes(copy)) {\n this.calculateCopyPosition(copy, pageDiv, events);\n }\n else {\n if (pageDiv) {\n var pageCurrentRect = pageDiv.getBoundingClientRect();\n copy.bounds.x = (events.clientX - pageCurrentRect.left) / zoomfactor;\n copy.bounds.y = (events.clientY - pageCurrentRect.top) / zoomfactor;\n }\n }\n var newNode = cloneObject(copy);\n if (this.pdfViewer.viewerBase.contextMenuModule.previousAction !== 'Cut') {\n newNode.id += randomId();\n if (this.pdfViewer.annotationModule && newNode.shapeAnnotationType !== 'HandWrittenSignature') {\n newNode.annotName = newNode.id;\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.updateAnnotationCollection(newNode, copiedItems[0], false);\n }\n if (newNode.shapeAnnotationType === 'SignatureText' || newNode.shapeAnnotationType === 'HandWrittenSignature' || newNode.shapeAnnotationType === 'SignatureImage') {\n this.pdfViewer.viewerBase.signatureModule.storeSignatureData(newNode.pageIndex, newNode);\n }\n if (!newNode.formFieldAnnotationType) {\n this.pdfViewer.annotation.addAction(this.pdfViewer.viewerBase.getActivePage(false), null, newNode, 'Addition', '', newNode, newNode);\n }\n }\n else {\n if (this.pdfViewer.annotationModule) {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stickyNotesAnnotationModule.updateAnnotationCollection(newNode, copiedItems[0], true);\n }\n if (newNode.shapeAnnotationType === 'SignatureText' || newNode.shapeAnnotationType === 'HandWrittenSignature' || newNode.shapeAnnotationType === 'SignatureImage') {\n this.pdfViewer.viewerBase.signatureModule.storeSignatureData(newNode.pageIndex, newNode);\n }\n }\n var addedAnnot = this.add(newNode);\n if (this.pdfViewer.formDesigner && addedAnnot.formFieldAnnotationType) {\n this.pdfViewer.annotation.addAction(this.pdfViewer.viewerBase.getActivePage(true), null, addedAnnot, 'Addition', '', addedAnnot, addedAnnot);\n }\n if ((newNode.shapeAnnotationType === 'FreeText' || newNode.enableShapeLabel) && addedAnnot) {\n this.nodePropertyChange(addedAnnot, {});\n }\n if (addedAnnot.formFieldAnnotationType && addedAnnot.pageIndex === index) {\n this.pdfViewer.formFieldCollection.push(addedAnnot);\n // eslint-disable-next-line max-len\n var formField = {\n id: addedAnnot.id, name: addedAnnot.name, value: addedAnnot.value, type: addedAnnot.formFieldAnnotationType,\n isReadOnly: addedAnnot.isReadonly, fontFamily: addedAnnot.fontFamily,\n // eslint-disable-next-line max-len\n fontSize: addedAnnot.fontSize, fontStyle: addedAnnot.fontStyle, color: addedAnnot.color, backgroundColor: addedAnnot.backgroundColor,\n // eslint-disable-next-line max-len\n alignment: addedAnnot.alignment, visibility: addedAnnot.visibility, maxLength: addedAnnot.maxLength, isRequired: addedAnnot.isRequired,\n // eslint-disable-next-line max-len\n isPrint: addedAnnot.isPrint, isSelected: addedAnnot.isSelected, isChecked: addedAnnot.isChecked, tooltip: addedAnnot.tooltip, bounds: addedAnnot.bounds, thickness: addedAnnot.thickness, borderColor: addedAnnot.borderColor, signatureIndicatorSettings: addedAnnot.signatureIndicatorSettings\n };\n if (addedAnnot.options && addedAnnot.options.length > 0) {\n formField.options = addedAnnot.options;\n }\n this.pdfViewer.formFieldCollections.push(formField);\n // eslint-disable-next-line max-len\n this.pdfViewer.formDesigner.drawHTMLContent(addedAnnot.formFieldAnnotationType, addedAnnot.wrapper.children[0], addedAnnot, addedAnnot.pageIndex, this.pdfViewer, fieldId);\n }\n this.pdfViewer.select([newNode.id], this.pdfViewer.annotationSelectorSettings);\n if (!addedAnnot.formFieldAnnotationType) {\n this.pdfViewer.annotationModule.triggerAnnotationAddEvent(newNode);\n }\n ;\n }\n }\n this.pdfViewer.renderDrawing(undefined, index);\n this.pdfViewer.clipboardData.pasteIndex++;\n }\n this.pdfViewer.enableServerDataBinding(allowServerDataBind, true);\n };\n Drawing.prototype.splitFormFieldName = function (obj) {\n // eslint-disable-next-line\n var field = null;\n if (obj) {\n switch (obj.formFieldAnnotationType) {\n case 'Textbox':\n field = \"Textbox\";\n break;\n case 'PasswordField':\n field = \"Password\";\n break;\n case 'Checkbox':\n field = \"Check Box\";\n break;\n case 'RadioButton':\n field = \"Radio Button\";\n break;\n case 'DropdownList':\n field = \"Dropdown\";\n break;\n case 'ListBox':\n field = \"List Box\";\n break;\n case 'SignatureField':\n field = \"Signature\";\n break;\n case 'InitialField':\n field = \"Initial\";\n break;\n }\n }\n return field;\n };\n Drawing.prototype.calculateCopyPosition = function (copy, pageDiv, events) {\n var zoomfactor = this.pdfViewer.viewerBase.getZoomFactor();\n var x1;\n var y1;\n var x2;\n var y2;\n for (var i = 0; i < copy.vertexPoints.length; i++) {\n if (pageDiv) {\n if (i === 0) {\n var pageCurrentRect = pageDiv.getBoundingClientRect();\n x1 = copy.vertexPoints[parseInt(i.toString(), 10)].x;\n y1 = copy.vertexPoints[parseInt(i.toString(), 10)].y;\n copy.vertexPoints[parseInt(i.toString(), 10)].x = (events.clientX - pageCurrentRect.left) / zoomfactor;\n copy.vertexPoints[parseInt(i.toString(), 10)].y = (events.clientY - pageCurrentRect.top) / zoomfactor;\n x2 = copy.vertexPoints[parseInt(i.toString(), 10)].x;\n y2 = copy.vertexPoints[parseInt(i.toString(), 10)].y;\n }\n else {\n copy.vertexPoints[parseInt(i.toString(), 10)].x += x2 - x1;\n copy.vertexPoints[parseInt(i.toString(), 10)].y += y2 - y1;\n }\n }\n }\n };\n /**\n * @private\n * @param {number} index - Specified the annotaion index.\n * @returns {void}\n */\n Drawing.prototype.cut = function (index) {\n var allowServerDataBind = this.pdfViewer.allowServerDataBinding;\n this.pdfViewer.enableServerDataBinding(false);\n if (this.pdfViewer.annotationModule) {\n this.pdfViewer.annotationModule.removedAnnotationCollection = [];\n }\n if (((this.pdfViewer.formDesignerModule && !this.pdfViewer.formDesigner.isPropertyDialogOpen) || this.pdfViewer.selectedItems.annotations.length > 0) && (this.pdfViewer.designerMode || this.pdfViewer.selectedItems.annotations.length > 0) && (this.pdfViewer.selectedItems.formFields.length !== 0 || this.pdfViewer.selectedItems.annotations.length !== 0)) {\n this.pdfViewer.clipboardData.pasteIndex = 0;\n this.pdfViewer.clipboardData.clipObject = this.copyObjects();\n this.pdfViewer.renderDrawing(undefined, index);\n this.pdfViewer.enableServerDataBinding(allowServerDataBind, true);\n }\n var isSearchboxDialogOpen;\n var searchBoxId = document.getElementById(this.pdfViewer.element.id + \"_search_box\");\n if (searchBoxId) {\n isSearchboxDialogOpen = searchBoxId.style.display !== \"none\";\n }\n if (this.pdfViewer.formDesigner && this.pdfViewer.formDesigner.isPropertyDialogOpen || isSearchboxDialogOpen) {\n this.pdfViewer.clipboardData.clipObject = {};\n }\n };\n /**\n * @private\n * @param {Object[]} nodeArray - Specified the node array.\n * @param {string} sortID - Specified the sort id.\n * @returns {Object[]} - Returns the node array.\n */\n Drawing.prototype.sortByZIndex = function (nodeArray, sortID) {\n var id = sortID ? sortID : 'zIndex';\n nodeArray = nodeArray.sort(function (a, b) {\n // eslint-disable-next-line\n return a[id] - b[id];\n });\n return nodeArray;\n };\n return Drawing;\n}());\nexport { Drawing };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\n/* eslint-disable */\n// eslint-disable-next-line max-len\nimport { Component, NotifyPropertyChanges, ChildProperty, L10n, Collection, Complex, isBlazor, Browser } from '@syncfusion/ej2-base';\nimport { isNullOrUndefined, Property, Event } from '@syncfusion/ej2-base';\nimport { PdfViewerBase } from './index';\n// eslint-disable-next-line max-len\nimport { FontStyle, AnnotationResizerLocation, CursorType, ContextMenuItem, DynamicStampItem, SignStampItem, StandardBusinessStampItem, AnnotationDataFormat, DisplayMode, FormFieldDataFormat } from './base/types';\nimport { FormFields } from './index';\nimport { PdfAnnotationBase, PdfFormFieldBase } from './drawing/pdf-annotation';\nimport { Drawing } from './drawing/drawing';\nimport { Selector } from './drawing/selector';\nimport { renderAdornerLayer } from './drawing/dom-util';\n/**\n * The `ToolbarSettings` module is used to provide the toolbar settings of PDF viewer.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the tool bar settings.\n * viewer.toolbarSettings = {\n * showTooltip: false,\n * toolbarItems: [\n * \"OpenOption\",\n * \"UndoRedoTool\",\n * \"PageNavigationTool\",\n * \"MagnificationTool\",\n * \"PanTool\",\n * \"SelectionTool\",\n * \"CommentTool\",\n * \"SubmitForm\",\n * \"AnnotationEditTool\",\n * \"FormDesignerEditTool\",\n * \"FreeTextAnnotationOption\",\n * \"InkAnnotationOption\",\n * \"ShapeAnnotationOption\",\n * \"StampAnnotation\",\n * \"SignatureOption\",\n * \"SearchOption\",\n * \"PrintOption\",\n * \"DownloadOption\"\n * ],\n * annotationToolbarItems: [\n * \"HighlightTool\",\n * \"UnderlineTool\",\n * \"StrikethroughTool\",\n * \"ColorEditTool\",\n * \"OpacityEditTool\",\n * \"AnnotationDeleteTool\",\n * \"StampAnnotationTool\",\n * \"HandWrittenSignatureTool\",\n * \"InkAnnotationTool\",\n * \"ShapeTool\",\n * \"CalibrateTool\",\n * \"StrokeColorEditTool\",\n * \"ThicknessEditTool\",\n * \"FreeTextAnnotationTool\",\n * \"FontFamilyAnnotationTool\",\n * \"FontSizeAnnotationTool\",\n * \"FontStylesAnnotationTool\",\n * \"FontAlignAnnotationTool\",\n * \"FontColorAnnotationTool\",\n * \"CommentPanelTool\"\n * ],\n * formDesignerToolbarItems: [\n * \"TextboxTool\",\n * \"PasswordTool\",\n * \"CheckBoxTool\",\n * \"RadioButtonTool\",\n * \"DropdownTool\",\n * \"ListboxTool\",\n * \"DrawSignatureTool\",\n * \"DeleteTool\"\n * ]\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar ToolbarSettings = /** @class */ (function (_super) {\n __extends(ToolbarSettings, _super);\n function ToolbarSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(true)\n ], ToolbarSettings.prototype, \"showTooltip\", void 0);\n __decorate([\n Property()\n ], ToolbarSettings.prototype, \"toolbarItems\", void 0);\n __decorate([\n Property()\n ], ToolbarSettings.prototype, \"annotationToolbarItems\", void 0);\n __decorate([\n Property()\n ], ToolbarSettings.prototype, \"formDesignerToolbarItems\", void 0);\n return ToolbarSettings;\n}(ChildProperty));\nexport { ToolbarSettings };\n/**\n * The `AjaxRequestSettings` module is used to set the ajax Request Headers of PDF viewer.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // HTTP header \"X-Custom-Header\": \"Custom header value\" // Custom HTTP header\n * viewer.ajaxRequestSettings = {\n * ajaxHeaders: [\n * {\n * headerName : \"Authorization\",\n * headerValue : \"Bearer\"\n * }\n * ],\n * withCredentials: false\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar AjaxRequestSettings = /** @class */ (function (_super) {\n __extends(AjaxRequestSettings, _super);\n function AjaxRequestSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property()\n ], AjaxRequestSettings.prototype, \"ajaxHeaders\", void 0);\n __decorate([\n Property(false)\n ], AjaxRequestSettings.prototype, \"withCredentials\", void 0);\n return AjaxRequestSettings;\n}(ChildProperty));\nexport { AjaxRequestSettings };\n/**\n * The `CustomStamp` module is used to provide the custom stamp added in stamp menu of the PDF Viewer toolbar.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Add your custom stamp image source as base64 image.\n * viewer.customStamp = [\n * {\n * customStampName: 'Sample',\n * customStampImageSource: \"data:image/png;base64, Syncfusion pdf viewer\"\n * }\n * ];\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar CustomStamp = /** @class */ (function (_super) {\n __extends(CustomStamp, _super);\n function CustomStamp() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], CustomStamp.prototype, \"customStampName\", void 0);\n __decorate([\n Property('')\n ], CustomStamp.prototype, \"customStampImageSource\", void 0);\n return CustomStamp;\n}(ChildProperty));\nexport { CustomStamp };\n/**\n * The `AnnotationToolbarSettings` module is used to provide the annotation toolbar settings of the PDF viewer.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the annotation tool bar settings.\n * viewer.toolbarSettings = {\n * showTooltip: false,\n * annotationToolbarItems: [\n * \"HighlightTool\",\n * \"UnderlineTool\",\n * \"StrikethroughTool\",\n * \"ColorEditTool\",\n * \"OpacityEditTool\",\n * \"AnnotationDeleteTool\",\n * \"StampAnnotationTool\",\n * \"HandWrittenSignatureTool\",\n * \"InkAnnotationTool\",\n * \"ShapeTool\",\n * \"CalibrateTool\",\n * \"StrokeColorEditTool\",\n * \"ThicknessEditTool\",\n * \"FreeTextAnnotationTool\",\n * \"FontFamilyAnnotationTool\",\n * \"FontSizeAnnotationTool\",\n * \"FontStylesAnnotationTool\",\n * \"FontAlignAnnotationTool\",\n * \"FontColorAnnotationTool\",\n * \"CommentPanelTool\"\n * ],\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar AnnotationToolbarSettings = /** @class */ (function (_super) {\n __extends(AnnotationToolbarSettings, _super);\n function AnnotationToolbarSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(true)\n ], AnnotationToolbarSettings.prototype, \"showTooltip\", void 0);\n __decorate([\n Property()\n ], AnnotationToolbarSettings.prototype, \"annotationToolbarItem\", void 0);\n return AnnotationToolbarSettings;\n}(ChildProperty));\nexport { AnnotationToolbarSettings };\n/**\n * The `FormDesignerToolbarSettings` module is used to provide the Form designer toolbar settings of the PDF viewer.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the form field tool bar settings.\n * viewer.toolbarSettings = {\n * showTooltip: false,\n * formDesignerToolbarItems: [\n * \"TextboxTool\",\n * \"PasswordTool\",\n * \"CheckBoxTool\",\n * \"RadioButtonTool\",\n * \"DropdownTool\",\n * \"ListboxTool\",\n * \"DrawSignatureTool\",\n * \"DeleteTool\"\n * ]\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar FormDesignerToolbarSettings = /** @class */ (function (_super) {\n __extends(FormDesignerToolbarSettings, _super);\n function FormDesignerToolbarSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(true)\n ], FormDesignerToolbarSettings.prototype, \"showTooltip\", void 0);\n __decorate([\n Property()\n ], FormDesignerToolbarSettings.prototype, \"formDesignerToolbarItem\", void 0);\n return FormDesignerToolbarSettings;\n}(ChildProperty));\nexport { FormDesignerToolbarSettings };\n/**\n * The `SignatureFieldSettings` module is used to set the properties of signature field in PDF Viewer\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the signature field settings.\n * viewer.signatureFieldSettings = {\n * name: \"\",\n * isReadOnly: true,\n * visibility: \"visible\",\n * isRequired: true,\n * isPrint: false,\n * tooltip: \"\",\n * thickness: 1,\n * signatureIndicatorSettings: {\n * opacity: 1,\n * backgroundColor: \"orange\",\n * width: 19,\n * height: 10,\n * fontSize: 10,\n * text: null,\n * color: \"black\"\n * },\n * signatureDialogSettings: {\n * displayMode: DisplayMode.Draw | DisplayMode.Text | DisplayMode.Upload,\n * hideSaveSignature: false\n * }\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar SignatureFieldSettings = /** @class */ (function (_super) {\n __extends(SignatureFieldSettings, _super);\n function SignatureFieldSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ x: 0, y: 0, width: 0, height: 0 })\n ], SignatureFieldSettings.prototype, \"bounds\", void 0);\n __decorate([\n Property('')\n ], SignatureFieldSettings.prototype, \"name\", void 0);\n __decorate([\n Property(false)\n ], SignatureFieldSettings.prototype, \"isReadOnly\", void 0);\n __decorate([\n Property('visible')\n ], SignatureFieldSettings.prototype, \"visibility\", void 0);\n __decorate([\n Property(false)\n ], SignatureFieldSettings.prototype, \"isRequired\", void 0);\n __decorate([\n Property(false)\n ], SignatureFieldSettings.prototype, \"isPrint\", void 0);\n __decorate([\n Property('')\n ], SignatureFieldSettings.prototype, \"tooltip\", void 0);\n __decorate([\n Property(1)\n ], SignatureFieldSettings.prototype, \"thickness\", void 0);\n __decorate([\n Property(0)\n ], SignatureFieldSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property()\n ], SignatureFieldSettings.prototype, \"signatureDialogSettings\", void 0);\n __decorate([\n Property()\n ], SignatureFieldSettings.prototype, \"signatureIndicatorSettings\", void 0);\n return SignatureFieldSettings;\n}(ChildProperty));\nexport { SignatureFieldSettings };\n/**\n * The `InitialFieldSettings` module is used to set the properties of initial field in PDF Viewer\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Changes the initial field settings.\n * viewer.initialFieldSettings = {\n * name: \"\",\n * isReadOnly: true,\n * visibility: \"visible\",\n * isRequired: true,\n * isPrint: true,\n * tooltip: \"\",\n * thickness: 1,\n * initialIndicatorSettings: {\n * opacity: 1,\n * backgroundColor: \"orange\",\n * width: 19,\n * height: 10,\n * fontSize: 10,\n * text: null,\n * color: \"black\"\n * },\n * initialDialogSettings: {\n * displayMode: DisplayMode.Draw | DisplayMode.Text | DisplayMode.Upload,\n * hideSaveSignature: false\n * }\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar InitialFieldSettings = /** @class */ (function (_super) {\n __extends(InitialFieldSettings, _super);\n function InitialFieldSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ x: 0, y: 0, width: 0, height: 0 })\n ], InitialFieldSettings.prototype, \"bounds\", void 0);\n __decorate([\n Property('')\n ], InitialFieldSettings.prototype, \"name\", void 0);\n __decorate([\n Property(false)\n ], InitialFieldSettings.prototype, \"isReadOnly\", void 0);\n __decorate([\n Property('visible')\n ], InitialFieldSettings.prototype, \"visibility\", void 0);\n __decorate([\n Property(false)\n ], InitialFieldSettings.prototype, \"isRequired\", void 0);\n __decorate([\n Property(false)\n ], InitialFieldSettings.prototype, \"isPrint\", void 0);\n __decorate([\n Property('')\n ], InitialFieldSettings.prototype, \"tooltip\", void 0);\n __decorate([\n Property(1)\n ], InitialFieldSettings.prototype, \"thickness\", void 0);\n __decorate([\n Property(0)\n ], InitialFieldSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property(false)\n ], InitialFieldSettings.prototype, \"isInitialField\", void 0);\n __decorate([\n Property()\n ], InitialFieldSettings.prototype, \"initialDialogSettings\", void 0);\n __decorate([\n Property()\n ], InitialFieldSettings.prototype, \"initialIndicatorSettings\", void 0);\n return InitialFieldSettings;\n}(ChildProperty));\nexport { InitialFieldSettings };\n/**\n * The `SignatureIndicatorSettings` module is used to provide the properties of signature Indicator in the signature field.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the signature indicator settings.\n * viewer.signatureFieldSettings = {\n * signatureIndicatorSettings: {\n * opacity: 1,\n * backgroundColor: 'orange',\n * width: 19,\n * height: 10,\n * fontSize: 10,\n * text: null,\n * color: 'black'\n * }\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar SignatureIndicatorSettings = /** @class */ (function (_super) {\n __extends(SignatureIndicatorSettings, _super);\n function SignatureIndicatorSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(1)\n ], SignatureIndicatorSettings.prototype, \"opacity\", void 0);\n __decorate([\n Property('orange')\n ], SignatureIndicatorSettings.prototype, \"backgroundColor\", void 0);\n __decorate([\n Property(19)\n ], SignatureIndicatorSettings.prototype, \"width\", void 0);\n __decorate([\n Property(10)\n ], SignatureIndicatorSettings.prototype, \"height\", void 0);\n __decorate([\n Property(10)\n ], SignatureIndicatorSettings.prototype, \"fontSize\", void 0);\n __decorate([\n Property(null)\n ], SignatureIndicatorSettings.prototype, \"text\", void 0);\n __decorate([\n Property('black')\n ], SignatureIndicatorSettings.prototype, \"color\", void 0);\n return SignatureIndicatorSettings;\n}(ChildProperty));\nexport { SignatureIndicatorSettings };\n/**\n * The `SignatureDialogSettings` module is used to customize the signature dialog box.\n *\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the signature dialog settings.\n * viewer.signatureDialogSettings = {\n * displayMode: DisplayMode.Draw | DisplayMode.Text | DisplayMode.Upload,\n * hideSaveSignature: true\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar SignatureDialogSettings = /** @class */ (function (_super) {\n __extends(SignatureDialogSettings, _super);\n function SignatureDialogSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(DisplayMode.Draw | DisplayMode.Text | DisplayMode.Upload)\n ], SignatureDialogSettings.prototype, \"displayMode\", void 0);\n __decorate([\n Property(false)\n ], SignatureDialogSettings.prototype, \"hideSaveSignature\", void 0);\n return SignatureDialogSettings;\n}(ChildProperty));\nexport { SignatureDialogSettings };\n/**\n * The `ServerActionSettings` module is used to provide the server action methods of PDF viewer.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the server action settings.\n * viewer.serverActionSettings = {\n * load: \"Load\",\n * renderPages: \"RenderPdfPages\",\n * unload: \"Unload\",\n * download: \"Download\",\n * renderThumbnail: \"RenderThumbnailImages\",\n * print: \"PrintImages\",\n * renderComments: \"RenderAnnotationComments\",\n * importAnnotations: \"ImportAnnotations\",\n * exportAnnotations: \"ExportAnnotations\",\n * importFormFields: \"ImportFormFields\",\n * exportFormFields: \"ExportFormFields\",\n * renderTexts: \"RenderPdfTexts\"\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar ServerActionSettings = /** @class */ (function (_super) {\n __extends(ServerActionSettings, _super);\n function ServerActionSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('Load')\n ], ServerActionSettings.prototype, \"load\", void 0);\n __decorate([\n Property('Unload')\n ], ServerActionSettings.prototype, \"unload\", void 0);\n __decorate([\n Property('RenderPdfPages')\n ], ServerActionSettings.prototype, \"renderPages\", void 0);\n __decorate([\n Property('RenderPdfPages')\n ], ServerActionSettings.prototype, \"print\", void 0);\n __decorate([\n Property('Download')\n ], ServerActionSettings.prototype, \"download\", void 0);\n __decorate([\n Property('RenderThumbnailImages')\n ], ServerActionSettings.prototype, \"renderThumbnail\", void 0);\n __decorate([\n Property('RenderAnnotationComments')\n ], ServerActionSettings.prototype, \"renderComments\", void 0);\n __decorate([\n Property('ImportAnnotations')\n ], ServerActionSettings.prototype, \"importAnnotations\", void 0);\n __decorate([\n Property('ExportAnnotations')\n ], ServerActionSettings.prototype, \"exportAnnotations\", void 0);\n __decorate([\n Property('ImportFormFields')\n ], ServerActionSettings.prototype, \"importFormFields\", void 0);\n __decorate([\n Property('ExportFormFields')\n ], ServerActionSettings.prototype, \"exportFormFields\", void 0);\n __decorate([\n Property('RenderPdfTexts')\n ], ServerActionSettings.prototype, \"renderTexts\", void 0);\n return ServerActionSettings;\n}(ChildProperty));\nexport { ServerActionSettings };\n/**\n * The `StrikethroughSettings` module is used to provide the properties to Strikethrough annotation.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the strike through annotation settings.\n * viewer.strikethroughSettings = {\n * opacity: 1,\n * color: '#ff0000',\n * author: 'Guest',\n * annotationSelectorSettings: {\n * selectionBorderColor: '',\n * resizerBorderColor: 'black',\n * resizerFillColor: '#FF4081',\n * resizerSize: 8,\n * selectionBorderThickness: 1,\n * resizerShape: 'Square',\n * selectorLineDashArray: [],\n * resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges\n * },\n * isLock: false,\n * enableMultiPageAnnotation: false,\n * enableTextMarkupResizer: false,\n * allowedInteractions: ['None'],\n * isPrint: true\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar StrikethroughSettings = /** @class */ (function (_super) {\n __extends(StrikethroughSettings, _super);\n function StrikethroughSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(1)\n ], StrikethroughSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property(1)\n ], StrikethroughSettings.prototype, \"opacity\", void 0);\n __decorate([\n Property('#ff0000')\n ], StrikethroughSettings.prototype, \"color\", void 0);\n __decorate([\n Property('Guest')\n ], StrikethroughSettings.prototype, \"author\", void 0);\n __decorate([\n Property('')\n ], StrikethroughSettings.prototype, \"annotationSelectorSettings\", void 0);\n __decorate([\n Property(null)\n ], StrikethroughSettings.prototype, \"customData\", void 0);\n __decorate([\n Property(false)\n ], StrikethroughSettings.prototype, \"isLock\", void 0);\n __decorate([\n Property(false)\n ], StrikethroughSettings.prototype, \"enableMultiPageAnnotation\", void 0);\n __decorate([\n Property(false)\n ], StrikethroughSettings.prototype, \"enableTextMarkupResizer\", void 0);\n __decorate([\n Property(['None'])\n ], StrikethroughSettings.prototype, \"allowedInteractions\", void 0);\n __decorate([\n Property(true)\n ], StrikethroughSettings.prototype, \"isPrint\", void 0);\n return StrikethroughSettings;\n}(ChildProperty));\nexport { StrikethroughSettings };\n/**\n * The `UnderlineSettings` module is used to provide the properties to Underline annotation.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the underline annotation settings.\n * viewer.underlineSettings = {\n * opacity: 1,\n * color: '#9c2592',\n * author: 'Guest',\n * annotationSelectorSettings: {\n * selectionBorderColor: '',\n * resizerBorderColor: 'black',\n * resizerFillColor: '#FF4081',\n * resizerSize: 8,\n * selectionBorderThickness: 1,\n * resizerShape: 'Square',\n * selectorLineDashArray: [],\n * resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges\n * },\n * isLock: false,\n * enableMultiPageAnnotation: false,\n * enableTextMarkupResizer: false,\n * allowedInteractions: ['None'],\n * isPrint: true\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar UnderlineSettings = /** @class */ (function (_super) {\n __extends(UnderlineSettings, _super);\n function UnderlineSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(1)\n ], UnderlineSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property(1)\n ], UnderlineSettings.prototype, \"opacity\", void 0);\n __decorate([\n Property('#00ff00')\n ], UnderlineSettings.prototype, \"color\", void 0);\n __decorate([\n Property('Guest')\n ], UnderlineSettings.prototype, \"author\", void 0);\n __decorate([\n Property('')\n ], UnderlineSettings.prototype, \"annotationSelectorSettings\", void 0);\n __decorate([\n Property(null)\n ], UnderlineSettings.prototype, \"customData\", void 0);\n __decorate([\n Property(false)\n ], UnderlineSettings.prototype, \"isLock\", void 0);\n __decorate([\n Property(false)\n ], UnderlineSettings.prototype, \"enableMultiPageAnnotation\", void 0);\n __decorate([\n Property(false)\n ], UnderlineSettings.prototype, \"enableTextMarkupResizer\", void 0);\n __decorate([\n Property(['None'])\n ], UnderlineSettings.prototype, \"allowedInteractions\", void 0);\n __decorate([\n Property(true)\n ], UnderlineSettings.prototype, \"isPrint\", void 0);\n return UnderlineSettings;\n}(ChildProperty));\nexport { UnderlineSettings };\n/**\n * The `HighlightSettings` module is used to provide the properties to Highlight annotation.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the highlight annotation settings.\n * viewer.highlightSettings = {\n * opacity: 1,\n * color: '#ff0000',\n * author: 'Guest',\n * annotationSelectorSettings: {\n * selectionBorderColor: '',\n * resizerBorderColor: 'black',\n * resizerFillColor: '#FF4081',\n * resizerSize: 8,\n * selectionBorderThickness: 1,\n * resizerShape: 'Square',\n * selectorLineDashArray: [],\n * resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges\n * },\n * isLock: false,\n * enableMultiPageAnnotation: false,\n * enableTextMarkupResizer: false,\n * allowedInteractions: ['None'],\n * isPrint: true\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar HighlightSettings = /** @class */ (function (_super) {\n __extends(HighlightSettings, _super);\n function HighlightSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(1)\n ], HighlightSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property(1)\n ], HighlightSettings.prototype, \"opacity\", void 0);\n __decorate([\n Property('#ffff00')\n ], HighlightSettings.prototype, \"color\", void 0);\n __decorate([\n Property('Guest')\n ], HighlightSettings.prototype, \"author\", void 0);\n __decorate([\n Property('')\n ], HighlightSettings.prototype, \"annotationSelectorSettings\", void 0);\n __decorate([\n Property(null)\n ], HighlightSettings.prototype, \"customData\", void 0);\n __decorate([\n Property(false)\n ], HighlightSettings.prototype, \"isLock\", void 0);\n __decorate([\n Property(false)\n ], HighlightSettings.prototype, \"enableMultiPageAnnotation\", void 0);\n __decorate([\n Property(false)\n ], HighlightSettings.prototype, \"enableTextMarkupResizer\", void 0);\n __decorate([\n Property(['None'])\n ], HighlightSettings.prototype, \"allowedInteractions\", void 0);\n __decorate([\n Property(true)\n ], HighlightSettings.prototype, \"isPrint\", void 0);\n return HighlightSettings;\n}(ChildProperty));\nexport { HighlightSettings };\n/**\n * The `LineSettings` module is used to provide the properties to line annotation.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the line annotation settings.\n * viewer.lineSettings = {\n * opacity: 1,\n * color: '#9c2592',\n * author: 'Guest',\n * annotationSelectorSettings: {\n * selectionBorderColor: '',\n * resizerBorderColor: 'black',\n * resizerFillColor: '#FF4081',\n * resizerSize: 8,\n * selectionBorderThickness: 1,\n * resizerShape: 'Square',\n * selectorLineDashArray: [],\n * resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges\n * },\n * isLock: false,\n * enableMultiPageAnnotation: false,\n * enableTextMarkupResizer: false,\n * allowedInteractions: ['None'],\n * isPrint: true\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar LineSettings = /** @class */ (function (_super) {\n __extends(LineSettings, _super);\n function LineSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ x: 0, y: 0 })\n ], LineSettings.prototype, \"offset\", void 0);\n __decorate([\n Property(1)\n ], LineSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property(1)\n ], LineSettings.prototype, \"opacity\", void 0);\n __decorate([\n Property('#ffffff00')\n ], LineSettings.prototype, \"fillColor\", void 0);\n __decorate([\n Property('#ff0000')\n ], LineSettings.prototype, \"strokeColor\", void 0);\n __decorate([\n Property('Guest')\n ], LineSettings.prototype, \"author\", void 0);\n __decorate([\n Property('1')\n ], LineSettings.prototype, \"thickness\", void 0);\n __decorate([\n Property('None')\n ], LineSettings.prototype, \"lineHeadStartStyle\", void 0);\n __decorate([\n Property('None')\n ], LineSettings.prototype, \"lineHeadEndStyle\", void 0);\n __decorate([\n Property(0)\n ], LineSettings.prototype, \"borderDashArray\", void 0);\n __decorate([\n Property('')\n ], LineSettings.prototype, \"annotationSelectorSettings\", void 0);\n __decorate([\n Property(0)\n ], LineSettings.prototype, \"minHeight\", void 0);\n __decorate([\n Property(0)\n ], LineSettings.prototype, \"minWidth\", void 0);\n __decorate([\n Property(0)\n ], LineSettings.prototype, \"maxHeight\", void 0);\n __decorate([\n Property(0)\n ], LineSettings.prototype, \"maxWidth\", void 0);\n __decorate([\n Property(false)\n ], LineSettings.prototype, \"isLock\", void 0);\n __decorate([\n Property(null)\n ], LineSettings.prototype, \"customData\", void 0);\n __decorate([\n Property(['None'])\n ], LineSettings.prototype, \"allowedInteractions\", void 0);\n __decorate([\n Property(true)\n ], LineSettings.prototype, \"isPrint\", void 0);\n return LineSettings;\n}(ChildProperty));\nexport { LineSettings };\n/**\n * The `ArrowSettings` module is used to provide the properties to arrow annotation.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the arrow annotation settings.\n * viewer.arrowSettings = {\n * opacity: 1,\n * fillColor: '#9c2592',\n * strokeColor: '#ff0000',\n * author: 'Guest',\n * thickness: 1,\n * borderDashArray: 0,\n * lineHeadStartStyle: 'Closed',\n * lineHeadEndStyle: 'Closed',\n * annotationSelectorSettings: {\n * selectionBorderColor: '',\n * resizerBorderColor: 'black',\n * resizerFillColor: '#FF4081',\n * resizerSize: 8,\n * selectionBorderThickness: 1,\n * resizerShape: 'Square',\n * selectorLineDashArray: [],\n * resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges,\n * resizerCursorType: null\n * },\n * minHeight: 0,\n * minWidth: 0,\n * maxWidth: 0,\n * maxHeight: 0,\n * isLock: false,\n * allowedInteractions: ['None'],\n * isPrint: true\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar ArrowSettings = /** @class */ (function (_super) {\n __extends(ArrowSettings, _super);\n function ArrowSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ x: 0, y: 0 })\n ], ArrowSettings.prototype, \"offset\", void 0);\n __decorate([\n Property(1)\n ], ArrowSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property(1)\n ], ArrowSettings.prototype, \"opacity\", void 0);\n __decorate([\n Property('#ffffff00')\n ], ArrowSettings.prototype, \"fillColor\", void 0);\n __decorate([\n Property('#ff0000')\n ], ArrowSettings.prototype, \"strokeColor\", void 0);\n __decorate([\n Property('Guest')\n ], ArrowSettings.prototype, \"author\", void 0);\n __decorate([\n Property('1')\n ], ArrowSettings.prototype, \"thickness\", void 0);\n __decorate([\n Property('None')\n ], ArrowSettings.prototype, \"lineHeadStartStyle\", void 0);\n __decorate([\n Property('None')\n ], ArrowSettings.prototype, \"lineHeadEndStyle\", void 0);\n __decorate([\n Property(0)\n ], ArrowSettings.prototype, \"borderDashArray\", void 0);\n __decorate([\n Property('')\n ], ArrowSettings.prototype, \"annotationSelectorSettings\", void 0);\n __decorate([\n Property(0)\n ], ArrowSettings.prototype, \"minHeight\", void 0);\n __decorate([\n Property(0)\n ], ArrowSettings.prototype, \"minWidth\", void 0);\n __decorate([\n Property(0)\n ], ArrowSettings.prototype, \"maxHeight\", void 0);\n __decorate([\n Property(0)\n ], ArrowSettings.prototype, \"maxWidth\", void 0);\n __decorate([\n Property(false)\n ], ArrowSettings.prototype, \"isLock\", void 0);\n __decorate([\n Property(null)\n ], ArrowSettings.prototype, \"customData\", void 0);\n __decorate([\n Property(['None'])\n ], ArrowSettings.prototype, \"allowedInteractions\", void 0);\n __decorate([\n Property(true)\n ], ArrowSettings.prototype, \"isPrint\", void 0);\n return ArrowSettings;\n}(ChildProperty));\nexport { ArrowSettings };\n/**\n * The `RectangleSettings` module is used to provide the properties to rectangle annotation.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the rectangle annotation settings.\n * viewer.rectangleSettings = {\n * opacity: 1,\n * fillColor: '#9c2592',\n * strokeColor: '#ff0000',\n * author: 'Guest',\n * thickness: 1,\n * annotationSelectorSettings: {\n * selectionBorderColor: '',\n * resizerBorderColor: 'black',\n * resizerFillColor: '#FF4081',\n * resizerSize: 8,\n * selectionBorderThickness: 1,\n * resizerShape: 'Square',\n * selectorLineDashArray: [],\n * resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges,\n * resizerCursorType: null\n * },\n * minHeight: 0,\n * minWidth: 0,\n * maxWidth: 0,\n * maxHeight: 0,\n * isLock: false,\n * allowedInteractions: ['None'],\n * isPrint: true\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar RectangleSettings = /** @class */ (function (_super) {\n __extends(RectangleSettings, _super);\n function RectangleSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ x: 0, y: 0 })\n ], RectangleSettings.prototype, \"offset\", void 0);\n __decorate([\n Property(1)\n ], RectangleSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property(100)\n ], RectangleSettings.prototype, \"width\", void 0);\n __decorate([\n Property(50)\n ], RectangleSettings.prototype, \"height\", void 0);\n __decorate([\n Property(1)\n ], RectangleSettings.prototype, \"opacity\", void 0);\n __decorate([\n Property('#ffffff00')\n ], RectangleSettings.prototype, \"fillColor\", void 0);\n __decorate([\n Property('#ff0000')\n ], RectangleSettings.prototype, \"strokeColor\", void 0);\n __decorate([\n Property('Guest')\n ], RectangleSettings.prototype, \"author\", void 0);\n __decorate([\n Property('1')\n ], RectangleSettings.prototype, \"thickness\", void 0);\n __decorate([\n Property('')\n ], RectangleSettings.prototype, \"annotationSelectorSettings\", void 0);\n __decorate([\n Property(0)\n ], RectangleSettings.prototype, \"minHeight\", void 0);\n __decorate([\n Property(0)\n ], RectangleSettings.prototype, \"minWidth\", void 0);\n __decorate([\n Property(0)\n ], RectangleSettings.prototype, \"maxHeight\", void 0);\n __decorate([\n Property(0)\n ], RectangleSettings.prototype, \"maxWidth\", void 0);\n __decorate([\n Property(false)\n ], RectangleSettings.prototype, \"isLock\", void 0);\n __decorate([\n Property(null)\n ], RectangleSettings.prototype, \"customData\", void 0);\n __decorate([\n Property(['None'])\n ], RectangleSettings.prototype, \"allowedInteractions\", void 0);\n __decorate([\n Property(true)\n ], RectangleSettings.prototype, \"isPrint\", void 0);\n return RectangleSettings;\n}(ChildProperty));\nexport { RectangleSettings };\n/**\n * The `CircleSettings` module is used to provide the properties to circle annotation.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the circle annotation settings.\n * viewer.circleSettings = {\n * opacity: 1,\n * fillColor: '#9c2592',\n * strokeColor: '#ff0000',\n * author: 'Guest',\n * thickness: 1,\n * annotationSelectorSettings: {\n * selectionBorderColor: '',\n * resizerBorderColor: 'black',\n * resizerFillColor: '#FF4081',\n * resizerSize: 8,\n * selectionBorderThickness: 1,\n * resizerShape: 'Square',\n * selectorLineDashArray: [],\n * resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges,\n * resizerCursorType: null\n * },\n * minHeight: 0,\n * minWidth: 0,\n * maxWidth: 0,\n * maxHeight: 0,\n * isLock: false,\n * allowedInteractions: ['None'],\n * isPrint: true\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar CircleSettings = /** @class */ (function (_super) {\n __extends(CircleSettings, _super);\n function CircleSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ x: 0, y: 0 })\n ], CircleSettings.prototype, \"offset\", void 0);\n __decorate([\n Property(1)\n ], CircleSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property(100)\n ], CircleSettings.prototype, \"width\", void 0);\n __decorate([\n Property(100)\n ], CircleSettings.prototype, \"height\", void 0);\n __decorate([\n Property(1)\n ], CircleSettings.prototype, \"opacity\", void 0);\n __decorate([\n Property('#ffffff00')\n ], CircleSettings.prototype, \"fillColor\", void 0);\n __decorate([\n Property('#ff0000')\n ], CircleSettings.prototype, \"strokeColor\", void 0);\n __decorate([\n Property('Guest')\n ], CircleSettings.prototype, \"author\", void 0);\n __decorate([\n Property('1')\n ], CircleSettings.prototype, \"thickness\", void 0);\n __decorate([\n Property('')\n ], CircleSettings.prototype, \"annotationSelectorSettings\", void 0);\n __decorate([\n Property(0)\n ], CircleSettings.prototype, \"minHeight\", void 0);\n __decorate([\n Property(0)\n ], CircleSettings.prototype, \"minWidth\", void 0);\n __decorate([\n Property(0)\n ], CircleSettings.prototype, \"maxHeight\", void 0);\n __decorate([\n Property(0)\n ], CircleSettings.prototype, \"maxWidth\", void 0);\n __decorate([\n Property(false)\n ], CircleSettings.prototype, \"isLock\", void 0);\n __decorate([\n Property(null)\n ], CircleSettings.prototype, \"customData\", void 0);\n __decorate([\n Property(['None'])\n ], CircleSettings.prototype, \"allowedInteractions\", void 0);\n __decorate([\n Property(true)\n ], CircleSettings.prototype, \"isPrint\", void 0);\n return CircleSettings;\n}(ChildProperty));\nexport { CircleSettings };\n/**\n * The `ShapeLabelSettings` module is used to provide the properties to rectangle annotation.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the shape label settings.\n * viewer.shapeLabelSettings = {\n * opacity: 1,\n * fillColor: '#9c2592',\n * borderColor: '#ff0000',\n * fontColor: '#000',\n * fontSize: 16,\n * labelHeight: 24.6,\n * labelMaxWidth: 151,\n * labelContent: 'Label'\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar ShapeLabelSettings = /** @class */ (function (_super) {\n __extends(ShapeLabelSettings, _super);\n function ShapeLabelSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(1)\n ], ShapeLabelSettings.prototype, \"opacity\", void 0);\n __decorate([\n Property('#ffffff00')\n ], ShapeLabelSettings.prototype, \"fillColor\", void 0);\n __decorate([\n Property('#000')\n ], ShapeLabelSettings.prototype, \"fontColor\", void 0);\n __decorate([\n Property(16)\n ], ShapeLabelSettings.prototype, \"fontSize\", void 0);\n __decorate([\n Property('Helvetica')\n ], ShapeLabelSettings.prototype, \"fontFamily\", void 0);\n __decorate([\n Property('Label')\n ], ShapeLabelSettings.prototype, \"labelContent\", void 0);\n __decorate([\n Property('')\n ], ShapeLabelSettings.prototype, \"notes\", void 0);\n return ShapeLabelSettings;\n}(ChildProperty));\nexport { ShapeLabelSettings };\n/**\n * The `PolygonSettings` module is used to provide the properties to polygon annotation.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the polygon annotation settings.\n * viewer.polygonSettings = {\n * opacity: 1,\n * fillColor: '#4070FF',\n * strokeColor: '#ff0000',\n * author: 'Guest',\n * thickness: 1,\n * annotationSelectorSettings: {\n * selectionBorderColor: '',\n * resizerBorderColor: 'black',\n * resizerFillColor: '#FF4081',\n * resizerSize: 8,\n * selectionBorderThickness: 1,\n * resizerShape: 'Square',\n * selectorLineDashArray: [],\n * resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges,\n * resizerCursorType: null\n * },\n * minHeight: 0,\n * minWidth: 0,\n * maxWidth: 0,\n * maxHeight: 0,\n * isLock: false,\n * allowedInteractions: ['None'],\n * isPrint: true\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar PolygonSettings = /** @class */ (function (_super) {\n __extends(PolygonSettings, _super);\n function PolygonSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ x: 0, y: 0 })\n ], PolygonSettings.prototype, \"offset\", void 0);\n __decorate([\n Property(1)\n ], PolygonSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property(1)\n ], PolygonSettings.prototype, \"opacity\", void 0);\n __decorate([\n Property('#ffffff00')\n ], PolygonSettings.prototype, \"fillColor\", void 0);\n __decorate([\n Property('#ff0000')\n ], PolygonSettings.prototype, \"strokeColor\", void 0);\n __decorate([\n Property('Guest')\n ], PolygonSettings.prototype, \"author\", void 0);\n __decorate([\n Property('1')\n ], PolygonSettings.prototype, \"thickness\", void 0);\n __decorate([\n Property('')\n ], PolygonSettings.prototype, \"annotationSelectorSettings\", void 0);\n __decorate([\n Property(0)\n ], PolygonSettings.prototype, \"minHeight\", void 0);\n __decorate([\n Property(0)\n ], PolygonSettings.prototype, \"minWidth\", void 0);\n __decorate([\n Property(0)\n ], PolygonSettings.prototype, \"maxHeight\", void 0);\n __decorate([\n Property(0)\n ], PolygonSettings.prototype, \"maxWidth\", void 0);\n __decorate([\n Property(false)\n ], PolygonSettings.prototype, \"isLock\", void 0);\n __decorate([\n Property(null)\n ], PolygonSettings.prototype, \"customData\", void 0);\n __decorate([\n Property(['None'])\n ], PolygonSettings.prototype, \"allowedInteractions\", void 0);\n __decorate([\n Property(true)\n ], PolygonSettings.prototype, \"isPrint\", void 0);\n return PolygonSettings;\n}(ChildProperty));\nexport { PolygonSettings };\n/**\n * The `stampSettings` module is used to provide the properties to stamp annotation.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the stamp annotation settings.\n * viewer.stampSettings = {\n * opacity: 1,\n * author: 'Guest',\n * annotationSelectorSettings: {\n * selectionBorderColor: '',\n * resizerBorderColor: 'red',\n * resizerFillColor: '#FF4081',\n * resizerSize: 8,\n * selectionBorderThickness: 5,\n * resizerShape: 'Circle',\n * selectorLineDashArray: [],\n * resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges,\n * resizerCursorType: null\n * },\n * minHeight: 0,\n * minWidth: 0,\n * maxWidth: 0,\n * maxHeight: 0,\n * isLock: false,\n * dynamicStamps: [\n * DynamicStampItem.Revised,\n * DynamicStampItem.Reviewed,\n * DynamicStampItem.Received,\n * DynamicStampItem.Confidential,\n * DynamicStampItem.Approved,\n * DynamicStampItem.NotApproved\n * ],\n * signStamps: [\n * SignStampItem.Witness,\n * SignStampItem.InitialHere,\n * SignStampItem.SignHere,\n * SignStampItem.Accepted,\n * SignStampItem.Rejected\n * ],\n * standardBusinessStamps: [\n * StandardBusinessStampItem.Approved,\n * StandardBusinessStampItem.NotApproved,\n * StandardBusinessStampItem.Draft,\n * StandardBusinessStampItem.Final,\n * StandardBusinessStampItem.Completed,\n * StandardBusinessStampItem.Confidential,\n * StandardBusinessStampItem.ForPublicRelease,\n * StandardBusinessStampItem.NotForPublicRelease,\n * StandardBusinessStampItem.ForComment,\n * StandardBusinessStampItem.Void,\n * StandardBusinessStampItem.PreliminaryResults,\n * StandardBusinessStampItem.InformationOnly\n * ],\n * allowedInteractions: ['None'],\n * isPrint: true\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar StampSettings = /** @class */ (function (_super) {\n __extends(StampSettings, _super);\n function StampSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ x: 0, y: 0 })\n ], StampSettings.prototype, \"offset\", void 0);\n __decorate([\n Property(1)\n ], StampSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property(150)\n ], StampSettings.prototype, \"width\", void 0);\n __decorate([\n Property(50)\n ], StampSettings.prototype, \"height\", void 0);\n __decorate([\n Property(1)\n ], StampSettings.prototype, \"opacity\", void 0);\n __decorate([\n Property('Guest')\n ], StampSettings.prototype, \"author\", void 0);\n __decorate([\n Property('')\n ], StampSettings.prototype, \"annotationSelectorSettings\", void 0);\n __decorate([\n Property(0)\n ], StampSettings.prototype, \"minHeight\", void 0);\n __decorate([\n Property(0)\n ], StampSettings.prototype, \"minWidth\", void 0);\n __decorate([\n Property(0)\n ], StampSettings.prototype, \"maxHeight\", void 0);\n __decorate([\n Property(0)\n ], StampSettings.prototype, \"maxWidth\", void 0);\n __decorate([\n Property(false)\n ], StampSettings.prototype, \"isLock\", void 0);\n __decorate([\n Property(null)\n ], StampSettings.prototype, \"customData\", void 0);\n __decorate([\n Property([])\n ], StampSettings.prototype, \"dynamicStamps\", void 0);\n __decorate([\n Property([])\n ], StampSettings.prototype, \"signStamps\", void 0);\n __decorate([\n Property([])\n ], StampSettings.prototype, \"standardBusinessStamps\", void 0);\n __decorate([\n Property(['None'])\n ], StampSettings.prototype, \"allowedInteractions\", void 0);\n __decorate([\n Property(true)\n ], StampSettings.prototype, \"isPrint\", void 0);\n return StampSettings;\n}(ChildProperty));\nexport { StampSettings };\n/**\n * The `CustomStampSettings` module is used to provide the properties to customstamp annotation.\n *\n * ```html\n *
    \n * ```\n * ```ts\n *\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the custom stamp annotation settings.\n * viewer.customStampSettings = {\n * opacity: 1,\n * author: 'Guest',\n * width: 0,\n * height: 0,\n * left: 0,\n * top: 0,\n * minHeight: 0,\n * minWidth: 0,\n * maxWidth: 0,\n * maxHeight: 0,\n * isLock: false,\n * enableCustomStamp: true,\n * allowedInteractions: ['None'],\n * isPrint: true\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar CustomStampSettings = /** @class */ (function (_super) {\n __extends(CustomStampSettings, _super);\n function CustomStampSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ x: 0, y: 0 })\n ], CustomStampSettings.prototype, \"offset\", void 0);\n __decorate([\n Property(1)\n ], CustomStampSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property(1)\n ], CustomStampSettings.prototype, \"opacity\", void 0);\n __decorate([\n Property('Guest')\n ], CustomStampSettings.prototype, \"author\", void 0);\n __decorate([\n Property(0)\n ], CustomStampSettings.prototype, \"width\", void 0);\n __decorate([\n Property(0)\n ], CustomStampSettings.prototype, \"height\", void 0);\n __decorate([\n Property(0)\n ], CustomStampSettings.prototype, \"left\", void 0);\n __decorate([\n Property(0)\n ], CustomStampSettings.prototype, \"top\", void 0);\n __decorate([\n Property(false)\n ], CustomStampSettings.prototype, \"isAddToMenu\", void 0);\n __decorate([\n Property(0)\n ], CustomStampSettings.prototype, \"minHeight\", void 0);\n __decorate([\n Property(0)\n ], CustomStampSettings.prototype, \"minWidth\", void 0);\n __decorate([\n Property(0)\n ], CustomStampSettings.prototype, \"maxHeight\", void 0);\n __decorate([\n Property(0)\n ], CustomStampSettings.prototype, \"maxWidth\", void 0);\n __decorate([\n Property(false)\n ], CustomStampSettings.prototype, \"isLock\", void 0);\n __decorate([\n Property('')\n ], CustomStampSettings.prototype, \"customStamps\", void 0);\n __decorate([\n Property(true)\n ], CustomStampSettings.prototype, \"enableCustomStamp\", void 0);\n __decorate([\n Property(['None'])\n ], CustomStampSettings.prototype, \"allowedInteractions\", void 0);\n __decorate([\n Property(true)\n ], CustomStampSettings.prototype, \"isPrint\", void 0);\n return CustomStampSettings;\n}(ChildProperty));\nexport { CustomStampSettings };\n/**\n * The `DistanceSettings` module is used to provide the properties to distance calibrate annotation.\n *\n * ```html\n *
    \n * ```\n * ```ts\n *\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the distance annotation settings.\n * viewer.distanceSettings = {\n * opacity: 1,\n * fillColor: '#4070FF',\n * strokeColor: '#ff0000',\n * author: 'Guest',\n * thickness: 1,\n * borderDashArray: 0,\n * lineHeadStartStyle: 'Closed',\n * lineHeadEndStyle: 'Closed',\n * annotationSelectorSettings: {\n * selectionBorderColor: '',\n * resizerBorderColor: 'black',\n * resizerFillColor: '#FF4081',\n * resizerSize: 8,\n * selectionBorderThickness: 1,\n * resizerShape: 'Square',\n * selectorLineDashArray: [],\n * resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges,\n * resizerCursorType: null\n * },\n * minHeight: 0,\n * minWidth: 0,\n * maxWidth: 0,\n * maxHeight: 0,\n * isLock: false,\n * leaderLength: 40,\n * resizeCursorType: CursorType.move,\n * allowedInteractions: ['None'],\n * isPrint: true\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar DistanceSettings = /** @class */ (function (_super) {\n __extends(DistanceSettings, _super);\n function DistanceSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ x: 0, y: 0 })\n ], DistanceSettings.prototype, \"offset\", void 0);\n __decorate([\n Property(1)\n ], DistanceSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property(1)\n ], DistanceSettings.prototype, \"opacity\", void 0);\n __decorate([\n Property('#ff0000')\n ], DistanceSettings.prototype, \"fillColor\", void 0);\n __decorate([\n Property('#ff0000')\n ], DistanceSettings.prototype, \"strokeColor\", void 0);\n __decorate([\n Property('Guest')\n ], DistanceSettings.prototype, \"author\", void 0);\n __decorate([\n Property('1')\n ], DistanceSettings.prototype, \"thickness\", void 0);\n __decorate([\n Property('None')\n ], DistanceSettings.prototype, \"lineHeadStartStyle\", void 0);\n __decorate([\n Property('None')\n ], DistanceSettings.prototype, \"lineHeadEndStyle\", void 0);\n __decorate([\n Property(0)\n ], DistanceSettings.prototype, \"borderDashArray\", void 0);\n __decorate([\n Property('')\n ], DistanceSettings.prototype, \"annotationSelectorSettings\", void 0);\n __decorate([\n Property(0)\n ], DistanceSettings.prototype, \"minHeight\", void 0);\n __decorate([\n Property(0)\n ], DistanceSettings.prototype, \"minWidth\", void 0);\n __decorate([\n Property(0)\n ], DistanceSettings.prototype, \"maxHeight\", void 0);\n __decorate([\n Property(0)\n ], DistanceSettings.prototype, \"maxWidth\", void 0);\n __decorate([\n Property(false)\n ], DistanceSettings.prototype, \"isLock\", void 0);\n __decorate([\n Property(null)\n ], DistanceSettings.prototype, \"customData\", void 0);\n __decorate([\n Property(40)\n ], DistanceSettings.prototype, \"leaderLength\", void 0);\n __decorate([\n Property(CursorType.move)\n ], DistanceSettings.prototype, \"resizeCursorType\", void 0);\n __decorate([\n Property(['None'])\n ], DistanceSettings.prototype, \"allowedInteractions\", void 0);\n __decorate([\n Property(true)\n ], DistanceSettings.prototype, \"isPrint\", void 0);\n return DistanceSettings;\n}(ChildProperty));\nexport { DistanceSettings };\n/**\n * The `PerimeterSettings` module is used to provide the properties to perimeter calibrate annotation.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the perimeter annotation settings.\n * viewer.perimeterSettings = {\n * opacity: 1,\n * fillColor: '#4070FF',\n * strokeColor: '#ff0000',\n * author: 'Guest',\n * thickness: 1,\n * borderDashArray: 0,\n * lineHeadStartStyle: 'Open',\n * lineHeadEndStyle: 'Open',\n * minHeight: 0, minWidth: 0,\n * maxWidth: 0,\n * maxHeight: 0,\n * isLock: false,\n * annotationSelectorSettings: {\n * selectionBorderColor: '',\n * resizerBorderColor: 'black',\n * resizerFillColor: '#4070FF',\n * resizerSize: 8,\n * selectionBorderThickness: 1,\n * resizerShape: 'Circle',\n * selectorLineDashArray: [],\n * resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges,\n * resizerCursorType: null\n * },\n * allowedInteractions: ['None'],\n * isPrint: true\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar PerimeterSettings = /** @class */ (function (_super) {\n __extends(PerimeterSettings, _super);\n function PerimeterSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ x: 0, y: 0 })\n ], PerimeterSettings.prototype, \"offset\", void 0);\n __decorate([\n Property(1)\n ], PerimeterSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property(1)\n ], PerimeterSettings.prototype, \"opacity\", void 0);\n __decorate([\n Property('#ffffff00')\n ], PerimeterSettings.prototype, \"fillColor\", void 0);\n __decorate([\n Property('#ff0000')\n ], PerimeterSettings.prototype, \"strokeColor\", void 0);\n __decorate([\n Property('Guest')\n ], PerimeterSettings.prototype, \"author\", void 0);\n __decorate([\n Property('1')\n ], PerimeterSettings.prototype, \"thickness\", void 0);\n __decorate([\n Property('None')\n ], PerimeterSettings.prototype, \"lineHeadStartStyle\", void 0);\n __decorate([\n Property('None')\n ], PerimeterSettings.prototype, \"lineHeadEndStyle\", void 0);\n __decorate([\n Property(0)\n ], PerimeterSettings.prototype, \"borderDashArray\", void 0);\n __decorate([\n Property(0)\n ], PerimeterSettings.prototype, \"minHeight\", void 0);\n __decorate([\n Property(0)\n ], PerimeterSettings.prototype, \"minWidth\", void 0);\n __decorate([\n Property(0)\n ], PerimeterSettings.prototype, \"maxHeight\", void 0);\n __decorate([\n Property(0)\n ], PerimeterSettings.prototype, \"maxWidth\", void 0);\n __decorate([\n Property(false)\n ], PerimeterSettings.prototype, \"isLock\", void 0);\n __decorate([\n Property('')\n ], PerimeterSettings.prototype, \"annotationSelectorSettings\", void 0);\n __decorate([\n Property(['None'])\n ], PerimeterSettings.prototype, \"allowedInteractions\", void 0);\n __decorate([\n Property(true)\n ], PerimeterSettings.prototype, \"isPrint\", void 0);\n return PerimeterSettings;\n}(ChildProperty));\nexport { PerimeterSettings };\n/**\n * The `AreaSettings` module is used to provide the properties to area calibrate annotation.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the area annotation settings.\n * viewer.areaSettings = {\n * opacity: 1,\n * fillColor: '#4070FF',\n * strokeColor: '#ff0000',\n * author: 'Guest',\n * thickness: 1,\n * minHeight: 0,\n * minWidth: 0,\n * maxWidth: 0,\n * maxHeight: 0,\n * isLock: false,\n * annotationSelectorSettings: {\n * selectionBorderColor: '',\n * resizerBorderColor: 'black',\n * resizerFillColor: '#4070FF',\n * resizerSize: 8,\n * selectionBorderThickness: 1,\n * resizerShape: 'Circle',\n * selectorLineDashArray: [],\n * resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges,\n * resizerCursorType: null\n * },\n * allowedInteractions: ['None'],\n * isPrint: true\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar AreaSettings = /** @class */ (function (_super) {\n __extends(AreaSettings, _super);\n function AreaSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ x: 0, y: 0 })\n ], AreaSettings.prototype, \"offset\", void 0);\n __decorate([\n Property(1)\n ], AreaSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property(1)\n ], AreaSettings.prototype, \"opacity\", void 0);\n __decorate([\n Property('#ffffff00')\n ], AreaSettings.prototype, \"fillColor\", void 0);\n __decorate([\n Property('#ff0000')\n ], AreaSettings.prototype, \"strokeColor\", void 0);\n __decorate([\n Property('Guest')\n ], AreaSettings.prototype, \"author\", void 0);\n __decorate([\n Property('1')\n ], AreaSettings.prototype, \"thickness\", void 0);\n __decorate([\n Property(0)\n ], AreaSettings.prototype, \"minHeight\", void 0);\n __decorate([\n Property(0)\n ], AreaSettings.prototype, \"minWidth\", void 0);\n __decorate([\n Property(0)\n ], AreaSettings.prototype, \"maxHeight\", void 0);\n __decorate([\n Property(0)\n ], AreaSettings.prototype, \"maxWidth\", void 0);\n __decorate([\n Property(false)\n ], AreaSettings.prototype, \"isLock\", void 0);\n __decorate([\n Property('')\n ], AreaSettings.prototype, \"annotationSelectorSettings\", void 0);\n __decorate([\n Property(['None'])\n ], AreaSettings.prototype, \"allowedInteractions\", void 0);\n __decorate([\n Property(true)\n ], AreaSettings.prototype, \"isPrint\", void 0);\n return AreaSettings;\n}(ChildProperty));\nexport { AreaSettings };\n/**\n * The `RadiusSettings` module is used to provide the properties to radius calibrate annotation.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the radius annotation settings.\n * viewer.radiusSettings = {\n * opacity: 1,\n * fillColor: '#4070FF',\n * strokeColor: '#ff0000',\n * author: 'Guest',\n * thickness: 1,\n * annotationSelectorSettings: {\n * selectionBorderColor: '',\n * resizerBorderColor: 'red',\n * resizerFillColor: '#4070FF',\n * resizerSize: 8,\n * selectionBorderThickness: 1,\n * resizerShape: 'Circle',\n * selectorLineDashArray: [],\n * resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges,\n * resizerCursorType: null\n * },\n * minHeight: 0,\n * minWidth: 0,\n * maxWidth: 0,\n * maxHeight: 0,\n * isLock: false,\n * allowedInteractions: ['None'],\n * isPrint: true\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar RadiusSettings = /** @class */ (function (_super) {\n __extends(RadiusSettings, _super);\n function RadiusSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ x: 0, y: 0 })\n ], RadiusSettings.prototype, \"offset\", void 0);\n __decorate([\n Property(1)\n ], RadiusSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property(100)\n ], RadiusSettings.prototype, \"width\", void 0);\n __decorate([\n Property(90)\n ], RadiusSettings.prototype, \"height\", void 0);\n __decorate([\n Property(1)\n ], RadiusSettings.prototype, \"opacity\", void 0);\n __decorate([\n Property('#ffffff00')\n ], RadiusSettings.prototype, \"fillColor\", void 0);\n __decorate([\n Property('#ff0000')\n ], RadiusSettings.prototype, \"strokeColor\", void 0);\n __decorate([\n Property('Guest')\n ], RadiusSettings.prototype, \"author\", void 0);\n __decorate([\n Property('1')\n ], RadiusSettings.prototype, \"thickness\", void 0);\n __decorate([\n Property('')\n ], RadiusSettings.prototype, \"annotationSelectorSettings\", void 0);\n __decorate([\n Property(0)\n ], RadiusSettings.prototype, \"minHeight\", void 0);\n __decorate([\n Property(0)\n ], RadiusSettings.prototype, \"minWidth\", void 0);\n __decorate([\n Property(0)\n ], RadiusSettings.prototype, \"maxHeight\", void 0);\n __decorate([\n Property(0)\n ], RadiusSettings.prototype, \"maxWidth\", void 0);\n __decorate([\n Property(false)\n ], RadiusSettings.prototype, \"isLock\", void 0);\n __decorate([\n Property(null)\n ], RadiusSettings.prototype, \"customData\", void 0);\n __decorate([\n Property(['None'])\n ], RadiusSettings.prototype, \"allowedInteractions\", void 0);\n __decorate([\n Property(true)\n ], RadiusSettings.prototype, \"isPrint\", void 0);\n return RadiusSettings;\n}(ChildProperty));\nexport { RadiusSettings };\n/**\n * The `VolumeSettings` module is used to provide the properties to volume calibrate annotation.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the volume annotation settings.\n * viewer.volumeSettings = {\n * opacity: 1,\n * fillColor: '#4070FF',\n * strokeColor: '#ff0000',\n * author: 'Guest',\n * thickness: 1,\n * minHeight: 0,\n * minWidth: 0,\n * maxWidth: 0,\n * maxHeight: 0,\n * isLock: false,\n * annotationSelectorSettings: {\n * selectionBorderColor: '',\n * resizerBorderColor: 'black',\n * resizerFillColor: '#4070FF',\n * resizerSize: 8,\n * selectionBorderThickness: 1,\n * resizerShape: 'Circle',\n * selectorLineDashArray: [],\n * resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges,\n * resizerCursorType: null\n * },\n * allowedInteractions: ['None'],\n * isPrint: true\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar VolumeSettings = /** @class */ (function (_super) {\n __extends(VolumeSettings, _super);\n function VolumeSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ x: 0, y: 0 })\n ], VolumeSettings.prototype, \"offset\", void 0);\n __decorate([\n Property(1)\n ], VolumeSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property(1)\n ], VolumeSettings.prototype, \"opacity\", void 0);\n __decorate([\n Property('#ffffff00')\n ], VolumeSettings.prototype, \"fillColor\", void 0);\n __decorate([\n Property('#ff0000')\n ], VolumeSettings.prototype, \"strokeColor\", void 0);\n __decorate([\n Property('Guest')\n ], VolumeSettings.prototype, \"author\", void 0);\n __decorate([\n Property('1')\n ], VolumeSettings.prototype, \"thickness\", void 0);\n __decorate([\n Property(0)\n ], VolumeSettings.prototype, \"minHeight\", void 0);\n __decorate([\n Property(0)\n ], VolumeSettings.prototype, \"minWidth\", void 0);\n __decorate([\n Property(0)\n ], VolumeSettings.prototype, \"maxHeight\", void 0);\n __decorate([\n Property(0)\n ], VolumeSettings.prototype, \"maxWidth\", void 0);\n __decorate([\n Property(false)\n ], VolumeSettings.prototype, \"isLock\", void 0);\n __decorate([\n Property('')\n ], VolumeSettings.prototype, \"annotationSelectorSettings\", void 0);\n __decorate([\n Property(['None'])\n ], VolumeSettings.prototype, \"allowedInteractions\", void 0);\n __decorate([\n Property(true)\n ], VolumeSettings.prototype, \"isPrint\", void 0);\n return VolumeSettings;\n}(ChildProperty));\nexport { VolumeSettings };\n/**\n * The `Ink` module is used to provide the properties to Ink annotation.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the ink annotation settings.\n * viewer.inkAnnotationSettings = {\n * author: 'Guest',\n * opacity: 1,\n * strokeColor: '#ff0000',\n * thickness: 1,\n * annotationSelectorSettings: {\n * selectionBorderColor: '',\n * resizerBorderColor: 'black',\n * resizerFillColor: '#FF4081',\n * resizerSize: 8,\n * selectionBorderThickness: 1,\n * resizerShape: 'Circle',\n * selectorLineDashArray: [],\n * resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges,\n * resizerCursorType: null\n * },\n * isLock: false,\n * allowedInteractions: ['None'],\n * isPrint: true\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar InkAnnotationSettings = /** @class */ (function (_super) {\n __extends(InkAnnotationSettings, _super);\n function InkAnnotationSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ x: 0, y: 0 })\n ], InkAnnotationSettings.prototype, \"offset\", void 0);\n __decorate([\n Property(1)\n ], InkAnnotationSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property(0)\n ], InkAnnotationSettings.prototype, \"width\", void 0);\n __decorate([\n Property(0)\n ], InkAnnotationSettings.prototype, \"height\", void 0);\n __decorate([\n Property(0)\n ], InkAnnotationSettings.prototype, \"path\", void 0);\n __decorate([\n Property(1)\n ], InkAnnotationSettings.prototype, \"opacity\", void 0);\n __decorate([\n Property('#ff0000')\n ], InkAnnotationSettings.prototype, \"strokeColor\", void 0);\n __decorate([\n Property(1)\n ], InkAnnotationSettings.prototype, \"thickness\", void 0);\n __decorate([\n Property('')\n ], InkAnnotationSettings.prototype, \"annotationSelectorSettings\", void 0);\n __decorate([\n Property(false)\n ], InkAnnotationSettings.prototype, \"isLock\", void 0);\n __decorate([\n Property('Guest')\n ], InkAnnotationSettings.prototype, \"author\", void 0);\n __decorate([\n Property(['None'])\n ], InkAnnotationSettings.prototype, \"allowedInteractions\", void 0);\n __decorate([\n Property(null)\n ], InkAnnotationSettings.prototype, \"customData\", void 0);\n __decorate([\n Property(true)\n ], InkAnnotationSettings.prototype, \"isPrint\", void 0);\n return InkAnnotationSettings;\n}(ChildProperty));\nexport { InkAnnotationSettings };\n/**\n * The `stickyNotesSettings` module is used to provide the properties to sticky notes annotation.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the sticky notes annotation settings.\n * viewer.stickyNotesSettings = {\n * author: 'Guest',\n * opacity: 1,\n * annotationSelectorSettings: {\n * selectionBorderColor: '',\n * resizerBorderColor: 'red',\n * resizerFillColor: '#4070FF',\n * resizerSize: 8,\n * selectionBorderThickness: 1,\n * resizerShape: 'Circle',\n * selectorLineDashArray: [],\n * resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges,\n * resizerCursorType: null\n * },\n * isLock: false,\n * allowedInteractions: ['None'],\n * isPrint: true\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar StickyNotesSettings = /** @class */ (function (_super) {\n __extends(StickyNotesSettings, _super);\n function StickyNotesSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ x: 0, y: 0 })\n ], StickyNotesSettings.prototype, \"offset\", void 0);\n __decorate([\n Property(1)\n ], StickyNotesSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property('Guest')\n ], StickyNotesSettings.prototype, \"author\", void 0);\n __decorate([\n Property(1)\n ], StickyNotesSettings.prototype, \"opacity\", void 0);\n __decorate([\n Property('')\n ], StickyNotesSettings.prototype, \"annotationSelectorSettings\", void 0);\n __decorate([\n Property(null)\n ], StickyNotesSettings.prototype, \"customData\", void 0);\n __decorate([\n Property(false)\n ], StickyNotesSettings.prototype, \"isLock\", void 0);\n __decorate([\n Property(['None'])\n ], StickyNotesSettings.prototype, \"allowedInteractions\", void 0);\n __decorate([\n Property(true)\n ], StickyNotesSettings.prototype, \"isPrint\", void 0);\n return StickyNotesSettings;\n}(ChildProperty));\nexport { StickyNotesSettings };\n/**\n * The `MeasurementSettings` module is used to provide the settings to measurement annotations.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the measurement annotation settings.\n * viewer.measurementSettings = {\n * conversionUnit: 'cm',\n * displayUnit: 'cm',\n * scaleRatio: 1,\n * depth: 96\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar MeasurementSettings = /** @class */ (function (_super) {\n __extends(MeasurementSettings, _super);\n function MeasurementSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(1)\n ], MeasurementSettings.prototype, \"scaleRatio\", void 0);\n __decorate([\n Property('in')\n ], MeasurementSettings.prototype, \"conversionUnit\", void 0);\n __decorate([\n Property('in')\n ], MeasurementSettings.prototype, \"displayUnit\", void 0);\n __decorate([\n Property(96)\n ], MeasurementSettings.prototype, \"depth\", void 0);\n return MeasurementSettings;\n}(ChildProperty));\nexport { MeasurementSettings };\n/**\n * The `FreeTextSettings` module is used to provide the properties to free text annotation.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the free text annotation settings.\n * viewer.freeTextSettings = {\n * opacity: 1,\n * fillColor: '#4070FF',\n * borderColor: '#4070FF',\n * author: 'Guest',\n * borderWidth: 1,\n * width: 151,\n * fontSize: 16,\n * height: 24.6,\n * fontColor: '#000',\n * fontFamily: 'Courier',\n * defaultText: 'Type Here',\n * textAlignment: 'Right',\n * fontStyle: FontStyle.Italic,\n * allowTextOnly: false,\n * annotationSelectorSettings: {\n * selectionBorderColor: '',\n * resizerBorderColor: 'black',\n * resizerFillColor: '#FF4081',\n * resizerSize: 8,\n * selectionBorderThickness: 1,\n * resizerShape: 'Circle',\n * selectorLineDashArray: [],\n * resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges,\n * resizerCursorType: null\n * },\n * minHeight: 0,\n * minWidth: 0,\n * maxWidth: 0,\n * maxHeight: 0,\n * isLock: false,\n * allowedInteractions: ['None'],\n * isPrint: true,\n * isReadonly: false,\n * enableAutoFit: false\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar FreeTextSettings = /** @class */ (function (_super) {\n __extends(FreeTextSettings, _super);\n function FreeTextSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ x: 0, y: 0 })\n ], FreeTextSettings.prototype, \"offset\", void 0);\n __decorate([\n Property(1)\n ], FreeTextSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property(1)\n ], FreeTextSettings.prototype, \"opacity\", void 0);\n __decorate([\n Property('#ffffff00')\n ], FreeTextSettings.prototype, \"borderColor\", void 0);\n __decorate([\n Property(1)\n ], FreeTextSettings.prototype, \"borderWidth\", void 0);\n __decorate([\n Property('solid')\n ], FreeTextSettings.prototype, \"borderStyle\", void 0);\n __decorate([\n Property('Guest')\n ], FreeTextSettings.prototype, \"author\", void 0);\n __decorate([\n Property('#ffffff00')\n ], FreeTextSettings.prototype, \"fillColor\", void 0);\n __decorate([\n Property(16)\n ], FreeTextSettings.prototype, \"fontSize\", void 0);\n __decorate([\n Property(151)\n ], FreeTextSettings.prototype, \"width\", void 0);\n __decorate([\n Property(24.6)\n ], FreeTextSettings.prototype, \"height\", void 0);\n __decorate([\n Property('#000')\n ], FreeTextSettings.prototype, \"fontColor\", void 0);\n __decorate([\n Property('Helvetica')\n ], FreeTextSettings.prototype, \"fontFamily\", void 0);\n __decorate([\n Property('TypeHere')\n ], FreeTextSettings.prototype, \"defaultText\", void 0);\n __decorate([\n Property('None')\n ], FreeTextSettings.prototype, \"fontStyle\", void 0);\n __decorate([\n Property('Left')\n ], FreeTextSettings.prototype, \"textAlignment\", void 0);\n __decorate([\n Property(false)\n ], FreeTextSettings.prototype, \"allowEditTextOnly\", void 0);\n __decorate([\n Property('')\n ], FreeTextSettings.prototype, \"annotationSelectorSettings\", void 0);\n __decorate([\n Property(0)\n ], FreeTextSettings.prototype, \"minHeight\", void 0);\n __decorate([\n Property(0)\n ], FreeTextSettings.prototype, \"minWidth\", void 0);\n __decorate([\n Property(0)\n ], FreeTextSettings.prototype, \"maxHeight\", void 0);\n __decorate([\n Property(0)\n ], FreeTextSettings.prototype, \"maxWidth\", void 0);\n __decorate([\n Property(false)\n ], FreeTextSettings.prototype, \"isLock\", void 0);\n __decorate([\n Property(null)\n ], FreeTextSettings.prototype, \"customData\", void 0);\n __decorate([\n Property(['None'])\n ], FreeTextSettings.prototype, \"allowedInteractions\", void 0);\n __decorate([\n Property(true)\n ], FreeTextSettings.prototype, \"isPrint\", void 0);\n __decorate([\n Property(false)\n ], FreeTextSettings.prototype, \"isReadonly\", void 0);\n __decorate([\n Property(false)\n ], FreeTextSettings.prototype, \"enableAutoFit\", void 0);\n return FreeTextSettings;\n}(ChildProperty));\nexport { FreeTextSettings };\n/**\n * The `AnnotationSelectorSettings` module is used to provide the properties to annotation selectors.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the annotation selector settings.\n * viewer.annotationSelectorSettings = {\n * selectionBorderColor: '',\n * resizerBorderColor: 'Circle',\n * resizerFillColor: '#4070FF',\n * resizerSize: 8,\n * selectionBorderThickness: 1,\n * resizerShape: 'Square',\n * selectorLineDashArray: [],\n * resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges,\n * resizerCursorType: null\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar AnnotationSelectorSettings = /** @class */ (function (_super) {\n __extends(AnnotationSelectorSettings, _super);\n function AnnotationSelectorSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], AnnotationSelectorSettings.prototype, \"selectionBorderColor\", void 0);\n __decorate([\n Property('black')\n ], AnnotationSelectorSettings.prototype, \"resizerBorderColor\", void 0);\n __decorate([\n Property('#FF4081')\n ], AnnotationSelectorSettings.prototype, \"resizerFillColor\", void 0);\n __decorate([\n Property(8)\n ], AnnotationSelectorSettings.prototype, \"resizerSize\", void 0);\n __decorate([\n Property(1)\n ], AnnotationSelectorSettings.prototype, \"selectionBorderThickness\", void 0);\n __decorate([\n Property('Square')\n ], AnnotationSelectorSettings.prototype, \"resizerShape\", void 0);\n __decorate([\n Property('')\n ], AnnotationSelectorSettings.prototype, \"selectorLineDashArray\", void 0);\n __decorate([\n Property(AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges)\n ], AnnotationSelectorSettings.prototype, \"resizerLocation\", void 0);\n __decorate([\n Property(null)\n ], AnnotationSelectorSettings.prototype, \"resizerCursorType\", void 0);\n return AnnotationSelectorSettings;\n}(ChildProperty));\nexport { AnnotationSelectorSettings };\n/**\n * The `TextSearchColorSettings` module is used to set the settings for the color of the text search highlight.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the text search color settings.\n * viewer.textSearchColorSettings = {\n * searchHighlightColor: '#4070FF',\n * searchColor: '#FF4081'\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar TextSearchColorSettings = /** @class */ (function (_super) {\n __extends(TextSearchColorSettings, _super);\n function TextSearchColorSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('#fdd835')\n ], TextSearchColorSettings.prototype, \"searchHighlightColor\", void 0);\n __decorate([\n Property('#8b4c12')\n ], TextSearchColorSettings.prototype, \"searchColor\", void 0);\n return TextSearchColorSettings;\n}(ChildProperty));\nexport { TextSearchColorSettings };\n/**\n * The `HandWrittenSignatureSettings` module is used to provide the properties to handwritten signature.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the hand written signature settings.\n * viewer.handWrittenSignatureSettings = {\n * signatureItem: [\n * 'Signature',\n * 'Initial'\n * ],\n * saveSignatureLimit: 1,\n * saveInitialLimit: 1,\n * opacity: 1,\n * strokeColor: '#000000',\n * width: 150,\n * height: 100,\n * thickness: 1,\n * annotationSelectorSettings: {\n * selectionBorderColor: '',\n * resizerBorderColor: 'black',\n * resizerFillColor: '#FF4081',\n * resizerSize: 8,\n * selectionBorderThickness: 1,\n * resizerShape: 'Circle',\n * selectorLineDashArray: [],\n * resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges,\n * resizerCursorType: null\n * },\n * allowedInteractions: ['None'],\n * signatureDialogSettings: {\n * displayMode: DisplayMode.Draw | DisplayMode.Text | DisplayMode.Upload, hideSaveSignature: false\n * },\n * initialDialogSettings: {\n * displayMode: DisplayMode.Draw | DisplayMode.Text | DisplayMode.Upload,\n * hideSaveSignature: false\n * }\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar HandWrittenSignatureSettings = /** @class */ (function (_super) {\n __extends(HandWrittenSignatureSettings, _super);\n function HandWrittenSignatureSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(1)\n ], HandWrittenSignatureSettings.prototype, \"opacity\", void 0);\n __decorate([\n Property('#000000')\n ], HandWrittenSignatureSettings.prototype, \"strokeColor\", void 0);\n __decorate([\n Property(1)\n ], HandWrittenSignatureSettings.prototype, \"thickness\", void 0);\n __decorate([\n Property(150)\n ], HandWrittenSignatureSettings.prototype, \"width\", void 0);\n __decorate([\n Property(100)\n ], HandWrittenSignatureSettings.prototype, \"height\", void 0);\n __decorate([\n Property(1)\n ], HandWrittenSignatureSettings.prototype, \"saveSignatureLimit\", void 0);\n __decorate([\n Property(1)\n ], HandWrittenSignatureSettings.prototype, \"saveInitialLimit\", void 0);\n __decorate([\n Property([])\n ], HandWrittenSignatureSettings.prototype, \"signatureItem\", void 0);\n __decorate([\n Property()\n ], HandWrittenSignatureSettings.prototype, \"typeSignatureFonts\", void 0);\n __decorate([\n Property('')\n ], HandWrittenSignatureSettings.prototype, \"annotationSelectorSettings\", void 0);\n __decorate([\n Property()\n ], HandWrittenSignatureSettings.prototype, \"signatureDialogSettings\", void 0);\n __decorate([\n Property()\n ], HandWrittenSignatureSettings.prototype, \"initialDialogSettings\", void 0);\n return HandWrittenSignatureSettings;\n}(ChildProperty));\nexport { HandWrittenSignatureSettings };\n/**\n * The `AnnotationSettings` module is used to provide the properties to annotations.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the annotation settings.\n * viewer.annotationSettings = {\n * author: 'Guest',\n * minHeight: 0,\n * minWidth: 0,\n * maxWidth: 0,\n * maxHeight: 0,\n * isLock: false,\n * skipPrint: false,\n * skipDownload: false,\n * allowedInteractions: ['None']\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar AnnotationSettings = /** @class */ (function (_super) {\n __extends(AnnotationSettings, _super);\n function AnnotationSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('Guest')\n ], AnnotationSettings.prototype, \"author\", void 0);\n __decorate([\n Property(0)\n ], AnnotationSettings.prototype, \"minHeight\", void 0);\n __decorate([\n Property(0)\n ], AnnotationSettings.prototype, \"minWidth\", void 0);\n __decorate([\n Property(0)\n ], AnnotationSettings.prototype, \"maxHeight\", void 0);\n __decorate([\n Property(0)\n ], AnnotationSettings.prototype, \"maxWidth\", void 0);\n __decorate([\n Property(false)\n ], AnnotationSettings.prototype, \"isLock\", void 0);\n __decorate([\n Property(false)\n ], AnnotationSettings.prototype, \"skipPrint\", void 0);\n __decorate([\n Property(false)\n ], AnnotationSettings.prototype, \"skipDownload\", void 0);\n __decorate([\n Property(null)\n ], AnnotationSettings.prototype, \"customData\", void 0);\n __decorate([\n Property(['None'])\n ], AnnotationSettings.prototype, \"allowedInteractions\", void 0);\n return AnnotationSettings;\n}(ChildProperty));\nexport { AnnotationSettings };\n/**\n * The `DocumentTextCollectionSettings` module is used to provide the properties to DocumentTextCollection.\n */\nvar DocumentTextCollectionSettings = /** @class */ (function (_super) {\n __extends(DocumentTextCollectionSettings, _super);\n function DocumentTextCollectionSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property()\n ], DocumentTextCollectionSettings.prototype, \"textData\", void 0);\n __decorate([\n Property()\n ], DocumentTextCollectionSettings.prototype, \"pageText\", void 0);\n __decorate([\n Property()\n ], DocumentTextCollectionSettings.prototype, \"pageSize\", void 0);\n return DocumentTextCollectionSettings;\n}(ChildProperty));\nexport { DocumentTextCollectionSettings };\n/**\n * The `TextDataSettings` module is used to provide the properties of text data.\n */\nvar TextDataSettings = /** @class */ (function (_super) {\n __extends(TextDataSettings, _super);\n function TextDataSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property()\n ], TextDataSettings.prototype, \"bounds\", void 0);\n __decorate([\n Property()\n ], TextDataSettings.prototype, \"text\", void 0);\n return TextDataSettings;\n}(ChildProperty));\nexport { TextDataSettings };\n/**\n * The `RectangleBounds` module is used to provide the properties of rectangle bounds.\n */\nvar RectangleBounds = /** @class */ (function (_super) {\n __extends(RectangleBounds, _super);\n function RectangleBounds() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property()\n ], RectangleBounds.prototype, \"size\", void 0);\n __decorate([\n Property()\n ], RectangleBounds.prototype, \"x\", void 0);\n __decorate([\n Property()\n ], RectangleBounds.prototype, \"y\", void 0);\n __decorate([\n Property()\n ], RectangleBounds.prototype, \"width\", void 0);\n __decorate([\n Property()\n ], RectangleBounds.prototype, \"height\", void 0);\n __decorate([\n Property()\n ], RectangleBounds.prototype, \"left\", void 0);\n __decorate([\n Property()\n ], RectangleBounds.prototype, \"top\", void 0);\n __decorate([\n Property()\n ], RectangleBounds.prototype, \"right\", void 0);\n __decorate([\n Property()\n ], RectangleBounds.prototype, \"bottom\", void 0);\n __decorate([\n Property()\n ], RectangleBounds.prototype, \"isEmpty\", void 0);\n return RectangleBounds;\n}(ChildProperty));\nexport { RectangleBounds };\n/**\n * The `TileRenderingSettings` module is used to provide the tile rendering settings of the PDF viewer.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the tile rendering settings.\n * viewer.tileRenderingSettings = {\n * author: 'Guest',\n * minHeight: 0,\n * minWidth: 0,\n * maxWidth: 0,\n * maxHeight: 0,\n * isLock: false,\n * skipPrint: false,\n * skipDownload: false,\n * allowedInteractions: ['None']\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar TileRenderingSettings = /** @class */ (function (_super) {\n __extends(TileRenderingSettings, _super);\n function TileRenderingSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(true)\n ], TileRenderingSettings.prototype, \"enableTileRendering\", void 0);\n __decorate([\n Property(0)\n ], TileRenderingSettings.prototype, \"x\", void 0);\n __decorate([\n Property(0)\n ], TileRenderingSettings.prototype, \"y\", void 0);\n return TileRenderingSettings;\n}(ChildProperty));\nexport { TileRenderingSettings };\n/**\n * The `ScrollSettings` module is used to provide the settings of the scroll of the PDF viewer.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the scroll settings.\n * viewer.scrollSettings = {\n * delayPageRequestTimeOnScroll: 150\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar ScrollSettings = /** @class */ (function (_super) {\n __extends(ScrollSettings, _super);\n function ScrollSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(100)\n ], ScrollSettings.prototype, \"delayPageRequestTimeOnScroll\", void 0);\n return ScrollSettings;\n}(ChildProperty));\nexport { ScrollSettings };\n/**\n * The `FormField` is used to store the form fields of PDF document.\n */\nvar FormField = /** @class */ (function (_super) {\n __extends(FormField, _super);\n function FormField() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], FormField.prototype, \"name\", void 0);\n __decorate([\n Property(false)\n ], FormField.prototype, \"isChecked\", void 0);\n __decorate([\n Property(false)\n ], FormField.prototype, \"isSelected\", void 0);\n __decorate([\n Property('')\n ], FormField.prototype, \"id\", void 0);\n __decorate([\n Property('')\n ], FormField.prototype, \"value\", void 0);\n __decorate([\n Property('')\n ], FormField.prototype, \"type\", void 0);\n __decorate([\n Property(false)\n ], FormField.prototype, \"isReadOnly\", void 0);\n __decorate([\n Property([''])\n ], FormField.prototype, \"signatureType\", void 0);\n __decorate([\n Property('')\n ], FormField.prototype, \"fontName\", void 0);\n __decorate([\n Property({ x: 0, y: 0, width: 0, height: 0 })\n ], FormField.prototype, \"bounds\", void 0);\n __decorate([\n Property('Helvetica')\n ], FormField.prototype, \"fontFamily\", void 0);\n __decorate([\n Property(10)\n ], FormField.prototype, \"fontSize\", void 0);\n __decorate([\n Property('None')\n ], FormField.prototype, \"fontStyle\", void 0);\n __decorate([\n Property('black')\n ], FormField.prototype, \"color\", void 0);\n __decorate([\n Property('white')\n ], FormField.prototype, \"backgroundColor\", void 0);\n __decorate([\n Property('Left')\n ], FormField.prototype, \"alignment\", void 0);\n __decorate([\n Property('visible')\n ], FormField.prototype, \"visibility\", void 0);\n __decorate([\n Property(0)\n ], FormField.prototype, \"maxLength\", void 0);\n __decorate([\n Property(false)\n ], FormField.prototype, \"isRequired\", void 0);\n __decorate([\n Property(false)\n ], FormField.prototype, \"isPrint\", void 0);\n __decorate([\n Property('')\n ], FormField.prototype, \"tooltip\", void 0);\n __decorate([\n Property('')\n ], FormField.prototype, \"options\", void 0);\n __decorate([\n Property()\n ], FormField.prototype, \"signatureIndicatorSettings\", void 0);\n __decorate([\n Property(1)\n ], FormField.prototype, \"thickness\", void 0);\n __decorate([\n Property('#303030')\n ], FormField.prototype, \"borderColor\", void 0);\n __decorate([\n Property(false)\n ], FormField.prototype, \"isMultiline\", void 0);\n __decorate([\n Property(false)\n ], FormField.prototype, \"insertSpaces\", void 0);\n __decorate([\n Property(-1)\n ], FormField.prototype, \"pageIndex\", void 0);\n return FormField;\n}(ChildProperty));\nexport { FormField };\n/**\n * The `ContextMenuSettings` is used to show the context menu of PDF document.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the settings of the context menu option.\n * viewer.contextMenuOption = \"RightClick\";\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar ContextMenuSettings = /** @class */ (function (_super) {\n __extends(ContextMenuSettings, _super);\n function ContextMenuSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('RightClick')\n ], ContextMenuSettings.prototype, \"contextMenuAction\", void 0);\n __decorate([\n Property([])\n ], ContextMenuSettings.prototype, \"contextMenuItems\", void 0);\n return ContextMenuSettings;\n}(ChildProperty));\nexport { ContextMenuSettings };\n/**\n * The `TextFieldSettings` is used to to show and customize the appearance of text box HTML element.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the text field settings.\n * viewer.textFieldSettings = {\n * name: '',\n * value: '',\n * fontFamily: 'Courier',\n * fontSize: 10,\n * fontStyle: 'None',\n * color: 'black',\n * borderColor: 'black',\n * backgroundColor: 'white',\n * alignment: 'Right',\n * isReadOnly: false,\n * visibility: 'visible',\n * maxLength: 0,\n * isRequired: false,\n * isPrint: true,\n * tooltip: '',\n * thickness: 1,\n * isMultiline: false\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar TextFieldSettings = /** @class */ (function (_super) {\n __extends(TextFieldSettings, _super);\n function TextFieldSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ x: 0, y: 0, width: 0, height: 0 })\n ], TextFieldSettings.prototype, \"bounds\", void 0);\n __decorate([\n Property('')\n ], TextFieldSettings.prototype, \"name\", void 0);\n __decorate([\n Property('')\n ], TextFieldSettings.prototype, \"value\", void 0);\n __decorate([\n Property('Helvetica')\n ], TextFieldSettings.prototype, \"fontFamily\", void 0);\n __decorate([\n Property(10)\n ], TextFieldSettings.prototype, \"fontSize\", void 0);\n __decorate([\n Property(0)\n ], TextFieldSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property('None')\n ], TextFieldSettings.prototype, \"fontStyle\", void 0);\n __decorate([\n Property('black')\n ], TextFieldSettings.prototype, \"color\", void 0);\n __decorate([\n Property('white')\n ], TextFieldSettings.prototype, \"backgroundColor\", void 0);\n __decorate([\n Property('Left')\n ], TextFieldSettings.prototype, \"alignment\", void 0);\n __decorate([\n Property(false)\n ], TextFieldSettings.prototype, \"isReadOnly\", void 0);\n __decorate([\n Property('visible')\n ], TextFieldSettings.prototype, \"visibility\", void 0);\n __decorate([\n Property(0)\n ], TextFieldSettings.prototype, \"maxLength\", void 0);\n __decorate([\n Property(false)\n ], TextFieldSettings.prototype, \"isRequired\", void 0);\n __decorate([\n Property(false)\n ], TextFieldSettings.prototype, \"isPrint\", void 0);\n __decorate([\n Property('')\n ], TextFieldSettings.prototype, \"tooltip\", void 0);\n __decorate([\n Property(1)\n ], TextFieldSettings.prototype, \"thickness\", void 0);\n __decorate([\n Property('#303030')\n ], TextFieldSettings.prototype, \"borderColor\", void 0);\n __decorate([\n Property(false)\n ], TextFieldSettings.prototype, \"isMultiline\", void 0);\n return TextFieldSettings;\n}(ChildProperty));\nexport { TextFieldSettings };\n/**\n * The `PasswordFieldSettings` is used to to show and customize the appearance of password input HTML element.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the password field settings.\n * viewer.passwordFieldSettings = {\n * name: '',\n * value: '',\n * fontFamily: 'Courier',\n * fontSize: 10,\n * fontStyle: 'None',\n * color: 'black',\n * borderColor: 'black',\n * backgroundColor: 'white',\n * alignment: 'Right',\n * isReadOnly: false,\n * visibility: 'visible',\n * maxLength: 0,\n * isRequired: false,\n * isPrint: true,\n * tooltip: '',\n * thickness: 1\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar PasswordFieldSettings = /** @class */ (function (_super) {\n __extends(PasswordFieldSettings, _super);\n function PasswordFieldSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ x: 0, y: 0, width: 0, height: 0 })\n ], PasswordFieldSettings.prototype, \"bounds\", void 0);\n __decorate([\n Property('')\n ], PasswordFieldSettings.prototype, \"name\", void 0);\n __decorate([\n Property('')\n ], PasswordFieldSettings.prototype, \"value\", void 0);\n __decorate([\n Property(0)\n ], PasswordFieldSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property('Helvetica')\n ], PasswordFieldSettings.prototype, \"fontFamily\", void 0);\n __decorate([\n Property(10)\n ], PasswordFieldSettings.prototype, \"fontSize\", void 0);\n __decorate([\n Property('None')\n ], PasswordFieldSettings.prototype, \"fontStyle\", void 0);\n __decorate([\n Property('black')\n ], PasswordFieldSettings.prototype, \"color\", void 0);\n __decorate([\n Property('white')\n ], PasswordFieldSettings.prototype, \"backgroundColor\", void 0);\n __decorate([\n Property('Left')\n ], PasswordFieldSettings.prototype, \"alignment\", void 0);\n __decorate([\n Property(false)\n ], PasswordFieldSettings.prototype, \"isReadOnly\", void 0);\n __decorate([\n Property('visible')\n ], PasswordFieldSettings.prototype, \"visibility\", void 0);\n __decorate([\n Property(0)\n ], PasswordFieldSettings.prototype, \"maxLength\", void 0);\n __decorate([\n Property(false)\n ], PasswordFieldSettings.prototype, \"isRequired\", void 0);\n __decorate([\n Property(false)\n ], PasswordFieldSettings.prototype, \"isPrint\", void 0);\n __decorate([\n Property('')\n ], PasswordFieldSettings.prototype, \"tooltip\", void 0);\n __decorate([\n Property(1)\n ], PasswordFieldSettings.prototype, \"thickness\", void 0);\n __decorate([\n Property('#303030')\n ], PasswordFieldSettings.prototype, \"borderColor\", void 0);\n return PasswordFieldSettings;\n}(ChildProperty));\nexport { PasswordFieldSettings };\n/**\n * The `CheckBoxFieldSettings` is used to to show and customize the appearance of check box element.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the check box field settings.\n * viewer.checkBoxFieldSettings = {\n * name: '',\n * isChecked: true,\n * backgroundColor: 'white',\n * isReadOnly: false,\n * visibility: 'visible',\n * isPrint: true,\n * tooltip: '',\n * isRequired: false,\n * thickness: 5,\n * borderColor: 'black'\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar CheckBoxFieldSettings = /** @class */ (function (_super) {\n __extends(CheckBoxFieldSettings, _super);\n function CheckBoxFieldSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ x: 0, y: 0, width: 0, height: 0 })\n ], CheckBoxFieldSettings.prototype, \"bounds\", void 0);\n __decorate([\n Property('')\n ], CheckBoxFieldSettings.prototype, \"name\", void 0);\n __decorate([\n Property(false)\n ], CheckBoxFieldSettings.prototype, \"isChecked\", void 0);\n __decorate([\n Property('white')\n ], CheckBoxFieldSettings.prototype, \"backgroundColor\", void 0);\n __decorate([\n Property(false)\n ], CheckBoxFieldSettings.prototype, \"isReadOnly\", void 0);\n __decorate([\n Property('visible')\n ], CheckBoxFieldSettings.prototype, \"visibility\", void 0);\n __decorate([\n Property(false)\n ], CheckBoxFieldSettings.prototype, \"isPrint\", void 0);\n __decorate([\n Property(0)\n ], CheckBoxFieldSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property('')\n ], CheckBoxFieldSettings.prototype, \"tooltip\", void 0);\n __decorate([\n Property(false)\n ], CheckBoxFieldSettings.prototype, \"isRequired\", void 0);\n __decorate([\n Property(1)\n ], CheckBoxFieldSettings.prototype, \"thickness\", void 0);\n __decorate([\n Property('#303030')\n ], CheckBoxFieldSettings.prototype, \"borderColor\", void 0);\n return CheckBoxFieldSettings;\n}(ChildProperty));\nexport { CheckBoxFieldSettings };\n/**\n * The `RadioButtonFieldSettings` is used to to show and customize the appearance of radio button element.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the radio button field settings.\n * viewer.radioButtonFieldSettings = {\n * name: '',\n * isSelected: false,\n * backgroundColor: 'white',\n * isReadOnly: false,\n * visibility: 'visible',\n * isPrint: true,\n * tooltip: '',\n * isRequired: false,\n * thickness: 1,\n * borderColor: 'black'\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar RadioButtonFieldSettings = /** @class */ (function (_super) {\n __extends(RadioButtonFieldSettings, _super);\n function RadioButtonFieldSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ x: 0, y: 0, width: 0, height: 0 })\n ], RadioButtonFieldSettings.prototype, \"bounds\", void 0);\n __decorate([\n Property('')\n ], RadioButtonFieldSettings.prototype, \"name\", void 0);\n __decorate([\n Property(false)\n ], RadioButtonFieldSettings.prototype, \"isSelected\", void 0);\n __decorate([\n Property('white')\n ], RadioButtonFieldSettings.prototype, \"backgroundColor\", void 0);\n __decorate([\n Property(false)\n ], RadioButtonFieldSettings.prototype, \"isReadOnly\", void 0);\n __decorate([\n Property(false)\n ], RadioButtonFieldSettings.prototype, \"isRequired\", void 0);\n __decorate([\n Property(0)\n ], RadioButtonFieldSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property('visible')\n ], RadioButtonFieldSettings.prototype, \"visibility\", void 0);\n __decorate([\n Property(false)\n ], RadioButtonFieldSettings.prototype, \"isPrint\", void 0);\n __decorate([\n Property('')\n ], RadioButtonFieldSettings.prototype, \"tooltip\", void 0);\n __decorate([\n Property(1)\n ], RadioButtonFieldSettings.prototype, \"thickness\", void 0);\n __decorate([\n Property('#303030')\n ], RadioButtonFieldSettings.prototype, \"borderColor\", void 0);\n return RadioButtonFieldSettings;\n}(ChildProperty));\nexport { RadioButtonFieldSettings };\n/**\n * The `DropdownFieldSettings` is used to to show and customize the appearance of drop down element.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the drop down field settings.\n * viewer.DropdownFieldSettings = {\n * name: '',\n * isSelected: false,\n * backgroundColor: 'white',\n * isReadOnly: true,\n * visibility: 'visible',\n * isPrint: true,\n * tooltip: '',\n * isRequired: false,\n * thickness: 5,\n * borderColor: 'blue'\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar DropdownFieldSettings = /** @class */ (function (_super) {\n __extends(DropdownFieldSettings, _super);\n function DropdownFieldSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ x: 0, y: 0, width: 0, height: 0 })\n ], DropdownFieldSettings.prototype, \"bounds\", void 0);\n __decorate([\n Property('')\n ], DropdownFieldSettings.prototype, \"name\", void 0);\n __decorate([\n Property('')\n ], DropdownFieldSettings.prototype, \"value\", void 0);\n __decorate([\n Property('Helvetica')\n ], DropdownFieldSettings.prototype, \"fontFamily\", void 0);\n __decorate([\n Property(10)\n ], DropdownFieldSettings.prototype, \"fontSize\", void 0);\n __decorate([\n Property(0)\n ], DropdownFieldSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property('None')\n ], DropdownFieldSettings.prototype, \"fontStyle\", void 0);\n __decorate([\n Property('black')\n ], DropdownFieldSettings.prototype, \"color\", void 0);\n __decorate([\n Property('white')\n ], DropdownFieldSettings.prototype, \"backgroundColor\", void 0);\n __decorate([\n Property('Left')\n ], DropdownFieldSettings.prototype, \"alignment\", void 0);\n __decorate([\n Property(false)\n ], DropdownFieldSettings.prototype, \"isReadOnly\", void 0);\n __decorate([\n Property('visible')\n ], DropdownFieldSettings.prototype, \"visibility\", void 0);\n __decorate([\n Property(false)\n ], DropdownFieldSettings.prototype, \"isRequired\", void 0);\n __decorate([\n Property(false)\n ], DropdownFieldSettings.prototype, \"isPrint\", void 0);\n __decorate([\n Property('')\n ], DropdownFieldSettings.prototype, \"tooltip\", void 0);\n __decorate([\n Property('')\n ], DropdownFieldSettings.prototype, \"options\", void 0);\n __decorate([\n Property(1)\n ], DropdownFieldSettings.prototype, \"thickness\", void 0);\n __decorate([\n Property('#303030')\n ], DropdownFieldSettings.prototype, \"borderColor\", void 0);\n return DropdownFieldSettings;\n}(ChildProperty));\nexport { DropdownFieldSettings };\n/**\n * The `ListBoxFieldSettings` is used to to show and customize the appearance of list box element.\n *\n * ```html\n *
    \n * ```\n * ```ts\n * let viewer: PdfViewer = new PdfViewer();\n * // Change the list box field settings.\n * viewer.listBoxFieldSettings = {\n * name: '',\n * fontFamily: 'Courier',\n * fontSize: 5,\n * fontStyle: 'None',\n * color: 'black',\n * backgroundColor: 'white',\n * alignment: 'Right',\n * isReadOnly: false,\n * visibility: 'visible',\n * isRequired: false,\n * isPrint: false,\n * tooltip: '',\n * options: [],\n * thickness: 1,\n * borderColor: 'black'\n * };\n * viewer.appendTo(\"#pdfViewer\");\n * ```\n *\n */\nvar ListBoxFieldSettings = /** @class */ (function (_super) {\n __extends(ListBoxFieldSettings, _super);\n function ListBoxFieldSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ x: 0, y: 0, width: 0, height: 0 })\n ], ListBoxFieldSettings.prototype, \"bounds\", void 0);\n __decorate([\n Property('')\n ], ListBoxFieldSettings.prototype, \"name\", void 0);\n __decorate([\n Property('')\n ], ListBoxFieldSettings.prototype, \"value\", void 0);\n __decorate([\n Property('Helvetica')\n ], ListBoxFieldSettings.prototype, \"fontFamily\", void 0);\n __decorate([\n Property(10)\n ], ListBoxFieldSettings.prototype, \"fontSize\", void 0);\n __decorate([\n Property(0)\n ], ListBoxFieldSettings.prototype, \"pageNumber\", void 0);\n __decorate([\n Property('None')\n ], ListBoxFieldSettings.prototype, \"fontStyle\", void 0);\n __decorate([\n Property('black')\n ], ListBoxFieldSettings.prototype, \"color\", void 0);\n __decorate([\n Property('white')\n ], ListBoxFieldSettings.prototype, \"backgroundColor\", void 0);\n __decorate([\n Property('Left')\n ], ListBoxFieldSettings.prototype, \"alignment\", void 0);\n __decorate([\n Property(false)\n ], ListBoxFieldSettings.prototype, \"isReadOnly\", void 0);\n __decorate([\n Property('visible')\n ], ListBoxFieldSettings.prototype, \"visibility\", void 0);\n __decorate([\n Property(false)\n ], ListBoxFieldSettings.prototype, \"isRequired\", void 0);\n __decorate([\n Property(false)\n ], ListBoxFieldSettings.prototype, \"isPrint\", void 0);\n __decorate([\n Property('')\n ], ListBoxFieldSettings.prototype, \"tooltip\", void 0);\n __decorate([\n Property([])\n ], ListBoxFieldSettings.prototype, \"options\", void 0);\n __decorate([\n Property(1)\n ], ListBoxFieldSettings.prototype, \"thickness\", void 0);\n __decorate([\n Property('#303030')\n ], ListBoxFieldSettings.prototype, \"borderColor\", void 0);\n return ListBoxFieldSettings;\n}(ChildProperty));\nexport { ListBoxFieldSettings };\nvar Item = /** @class */ (function (_super) {\n __extends(Item, _super);\n function Item() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], Item.prototype, \"itemName\", void 0);\n __decorate([\n Property('')\n ], Item.prototype, \"itemValue\", void 0);\n return Item;\n}(ChildProperty));\nexport { Item };\n/**\n * Represents the PDF viewer component.\n * ```html\n *
    \n * \n * ```\n */\nvar PdfViewer = /** @class */ (function (_super) {\n __extends(PdfViewer, _super);\n function PdfViewer(options, element) {\n var _this = _super.call(this, options, element) || this;\n /**\n * Get the Loaded document signature Collections in the PdfViewer control.\n *\n * {% codeBlock src='pdfviewer/signatureCollection/index.md' %}{% endcodeBlock %}\n *\n */\n // eslint-disable-next-line\n _this.signatureCollection = [];\n /**\n * Gets or sets the document name loaded in the PdfViewer control.\n *\n * {% codeBlock src='pdfviewer/fileName/index.md' %}{% endcodeBlock %}\n *\n */\n _this.fileName = null;\n /**\n * @private\n */\n _this.zIndex = -1;\n /**\n * @private\n */\n _this.nameTable = {};\n /** @private */\n _this.clipboardData = {};\n /**\n * @private\n */\n _this.zIndexTable = [];\n _this.isTextSelectionStarted = false;\n /**\n * @private\n */\n _this.touchPadding = 10;\n /**\n * @private\n */\n _this.paddingDifferenceValue = 10;\n /** @hidden */\n _this.defaultLocale = {\n 'PdfViewer': 'PDF Viewer',\n 'Cancel': 'Cancel',\n 'Download file': 'Download file',\n 'Download': 'Download',\n 'Enter Password': 'This document is password protected. Please enter a password.',\n 'File Corrupted': 'File Corrupted',\n 'File Corrupted Content': 'The file is corrupted and cannot be opened.',\n 'Fit Page': 'Fit Page',\n 'Fit Width': 'Fit Width',\n 'Automatic': 'Automatic',\n 'Go To First Page': 'Show first page',\n 'Invalid Password': 'Incorrect Password. Please try again.',\n 'Next Page': 'Show next page',\n 'OK': 'OK',\n 'Open': 'Open file',\n 'Page Number': 'Current page number',\n 'Previous Page': 'Show previous page',\n 'Go To Last Page': 'Show last page',\n 'Zoom': 'Zoom',\n 'Zoom In': 'Zoom in',\n 'Zoom Out': 'Zoom out',\n 'Page Thumbnails': 'Page thumbnails',\n 'Bookmarks': 'Bookmarks',\n 'Print': 'Print file',\n 'Password Protected': 'Password Required',\n 'Copy': 'Copy',\n 'Text Selection': 'Text selection tool',\n 'Panning': 'Pan mode',\n 'Text Search': 'Find text',\n 'Find in document': 'Find in document',\n 'Match case': 'Match case',\n 'Apply': 'Apply',\n 'GoToPage': 'Go to Page',\n // eslint-disable-next-line max-len\n 'No matches': 'Viewer has finished searching the document. No more matches were found',\n 'No Text Found': 'No Text Found',\n 'Undo': 'Undo',\n 'Redo': 'Redo',\n 'Annotation': 'Add or Edit annotations',\n 'FormDesigner': 'Add and Edit Form Fields',\n 'Highlight': 'Highlight Text',\n 'Underline': 'Underline Text',\n 'Strikethrough': 'Strikethrough Text',\n 'Delete': 'Delete annotation',\n 'Opacity': 'Opacity',\n 'Color edit': 'Change Color',\n 'Opacity edit': 'Change Opacity',\n 'Highlight context': 'Highlight',\n 'Underline context': 'Underline',\n 'Strikethrough context': 'Strikethrough',\n // eslint-disable-next-line max-len\n 'Server error': 'Web-service is not listening. PDF Viewer depends on web-service for all it\\'s features. Please start the web service to continue.',\n // eslint-disable-next-line max-len\n 'Client error': 'Client-side error is found. Please check the custom headers provided in the AjaxRequestSettings property and web action methods in the ServerActionSettings property.',\n 'Open text': 'Open',\n 'First text': 'First Page',\n 'Previous text': 'Previous Page',\n 'Next text': 'Next Page',\n 'Last text': 'Last Page',\n 'Zoom in text': 'Zoom In',\n 'Zoom out text': 'Zoom Out',\n 'Selection text': 'Selection',\n 'Pan text': 'Pan',\n 'Print text': 'Print',\n 'Search text': 'Search',\n 'Annotation Edit text': 'Edit Annotation',\n 'FormDesigner Edit text': 'Add and Edit Form Fields',\n 'Line Thickness': 'Line Thickness',\n 'Line Properties': 'Line Properties',\n 'Start Arrow': 'Start Arrow',\n 'End Arrow': 'End Arrow',\n 'Line Style': 'Line Style',\n 'Fill Color': 'Fill Color',\n 'Line Color': 'Line Color',\n 'None': 'None',\n 'Open Arrow': 'Open',\n 'Closed Arrow': 'Closed',\n 'Round Arrow': 'Round',\n 'Square Arrow': 'Square',\n 'Diamond Arrow': 'Diamond',\n 'Butt': 'Butt',\n 'Cut': 'Cut',\n 'Paste': 'Paste',\n 'Delete Context': 'Delete',\n 'Properties': 'Properties',\n 'Add Stamp': 'Add Stamp',\n 'Add Shapes': 'Add Shapes',\n 'Stroke edit': 'Change Stroke Color',\n 'Change thickness': 'Change Border Thickness',\n 'Add line': 'Add Line',\n 'Add arrow': 'Add Arrow',\n 'Add rectangle': 'Add Rectangle',\n 'Add circle': 'Add Circle',\n 'Add polygon': 'Add Polygon',\n 'Add Comments': 'Add Comments',\n 'Comments': 'Comments',\n 'SubmitForm': 'Submit Form',\n 'No Comments Yet': 'No Comments Yet',\n 'Accepted': 'Accepted',\n 'Completed': 'Completed',\n 'Cancelled': 'Cancelled',\n 'Rejected': 'Rejected',\n 'Leader Length': 'Leader Length',\n 'Scale Ratio': 'Scale Ratio',\n 'Calibrate': 'Calibrate',\n 'Calibrate Distance': 'Calibrate Distance',\n 'Calibrate Perimeter': 'Calibrate Perimeter',\n 'Calibrate Area': 'Calibrate Area',\n 'Calibrate Radius': 'Calibrate Radius',\n 'Calibrate Volume': 'Calibrate Volume',\n 'Depth': 'Depth',\n 'Closed': 'Closed',\n 'Round': 'Round',\n 'Square': 'Square',\n 'Diamond': 'Diamond',\n 'Edit': 'Edit',\n 'Comment': 'Comment',\n 'Comment Panel': 'Comment Panel',\n 'Set Status': 'Set Status',\n 'Post': 'Post',\n 'Page': 'Page',\n 'Add a comment': 'Add a comment',\n 'Add a reply': 'Add a reply',\n 'Import Annotations': 'Import annotations from JSON file',\n 'Export Annotations': 'Export annotation to JSON file',\n 'Export XFDF': 'Export annotation to XFDF file',\n 'Import XFDF': 'Import annotations from XFDF file',\n 'Add': 'Add',\n 'Clear': 'Clear',\n 'Bold': 'Bold',\n 'Italic': 'Italic',\n 'Strikethroughs': 'Strikethrough',\n 'Underlines': 'Underline',\n 'Superscript': 'Superscript',\n 'Subscript': 'Subscript',\n 'Align left': 'Align Left',\n 'Align right': 'Align Right',\n 'Center': 'Center',\n 'Justify': 'Justify',\n 'Font color': 'Font Color',\n 'Text Align': 'Text Align',\n 'Text Properties': 'Font Style',\n 'SignatureFieldDialogHeaderText': 'Add Signature',\n 'HandwrittenSignatureDialogHeaderText': 'Add Signature',\n 'InitialFieldDialogHeaderText': 'Add Initial',\n 'HandwrittenInitialDialogHeaderText': 'Add Initial',\n 'Draw Ink': 'Draw Ink',\n 'Create': 'Create',\n 'Font family': 'Font Family',\n 'Font size': 'Font Size',\n 'Free Text': 'Free Text',\n 'Import Failed': 'Invalid JSON file type or file name; please select a valid JSON file',\n 'Import PDF Failed': 'Invalid PDF file type or PDF file not found. Please select a valid PDF file',\n 'File not found': 'Imported JSON file is not found in the desired location',\n 'Export Failed': 'Export annotations action has failed; please ensure annotations are added properly',\n 'of': 'of ',\n 'Dynamic': 'Dynamic',\n 'Standard Business': 'Standard Business',\n 'Sign Here': 'Sign Here',\n 'Custom Stamp': 'Custom Stamp',\n 'Enter Signature as Name': 'Enter your name',\n 'Draw-hand Signature': 'DRAW',\n 'Type Signature': 'TYPE',\n 'Upload Signature': 'UPLOAD',\n 'Browse Signature Image': 'BROWSE',\n 'Save Signature': 'Save Signature',\n 'Save Initial': 'Save Initial',\n 'Textbox': 'Textbox',\n 'Password': 'Password',\n 'Check Box': 'Checkbox',\n 'Radio Button': 'Radio Button',\n 'Dropdown': 'Drop Down',\n 'List Box': 'List Box',\n 'Signature': 'Signature',\n 'Delete FormField': 'Delete Form Field',\n 'Textbox Properties': 'Textbox Properties',\n 'Name': 'Name',\n 'Tooltip': 'Tooltip',\n 'Value': 'Value',\n 'Form Field Visibility': 'Form Field Visibility',\n 'Read Only': 'Read Only',\n 'Required': 'Required',\n 'Checked': 'Checked',\n 'Show Printing': 'Show Printing',\n 'Formatting': 'Format',\n 'Fill': 'Fill',\n 'Border': 'Border',\n 'Border Color': 'Border Color',\n 'Thickness': 'Thickness',\n 'Max Length': 'Max Length',\n 'List Item': 'Item Name',\n 'Export Value': 'Item Value',\n 'Dropdown Item List': 'Dropdown Item List',\n 'List Box Item List': 'List Box Item List',\n 'General': 'GENERAL',\n 'Appearance': 'APPEARANCE',\n 'Options': 'OPTIONS',\n 'Delete Item': 'Delete',\n 'Up': 'Up',\n 'Down': 'Down',\n 'Multiline': 'Multiline',\n 'Revised': 'Revised',\n 'Reviewed': 'Reviewed',\n 'Received': 'Received',\n 'Confidential': 'Confidential',\n 'Approved': 'Approved',\n 'Not Approved': 'Not Approved',\n 'Witness': 'Witness',\n 'Initial Here': 'Initial Here',\n 'Draft': 'Draft',\n 'Final': 'Final',\n 'For Public Release': 'For Public Release',\n 'Not For Public Release': 'Not For Public Release',\n 'For Comment': 'For Comment',\n 'Void': 'Void',\n 'Preliminary Results': 'Preliminary Results',\n 'Information Only': 'Information Only',\n 'in': 'in',\n 'm': 'm',\n 'ft_in': 'ft_in',\n 'ft': 'ft',\n 'p': 'p',\n 'cm': 'cm',\n 'mm': 'mm',\n 'pt': 'pt',\n 'cu': 'cu',\n 'sq': 'sq',\n 'Initial': 'Initial'\n };\n _this.viewerBase = new PdfViewerBase(_this);\n _this.drawing = new Drawing(_this);\n return _this;\n }\n Object.defineProperty(PdfViewer.prototype, \"zoomPercentage\", {\n /**\n * Returns the current zoom percentage of the PdfViewer control.\n *\n * @asptype int\n * @blazorType int\n */\n get: function () {\n return this.magnificationModule.zoomFactor * 100;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfViewer.prototype, \"bookmark\", {\n /**\n * Gets the bookmark view object of the pdf viewer.\n *\n * @asptype BookmarkView\n * @blazorType BookmarkView\n * @returns { BookmarkView }\n */\n get: function () {\n return this.bookmarkViewModule;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfViewer.prototype, \"print\", {\n /**\n * Gets the print object of the pdf viewer.\n *\n * @asptype Print\n * @blazorType Print\n * @returns { Print }\n */\n get: function () {\n return this.printModule;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfViewer.prototype, \"magnification\", {\n /**\n * Gets the magnification object of the pdf viewer.\n *\n * @asptype Magnification\n * @blazorType Magnification\n * @returns { Magnification }\n */\n get: function () {\n return this.magnificationModule;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfViewer.prototype, \"navigation\", {\n /**\n * Gets the navigation object of the pdf viewer.\n *\n * @asptype Navigation\n * @blazorType Navigation\n * @returns { Navigation }\n */\n get: function () {\n return this.navigationModule;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfViewer.prototype, \"textSearch\", {\n /**\n * Gets the text search object of the pdf viewer.\n *\n * @asptype TextSearch\n * @blazorType TextSearch\n * @returns { TextSearch }\n */\n get: function () {\n return this.textSearchModule;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfViewer.prototype, \"toolbar\", {\n /**\n * Gets the toolbar object of the pdf viewer.\n *\n * @asptype Toolbar\n * @blazorType Toolbar\n * @returns { Toolbar }\n */\n get: function () {\n return this.toolbarModule;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfViewer.prototype, \"thumbnailView\", {\n /**\n * Gets the thumbnail-view object of the pdf viewer.\n *\n * @asptype ThumbnailView\n * @blazorType ThumbnailView\n * @returns { ThumbnailView }\n */\n get: function () {\n return this.thumbnailViewModule;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfViewer.prototype, \"annotation\", {\n /**\n * Gets the annotation object of the pdf viewer.\n *\n * @asptype Annotation\n * @blazorType Annotation\n * @returns { Annotation }\n */\n get: function () {\n return this.annotationModule;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfViewer.prototype, \"formDesigner\", {\n /**\n * Gets the FormDesigner object of the pdf viewer.\n *\n * @asptype FormDesigner\n * @blazorType FormDesigner\n * @returns { FormDesigner }\n */\n get: function () {\n return this.formDesignerModule;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PdfViewer.prototype, \"textSelection\", {\n /**\n * Gets the TextSelection object of the pdf viewer.\n *\n * @asptype TextSelection\n * @blazorType TextSelection\n * @returns { TextSelection }\n */\n get: function () {\n return this.textSelectionModule;\n },\n enumerable: true,\n configurable: true\n });\n PdfViewer.prototype.preRender = function () {\n this.localeObj = new L10n(this.getModuleName(), this.defaultLocale, this.locale);\n if (!isNullOrUndefined(this.element) && this.element.id == \"\") {\n //Set unique id, if id is empty\n this.element.id = this.getUniqueElementId();\n }\n if (Browser.isDevice) {\n //EJ2-63562 - Reduced the touchPadding of mobile devices to 16 to improve selection of fields without affecting resizing ability.\n this.touchPadding = 16;\n }\n };\n PdfViewer.prototype.getUniqueElementId = function () {\n return 'pdfViewer_' + Date.now().toString(36) + Math.random().toString(36).substring(2);\n };\n PdfViewer.prototype.render = function () {\n this.viewerBase.initializeComponent();\n if (!this.enableFormFields) {\n this.formFieldsModule = new FormFields(this, this.viewerBase);\n this.formFieldsModule.formFieldsReadOnly(this.enableFormFields);\n }\n if (this.enableTextSelection && this.textSelectionModule) {\n this.textSelectionModule.enableTextSelectionMode();\n }\n else {\n this.viewerBase.disableTextSelectionMode();\n }\n this.drawing.renderLabels(this);\n this.renderComplete();\n };\n PdfViewer.prototype.getModuleName = function () {\n return 'PdfViewer';\n };\n /**\n * @private\n */\n PdfViewer.prototype.getLocaleConstants = function () {\n return this.defaultLocale;\n };\n /**\n * To modify the Json Data in ajax request.\n *\n * @param jsonData\n * @returns void\n */\n // eslint-disable-next-line\n PdfViewer.prototype.setJsonData = function (jsonData) {\n this.viewerBase.ajaxData = jsonData;\n };\n PdfViewer.prototype.onPropertyChanged = function (newProp, oldProp) {\n var requireRefresh = false;\n if (this.isDestroyed) {\n return;\n }\n var properties = Object.keys(newProp);\n for (var _i = 0, properties_1 = properties; _i < properties_1.length; _i++) {\n var prop = properties_1[_i];\n switch (prop) {\n case 'locale':\n if (this.viewerBase.loadedData) {\n // eslint-disable-next-line\n var data = null;\n if (this.formFieldsModule) {\n data = this.viewerBase.getItemFromSessionStorage('_formfields');\n }\n if (data) {\n this.viewerBase.formfieldvalue = JSON.parse(data);\n // eslint-disable-next-line\n var annotCollection = this.annotationCollection;\n var filename = this.viewerBase.jsonDocumentId;\n _super.prototype.refresh.call(this);\n this.load(this.viewerBase.loadedData, null);\n this.addAnnotation(annotCollection);\n this.viewerBase.loadedData = null;\n this.downloadFileName = filename;\n this.fileName = filename;\n }\n }\n break;\n case 'toolbarSettings':\n if (!Browser.isDevice || this.enableDesktopMode) {\n this.toolbar.applyToolbarSettings();\n this.toolbar.annotationToolbarModule.applyAnnotationToolbarSettings();\n this.toolbar.formDesignerToolbarModule.applyFormDesignerToolbarSettings();\n }\n else {\n this.toolbar.applyToolbarSettingsForMobile();\n this.toolbar.annotationToolbarModule.applyMobileAnnotationToolbarSettings();\n }\n break;\n case 'enableToolbar':\n this.notify('', { module: 'toolbar', enable: this.enableToolbar });\n requireRefresh = true;\n break;\n case 'enableCommentPanel':\n this.notify('', { module: 'annotation', enable: this.enableCommentPanel });\n requireRefresh = true;\n if (this.toolbarModule && this.toolbarModule.annotationToolbarModule) {\n this.toolbarModule.annotationToolbarModule.enableCommentPanelTool(this.enableCommentPanel);\n }\n if (!this.enableCommentPanel) {\n if (this.viewerBase.navigationPane) {\n this.viewerBase.navigationPane.closeCommentPanelContainer();\n }\n }\n break;\n case 'documentPath':\n if (!isBlazor()) {\n this.load(newProp.documentPath, null);\n }\n else {\n this._dotnetInstance.invokeMethodAsync('LoadDocumentFromClient', newProp.documentPath);\n }\n break;\n case 'interactionMode':\n this.interactionMode = newProp.interactionMode;\n if (newProp.interactionMode === 'Pan') {\n this.viewerBase.initiatePanning();\n if (this.toolbar) {\n this.toolbar.updateInteractionTools(false);\n }\n }\n else if (newProp.interactionMode === 'TextSelection') {\n this.viewerBase.initiateTextSelectMode();\n if (this.toolbar) {\n this.toolbar.updateInteractionTools(true);\n }\n }\n break;\n case 'height':\n this.height = newProp.height;\n this.viewerBase.updateHeight();\n this.viewerBase.onWindowResize();\n if (this.toolbar && this.toolbar.annotationToolbarModule) {\n if (this.toolbar.annotationToolbarModule.isToolbarHidden) {\n this.toolbar.annotationToolbarModule.adjustViewer(false);\n }\n else {\n this.toolbar.annotationToolbarModule.adjustViewer(true);\n }\n }\n break;\n case 'width':\n this.width = newProp.width;\n this.viewerBase.updateWidth();\n this.viewerBase.onWindowResize();\n break;\n case 'customStamp':\n this.renderCustomerStamp(this.customStamp[0]);\n break;\n case 'customStampSettings':\n if (newProp.customStampSettings.customStamps) {\n this.renderCustomerStamp(this.customStampSettings.customStamps[0]);\n }\n break;\n case 'enableFormFields':\n if (this.enableFormFields && this.formFieldsModule) {\n for (var m = 0; m < this.pageCount; m++) {\n this.formFieldsModule.renderFormFields(m, false);\n }\n }\n else {\n this.formFieldsModule = new FormFields(this, this.viewerBase);\n this.formFieldsModule.formFieldsReadOnly(this.enableFormFields);\n }\n break;\n case 'designerMode':\n if (this.designerMode) {\n this.formDesignerModule.setMode('designer');\n }\n else {\n this.formDesignerModule.setMode('edit');\n }\n break;\n case 'highlightSettings':\n case 'underlineSettings':\n case 'strikethroughSettings':\n if (this.annotationModule && this.annotationModule.textMarkupAnnotationModule) {\n this.annotationModule.textMarkupAnnotationModule.updateTextMarkupSettings(prop);\n }\n break;\n case 'signatureFieldSettings':\n case 'initialFieldSettings':\n if (this.formDesignerModule) {\n var isInitialField = (prop === \"initialFieldSettings\");\n this.formDesignerModule.updateSignatureSettings(newProp[prop], isInitialField);\n }\n break;\n case 'textFieldSettings':\n if (this.formDesignerModule) {\n this.formDesignerModule.updateTextFieldSettings(newProp[prop]);\n }\n break;\n case 'passwordFieldSettings':\n if (this.formDesignerModule) {\n this.formDesignerModule.updatePasswordFieldSettings(newProp[prop]);\n }\n break;\n case 'checkBoxFieldSettings':\n if (this.formDesignerModule) {\n this.formDesignerModule.updateCheckBoxFieldSettings(newProp[prop]);\n }\n break;\n case 'radioButtonFieldSettings':\n if (this.formDesignerModule) {\n this.formDesignerModule.updateRadioButtonFieldSettings(newProp[prop]);\n }\n break;\n case 'DropdownFieldSettings':\n if (this.formDesignerModule) {\n this.formDesignerModule.updateDropDownFieldSettings(newProp[prop]);\n }\n break;\n case 'listBoxFieldSettings':\n if (this.formDesignerModule) {\n this.formDesignerModule.updateListBoxFieldSettings(newProp[prop]);\n }\n break;\n case 'isFormDesignerToolbarVisible':\n if (this.formDesignerModule && !oldProp.isFormDesignerToolbarVisible && newProp.isFormDesignerToolbarVisible) {\n if (this.isAnnotationToolbarVisible) {\n this.isAnnotationToolbarVisible = false;\n this.toolbarModule.annotationToolbarModule.showAnnotationToolbar();\n }\n this.toolbarModule.formDesignerToolbarModule.resetFormDesignerToolbar();\n }\n break;\n }\n }\n };\n // eslint-disable-next-line\n PdfViewer.prototype.renderCustomerStamp = function (customStamp) {\n this.annotation.stampAnnotationModule.isStampAddMode = true;\n this.annotationModule.stampAnnotationModule.isStampAnnotSelected = true;\n this.viewerBase.stampAdded = true;\n this.viewerBase.isAlreadyAdded = false;\n // eslint-disable-next-line max-len\n this.annotation.stampAnnotationModule.createCustomStampAnnotation(customStamp.customStampImageSource, customStamp.customStampName);\n };\n PdfViewer.prototype.getPersistData = function () {\n return 'PdfViewer';\n };\n PdfViewer.prototype.requiredModules = function () {\n var modules = [];\n if (this.enableMagnification) {\n modules.push({\n member: 'Magnification', args: [this, this.viewerBase]\n });\n }\n if (this.enableNavigation) {\n modules.push({\n member: 'Navigation', args: [this, this.viewerBase]\n });\n }\n if (this.enableToolbar || this.enableNavigationToolbar || this.enableAnnotationToolbar || this.enableFormDesignerToolbar) {\n modules.push({\n member: 'Toolbar', args: [this, this.viewerBase]\n });\n }\n if (this.enableHyperlink) {\n modules.push({\n member: 'LinkAnnotation', args: [this, this.viewerBase]\n });\n }\n if (this.enableThumbnail) {\n modules.push({\n member: 'ThumbnailView', args: [this, this.viewerBase]\n });\n }\n if (this.enableBookmark) {\n modules.push({\n member: 'BookmarkView', args: [this, this.viewerBase]\n });\n }\n if (this.enableTextSelection) {\n modules.push({\n member: 'TextSelection', args: [this, this.viewerBase]\n });\n }\n if (this.enableTextSearch) {\n modules.push({\n member: 'TextSearch', args: [this, this.viewerBase]\n });\n }\n if (this.enablePrint) {\n modules.push({\n member: 'Print', args: [this, this.viewerBase]\n });\n }\n if (this.enableAnnotation) {\n modules.push({\n member: 'Annotation', args: [this, this.viewerBase]\n });\n }\n if (this.enableFormFields) {\n modules.push({\n member: 'FormFields', args: [this, this.viewerBase]\n });\n }\n if (this.enableFormDesigner && !isBlazor()) {\n modules.push({\n member: 'FormDesigner', args: [this, this.viewerBase]\n });\n }\n return modules;\n };\n /**\n * Loads the given PDF document in the PDF viewer control\n *\n * @param {string} document - Specifies the document name for load\n * @param {string} password - Specifies the Given document password\n * @returns void\n */\n PdfViewer.prototype.load = function (document, password) {\n if (this.pageCount !== 0) {\n this.viewerBase.clear(true);\n }\n else {\n this.viewerBase.clear(false);\n }\n this.pageCount = 0;\n this.currentPageNumber = 0;\n if (!isBlazor()) {\n if (this.toolbarModule) {\n this.toolbarModule.resetToolbar();\n }\n }\n else {\n this.viewerBase.blazorUIAdaptor.resetToolbar();\n }\n this.viewerBase.initiatePageRender(document, password);\n };\n /**\n * Loads the given PDF document in the PDF viewer control\n * @private\n */\n PdfViewer.prototype.loadDocument = function (documentId, isFileName, fileName) {\n if (this.pageCount !== 0) {\n this.viewerBase.clear(true);\n }\n else {\n this.viewerBase.clear(false);\n }\n this.pageCount = 0;\n this.currentPageNumber = 0;\n this.viewerBase.blazorUIAdaptor.resetToolbar();\n this.fileName = fileName;\n this.viewerBase.initiateLoadDocument(documentId, isFileName, fileName);\n };\n /**\n * Loads the PDF document with the document details in the PDF viewer control\n * @private\n */\n PdfViewer.prototype.loadSuccess = function (documentDetails, password) {\n this.viewerBase.loadSuccess(documentDetails, password);\n };\n /**\n * Set the focus of the given element\n * @private\n */\n PdfViewer.prototype.focusElement = function (elementId) {\n var element = document.getElementById(elementId);\n if (element != null) {\n element.focus();\n }\n };\n /**\n * Downloads the PDF document being loaded in the ejPdfViewer control.\n *\n * @returns void\n */\n PdfViewer.prototype.download = function () {\n if (this.enableDownload) {\n this.viewerBase.download();\n }\n };\n /**\n * Saves the PDF document being loaded in the PDF Viewer control as blob.\n *\n * @returns Promise\n */\n PdfViewer.prototype.saveAsBlob = function () {\n var _this = this;\n if (this.enableDownload) {\n return new Promise(function (resolve, reject) {\n resolve(_this.viewerBase.saveAsBlob());\n });\n }\n else {\n return null;\n }\n };\n /**\n * updates the PDF Viewer container width and height from externally.\n *\n * @returns void\n */\n PdfViewer.prototype.updateViewerContainer = function () {\n this.viewerBase.updateViewerContainer();\n };\n /**\n * Specifies the message to be displayed in the popup.\n *\n * @param errorString\n * @returns void\n */\n PdfViewer.prototype.showNotificationPopup = function (errorString) {\n this.viewerBase.showNotificationPopup(errorString);\n };\n /**\n * Focus a form field in a document by its field name or the field object.\n *\n * @param field\n * @returns void\n */\n PdfViewer.prototype.focusFormField = function (field) {\n var _this = this;\n if (typeof (field) === \"string\") {\n var fieldCollections = this.retrieveFormFields();\n for (var i = 0; i < fieldCollections.length; i++) {\n if (fieldCollections[i].name === field) {\n field = fieldCollections[i];\n }\n }\n }\n if (field) {\n this.viewerBase.isFocusField = true;\n this.viewerBase.focusField = field;\n if (this.formDesignerModule) {\n this.navigationModule.goToPage(field.pageIndex + 1);\n }\n else {\n var pageIndex = parseFloat(field.id.split('_')[1]);\n this.navigationModule.goToPage(pageIndex + 1);\n }\n setTimeout(function () {\n var currentField = document.getElementById(field.id);\n if (_this.formDesignerModule && field.type === \"Checkbox\") {\n currentField = document.getElementById(field.id + \"_input\");\n }\n if (currentField) {\n if (_this.formDesignerModule && (field.type === \"SignatureField\" || field.type === \"InitialField\")) {\n currentField.parentElement.focus();\n }\n else {\n currentField.focus();\n _this.viewerBase.isFocusField = false;\n _this.viewerBase.focusField = [];\n }\n }\n }, 100);\n }\n };\n /**\n * Update the form field values from externally.\n *\n * @param fieldValue\n * @returns void\n */\n // eslint-disable-next-line\n PdfViewer.prototype.updateFormFieldsValue = function (fieldValue) {\n // eslint-disable-next-line\n var target = document.getElementById(fieldValue.id);\n var isformDesignerModuleListBox = false;\n if (target) {\n target = target ? target : document.getElementById(fieldValue.id + '_content_html_element').children[0].children[0];\n if (target && fieldValue.type === 'Textbox' || fieldValue.type === 'Password' || fieldValue.type === 'PasswordField') {\n target.value = fieldValue.value;\n }\n else if (fieldValue.type === 'Checkbox' || fieldValue.type === 'RadioButton' || fieldValue.type === 'CheckBox') {\n if (fieldValue.type === 'CheckBox') {\n target.style.appearance = 'auto';\n }\n if (this.formDesignerModule) {\n if (fieldValue.type === 'RadioButton') {\n var radioButtonOption = { isSelected: fieldValue.isSelected };\n this.formDesignerModule.updateFormField(fieldValue, radioButtonOption);\n }\n else {\n var checkBoxOption = { isChecked: fieldValue.isChecked };\n this.formDesignerModule.updateFormField(fieldValue, checkBoxOption);\n }\n }\n else {\n if (fieldValue.type === 'RadioButton') {\n target.selected = fieldValue.isSelected;\n }\n else {\n target.checked = fieldValue.isChecked;\n }\n }\n }\n else if (fieldValue.type === 'DropDown' || fieldValue.type === 'ListBox' || fieldValue.type === 'DropdownList') {\n if (this.formDesignerModule) {\n isformDesignerModuleListBox = true;\n var dropDownListOption = { options: fieldValue.value };\n this.formDesignerModule.updateFormField(fieldValue, dropDownListOption);\n }\n else {\n target.value = fieldValue.value;\n }\n }\n if (fieldValue.type === 'SignatureField' || fieldValue.type === 'InitialField') {\n if (fieldValue.signatureType || fieldValue.initialType) {\n if (typeof fieldValue.signatureType === 'string') {\n fieldValue.signatureType = fieldValue.signatureType;\n }\n else {\n fieldValue.signatureType = fieldValue.initialType;\n }\n }\n fieldValue.fontName = fieldValue.fontName ? fieldValue.fontName : fieldValue.fontFamily;\n var currentValue = fieldValue.value;\n var signatureField = this.getFormFieldByID(fieldValue.id);\n var isSameValue = this.formDesignerModule ? signatureField.value === fieldValue.value : signatureField.Value === fieldValue.value;\n if (target.classList.contains('e-pdfviewer-signatureformfields-signature') && !isSameValue) {\n if (this.formDesignerModule)\n this.annotation.deleteAnnotationById(fieldValue.id.split('_')[0] + '_content');\n else\n this.annotation.deleteAnnotationById(fieldValue.id);\n }\n if (!fieldValue.signatureType || !fieldValue.value) {\n fieldValue.value = currentValue;\n if (fieldValue.value) {\n fieldValue.signatureType = (fieldValue.value.indexOf('base64')) > -1 ? 'Image' : ((fieldValue.value.startsWith('M') && fieldValue.value.split(',')[1].split(' ')[1].startsWith('L')) ? 'Path' : 'Type');\n }\n }\n if (!isSameValue)\n this.formFieldsModule.drawSignature(fieldValue.signatureType, fieldValue.value, target, fieldValue.fontName);\n }\n else {\n if (!isformDesignerModuleListBox) {\n this.formFieldsModule.updateDataInSession(target);\n }\n }\n }\n else {\n var data = this.viewerBase.getItemFromSessionStorage('_formfields');\n if (data) {\n var FormFieldsData = JSON.parse(data);\n for (var m = 0; m < FormFieldsData.length; m++) {\n var currentData = FormFieldsData[m];\n var fieldName = void 0;\n if (fieldValue.type === 'Checkbox' || fieldValue.type === 'RadioButton' || fieldValue.type === 'CheckBox') {\n fieldName = currentData.GroupName;\n }\n else if (fieldValue.type === 'DropDown' || fieldValue.type === 'ListBox' || fieldValue.type === 'DropdownList') {\n fieldName = currentData.Text;\n }\n else {\n fieldName = currentData.FieldName;\n }\n if (fieldName === fieldValue.name) {\n if (fieldValue.type === 'Textbox' || fieldValue.type === 'Password' || fieldValue.type === 'PasswordField') {\n if (fieldValue.value) {\n currentData.Text = fieldValue.value;\n currentData.Value = fieldValue.value;\n }\n }\n else if (fieldValue.type === 'Checkbox' || fieldValue.type === 'RadioButton' || fieldValue.type === 'CheckBox') {\n fieldValue.isSelected || fieldValue.isChecked ? currentData.Selected = true : currentData.Selected = false;\n }\n else if (fieldValue.type === 'DropDown' || fieldValue.type === 'ListBox' || fieldValue.type === 'DropdownList') {\n currentData.SelectedValue = fieldValue.value;\n var index = currentData.TextList ? currentData.TextList.indexOf(fieldValue.value) : 0;\n currentData.selectedIndex = index > -1 ? index : 0;\n fieldValue.type === 'ListBox' ? currentData.SelectedListed = [currentData.selectedIndex] : [];\n }\n else if (fieldValue.type === 'SignatureField' || fieldValue.type === 'InitialField') {\n if (fieldValue.value) {\n currentData.Value = fieldValue.value;\n currentData = this.updateSignatureValue(currentData, fieldValue);\n }\n }\n this.formFieldsModule.updateFormFieldsCollection(currentData);\n }\n }\n }\n window.sessionStorage.removeItem(this.viewerBase.documentId + '_formfields');\n this.viewerBase.setItemInSessionStorage(FormFieldsData, '_formfields');\n }\n };\n // eslint-disable-next-line\n PdfViewer.prototype.getFormFieldByID = function (id) {\n if (this.formDesignerModule) {\n return this.nameTable[id.split('_')[0]];\n }\n var data = window.sessionStorage.getItem(this.viewerBase.documentId + '_formfields');\n var formFieldsData = JSON.parse(data);\n return formFieldsData[formFieldsData.findIndex(function (el) { return el.uniqueID === id; })];\n };\n /**\n * @param number\n */\n // eslint-disable-next-line\n PdfViewer.prototype.ConvertPointToPixel = function (number) {\n return (number * (96 / 72));\n };\n /**\n * @param currentData - Current form field data.\n * @param fieldValue - Form Field.\n * @returns - Returns the updated the current Data.\n */\n // eslint-disable-next-line\n PdfViewer.prototype.updateSignatureValue = function (currentData, fieldValue) {\n if (!fieldValue.signatureType) {\n fieldValue.signatureType = (fieldValue.value.indexOf('base64')) > -1 ? 'Image' : ((fieldValue.value.startsWith('M') && fieldValue.split(',')[1].split(' ')[1].startsWith('L')) ? 'Path' : 'Type');\n }\n var bound = currentData.LineBounds;\n var left = this.ConvertPointToPixel(bound.X);\n var top = this.ConvertPointToPixel(bound.Y);\n var width = this.ConvertPointToPixel(bound.Width);\n var height = this.ConvertPointToPixel(bound.Height);\n var bounds;\n if (fieldValue.signatureType === 'Type') {\n if (!currentData.FontFamily) {\n currentData.FontFamily = 'Helvetica';\n }\n // eslint-disable-next-line\n bounds = this.formFieldsModule.getSignBounds(currentData.pageIndex, currentData.RotationAngle, currentData.pageIndex, this.viewerBase.getZoomFactor(), left, top, width, height);\n if (this.signatureFitMode === 'Default') {\n bounds = this.formFieldsModule.getDefaultBoundsforSign(bounds);\n }\n currentData.Bounds = bounds;\n var fontSize = bounds.height / 1.35;\n var textWidth = this.formFieldsModule.getTextWidth(currentData.value, fontSize, currentData.FontFamily);\n var widthRatio = 1;\n if (textWidth > bounds.width)\n widthRatio = bounds.width / textWidth;\n currentData.FontSize = this.formFieldsModule.getFontSize(Math.floor((fontSize * widthRatio)));\n }\n else if (fieldValue.signatureType === 'Image') {\n // eslint-disable-next-line\n bounds = this.formFieldsModule.getSignBounds(currentData.pageIndex, currentData.RotationAngle, currentData.pageIndex, this.viewerBase.getZoomFactor(), left, top, width, height);\n var image_1 = new Image();\n image_1.src = currentData.Value;\n var proxy_1 = this;\n image_1.onload = function () {\n proxy_1.imageOnLoad(bounds, image_1, currentData);\n };\n }\n else {\n if ((currentData.Value.indexOf('base64')) !== -1) {\n // eslint-disable-next-line\n bounds = this.formFieldsModule.getSignBounds(currentData.pageIndex, currentData.RotationAngle, currentData.pageIndex, this.viewerBase.getZoomFactor(), left, top, width, height);\n if (this.signatureFitMode === 'Default') {\n bounds = this.formFieldsModule.getDefaultBoundsforSign(bounds);\n }\n }\n else {\n if (this.signatureFitMode === 'Default') {\n // eslint-disable-next-line\n var signBounds = this.formFieldsModule.updateSignatureAspectRatio(currentData.Value, false, null, currentData);\n // eslint-disable-next-line\n bounds = this.formFieldsModule.getSignBounds(currentData.pageIndex, currentData.RotationAngle, currentData.pageIndex, this.viewerBase.getZoomFactor(), left, top, signBounds.width, signBounds.height, true);\n bounds.x = bounds.x + signBounds.left;\n bounds.y = bounds.y + signBounds.top;\n }\n else {\n bounds = this.formFieldsModule.getSignBounds(currentData.pageIndex, currentData.RotationAngle, currentData.pageIndex, this.viewerBase.getZoomFactor(), left, top, width, height);\n }\n }\n currentData.Bounds = bounds;\n }\n return currentData;\n };\n PdfViewer.prototype.imageOnLoad = function (bounds, image, currentData) {\n if (this.signatureFitMode === 'Default') {\n var padding = Math.min(bounds.height / this.paddingDifferenceValue, bounds.width / this.paddingDifferenceValue);\n var maxHeight = bounds.height - padding;\n var maxWidth = bounds.width - padding;\n var imageWidth = image.width;\n var imageHeight = image.height;\n var beforeWidth = bounds.width;\n var beforeHeight = bounds.height;\n var ratio = Math.min(maxWidth / imageWidth, maxHeight / imageHeight);\n bounds.width = imageWidth * ratio;\n bounds.height = imageHeight * ratio;\n bounds.x = bounds.x + (beforeWidth - bounds.width) / 2;\n bounds.y = bounds.y + (beforeHeight - bounds.height) / 2;\n var data = this.viewerBase.getItemFromSessionStorage('_formfields');\n if (data) {\n var FormFieldsData = JSON.parse(data);\n for (var i = 0; i < FormFieldsData.length; i++) {\n if (FormFieldsData[i].FieldName == currentData.FieldName) {\n FormFieldsData[i].Bounds = bounds;\n this.formFieldsModule.updateFormFieldsCollection(FormFieldsData[i]);\n }\n }\n window.sessionStorage.removeItem(this.viewerBase.documentId + '_formfields');\n this.viewerBase.setItemInSessionStorage(FormFieldsData, '_formfields');\n }\n }\n };\n /**\n * Perform undo action for the edited annotations\n *\n * @returns void\n */\n PdfViewer.prototype.undo = function () {\n if (this.annotationModule) {\n this.annotationModule.undo();\n }\n };\n /**\n * Perform redo action for the edited annotations\n *\n * @returns void\n */\n PdfViewer.prototype.redo = function () {\n if (this.annotationModule) {\n this.annotationModule.redo();\n }\n };\n /**\n * Unloads the PDF document being displayed in the PDF viewer.\n *\n * @returns void\n */\n PdfViewer.prototype.unload = function () {\n this.viewerBase.clear(true);\n this.pageCount = 0;\n if (!isBlazor()) {\n if (this.toolbarModule) {\n this.viewerBase.pageCount = 0;\n this.toolbarModule.resetToolbar();\n }\n }\n else {\n this.viewerBase.blazorUIAdaptor.resetToolbar();\n }\n this.magnificationModule.zoomTo(100);\n };\n /**\n * Destroys all managed resources used by this object.\n *\n * @returns void\n */\n PdfViewer.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n if (!isNullOrUndefined(this.element)) {\n if (!this.refreshing) {\n this.element.classList.remove('e-pdfviewer');\n }\n this.element.innerHTML = '';\n }\n if (this.viewerBase.navigationPane) {\n this.viewerBase.navigationPane.restrictUpdateZoomValue = false;\n }\n this.viewerBase.destroy();\n if (this.viewerBase.navigationPane) {\n this.viewerBase.navigationPane.restrictUpdateZoomValue = true;\n }\n };\n // eslint-disable-next-line\n /**\n * Perform imports annotations action in the PDF Viewer\n * @param {any} importData - Specifies the data for annotation imports\n * @returns void\n */\n // eslint-disable-next-line\n PdfViewer.prototype.importAnnotation = function (importData, annotationDataFormat) {\n if (this.annotationModule) {\n if (typeof (importData) === 'string') {\n var isXfdfFile = ((importData.indexOf('.xfdf') > -1) || (annotationDataFormat.indexOf('Xfdf') > -1)) ? true : false;\n if (annotationDataFormat) {\n if (importData.indexOf('') > -1) {\n this.viewerBase.importAnnotations(importData, annotationDataFormat, false);\n }\n else {\n this.viewerBase.importAnnotations(importData, annotationDataFormat, isXfdfFile);\n }\n }\n else {\n if (importData.split('.')[1] === 'json') {\n this.viewerBase.importAnnotations(importData, AnnotationDataFormat.Json);\n }\n else {\n this.viewerBase.importAnnotations(importData, AnnotationDataFormat.Xfdf, isXfdfFile);\n }\n }\n }\n else {\n this.viewerBase.importAnnotations(importData);\n }\n }\n };\n /**\n * Perform export annotations action in the PDF Viewer\n *\n * @param annotationDataFormat\n * @returns void\n */\n PdfViewer.prototype.exportAnnotation = function (annotationDataFormat) {\n if (this.annotationModule) {\n if (annotationDataFormat && annotationDataFormat === 'Xfdf') {\n this.viewerBase.exportAnnotations(AnnotationDataFormat.Xfdf);\n }\n else {\n this.viewerBase.exportAnnotations(AnnotationDataFormat.Json);\n }\n }\n };\n /**\n * Perform export annotations action in the PDF Viewer\n *\n * @returns Promise\n */\n PdfViewer.prototype.exportAnnotationsAsObject = function () {\n var _this = this;\n if (this.annotationModule) {\n return new Promise(function (resolve, reject) {\n _this.viewerBase.exportAnnotationsAsObject().then(function (value) {\n var jsonData = JSON.parse(value);\n var jsonstring = JSON.stringify(jsonData);\n resolve(jsonstring);\n });\n });\n }\n else {\n return null;\n }\n };\n /**\n * Export annotations and returns a base64 string for both Json and XFDF formats\n *\n * @param {AnnotationDataFormat} annotationDataFormat\n * @returns Promise\n */\n PdfViewer.prototype.exportAnnotationsAsBase64String = function (annotationDataFormat) {\n var _this = this;\n if (this.annotationModule) {\n return new Promise(function (resolve, reject) {\n _this.viewerBase.createRequestForExportAnnotations(false, annotationDataFormat, true).then(function (value) {\n resolve(value);\n });\n });\n }\n else {\n return null;\n }\n };\n /**\n * Perform to add annotations in the PDF Viewer\n *\n * @param annotation\n * @returns void\n */\n // eslint-disable-next-line\n PdfViewer.prototype.addAnnotation = function (annotation) {\n if (this.viewerBase) {\n this.viewerBase.addAnnotation(annotation);\n }\n };\n // eslint-disable-next-line\n /**\n * Imports the form fields data into the current PDF document.\n *\n * @param {string} data - The path for importing the fields.\n * @param {FormFieldDataFormat} formFieldDataFormat\n * @returns void\n */\n // eslint-disable-next-line\n PdfViewer.prototype.importFormFields = function (data, formFieldDataFormat) {\n if (this.formFieldsModule) {\n if (isNullOrUndefined(formFieldDataFormat)) {\n formFieldDataFormat = FormFieldDataFormat.Json;\n }\n this.viewerBase.importFormFields(data, formFieldDataFormat);\n }\n };\n /**\n * Exports the form field data in the specified data format.\n *\n * @param {string} data - The path for exporting the fields.\n * @param {FormFieldDataFormat} formFieldDataFormat\n * @returns void\n */\n PdfViewer.prototype.exportFormFields = function (data, formFieldDataFormat) {\n if (this.formFieldsModule) {\n this.viewerBase.exportFormFields(data, formFieldDataFormat);\n }\n };\n /**\n * Returns an object which represents the form field data in the specified data format.\n *\n * @param {FormFieldDataFormat} formFieldDataFormat\n * @returns Promise\n */\n PdfViewer.prototype.exportFormFieldsAsObject = function (formFieldDataFormat) {\n var _this = this;\n if (this.formFieldsModule) {\n return new Promise(function (resolve, reject) {\n _this.viewerBase.exportFormFieldsAsObject(formFieldDataFormat).then(function (value) {\n resolve(value);\n });\n });\n }\n else {\n return null;\n }\n };\n /**\n * reset all form fields data\n *\n * @returns void\n */\n PdfViewer.prototype.resetFormFields = function () {\n this.formFieldsModule.resetFormFields();\n };\n /**\n * Clears data from the form fields.\n * Parameter - Specifies the form field object.\n *\n * @param formField\n * @returns void\n */\n // eslint-disable-next-line\n PdfViewer.prototype.clearFormFields = function (formField) {\n this.formFieldsModule.clearFormFields(formField);\n };\n /**\n * To delete the annotation Collections in the PDF Document.\n *\n * @returns void\n */\n PdfViewer.prototype.deleteAnnotations = function () {\n if (this.annotationModule) {\n this.viewerBase.deleteAnnotations();\n }\n };\n /**\n * To retrieve the form fields in the PDF Document.\n *\n * @returns void\n */\n PdfViewer.prototype.retrieveFormFields = function () {\n return this.formFieldCollections;\n };\n /**\n * To update the form fields in the PDF Document.\n *\n * @param formFields\n * @returns void\n */\n // eslint-disable-next-line\n PdfViewer.prototype.updateFormFields = function (formFields) {\n this.updateFormFieldsValue(formFields);\n this.formFieldsModule.updateFormFieldValues(formFields);\n };\n /**\n * @param JsonData\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireAjaxRequestInitiate = function (JsonData) {\n var eventArgs = { name: 'ajaxRequestInitiate', JsonData: JsonData };\n this.trigger('ajaxRequestInitiate', eventArgs);\n };\n /**\n * @param value\n * @param fieldName\n * @param id\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireButtonFieldClickEvent = function (value, fieldName, id) {\n var eventArgs = { name: 'buttonFieldClicked', buttonFieldValue: value, buttonFieldName: fieldName, id: id };\n this.trigger('buttonFieldClick', eventArgs);\n };\n /**\n * @param name\n * @param field\n * @param cancel\n * @param isLeftClick - becomes true on signature panel left click.\n * @private\n */\n PdfViewer.prototype.fireFormFieldClickEvent = function (name, field, cancel, isLeftClick) {\n return __awaiter(this, void 0, void 0, function () {\n var eventArgs, target, formFieldCollectionsValue, readOnly;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n eventArgs = { name: name, field: field, cancel: cancel };\n if (!isBlazor()) return [3 /*break*/, 2];\n return [4 /*yield*/, this.triggerEvent('formFieldClick', eventArgs)];\n case 1:\n eventArgs = (_a.sent()) || eventArgs;\n eventArgs.field.type = field.type;\n return [3 /*break*/, 3];\n case 2:\n this.triggerEvent('formFieldClick', eventArgs);\n _a.label = 3;\n case 3:\n if (field.type === 'SignatureField' || field.type === 'InitialField') {\n if (field.type === 'InitialField')\n this.viewerBase.isInitialField = true;\n else\n this.viewerBase.isInitialField = false;\n target = document.getElementById(field.id);\n if (target.style.visibility === \"hidden\") {\n target.disabled = true;\n }\n target = target ? target : (document.getElementById(field.id + '_content_html_element') ? document.getElementById(field.id + '_content_html_element').children[0].children[0] : null);\n formFieldCollectionsValue = this.formFieldCollections.filter(function (item) { return item.id === field.id; });\n if (formFieldCollectionsValue) {\n readOnly = formFieldCollectionsValue[0].isReadOnly;\n if ((!readOnly) && !eventArgs.cancel && target && !target.disabled && target.classList.contains('e-pdfviewer-signatureformfields') && (isLeftClick || isNullOrUndefined(isLeftClick))) {\n this.viewerBase.signatureModule.showSignatureDialog(true);\n }\n else if (readOnly) {\n target.disabled = true;\n }\n }\n }\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * @param name - Get the name of the event.\n * @param field - Event arguments for the form field add event.\n * @param pageIndex - Get the page number.\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireFormFieldAddEvent = function (name, field, pageIndex) {\n var eventArgs = { name: name, field: field, pageIndex: pageIndex };\n this.viewerBase.isFormFieldSelect = false;\n this.trigger('formFieldAdd', eventArgs);\n };\n /**\n * @param name - Get the name of the event.\n * @param field - Event arguments for the form field remove event.\n * @param pageIndex - Get the page number.\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireFormFieldRemoveEvent = function (name, field, pageIndex) {\n var eventArgs = { name: name, field: field, pageIndex: pageIndex };\n this.trigger('formFieldRemove', eventArgs);\n };\n /**\n * @param name - Returns the event name.\n * @param field - Returns the double-clicked form field object.\n * @param cancel - If TRUE, property panel of the form field does not open. FALSE by default.\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireFormFieldDoubleClickEvent = function (eventArgs) {\n this.trigger('formFieldDoubleClick', eventArgs);\n return eventArgs;\n };\n /**\n * @param name - Get the name of the event.\n * @param field - Event arguments for the form field properties change event.\n * @param pageIndex - Get the page number.\n * @param isAlignmentChanged - Specifies whether the text alignment of the form field is changed or not.\n * @param isBackgroundColorChanged - Specifies whether the background color of the form field is changed or not.\n * @param isBorderColorChanged - Specifies whether the border color of the form field is changed or not.\n * @param isBorderWidthChanged - Specifies whether the border width of the form field is changed or not.\n * @param isColorChanged - Specifies whether the font color of the form field is changed or not.\n * @param isFontFamilyChanged - Specifies whether the font family of the form field is changed or not.\n * @param isFontSizeChanged - Specifies whether the font size of the form field is changed or not.\n * @param isFontStyleChanged - Specifies whether the font style of the form field is changed or not.\n * @param isMaxLengthChanged - Specifies whether the max length of the form field is changed or not.\n * @param isPrintChanged - Specifies whether the print option of the form field is changed or not.\n * @param isReadOnlyChanged - Specifies the Read Only of Form field is changed or not.\n * @param isRequiredChanged - Specifies whether the is required option of the form field is changed or not.\n * @param isToolTipChanged - Specifies whether the tool tip property is changed or not.\n * @param isValueChanged - Specifies whether the form field value is changed or not.\n * @param isVisibilityChanged - Specifies whether the form field visibility is changed or not.\n * @param newValue - Specifies the new value of the form field.\n * @param oldValue - Specifies the old value of the form field.\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireFormFieldPropertiesChangeEvent = function (name, field, pageIndex, isValueChanged, isFontFamilyChanged, isFontSizeChanged, isFontStyleChanged, isColorChanged, isBackgroundColorChanged, isBorderColorChanged, isBorderWidthChanged, isAlignmentChanged, isReadOnlyChanged, isVisibilityChanged, isMaxLengthChanged, isRequiredChanged, isPrintChanged, isToolTipChanged, oldValue, newValue, isNamechanged) {\n var eventArgs = {\n name: name, field: field, pageIndex: pageIndex, isValueChanged: isValueChanged, isFontFamilyChanged: isFontFamilyChanged, isFontSizeChanged: isFontSizeChanged,\n isFontStyleChanged: isFontStyleChanged, isColorChanged: isColorChanged, isBackgroundColorChanged: isBackgroundColorChanged, isBorderColorChanged: isBorderColorChanged,\n isBorderWidthChanged: isBorderWidthChanged, isAlignmentChanged: isAlignmentChanged, isReadOnlyChanged: isReadOnlyChanged, isVisibilityChanged: isVisibilityChanged,\n isMaxLengthChanged: isMaxLengthChanged, isRequiredChanged: isRequiredChanged, isPrintChanged: isPrintChanged,\n isToolTipChanged: isToolTipChanged, oldValue: oldValue, newValue: newValue, isNameChanged: !isNullOrUndefined(isNamechanged) ? isNamechanged : false\n };\n this.trigger('formFieldPropertiesChange', eventArgs);\n };\n /**\n * @param name - Get the name of the event.\n * @param field - Event arguments for the form field mouse leave event.\n * @param pageIndex - Get the page number.\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireFormFieldMouseLeaveEvent = function (name, field, pageIndex) {\n var eventArgs = { name: name, field: field, pageIndex: pageIndex };\n this.trigger('formFieldMouseLeave', eventArgs);\n };\n /**\n * @param name - Get the name of the event.\n * @param field - Event arguments for the form field mouse over event.\n * @param pageIndex - Get the page number.\n * @param pageX - Get the mouse over x position with respect to the page container.\n * @param pageY - Get the mouse over y position with respect to the page container.\n * @param X - Specifies the mouse over x position with respect to the viewer container.\n * @param Y - Specifies the mouse over y position with respect to the viewer container.\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireFormFieldMouseoverEvent = function (name, field, pageIndex, pageX, pageY, X, Y) {\n var eventArgs = { name: name, field: field, pageIndex: pageIndex, pageX: pageX, pageY: pageY, X: X, Y: Y };\n this.trigger('formFieldMouseover', eventArgs);\n };\n /**\n * @param name - Get the name of the event.\n * @param field - Event arguments for the form field move event.\n * @param pageIndex - Get the page number.\n * @param previousPosition - Get the previous position of the form field in the page.\n * @param currentPosition - Current position of form field in the page.\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireFormFieldMoveEvent = function (name, field, pageIndex, previousPosition, currentPosition) {\n var eventArgs = { name: name, field: field, pageIndex: pageIndex, previousPosition: previousPosition, currentPosition: currentPosition };\n this.trigger('formFieldMove', eventArgs);\n };\n /**\n * @param name - Get the name of the event.\n * @param field - Event arguments for the form field resize event.\n * @param pageIndex - Get the page number.\n * @param previousPosition - Get the previous position of the form field in the page.\n * @param currentPosition - Current position of form field in the page.\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireFormFieldResizeEvent = function (name, field, pageIndex, previousPosition, currentPosition) {\n var eventArgs = { name: name, field: field, pageIndex: pageIndex, previousPosition: previousPosition, currentPosition: currentPosition };\n this.trigger('formFieldResize', eventArgs);\n };\n /**\n * @param name - Get the name of the event.\n * @param field - Event arguments for the form field select event.\n * @param pageIndex - Get the page number.\n * @param isProgrammaticSelection - Specifies whether the the form field is selected programmatically or by UI.\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireFormFieldSelectEvent = function (name, field, pageIndex, isProgrammaticSelection) {\n var eventArgs = { name: name, field: field, pageIndex: pageIndex, isProgrammaticSelection: isProgrammaticSelection };\n this.trigger('formFieldSelect', eventArgs);\n };\n /**\n * @param name - Get the name of the event.\n * @param field - Event arguments for the form field unselect event.\n * @param pageIndex - Get the page number.\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireFormFieldUnselectEvent = function (name, field, pageIndex) {\n var eventArgs = { name: name, field: field, pageIndex: pageIndex };\n this.trigger('formFieldUnselect', eventArgs);\n };\n /**\n * @param pageData\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireDocumentLoad = function (pageData) {\n var eventArgs = { name: 'documentLoad', documentName: this.fileName, pageData: pageData };\n this.trigger('documentLoad', eventArgs);\n if (isBlazor()) {\n this._dotnetInstance.invokeMethodAsync('LoadDocument', null);\n this.viewerBase.blazorUIAdaptor.loadDocument();\n }\n };\n /**\n * @param fileName\n * @private\n */\n PdfViewer.prototype.fireDocumentUnload = function (fileName) {\n var eventArgs = { name: 'documentUnload', documentName: fileName };\n this.trigger('documentUnload', eventArgs);\n };\n /**\n * @param isPasswordRequired\n * @param password\n * @private\n */\n PdfViewer.prototype.fireDocumentLoadFailed = function (isPasswordRequired, password) {\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'documentLoadFailed', documentName: this.fileName, isPasswordRequired: isPasswordRequired, password: password };\n this.trigger('documentLoadFailed', eventArgs);\n };\n /**\n * @param errorStatusCode\n * @param errorMessage\n * @param action\n * @param retryCount\n * @private\n */\n PdfViewer.prototype.fireAjaxRequestFailed = function (errorStatusCode, errorMessage, action, retryCount) {\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'ajaxRequestFailed', documentName: this.fileName, errorStatusCode: errorStatusCode, errorMessage: errorMessage, action: action };\n if (retryCount) {\n eventArgs.retryCount = true;\n }\n this.trigger('ajaxRequestFailed', eventArgs);\n };\n /**\n * @param action\n * @param data\n * @private\n */\n PdfViewer.prototype.fireAjaxRequestSuccess = function (action, data) {\n var eventArgs = { name: 'ajaxRequestSuccess', documentName: this.fileName, action: action, data: data, cancel: false };\n this.trigger('ajaxRequestSuccess', eventArgs);\n if (eventArgs.cancel) {\n return true;\n }\n else {\n return false;\n }\n };\n /**\n * @param action\n * @private\n */\n PdfViewer.prototype.fireValidatedFailed = function (action) {\n if (!isBlazor()) {\n // eslint-disable-next-line max-len\n var eventArgs = { formField: this.formFieldCollections, documentName: this.fileName, nonFillableFields: this.viewerBase.nonFillableFields };\n this.trigger('validateFormFields', eventArgs);\n }\n else {\n // eslint-disable-next-line\n var eventArgs = {};\n eventArgs.documentName = this.fileName;\n eventArgs.formFields = this.formFieldCollections;\n eventArgs.nonFillableFields = this.viewerBase.nonFillableFields;\n this.trigger('validateFormFields', eventArgs);\n }\n };\n /**\n * @param x\n * @param y\n * @param pageNumber\n * @private\n */\n PdfViewer.prototype.firePageClick = function (x, y, pageNumber) {\n var eventArgs = { name: 'pageClick', documentName: this.fileName, x: x, y: y, pageNumber: pageNumber };\n this.trigger('pageClick', eventArgs);\n };\n /**\n * @param previousPageNumber\n * @private\n */\n PdfViewer.prototype.firePageChange = function (previousPageNumber) {\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'pageChange', documentName: this.fileName, currentPageNumber: this.currentPageNumber, previousPageNumber: previousPageNumber };\n this.trigger('pageChange', eventArgs);\n if (isBlazor()) {\n //this._dotnetInstance.invokeMethodAsync('OnPageChanged', this.currentPageNumber);\n this.viewerBase.blazorUIAdaptor.pageChanged(this.currentPageNumber);\n }\n };\n /**\n * @private\n */\n PdfViewer.prototype.fireZoomChange = function () {\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'zoomChange', zoomValue: this.magnificationModule.zoomFactor * 100, previousZoomValue: this.magnificationModule.previousZoomFactor * 100 };\n this.trigger('zoomChange', eventArgs);\n };\n /**\n * @param hyperlink\n * @param hyperlinkElement\n * @private\n */\n PdfViewer.prototype.fireHyperlinkClick = function (hyperlink, hyperlinkElement) {\n return __awaiter(this, void 0, void 0, function () {\n var eventArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n eventArgs = { name: 'hyperlinkClick', hyperlink: hyperlink, hyperlinkElement: hyperlinkElement, cancel: false };\n if (!isBlazor()) return [3 /*break*/, 2];\n return [4 /*yield*/, this.triggerEvent('hyperlinkClick', eventArgs)];\n case 1:\n eventArgs = (_a.sent()) || eventArgs;\n return [3 /*break*/, 3];\n case 2:\n this.triggerEvent('hyperlinkClick', eventArgs);\n _a.label = 3;\n case 3:\n if (eventArgs.hyperlinkElement.href != eventArgs.hyperlink) {\n hyperlinkElement.href = eventArgs.hyperlink;\n }\n if (eventArgs.cancel) {\n return [2 /*return*/, false];\n }\n else {\n return [2 /*return*/, true];\n }\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * @param hyperlinkElement\n * @private\n */\n PdfViewer.prototype.fireHyperlinkHover = function (hyperlinkElement) {\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'hyperlinkMouseOver', hyperlinkElement: hyperlinkElement };\n this.trigger('hyperlinkMouseOver', eventArgs);\n };\n /**\n * @param fieldName\n * @param value\n * @private\n */\n PdfViewer.prototype.fireFocusOutFormField = function (fieldName, value) {\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'formFieldFocusOut', fieldName: fieldName, value: value };\n // eslint-disable-next-line\n this.trigger('formFieldFocusOut', eventArgs);\n };\n /**\n * @param pageNumber\n * @param index\n * @param type\n * @param bounds\n * @param settings\n * @param textMarkupContent\n * @param tmStartIndex\n * @param tmEndIndex\n * @param labelSettings\n * @param multiPageCollection\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireAnnotationAdd = function (pageNumber, index, type, bounds, settings, textMarkupContent, tmStartIndex, tmEndIndex, labelSettings, multiPageCollection, customStampName) {\n var eventArgs = { name: 'annotationAdd', pageIndex: pageNumber, annotationId: index, annotationType: type, annotationBound: bounds, annotationSettings: settings };\n if (textMarkupContent) {\n if (isBlazor()) {\n eventArgs.annotationSettings.textMarkupContent = textMarkupContent;\n eventArgs.annotationSettings.textMarkupStartIndex = tmStartIndex;\n eventArgs.annotationSettings.textMarkupEndIndex = tmEndIndex;\n }\n else {\n eventArgs.textMarkupContent = textMarkupContent;\n eventArgs.textMarkupStartIndex = tmStartIndex;\n eventArgs.textMarkupEndIndex = tmEndIndex;\n }\n }\n if (labelSettings) {\n eventArgs.labelSettings = labelSettings;\n }\n if (multiPageCollection) {\n eventArgs.multiplePageCollection = multiPageCollection;\n }\n if (type === 'Image') {\n eventArgs.customStampName = customStampName;\n }\n this.viewerBase.isAnnotationSelect = false;\n this.trigger('annotationAdd', eventArgs);\n if (isBlazor()) {\n // this._dotnetInstance.invokeMethodAsync('AnnotationAdd', null);\n this.viewerBase.blazorUIAdaptor.annotationAdd();\n }\n };\n /**\n * @param pageNumber\n * @param index\n * @param type\n * @param bounds\n * @param textMarkupContent\n * @param tmStartIndex\n * @param tmEndIndex\n * @param multiPageCollection\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireAnnotationRemove = function (pageNumber, index, type, bounds, textMarkupContent, tmStartIndex, tmEndIndex, multiPageCollection) {\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'annotationRemove', pageIndex: pageNumber, annotationId: index, annotationType: type, annotationBounds: bounds };\n if (textMarkupContent) {\n eventArgs.textMarkupContent = textMarkupContent;\n eventArgs.textMarkupStartIndex = tmStartIndex;\n eventArgs.textMarkupEndIndex = tmEndIndex;\n }\n if (multiPageCollection) {\n eventArgs.multiplePageCollection = multiPageCollection;\n }\n this.trigger('annotationRemove', eventArgs);\n };\n /**\n * @param value\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireBeforeAddFreeTextAnnotation = function (value) {\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'beforeAddFreeText', value: value };\n // eslint-disable-next-line\n this.trigger('beforeAddFreeText', eventArgs);\n };\n /**\n * @param id\n * @param text\n * @param annotation\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireCommentAdd = function (id, text, annotation) {\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'CommentAdd', id: id, text: text, annotation: annotation };\n // eslint-disable-next-line\n this.trigger('commentAdd', eventArgs);\n };\n /**\n * @param id\n * @param text\n * @param annotation\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireCommentEdit = function (id, text, annotation) {\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'CommentEdit', id: id, text: text, annotation: annotation };\n // eslint-disable-next-line\n this.trigger('commentEdit', eventArgs);\n };\n /**\n * @param id\n * @param text\n * @param annotation\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireCommentDelete = function (id, text, annotation) {\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'CommentDelete', id: id, text: text, annotation: annotation };\n // eslint-disable-next-line\n this.trigger('commentDelete', eventArgs);\n };\n /**\n * @param id\n * @param text\n * @param annotation\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireCommentSelect = function (id, text, annotation) {\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'CommentSelect', id: id, text: text, annotation: annotation };\n // eslint-disable-next-line\n this.trigger('commentSelect', eventArgs);\n };\n /**\n * @param id\n * @param text\n * @param annotation\n * @param statusChange\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireCommentStatusChanged = function (id, text, annotation, statusChange) {\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'CommentStatusChanged', id: id, text: text, annotation: annotation, status: statusChange };\n // eslint-disable-next-line\n this.trigger('commentStatusChanged', eventArgs);\n };\n /**\n * @param pageNumber\n * @param index\n * @param type\n * @param isColorChanged\n * @param isOpacityChanged\n * @param isTextChanged\n * @param isCommentsChanged\n * @param textMarkupContent\n * @param tmStartIndex\n * @param tmEndIndex\n * @param multiPageCollection\n * @private\n */\n // eslint-disable-next-line max-len\n // eslint-disable-next-line\n PdfViewer.prototype.fireAnnotationPropertiesChange = function (pageNumber, index, type, isColorChanged, isOpacityChanged, isTextChanged, isCommentsChanged, textMarkupContent, tmStartIndex, tmEndIndex, multiPageCollection) {\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'annotationPropertiesChange', pageIndex: pageNumber, annotationId: index, annotationType: type, isColorChanged: isColorChanged, isOpacityChanged: isOpacityChanged, isTextChanged: isTextChanged, isCommentsChanged: isCommentsChanged };\n if (textMarkupContent) {\n eventArgs.textMarkupContent = textMarkupContent;\n eventArgs.textMarkupStartIndex = tmStartIndex;\n eventArgs.textMarkupEndIndex = tmEndIndex;\n }\n if (multiPageCollection) {\n eventArgs.multiplePageCollection = multiPageCollection;\n }\n this.trigger('annotationPropertiesChange', eventArgs);\n };\n /**\n * @param pageNumber\n * @param index\n * @param type\n * @param bounds\n * @param opacity\n * @param strokeColor\n * @param thickness\n * @param data\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireSignatureAdd = function (pageNumber, index, type, bounds, opacity, strokeColor, thickness, data) {\n var eventArgs = { pageIndex: pageNumber, id: index, type: type, bounds: bounds, opacity: opacity };\n if (thickness) {\n eventArgs.thickness = thickness;\n }\n if (strokeColor) {\n eventArgs.strokeColor = strokeColor;\n }\n if (data) {\n eventArgs.data = data;\n }\n this.trigger('addSignature', eventArgs);\n };\n /**\n * @param pageNumber\n * @param index\n * @param type\n * @param bounds\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireSignatureRemove = function (pageNumber, index, type, bounds) {\n var eventArgs = { pageIndex: pageNumber, id: index, type: type, bounds: bounds };\n this.trigger('removeSignature', eventArgs);\n };\n /**\n * @param pageNumber\n * @param id\n * @param type\n * @param opacity\n * @param strokeColor\n * @param thickness\n * @param previousPosition\n * @param currentPosition\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireSignatureMove = function (pageNumber, id, type, opacity, strokeColor, thickness, previousPosition, currentPosition) {\n var eventArgs = { pageIndex: pageNumber, id: id, type: type, opacity: opacity, strokeColor: strokeColor, thickness: thickness, previousPosition: previousPosition, currentPosition: currentPosition };\n this.trigger('moveSignature', eventArgs);\n };\n /**\n * @param pageNumber\n * @param index\n * @param type\n * @param isStrokeColorChanged\n * @param isOpacityChanged\n * @param isThicknessChanged\n * @param oldProp\n * @param newProp\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireSignaturePropertiesChange = function (pageNumber, index, type, isStrokeColorChanged, isOpacityChanged, isThicknessChanged, oldProp, newProp) {\n var eventArgs = { pageIndex: pageNumber, id: index, type: type, isStrokeColorChanged: isStrokeColorChanged, isOpacityChanged: isOpacityChanged, isThicknessChanged: isThicknessChanged, oldValue: oldProp, newValue: newProp };\n this.trigger('signaturePropertiesChange', eventArgs);\n };\n /**\n * @param pageNumber\n * @param index\n * @param type\n * @param opacity\n * @param strokeColor\n * @param thickness\n * @param currentPosition\n * @param previousPosition\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireSignatureResize = function (pageNumber, index, type, opacity, strokeColor, thickness, currentPosition, previousPosition) {\n var eventArgs = { pageIndex: pageNumber, id: index, type: type, opacity: opacity, strokeColor: strokeColor, thickness: thickness, currentPosition: currentPosition, previousPosition: previousPosition };\n this.trigger('resizeSignature', eventArgs);\n };\n /**\n * @param id\n * @param pageNumber\n * @param signature\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireSignatureSelect = function (id, pageNumber, signature) {\n var eventArgs = { id: id, pageIndex: pageNumber, signature: signature };\n this.trigger('signatureSelect', eventArgs);\n };\n /**\n * @param id\n * @param pageNumber\n * @param annotation\n * @param annotationCollection\n * @param multiPageCollection\n * @param isSelected\n * @param annotationAddMode\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireAnnotationSelect = function (id, pageNumber, annotation, annotationCollection, multiPageCollection, isSelected, annotationAddMode) {\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'annotationSelect', annotationId: id, pageIndex: pageNumber, annotation: annotation };\n if (annotationCollection) {\n // eslint-disable-next-line max-len\n eventArgs = { name: 'annotationSelect', annotationId: id, pageIndex: pageNumber, annotation: annotation, annotationCollection: annotationCollection };\n }\n if (multiPageCollection) {\n eventArgs.multiplePageCollection = multiPageCollection;\n }\n if (isSelected) {\n eventArgs.isProgrammaticSelection = isSelected;\n }\n if (annotationAddMode) {\n eventArgs.annotationAddMode = annotationAddMode;\n }\n if (isBlazor()) {\n if (annotation.type === 'FreeText') {\n // eslint-disable-next-line\n var fontStyle = { isBold: false, isItalic: false, isStrikeout: false, isUnderline: false };\n if (annotation.fontStyle === 1) {\n fontStyle.isBold = true;\n }\n else if (annotation.fontStyle === 2) {\n fontStyle.isItalic = true;\n }\n else if (annotation.fontStyle === 3) {\n fontStyle.isStrikeout = true;\n }\n else if (annotation.fontStyle === 4) {\n fontStyle.isUnderline = true;\n }\n annotation.fontStyle = fontStyle;\n }\n //this._dotnetInstance.invokeMethodAsync('AnnotationSelect', annotation.type);\n this.viewerBase.blazorUIAdaptor.annotationSelect(annotation.type);\n }\n this.trigger('annotationSelect', eventArgs);\n };\n /**\n * @param id\n * @param pageNumber\n * @param annotation\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireAnnotationUnSelect = function (id, pageNumber, annotation) {\n if (isBlazor()) {\n this.viewerBase.blazorUIAdaptor.annotationUnSelect();\n }\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'annotationUnSelect', annotationId: id, pageIndex: pageNumber, annotation: annotation };\n this.trigger('annotationUnSelect', eventArgs);\n };\n /**\n * @param id\n * @param pageNumber\n * @param annotation\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireAnnotationDoubleClick = function (id, pageNumber, annotation) {\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'annotationDblClick', annotationId: id, pageIndex: pageNumber, annotation: annotation };\n this.trigger('annotationDoubleClick', eventArgs);\n };\n /**\n * @param pageNumber\n * @private\n */\n PdfViewer.prototype.fireTextSelectionStart = function (pageNumber) {\n this.isTextSelectionStarted = true;\n var eventArgs = { pageIndex: pageNumber };\n this.trigger('textSelectionStart', eventArgs);\n };\n /**\n * @param pageNumber\n * @param text\n * @param bound\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireTextSelectionEnd = function (pageNumber, text, bound) {\n if (this.isTextSelectionStarted) {\n var eventArgs = { pageIndex: pageNumber, textContent: text, textBounds: bound };\n this.trigger('textSelectionEnd', eventArgs);\n this.isTextSelectionStarted = false;\n }\n };\n /**\n * @param canvas\n * @param index\n * @private\n */\n PdfViewer.prototype.renderDrawing = function (canvas, index) {\n if (isNullOrUndefined(index) && this.viewerBase.activeElements.activePageID && !this.viewerBase.isPrint) {\n index = this.viewerBase.activeElements.activePageID;\n }\n if (this.annotation) {\n this.annotation.renderAnnotations(index, null, null, null, canvas);\n }\n else if (this.formDesignerModule) {\n this.formDesignerModule.updateCanvas(index, canvas);\n }\n };\n /**\n * @param pageNumber\n * @param index\n * @param type\n * @param bounds\n * @param settings\n * @param textMarkupContent\n * @param tmStartIndex\n * @param tmEndIndex\n * @param labelSettings\n * @param multiPageCollection\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireAnnotationResize = function (pageNumber, index, type, bounds, settings, textMarkupContent, tmStartIndex, tmEndIndex, labelSettings, multiPageCollection) {\n var eventArgs = { name: 'annotationResize', pageIndex: pageNumber, annotationId: index, annotationType: type, annotationBound: bounds, annotationSettings: settings };\n if (textMarkupContent) {\n eventArgs.textMarkupContent = textMarkupContent;\n eventArgs.textMarkupStartIndex = tmStartIndex;\n eventArgs.textMarkupEndIndex = tmEndIndex;\n }\n if (labelSettings) {\n eventArgs.labelSettings = labelSettings;\n }\n if (multiPageCollection) {\n eventArgs.multiplePageCollection = multiPageCollection;\n }\n this.trigger('annotationResize', eventArgs);\n };\n /**\n * @param pageNumber\n * @param id\n * @param type\n * @param annotationSettings\n * @param previousPosition\n * @param currentPosition\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireAnnotationMoving = function (pageNumber, id, type, annotationSettings, previousPosition, currentPosition) {\n var eventArgs = { name: 'annotationMoving', pageIndex: pageNumber, annotationId: id, annotationType: type, annotationSettings: annotationSettings, previousPosition: previousPosition, currentPosition: currentPosition };\n this.trigger('annotationMoving', eventArgs);\n };\n /**\n * @param pageNumber\n * @param id\n * @param type\n * @param annotationSettings\n * @param previousPosition\n * @param currentPosition\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireAnnotationMove = function (pageNumber, id, type, annotationSettings, previousPosition, currentPosition) {\n var eventArgs = { name: 'annotationMove', pageIndex: pageNumber, annotationId: id, annotationType: type, annotationSettings: annotationSettings, previousPosition: previousPosition, currentPosition: currentPosition };\n this.trigger('annotationMove', eventArgs);\n };\n /**\n * @param id\n * @param pageNumber\n * @param annotationType\n * @param bounds\n * @param annotation\n * @param currentPosition\n * @param mousePosition\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireAnnotationMouseover = function (id, pageNumber, annotationType, bounds, annotation, currentPosition, mousePosition) {\n var eventArgs = { name: 'annotationMouseover', annotationId: id, pageIndex: pageNumber, annotationType: annotationType, annotationBounds: bounds, annotation: annotation, pageX: currentPosition.left, pageY: currentPosition.top, X: mousePosition.left, Y: mousePosition.top };\n if (isBlazor()) {\n if (annotation.subject === 'Perimeter calculation') {\n eventArgs.annotationType = 'Perimeter';\n }\n else if (annotation.subject === 'Area calculation') {\n eventArgs.annotationType = 'Area';\n }\n else if (annotation.subject === 'Volume calculation') {\n eventArgs.annotationType = 'Volume';\n }\n else if (annotation.subject === 'Arrow') {\n eventArgs.annotationType = 'Arrow';\n }\n else if (annotation.subject === 'Circle') {\n eventArgs.annotationType = 'Circle';\n }\n }\n this.trigger('annotationMouseover', eventArgs);\n };\n /**\n * @param pageNumber\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireAnnotationMouseLeave = function (pageNumber) {\n var eventArgs = { name: 'annotationMouseLeave', pageIndex: pageNumber };\n this.trigger('annotationMouseLeave', eventArgs);\n };\n /**\n * @param pageX\n * @param pageY\n * @private\n */\n PdfViewer.prototype.firePageMouseover = function (pageX, pageY) {\n var eventArgs = { pageX: pageX, pageY: pageY };\n this.trigger('pageMouseover', eventArgs);\n };\n /**\n * @param fileName\n * @private\n */\n PdfViewer.prototype.fireDownloadStart = function (fileName) {\n var eventArgs = { fileName: fileName };\n this.trigger('downloadStart', eventArgs);\n };\n /**\n * @param fileName\n * @param downloadData\n * @private\n */\n PdfViewer.prototype.fireDownloadEnd = function (fileName, downloadData) {\n var eventArgs = { fileName: fileName, downloadDocument: downloadData };\n this.trigger('downloadEnd', eventArgs);\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.firePrintStart = function () {\n return __awaiter(this, void 0, void 0, function () {\n var eventArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n eventArgs = { fileName: this.downloadFileName, cancel: false };\n if (!isBlazor) return [3 /*break*/, 2];\n return [4 /*yield*/, this.triggerEvent('printStart', eventArgs)];\n case 1:\n eventArgs = (_a.sent()) || eventArgs;\n return [3 /*break*/, 3];\n case 2:\n this.triggerEvent('printStart', eventArgs);\n _a.label = 3;\n case 3:\n if (!eventArgs.cancel) {\n this.printModule.print();\n }\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * @param eventName\n * @param args\n * @param eventName\n * @param args\n * @private\n */\n PdfViewer.prototype.triggerEvent = function (eventName, args) {\n return __awaiter(this, void 0, void 0, function () {\n var eventArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.trigger(eventName, args)];\n case 1:\n eventArgs = _a.sent();\n if (isBlazor && typeof eventArgs === 'string') {\n eventArgs = JSON.parse(eventArgs);\n }\n return [2 /*return*/, eventArgs];\n }\n });\n });\n };\n /**\n * @param fileName\n * @private\n */\n PdfViewer.prototype.firePrintEnd = function (fileName) {\n var eventArgs = { fileName: fileName };\n this.trigger('printEnd', eventArgs);\n };\n /**\n * @param pageNumber\n * @private\n */\n PdfViewer.prototype.fireThumbnailClick = function (pageNumber) {\n var eventArgs = { name: 'thumbnailClick', pageNumber: pageNumber };\n this.trigger('thumbnailClick', eventArgs);\n };\n /**\n * @param pageNumber\n * @param position\n * @param text\n * @param fileName\n * @private\n */\n PdfViewer.prototype.fireBookmarkClick = function (pageNumber, position, text, fileName) {\n // eslint-disable-next-line\n var eventArgs = { name: 'bookmarkClick', pageNumber: pageNumber, position: position, text: text, fileName: fileName };\n this.trigger('bookmarkClick', eventArgs);\n };\n /**\n * @param importData\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireImportStart = function (importData) {\n var eventArgs = { name: 'importAnnotationsStart', importData: importData, formFieldData: null };\n this.trigger('importStart', eventArgs);\n };\n /**\n * @param exportData\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireExportStart = function (exportData) {\n var eventArgs = { name: 'exportAnnotationsStart', exportData: exportData, formFieldData: null };\n this.trigger('exportStart', eventArgs);\n };\n /**\n * @param importData\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireImportSuccess = function (importData) {\n var eventArgs = { name: 'importAnnotationsSuccess', importData: importData, formFieldData: null };\n this.trigger('importSuccess', eventArgs);\n };\n /**\n * @param exportData\n * @param fileName\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireExportSuccess = function (exportData, fileName) {\n var eventArgs = { name: 'exportAnnotationsSuccess', exportData: exportData, fileName: fileName, formFieldData: null };\n this.trigger('exportSuccess', eventArgs);\n };\n /**\n * @param data\n * @param errorDetails\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireImportFailed = function (data, errorDetails) {\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'importAnnotationsFailed', importData: data, errorDetails: errorDetails, formFieldData: null };\n this.trigger('importFailed', eventArgs);\n };\n /**\n * @param data\n * @param errorDetails\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireExportFailed = function (data, errorDetails) {\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'exportAnnotationsFailed', exportData: data, errorDetails: errorDetails, formFieldData: null };\n this.trigger('exportFailed', eventArgs);\n };\n /**\n * @param data\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireFormImportStarted = function (data) {\n var eventArgs = { name: 'importFormFieldsStart', importData: null, formFieldData: data };\n this.trigger('importStart', eventArgs);\n };\n /**\n * @param data\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireFormExportStarted = function (data) {\n var eventArgs = { name: 'exportFormFieldsStart', exportData: null, formFieldData: data };\n this.trigger('exportStart', eventArgs);\n };\n /**\n * @param data\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireFormImportSuccess = function (data) {\n var eventArgs = { name: 'importFormFieldsSuccess', importData: data, formFieldData: data };\n this.trigger('importSuccess', eventArgs);\n };\n /**\n * @param data\n * @param fileName\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireFormExportSuccess = function (data, fileName) {\n var eventArgs = { name: 'exportFormFieldsSuccess', exportData: data, fileName: fileName, formFieldData: data };\n this.trigger('exportSuccess', eventArgs);\n };\n /**\n * @param data\n * @param errorDetails\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireFormImportFailed = function (data, errorDetails) {\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'importFormFieldsfailed', importData: data, errorDetails: errorDetails, formFieldData: data };\n this.trigger('importFailed', eventArgs);\n };\n /**\n * @param data\n * @param errorDetails\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireFormExportFailed = function (data, errorDetails) {\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'exportFormFieldsFailed', exportData: data, errorDetails: errorDetails, formFieldData: data };\n this.trigger('exportFailed', eventArgs);\n };\n /**\n * @param documentCollection\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireTextExtractionCompleted = function (documentCollection) {\n var eventArgs = { documentTextCollection: documentCollection };\n this.trigger('extractTextCompleted', eventArgs);\n };\n /**\n * @param searchText\n * @param isMatchcase\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireTextSearchStart = function (searchText, isMatchcase) {\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'textSearchStart', searchText: searchText, matchCase: isMatchcase };\n this.trigger('textSearchStart', eventArgs);\n };\n /**\n * @param searchText\n * @param isMatchcase\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireTextSearchComplete = function (searchText, isMatchcase) {\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'textSearchComplete', searchText: searchText, matchCase: isMatchcase };\n this.trigger('textSearchComplete', eventArgs);\n };\n /**\n * @param searchText\n * @param isMatchcase\n * @param bounds\n * @param pageNumber\n * @private\n */\n // eslint-disable-next-line\n PdfViewer.prototype.fireTextSearchHighlight = function (searchText, isMatchcase, bounds, pageNumber) {\n // eslint-disable-next-line max-len\n var eventArgs = { name: 'textSearchHighlight', searchText: searchText, matchCase: isMatchcase, bounds: bounds, pageNumber: pageNumber };\n this.trigger('textSearchHighlight', eventArgs);\n };\n /**\n * @param bounds\n * @param commonStyle\n * @param cavas\n * @param index\n * @private\n */\n PdfViewer.prototype.renderAdornerLayer = function (bounds, commonStyle, cavas, index) {\n renderAdornerLayer(bounds, commonStyle, cavas, index, this);\n };\n /**\n * @param index\n * @param currentSelector\n * @private\n */\n PdfViewer.prototype.renderSelector = function (index, currentSelector) {\n this.drawing.renderSelector(index, currentSelector);\n };\n /**\n * @param objArray\n * @param currentSelector\n * @param multipleSelection\n * @param preventUpdate\n * @private\n */\n // eslint-disable-next-line max-len\n PdfViewer.prototype.select = function (objArray, currentSelector, multipleSelection, preventUpdate) {\n var allowServerDataBind = this.allowServerDataBinding;\n this.enableServerDataBinding(false);\n if (this.annotationModule) {\n var module = this.annotationModule.textMarkupAnnotationModule;\n var annotationSelect = module && module.selectTextMarkupCurrentPage;\n // eslint-disable-next-line\n var annotation = this.selectedItems.annotations[0];\n if (annotationSelect) {\n // eslint-disable-next-line\n var currentAnnot = this.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation;\n this.annotationModule.textMarkupAnnotationModule.clearCurrentAnnotationSelection(annotationSelect, true);\n this.fireAnnotationUnSelect(currentAnnot.annotName, currentAnnot.pageNumber, currentAnnot);\n }\n if (!multipleSelection) {\n if (this.viewerBase.activeElements && this.viewerBase.activeElements.activePageID >= 0) {\n if (!this.viewerBase.isNewStamp && annotation && annotation.shapeAnnotationType !== 'HandWrittenSignature' && annotation.shapeAnnotationType !== 'SignatureText' && annotation.shapeAnnotationType !== 'SignatureImage') {\n this.fireAnnotationUnSelect(annotation.annotName, annotation.pageIndex, annotation);\n }\n }\n }\n }\n if (this.formDesignerModule) {\n var formField = this.selectedItems.formFields[0];\n if (formField) {\n if (this.formDesignerModule && formField && formField.formFieldAnnotationType) {\n var field = {\n name: formField.name, id: formField.id, value: formField.value, fontFamily: formField.fontFamily, fontSize: formField.fontSize, fontStyle: formField.fontStyle,\n color: formField.color, backgroundColor: formField.backgroundColor, borderColor: formField.borderColor,\n thickness: formField.thickness, alignment: formField.alignment, isReadonly: formField.isReadonly, visibility: formField.visibility,\n maxLength: formField.maxLength, isRequired: formField.isRequired, isPrint: formField.isPrint, rotation: formField.rotateAngle, tooltip: formField.tooltip, options: formField.options,\n isChecked: formField.isChecked, isSelected: formField.isSelected\n };\n this.fireFormFieldUnselectEvent(\"formFieldUnselect\", field, formField.pageIndex);\n }\n }\n }\n var proxy = this;\n this.viewerBase.renderedPagesList.forEach(function (item) {\n proxy.clearSelection(item);\n });\n this.drawing.select(objArray, currentSelector, multipleSelection, preventUpdate);\n this.enableServerDataBinding(allowServerDataBind, true);\n };\n /**\n * @param pageId\n * @private\n */\n PdfViewer.prototype.getPageTable = function (pageId) {\n return this.drawing.getPageTable(pageId);\n };\n /**\n * @param diffX\n * @param diffY\n * @param pageIndex\n * @param currentSelector\n * @param helper\n * @private\n */\n // eslint-disable-next-line max-len\n PdfViewer.prototype.dragSelectedObjects = function (diffX, diffY, pageIndex, currentSelector, helper) {\n return this.drawing.dragSelectedObjects(diffX, diffY, pageIndex, currentSelector, helper);\n };\n /**\n * @param sx\n * @param sy\n * @param pivot\n * @private\n */\n PdfViewer.prototype.scaleSelectedItems = function (sx, sy, pivot) {\n return this.drawing.scaleSelectedItems(sx, sy, pivot);\n };\n /**\n * @param endPoint\n * @param obj\n * @param point\n * @param segment\n * @param target\n * @param targetPortId\n * @param currentSelector\n * @private\n */\n // eslint-disable-next-line max-len\n PdfViewer.prototype.dragConnectorEnds = function (endPoint, obj, point, segment, target, targetPortId, currentSelector) {\n return this.drawing.dragConnectorEnds(endPoint, obj, point, segment, target, null, currentSelector);\n };\n /**\n * @param pageId\n * @private\n */\n PdfViewer.prototype.clearSelection = function (pageId) {\n var allowServerDataBind = this.allowServerDataBinding;\n this.enableServerDataBinding(false);\n var selectormodel = this.selectedItems;\n var node = selectormodel.annotations.length > 0 ? this.selectedItems.annotations[0] : this.selectedItems.formFields[0];\n if (selectormodel.annotations.length > 0) {\n selectormodel.offsetX = 0;\n selectormodel.offsetY = 0;\n selectormodel.width = 0;\n selectormodel.height = 0;\n selectormodel.rotateAngle = 0;\n selectormodel.annotations = [];\n selectormodel.wrapper = null;\n }\n else if (selectormodel.formFields.length > 0) {\n selectormodel.offsetX = 0;\n selectormodel.offsetY = 0;\n selectormodel.width = 0;\n selectormodel.height = 0;\n selectormodel.rotateAngle = 0;\n selectormodel.formFields = [];\n selectormodel.wrapper = null;\n }\n this.drawing.clearSelectorLayer(pageId);\n this.viewerBase.isAnnotationSelect = false;\n this.viewerBase.isFormFieldSelect = false;\n if (this.annotationModule) {\n var module = this.annotationModule.textMarkupAnnotationModule;\n if (module) {\n var annotationSelect = module.selectTextMarkupCurrentPage;\n this.annotationModule.textMarkupAnnotationModule.clearCurrentSelectedAnnotation();\n this.annotationModule.textMarkupAnnotationModule.clearCurrentAnnotationSelection(annotationSelect);\n }\n }\n this.enableServerDataBinding(allowServerDataBind, true);\n };\n /**\n * Get page number from the user coordinates x and y.\n *\n * @param {Point} clientPoint - The user will provide a x, y coordinates.\n * @returns number\n */\n PdfViewer.prototype.getPageNumberFromClientPoint = function (clientPoint) {\n var pageNumber = this.viewerBase.getPageNumberFromClientPoint(clientPoint);\n return pageNumber;\n };\n /**\n * Convert user coordinates to the PDF page coordinates.\n *\n * @param {Point} clientPoint - The user should provide a x, y coordinates.\n * @param {number} pageNumber - We need to pass pageNumber.\n * @returns Point\n */\n PdfViewer.prototype.convertClientPointToPagePoint = function (clientPoint, pageNumber) {\n var pagePoint = this.viewerBase.convertClientPointToPagePoint(clientPoint, pageNumber);\n return pagePoint;\n };\n /**\n * Convert page coordinates to the user coordinates.\n *\n * @param {Point} pagePoint - The user should provide a page x, y coordinates.\n * @param {number} pageNumber - We need to pass pageNumber.\n * @returns Point\n */\n PdfViewer.prototype.convertPagePointToClientPoint = function (pagePoint, pageNumber) {\n var clientPoint = this.viewerBase.convertPagePointToClientPoint(pagePoint, pageNumber);\n return clientPoint;\n };\n /**\n * Convert page coordinates to the scrolling coordinates.\n *\n * @param {Point} pagePoint - The user should provide a page x, y coordinates.\n * @param {number} pageNumber - We need to pass pageNumber.\n * @returns Point\n */\n PdfViewer.prototype.convertPagePointToScrollingPoint = function (pagePoint, pageNumber) {\n var scrollingPoint = this.viewerBase.convertPagePointToScrollingPoint(pagePoint, pageNumber);\n return scrollingPoint;\n };\n /**\n * Brings the given rectangular region to view and zooms in the document to fit the region in client area (view port).\n *\n * @param {Rect} rectangle - Specifies the region in client coordinates that is to be brought to view.\n */\n PdfViewer.prototype.zoomToRect = function (rectangle) {\n this.magnificationModule.zoomToRect(rectangle);\n };\n /**\n * @param obj\n * @private\n */\n PdfViewer.prototype.add = function (obj) {\n return this.drawing.add(obj);\n };\n /**\n * @param obj\n * @private\n */\n PdfViewer.prototype.remove = function (obj) {\n return this.drawing.remove(obj);\n };\n /**\n * @private\n */\n PdfViewer.prototype.copy = function () {\n if (this.annotation)\n this.annotation.isShapeCopied = true;\n else if (this.formDesigner && this.designerMode)\n this.formDesigner.isShapeCopied = true;\n return this.drawing.copy();\n };\n /**\n * @param angle\n * @param currentSelector\n * @private\n */\n PdfViewer.prototype.rotate = function (angle, currentSelector) {\n return this.drawing.rotate(this.selectedItems, angle, null, currentSelector);\n };\n /**\n * @param obj\n * @private\n */\n PdfViewer.prototype.paste = function (obj) {\n var index;\n if (this.viewerBase.activeElements.activePageID) {\n index = this.viewerBase.activeElements.activePageID;\n }\n return this.drawing.paste(obj, index || 0);\n };\n /**\n * @private\n */\n PdfViewer.prototype.refresh = function () {\n for (var i = 0; i < this.annotations.length; i++) {\n if (this.zIndexTable.length !== undefined) {\n var notFound = true;\n for (var i_1 = 0; i_1 < this.zIndexTable.length; i_1++) {\n var objects = this.zIndexTable[i_1].objects;\n for (var j = 0; j < objects.length; j++) {\n objects.splice(j, 1);\n }\n delete this.zIndexTable[i_1];\n }\n if (this.annotations[i]) {\n delete this.annotations[i];\n }\n if (this.selectedItems.annotations && this.selectedItems.annotations[i]) {\n delete this.selectedItems.annotations[i];\n }\n this.zIndexTable = [];\n this.renderDrawing();\n }\n if (this.annotations && this.annotations.length !== 0) {\n this.annotations.length = 0;\n this.selectedItems.annotations.length = 0;\n }\n }\n };\n /**\n * @private\n */\n PdfViewer.prototype.cut = function () {\n var index;\n if (this.viewerBase.activeElements.activePageID) {\n index = this.viewerBase.activeElements.activePageID;\n }\n if (this.annotation)\n this.annotation.isShapeCopied = true;\n else if (this.formDesigner && this.designerMode)\n this.formDesigner.isShapeCopied = true;\n return this.drawing.cut(index || 0);\n };\n /**\n * @param actualObject\n * @param node\n * @private\n */\n PdfViewer.prototype.nodePropertyChange = function (actualObject, node) {\n this.drawing.nodePropertyChange(actualObject, node);\n };\n /**\n * enableServerDataBinding method\n *\n * @returns { void } enableServerDataBinding method.\n * @param {boolean} enable - provide the node value.\n *\n * @private\n */\n PdfViewer.prototype.enableServerDataBinding = function (enable, clearBulkChanges) {\n if (clearBulkChanges === void 0) { clearBulkChanges = false; }\n if (isBlazor()) {\n this.allowServerDataBinding = enable;\n if (clearBulkChanges) {\n this.bulkChanges = {};\n }\n }\n };\n /**\n * @param tx\n * @param ty\n * @param pageIndex\n * @param nodeBounds\n * @param isStamp\n * @param isSkip\n * @private\n */\n // eslint-disable-next-line max-len\n PdfViewer.prototype.checkBoundaryConstraints = function (tx, ty, pageIndex, nodeBounds, isStamp, isSkip) {\n return this.drawing.checkBoundaryConstraints(tx, ty, pageIndex, nodeBounds, isStamp, isSkip);\n };\n __decorate([\n Property()\n ], PdfViewer.prototype, \"serviceUrl\", void 0);\n __decorate([\n Property(0)\n ], PdfViewer.prototype, \"pageCount\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"isDocumentEdited\", void 0);\n __decorate([\n Property(0)\n ], PdfViewer.prototype, \"currentPageNumber\", void 0);\n __decorate([\n Property()\n ], PdfViewer.prototype, \"documentPath\", void 0);\n __decorate([\n Property(null)\n ], PdfViewer.prototype, \"exportAnnotationFileName\", void 0);\n __decorate([\n Property()\n ], PdfViewer.prototype, \"downloadFileName\", void 0);\n __decorate([\n Property('auto')\n ], PdfViewer.prototype, \"height\", void 0);\n __decorate([\n Property('auto')\n ], PdfViewer.prototype, \"width\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableToolbar\", void 0);\n __decorate([\n Property(1)\n ], PdfViewer.prototype, \"retryCount\", void 0);\n __decorate([\n Property([500])\n ], PdfViewer.prototype, \"retryStatusCodes\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"showNotificationDialog\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableNavigationToolbar\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableCommentPanel\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"isCommandPanelOpen\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"enableTextMarkupResizer\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"enableMultiLineOverlap\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"isValidFreeText\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"isAnnotationToolbarOpen\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"isAnnotationToolbarVisible\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"isFormDesignerToolbarVisible\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"enableMultiPageAnnotation\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableDownload\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enablePrint\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enablePrintRotation\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableThumbnail\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"isThumbnailViewOpen\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"isSignatureEditable\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableBookmark\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"enableBookmarkStyles\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableHyperlink\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableHandwrittenSignature\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableInkAnnotation\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"restrictZoomRequest\", void 0);\n __decorate([\n Property('CurrentTab')\n ], PdfViewer.prototype, \"hyperlinkOpenState\", void 0);\n __decorate([\n Property('RightClick')\n ], PdfViewer.prototype, \"contextMenuOption\", void 0);\n __decorate([\n Property([])\n ], PdfViewer.prototype, \"disableContextMenuItems\", void 0);\n __decorate([\n Property({ name: '', id: '', type: '', isReadOnly: false, isSelected: false, isChecked: false, value: '', signatureType: [''], fontName: '', fontFamily: 'Helvetica', fontSize: 10, fontStyle: 'None', color: 'black', backgroundColor: 'white', alignment: 'Left', visibility: 'visible', maxLength: 0, isRequired: false, isPrint: false, tooltip: '', pageIndex: -1, options: [], signatureIndicatorSettings: { opacity: 1, backgroundColor: 'orange', width: 19, height: 10, fontSize: 10, text: null, color: 'black' } })\n ], PdfViewer.prototype, \"formFieldCollections\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableNavigation\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableAutoComplete\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableMagnification\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"enableShapeLabel\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableImportAnnotationMeasurement\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enablePinchZoom\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableTextSelection\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableTextSearch\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableAnnotation\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableFormFields\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableFormDesigner\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"designerMode\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"enableFormFieldsValidation\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"isFormFieldDocument\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"enableDesktopMode\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"hideSaveSignature\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableFreeText\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableTextMarkupAnnotation\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableShapeAnnotation\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableMeasureAnnotation\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableStampAnnotations\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableStickyNotesAnnotation\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableAnnotationToolbar\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableFormDesignerToolbar\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"isBookmarkPanelOpen\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"isInitialFieldToolbarSelection\", void 0);\n __decorate([\n Property('TextSelection')\n ], PdfViewer.prototype, \"interactionMode\", void 0);\n __decorate([\n Property('Default')\n ], PdfViewer.prototype, \"zoomMode\", void 0);\n __decorate([\n Property('Default')\n ], PdfViewer.prototype, \"signatureFitMode\", void 0);\n __decorate([\n Property('Default')\n ], PdfViewer.prototype, \"printMode\", void 0);\n __decorate([\n Property(0)\n ], PdfViewer.prototype, \"zoomValue\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"enableZoomOptimization\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"isExtractText\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"isMaintainSelection\", void 0);\n __decorate([\n Property(false)\n ], PdfViewer.prototype, \"hideEmptyDigitalSignatureFields\", void 0);\n __decorate([\n Property(true)\n ], PdfViewer.prototype, \"showDigitalSignatureAppearance\", void 0);\n __decorate([\n Property('M/d/yyyy h:mm:ss a')\n ], PdfViewer.prototype, \"dateTimeFormat\", void 0);\n __decorate([\n Property({ showTooltip: true, toolbarItems: ['OpenOption', 'UndoRedoTool', 'PageNavigationTool', 'MagnificationTool', 'PanTool', 'SelectionTool', 'CommentTool', 'SubmitForm', 'AnnotationEditTool', 'FormDesignerEditTool', 'FreeTextAnnotationOption', 'InkAnnotationOption', 'ShapeAnnotationOption', 'StampAnnotation', 'SignatureOption', 'SearchOption', 'PrintOption', 'DownloadOption'], annotationToolbarItems: ['HighlightTool', 'UnderlineTool', 'StrikethroughTool', 'ColorEditTool', 'OpacityEditTool', 'AnnotationDeleteTool', 'StampAnnotationTool', 'HandWrittenSignatureTool', 'InkAnnotationTool', 'ShapeTool', 'CalibrateTool', 'StrokeColorEditTool', 'ThicknessEditTool', 'FreeTextAnnotationTool', 'FontFamilyAnnotationTool', 'FontSizeAnnotationTool', 'FontStylesAnnotationTool', 'FontAlignAnnotationTool', 'FontColorAnnotationTool', 'CommentPanelTool'], formDesignerToolbarItems: ['TextboxTool', 'PasswordTool', 'CheckBoxTool', 'RadioButtonTool', 'DropdownTool', 'ListboxTool', 'DrawSignatureTool', 'DeleteTool'] })\n ], PdfViewer.prototype, \"toolbarSettings\", void 0);\n __decorate([\n Property({ ajaxHeaders: [], withCredentials: false })\n ], PdfViewer.prototype, \"ajaxRequestSettings\", void 0);\n __decorate([\n Property({ customStampName: '', customStampImageSource: '' })\n ], PdfViewer.prototype, \"customStamp\", void 0);\n __decorate([\n Property({ load: 'Load', renderPages: 'RenderPdfPages', unload: 'Unload', download: 'Download', renderThumbnail: 'RenderThumbnailImages', print: 'PrintImages', renderComments: 'RenderAnnotationComments', importAnnotations: 'ImportAnnotations', exportAnnotations: 'ExportAnnotations', importFormFields: 'ImportFormFields', exportFormFields: 'ExportFormFields', renderTexts: 'RenderPdfTexts' })\n ], PdfViewer.prototype, \"serverActionSettings\", void 0);\n __decorate([\n Property({ name: '', isReadOnly: false, visibility: 'visible', isRequired: false, isPrint: true, tooltip: '', thickness: 1, signatureIndicatorSettings: { opacity: 1, backgroundColor: 'orange', width: 19, height: 10, fontSize: 10, text: null, color: 'black' }, signatureDialogSettings: { displayMode: DisplayMode.Draw | DisplayMode.Text | DisplayMode.Upload, hideSaveSignature: false } })\n ], PdfViewer.prototype, \"signatureFieldSettings\", void 0);\n __decorate([\n Property({ name: '', isReadOnly: false, visibility: 'visible', isRequired: false, isPrint: true, tooltip: '', thickness: 1, initialIndicatorSettings: { opacity: 1, backgroundColor: 'orange', width: 19, height: 10, fontSize: 10, text: null, color: 'black' }, initialDialogSettings: { displayMode: DisplayMode.Draw | DisplayMode.Text | DisplayMode.Upload, hideSaveSignature: false } })\n ], PdfViewer.prototype, \"initialFieldSettings\", void 0);\n __decorate([\n Property({ opacity: 1, color: '#FFDF56', author: 'Guest', annotationSelectorSettings: { selectionBorderColor: '', resizerBorderColor: 'black', resizerFillColor: '#FF4081', resizerSize: 8, selectionBorderThickness: 1, resizerShape: 'Square', selectorLineDashArray: [], resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges }, isLock: false, enableMultiPageAnnotation: false, enableTextMarkupResizer: false, allowedInteractions: ['None'], isPrint: true })\n ], PdfViewer.prototype, \"highlightSettings\", void 0);\n __decorate([\n Property({ opacity: 1, color: '#ff0000', author: 'Guest', annotationSelectorSettings: { selectionBorderColor: '', resizerBorderColor: 'black', resizerFillColor: '#FF4081', resizerSize: 8, selectionBorderThickness: 1, resizerShape: 'Square', selectorLineDashArray: [], resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges }, isLock: false, enableMultiPageAnnotation: false, enableTextMarkupResizer: false, allowedInteractions: ['None'], isPrint: true })\n ], PdfViewer.prototype, \"strikethroughSettings\", void 0);\n __decorate([\n Property({ opacity: 1, color: '#00ff00', author: 'Guest', annotationSelectorSettings: { selectionBorderColor: '', resizerBorderColor: 'black', resizerFillColor: '#FF4081', resizerSize: 8, selectionBorderThickness: 1, resizerShape: 'Square', selectorLineDashArray: [], resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges }, isLock: false, enableMultiPageAnnotation: false, enableTextMarkupResizer: false, allowedInteractions: ['None'], isPrint: true })\n ], PdfViewer.prototype, \"underlineSettings\", void 0);\n __decorate([\n Property({ opacity: 1, fillColor: '#ffffff00', strokeColor: '#ff0000', author: 'Guest', thickness: 1, borderDashArray: 0, lineHeadStartStyle: 'None', lineHeadEndStyle: 'None', annotationSelectorSettings: { selectionBorderColor: '', resizerBorderColor: 'black', resizerFillColor: '#FF4081', resizerSize: 8, selectionBorderThickness: 1, resizerShape: 'Square', selectorLineDashArray: [], resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges, resizerCursorType: null }, minHeight: 0, minWidth: 0, maxWidth: 0, maxHeight: 0, isLock: false, allowedInteractions: ['None'], isPrint: true })\n ], PdfViewer.prototype, \"lineSettings\", void 0);\n __decorate([\n Property({ opacity: 1, fillColor: '#ffffff00', strokeColor: '#ff0000', author: 'Guest', thickness: 1, borderDashArray: 0, lineHeadStartStyle: 'Closed', lineHeadEndStyle: 'Closed', annotationSelectorSettings: { selectionBorderColor: '', resizerBorderColor: 'black', resizerFillColor: '#FF4081', resizerSize: 8, selectionBorderThickness: 1, resizerShape: 'Square', selectorLineDashArray: [], resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges, resizerCursorType: null }, minHeight: 0, minWidth: 0, maxWidth: 0, maxHeight: 0, isLock: false, allowedInteractions: ['None'], isPrint: true })\n ], PdfViewer.prototype, \"arrowSettings\", void 0);\n __decorate([\n Property({ opacity: 1, fillColor: '#ffffff00', strokeColor: '#ff0000', author: 'Guest', thickness: 1, annotationSelectorSettings: { selectionBorderColor: '', resizerBorderColor: 'black', resizerFillColor: '#FF4081', resizerSize: 8, selectionBorderThickness: 1, resizerShape: 'Square', selectorLineDashArray: [], resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges, resizerCursorType: null }, minHeight: 0, minWidth: 0, maxWidth: 0, maxHeight: 0, isLock: false, allowedInteractions: ['None'], isPrint: true })\n ], PdfViewer.prototype, \"rectangleSettings\", void 0);\n __decorate([\n Property({ opacity: 1, fillColor: '#ffffff00', borderColor: '#ff0000', fontColor: '#000', fontSize: 16, labelHeight: 24.6, labelMaxWidth: 151, labelContent: 'Label' })\n ], PdfViewer.prototype, \"shapeLabelSettings\", void 0);\n __decorate([\n Property({ opacity: 1, fillColor: '#ffffff00', strokeColor: '#ff0000', author: 'Guest', thickness: 1, annotationSelectorSettings: { selectionBorderColor: '', resizerBorderColor: 'black', resizerFillColor: '#FF4081', resizerSize: 8, selectionBorderThickness: 1, resizerShape: 'Square', selectorLineDashArray: [], resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges, resizerCursorType: null }, minHeight: 0, minWidth: 0, maxWidth: 0, maxHeight: 0, isLock: false, allowedInteractions: ['None'], isPrint: true })\n ], PdfViewer.prototype, \"circleSettings\", void 0);\n __decorate([\n Property({ opacity: 1, fillColor: '#ffffff00', strokeColor: '#ff0000', author: 'Guest', thickness: 1, annotationSelectorSettings: { selectionBorderColor: '', resizerBorderColor: 'black', resizerFillColor: '#FF4081', resizerSize: 8, selectionBorderThickness: 1, resizerShape: 'Square', selectorLineDashArray: [], resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges, resizerCursorType: null }, minHeight: 0, minWidth: 0, maxWidth: 0, maxHeight: 0, isLock: false, allowedInteractions: ['None'], isPrint: true })\n ], PdfViewer.prototype, \"polygonSettings\", void 0);\n __decorate([\n Property({ opacity: 1, author: 'Guest', annotationSelectorSettings: { selectionBorderColor: '', resizerBorderColor: 'black', resizerFillColor: '#FF4081', resizerSize: 8, selectionBorderThickness: 1, resizerShape: 'Square', selectorLineDashArray: [], resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges, resizerCursorType: null }, minHeight: 0, minWidth: 0, maxWidth: 0, maxHeight: 0, isLock: false, dynamicStamps: [DynamicStampItem.Revised, DynamicStampItem.Reviewed, DynamicStampItem.Received, DynamicStampItem.Confidential, DynamicStampItem.Approved, DynamicStampItem.NotApproved], signStamps: [SignStampItem.Witness, SignStampItem.InitialHere, SignStampItem.SignHere, SignStampItem.Accepted, SignStampItem.Rejected], standardBusinessStamps: [StandardBusinessStampItem.Approved, StandardBusinessStampItem.NotApproved, StandardBusinessStampItem.Draft, StandardBusinessStampItem.Final, StandardBusinessStampItem.Completed, StandardBusinessStampItem.Confidential, StandardBusinessStampItem.ForPublicRelease, StandardBusinessStampItem.NotForPublicRelease, StandardBusinessStampItem.ForComment, StandardBusinessStampItem.Void, StandardBusinessStampItem.PreliminaryResults, StandardBusinessStampItem.InformationOnly], allowedInteractions: ['None'], isPrint: true })\n ], PdfViewer.prototype, \"stampSettings\", void 0);\n __decorate([\n Property({ opacity: 1, author: 'Guest', width: 0, height: 0, left: 0, top: 0, minHeight: 0, minWidth: 0, maxWidth: 0, maxHeight: 0, isLock: false, enableCustomStamp: true, allowedInteractions: ['None'], isPrint: true })\n ], PdfViewer.prototype, \"customStampSettings\", void 0);\n __decorate([\n Property({ opacity: 1, fillColor: '#ffffff00', strokeColor: '#ff0000', author: 'Guest', thickness: 1, borderDashArray: 0, lineHeadStartStyle: 'Closed', lineHeadEndStyle: 'Closed', annotationSelectorSettings: { selectionBorderColor: '', resizerBorderColor: 'black', resizerFillColor: '#FF4081', resizerSize: 8, selectionBorderThickness: 1, resizerShape: 'Square', selectorLineDashArray: [], resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges, resizerCursorType: null }, minHeight: 0, minWidth: 0, maxWidth: 0, maxHeight: 0, isLock: false, leaderLength: 40, resizeCursorType: CursorType.move, allowedInteractions: ['None'], isPrint: true })\n ], PdfViewer.prototype, \"distanceSettings\", void 0);\n __decorate([\n Property({ opacity: 1, fillColor: '#ffffff00', strokeColor: '#ff0000', author: 'Guest', thickness: 1, borderDashArray: 0, lineHeadStartStyle: 'Open', lineHeadEndStyle: 'Open', minHeight: 0, minWidth: 0, maxWidth: 0, maxHeight: 0, isLock: false, annotationSelectorSettings: { selectionBorderColor: '', resizerBorderColor: 'black', resizerFillColor: '#FF4081', resizerSize: 8, selectionBorderThickness: 1, resizerShape: 'Square', selectorLineDashArray: [], resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges, resizerCursorType: null }, allowedInteractions: ['None'], isPrint: true })\n ], PdfViewer.prototype, \"perimeterSettings\", void 0);\n __decorate([\n Property({ opacity: 1, fillColor: '#ffffff00', strokeColor: '#ff0000', author: 'Guest', thickness: 1, minHeight: 0, minWidth: 0, maxWidth: 0, maxHeight: 0, isLock: false, annotationSelectorSettings: { selectionBorderColor: '', resizerBorderColor: 'black', resizerFillColor: '#FF4081', resizerSize: 8, selectionBorderThickness: 1, resizerShape: 'Square', selectorLineDashArray: [], resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges, resizerCursorType: null }, allowedInteractions: ['None'], isPrint: true })\n ], PdfViewer.prototype, \"areaSettings\", void 0);\n __decorate([\n Property({ opacity: 1, fillColor: '#ffffff00', strokeColor: '#ff0000', author: 'Guest', thickness: 1, annotationSelectorSettings: { selectionBorderColor: '', resizerBorderColor: 'black', resizerFillColor: '#FF4081', resizerSize: 8, selectionBorderThickness: 1, resizerShape: 'Square', selectorLineDashArray: [], resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges, resizerCursorType: null }, minHeight: 0, minWidth: 0, maxWidth: 0, maxHeight: 0, isLock: false, allowedInteractions: ['None'], isPrint: true })\n ], PdfViewer.prototype, \"radiusSettings\", void 0);\n __decorate([\n Property({ opacity: 1, fillColor: '#ffffff00', strokeColor: '#ff0000', author: 'Guest', thickness: 1, minHeight: 0, minWidth: 0, maxWidth: 0, maxHeight: 0, isLock: false, annotationSelectorSettings: { selectionBorderColor: '', resizerBorderColor: 'black', resizerFillColor: '#FF4081', resizerSize: 8, selectionBorderThickness: 1, resizerShape: 'Square', selectorLineDashArray: [], resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges, resizerCursorType: null }, allowedInteractions: ['None'], isPrint: true })\n ], PdfViewer.prototype, \"volumeSettings\", void 0);\n __decorate([\n Property({ author: 'Guest', opacity: 1, annotationSelectorSettings: { selectionBorderColor: '', resizerBorderColor: 'black', resizerFillColor: '#FF4081', resizerSize: 8, selectionBorderThickness: 1, resizerShape: 'Square', selectorLineDashArray: [], resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges, resizerCursorType: null }, isLock: false, allowedInteractions: ['None'], isPrint: true })\n ], PdfViewer.prototype, \"stickyNotesSettings\", void 0);\n __decorate([\n Property({ opacity: 1, fillColor: '#ffffff00', borderColor: '#ffffff00', author: 'Guest', borderWidth: 1, width: 151, fontSize: 16, height: 24.6, fontColor: '#000', fontFamily: 'Helvetica', defaultText: 'Type Here', textAlignment: 'Left', fontStyle: FontStyle.None, allowTextOnly: false, annotationSelectorSettings: { selectionBorderColor: '', resizerBorderColor: 'black', resizerFillColor: '#FF4081', resizerSize: 8, selectionBorderThickness: 1, resizerShape: 'Square', selectorLineDashArray: [], resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges, resizerCursorType: null }, minHeight: 0, minWidth: 0, maxWidth: 0, maxHeight: 0, isLock: false, allowedInteractions: ['None'], isPrint: true, isReadonly: false, enableAutoFit: false })\n ], PdfViewer.prototype, \"freeTextSettings\", void 0);\n __decorate([\n Property({ conversionUnit: 'in', displayUnit: 'in', scaleRatio: 1, depth: 96 })\n ], PdfViewer.prototype, \"measurementSettings\", void 0);\n __decorate([\n Property({ selectionBorderColor: '', resizerBorderColor: 'black', resizerFillColor: '#FF4081', resizerSize: 8, selectionBorderThickness: 1, resizerShape: 'Square', selectorLineDashArray: [], resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges, resizerCursorType: null })\n ], PdfViewer.prototype, \"annotationSelectorSettings\", void 0);\n __decorate([\n Property({ searchHighlightColor: '#fdd835', searchColor: '#8b4c12' })\n ], PdfViewer.prototype, \"textSearchColorSettings\", void 0);\n __decorate([\n Property({ displayMode: DisplayMode.Draw | DisplayMode.Text | DisplayMode.Upload, hideSaveSignature: false })\n ], PdfViewer.prototype, \"signatureDialogSettings\", void 0);\n __decorate([\n Property({ displayMode: DisplayMode.Draw | DisplayMode.Text | DisplayMode.Upload, hideSaveSignature: false })\n ], PdfViewer.prototype, \"initialDialogSettings\", void 0);\n __decorate([\n Property({ signatureItem: ['Signature', 'Initial'], saveSignatureLimit: 1, saveInitialLimit: 1, opacity: 1, strokeColor: '#000000', width: 150, height: 100, thickness: 1, annotationSelectorSettings: { selectionBorderColor: '', resizerBorderColor: 'black', resizerFillColor: '#FF4081', resizerSize: 8, selectionBorderThickness: 1, resizerShape: 'Square', selectorLineDashArray: [], resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges, resizerCursorType: null }, allowedInteractions: ['None'], signatureDialogSettings: { displayMode: DisplayMode.Draw | DisplayMode.Text | DisplayMode.Upload, hideSaveSignature: false }, initialDialogSettings: { displayMode: DisplayMode.Draw | DisplayMode.Text | DisplayMode.Upload, hideSaveSignature: false } })\n ], PdfViewer.prototype, \"handWrittenSignatureSettings\", void 0);\n __decorate([\n Property({ author: 'Guest', opacity: 1, strokeColor: '#ff0000', thickness: 1, annotationSelectorSettings: { selectionBorderColor: '', resizerBorderColor: 'black', resizerFillColor: '#FF4081', resizerSize: 8, selectionBorderThickness: 1, resizerShape: 'Square', selectorLineDashArray: [], resizerLocation: AnnotationResizerLocation.Corners | AnnotationResizerLocation.Edges, resizerCursorType: null }, isLock: false, allowedInteractions: ['None'], isPrint: true })\n ], PdfViewer.prototype, \"inkAnnotationSettings\", void 0);\n __decorate([\n Property({ author: 'Guest', minHeight: 0, minWidth: 0, maxWidth: 0, maxHeight: 0, isLock: false, skipPrint: false, skipDownload: false, allowedInteractions: ['None'] })\n ], PdfViewer.prototype, \"annotationSettings\", void 0);\n __decorate([\n Property({ enableTileRendering: true, x: 0, y: 0 })\n ], PdfViewer.prototype, \"tileRenderingSettings\", void 0);\n __decorate([\n Property({ delayPageRequestTimeOnScroll: 100 })\n ], PdfViewer.prototype, \"scrollSettings\", void 0);\n __decorate([\n Property({ name: '', value: '', fontFamily: 'Helvetica', fontSize: 10, fontStyle: 'None', color: 'black', borderColor: 'black', backgroundColor: 'white', alignment: 'Left', isReadOnly: false, visibility: 'visible', maxLength: 0, isRequired: false, isPrint: true, tooltip: '', thickness: 1, isMultiline: false })\n ], PdfViewer.prototype, \"textFieldSettings\", void 0);\n __decorate([\n Property({ name: '', value: '', fontFamily: 'Helvetica', fontSize: 10, fontStyle: 'None', color: 'black', borderColor: 'black', backgroundColor: 'white', alignment: 'Left', isReadOnly: false, visibility: 'visible', maxLength: 0, isRequired: false, isPrint: true, tooltip: '', thickness: 1 })\n ], PdfViewer.prototype, \"passwordFieldSettings\", void 0);\n __decorate([\n Property({ name: '', isChecked: false, backgroundColor: 'white', isReadOnly: false, visibility: 'visible', isPrint: true, tooltip: '', isRequired: false, thickness: 1, borderColor: 'black' })\n ], PdfViewer.prototype, \"checkBoxFieldSettings\", void 0);\n __decorate([\n Property({ name: '', isSelected: false, backgroundColor: 'white', isReadOnly: false, visibility: 'visible', isPrint: true, tooltip: '', isRequired: false, thickness: 1, borderColor: 'black' })\n ], PdfViewer.prototype, \"radioButtonFieldSettings\", void 0);\n __decorate([\n Property({ name: '', fontFamily: 'Helvetica', fontSize: 10, fontStyle: 'None', color: 'black', backgroundColor: 'white', alignment: 'Left', isReadOnly: false, visibility: 'visible', isRequired: false, isPrint: true, tooltip: '', options: [], thickness: 1, borderColor: 'black' })\n ], PdfViewer.prototype, \"DropdownFieldSettings\", void 0);\n __decorate([\n Property({ name: '', fontFamily: 'Helvetica', fontSize: 10, fontStyle: 'None', color: 'black', backgroundColor: 'white', alignment: 'Left', isReadOnly: false, visibility: 'visible', isRequired: false, isPrint: false, tooltip: '', options: [], thickness: 1, borderColor: 'black' })\n ], PdfViewer.prototype, \"listBoxFieldSettings\", void 0);\n __decorate([\n Property({ contextMenuAction: 'RightClick', contextMenuItems: [ContextMenuItem.Comment, ContextMenuItem.Copy, ContextMenuItem.Cut, ContextMenuItem.Delete, ContextMenuItem.Highlight, ContextMenuItem.Paste, ContextMenuItem.Properties, ContextMenuItem.ScaleRatio, ContextMenuItem.Strikethrough, ContextMenuItem.Underline] })\n ], PdfViewer.prototype, \"contextMenuSettings\", void 0);\n __decorate([\n Complex({}, Selector)\n ], PdfViewer.prototype, \"selectedItems\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"documentLoad\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"documentUnload\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"documentLoadFailed\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"ajaxRequestFailed\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"ajaxRequestSuccess\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"validateFormFields\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"pageClick\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"pageChange\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"hyperlinkClick\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"hyperlinkMouseOver\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"zoomChange\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"annotationAdd\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"annotationRemove\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"annotationPropertiesChange\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"annotationResize\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"addSignature\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"removeSignature\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"moveSignature\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"signaturePropertiesChange\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"resizeSignature\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"signatureSelect\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"annotationSelect\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"annotationUnSelect\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"annotationDoubleClick\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"annotationMove\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"annotationMoving\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"annotationMouseover\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"annotationMouseLeave\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"pageMouseover\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"importStart\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"exportStart\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"importSuccess\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"exportSuccess\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"importFailed\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"exportFailed\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"extractTextCompleted\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"thumbnailClick\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"bookmarkClick\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"textSelectionStart\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"textSelectionEnd\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"downloadStart\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"buttonFieldClick\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"formFieldClick\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"downloadEnd\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"printStart\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"printEnd\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"textSearchStart\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"textSearchComplete\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"textSearchHighlight\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"ajaxRequestInitiate\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"commentAdd\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"commentEdit\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"commentDelete\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"commentSelect\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"commentStatusChanged\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"beforeAddFreeText\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"formFieldFocusOut\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"formFieldAdd\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"formFieldRemove\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"formFieldPropertiesChange\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"formFieldMouseLeave\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"formFieldMouseover\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"formFieldMove\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"formFieldResize\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"formFieldSelect\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"formFieldUnselect\", void 0);\n __decorate([\n Event()\n ], PdfViewer.prototype, \"formFieldDoubleClick\", void 0);\n __decorate([\n Collection([], PdfAnnotationBase)\n ], PdfViewer.prototype, \"annotations\", void 0);\n __decorate([\n Collection([], PdfFormFieldBase)\n ], PdfViewer.prototype, \"formFields\", void 0);\n __decorate([\n Property()\n ], PdfViewer.prototype, \"drawingObject\", void 0);\n PdfViewer = __decorate([\n NotifyPropertyChanges\n ], PdfViewer);\n return PdfViewer;\n}(Component));\nexport { PdfViewer };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * React Component Base\n */\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { extend, isNullOrUndefined, setValue, getValue, isObject } from '@syncfusion/ej2-base';\nvar defaulthtmlkeys = ['alt', 'className', 'disabled', 'form', 'id',\n 'readOnly', 'style', 'tabIndex', 'title', 'type', 'name',\n 'onClick', 'onFocus', 'onBlur'];\nvar delayUpdate = ['accordion', 'tab', 'splitter'];\nvar reactUid = 0;\nvar isColEName = new RegExp('\\]');\n// tslint:disable\n/* eslint-disable @typescript-eslint/no-explicit-any */\nvar ComponentBase = /** @class */ (function (_super) {\n __extends(ComponentBase, _super);\n function ComponentBase() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.mountingState = false;\n _this.attrKeys = [];\n _this.cachedTimeOut = 0;\n _this.isAppendCalled = false;\n _this.initRenderCalled = false;\n _this.isReactForeceUpdate = false;\n _this.isReact = true;\n _this.isshouldComponentUpdateCalled = false;\n _this.isCreated = false;\n return _this;\n }\n // Lifecycle methods are changed by React team and so we can deprecate this method and use\n // Reference link:https://reactjs.org/docs/react-component.html#unsafe_componentWillMount\n // tslint:disable-next-line:no-any\n ComponentBase.prototype.componentDidMount = function () {\n this.refreshChild(true);\n this.canDelayUpdate = delayUpdate.indexOf(this.getModuleName()) !== -1;\n // Used timeout to resolve template binding\n // Reference link: https://github.com/facebook/react/issues/10309#issuecomment-318433235\n // tslint:disable-next-line:no-any\n this.renderReactComponent();\n if (this.portals && this.portals.length) {\n this.mountingState = true;\n this.renderReactTemplates();\n this.mountingState = false;\n }\n };\n ComponentBase.prototype.componentDidUpdate = function (prev) {\n if (!this.isshouldComponentUpdateCalled && this.initRenderCalled && !this.isReactForeceUpdate) {\n this.isshouldComponentUpdateCalled = true;\n if (prev !== this.props) {\n this.refreshProperties(this.props, true);\n }\n }\n };\n ComponentBase.prototype.renderReactComponent = function () {\n var ele = this.reactElement;\n if (ele && !this.isAppendCalled) {\n this.isAppendCalled = true;\n this.appendTo(ele);\n }\n };\n // Lifecycle methods are changed by React team and so we can deprecate this method and use\n // Reference link:https://reactjs.org/docs/react-component.html#unsafe_componentwillreceiveprops\n // tslint:disable-next-line:no-any\n /**\n * @private\n */\n ComponentBase.prototype.shouldComponentUpdate = function (nextProps) {\n this.isshouldComponentUpdateCalled = true;\n if (!this.initRenderCalled) {\n this.updateProperties(nextProps, true);\n return true;\n }\n if (!this.isAppendCalled) {\n clearTimeout(this.cachedTimeOut);\n this.isAppendCalled = true;\n this.appendTo(this.reactElement);\n }\n this.updateProperties(nextProps);\n return true;\n };\n /**\n * @private\n */\n ComponentBase.prototype.updateProperties = function (nextProps, silent) {\n var _this = this;\n var dProps = extend({}, nextProps);\n var keys = Object.keys(nextProps);\n var templateProps = ['valueTemplate', 'itemTemplate', 'headerTemplate', 'content'];\n var statelessTemplates = !isNullOrUndefined(this.props['statelessTemplates']) ? this.props['statelessTemplates'] : templateProps;\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var propkey = keys_1[_i];\n var isClassName = propkey === 'className';\n if (propkey === 'children') {\n continue;\n }\n if (!isClassName && !isNullOrUndefined(this.htmlattributes[\"\" + propkey]) &&\n this.htmlattributes[\"\" + propkey] !== dProps[\"\" + propkey]) {\n this.htmlattributes[\"\" + propkey] = dProps[\"\" + propkey];\n }\n if (this.compareValues(this.props[\"\" + propkey], nextProps[\"\" + propkey])) {\n delete dProps[\"\" + propkey];\n }\n else if (this.attrKeys.indexOf(propkey) !== -1) {\n if (isClassName) {\n this.clsName = true;\n var propsClsName = this.props[\"\" + propkey].split(' ');\n for (var i = 0; i < propsClsName.length; i++) {\n this.element.classList.remove(propsClsName[parseInt(i.toString(), 10)]);\n }\n var dpropsClsName = dProps[\"\" + propkey].split(' ');\n for (var j = 0; j < dpropsClsName.length; j++) {\n this.element.classList.add(dpropsClsName[parseInt(j.toString(), 10)]);\n }\n }\n else if (propkey !== 'disabled') {\n delete dProps[\"\" + propkey];\n }\n }\n else if (propkey === 'value' && nextProps[\"\" + propkey] === this[\"\" + propkey]) {\n delete dProps[\"\" + propkey];\n }\n else if (statelessTemplates.indexOf(propkey) > -1 && ((propkey === 'content' && typeof dProps[\"\" + propkey] === 'function') || (nextProps[\"\" + propkey].toString() === this[\"\" + propkey].toString()))) {\n delete dProps[\"\" + propkey];\n }\n }\n if (dProps['children']) {\n delete dProps['children'];\n }\n // tslint:disable-next-line:no-any\n if (this.initRenderCalled && (this.canDelayUpdate || this.props.delayUpdate)) {\n setTimeout(function () {\n _this.refreshProperties(dProps, nextProps, silent);\n });\n }\n else {\n this.refreshProperties(dProps, nextProps, silent);\n }\n };\n ComponentBase.prototype.refreshProperties = function (dProps, nextProps, silent) {\n var statelessTemplates = !isNullOrUndefined(this.props['statelessTemplates']) ? this.props['statelessTemplates'] : [];\n if (Object.keys(dProps).length) {\n if (!silent) {\n // tslint:disable-next-line:no-any\n this.processComplexTemplate(dProps, this);\n }\n this.setProperties(dProps, silent);\n }\n if (statelessTemplates.indexOf('directiveTemplates') === -1) {\n this.refreshChild(silent, nextProps);\n }\n };\n ComponentBase.prototype.processComplexTemplate = function (curObject, context) {\n var compTemplate = context.complexTemplate;\n if (compTemplate) {\n for (var prop in compTemplate) {\n var PropVal = compTemplate[\"\" + prop];\n if (curObject[\"\" + prop]) {\n setValue(PropVal, getValue(prop, curObject), curObject);\n }\n }\n }\n };\n ComponentBase.prototype.getDefaultAttributes = function () {\n var _this = this;\n this.isReact = true;\n var propKeys = Object.keys(this.props);\n var stringValue = ['autocomplete', 'dropdownlist', 'combobox'];\n // if ((stringValue.indexOf(this.getModuleName()) !== -1) && (!isNullOrUndefined(this.props[\"value\"]))) {\n // this.value = (<{ [key: string]: Object }>this.props)[\"value\"];\n // }\n if (!this.htmlattributes) {\n this.htmlattributes = {};\n }\n this.attrKeys = defaulthtmlkeys.concat(this.controlAttributes || []);\n for (var _i = 0, propKeys_1 = propKeys; _i < propKeys_1.length; _i++) {\n var prop = propKeys_1[_i];\n if (prop.indexOf('data-') !== -1 || prop.indexOf('aria-') !== -1 || this.attrKeys.indexOf(prop) !== -1) {\n if (this.htmlattributes[\"\" + prop] !== this.props[\"\" + prop]) {\n this.htmlattributes[\"\" + prop] = this.props[\"\" + prop];\n }\n }\n }\n if (!this.htmlattributes.ref) {\n /* tslint:disable:no-any */\n this.htmlattributes.ref = function (ele) {\n _this.reactElement = ele;\n };\n var keycompoentns = ['autocomplete', 'combobox', 'dropdownlist', 'dropdowntree', 'multiselect',\n 'listbox', 'colorpicker', 'numerictextbox', 'textbox',\n 'uploader', 'maskedtextbox', 'slider', 'datepicker', 'datetimepicker', 'daterangepicker', 'timepicker', 'checkbox', 'switch', 'radio'];\n if (keycompoentns.indexOf(this.getModuleName()) !== -1) {\n this.htmlattributes.key = '' + ComponentBase.reactUid;\n ComponentBase.reactUid++;\n }\n }\n if (this.clsName) {\n var clsList = this.element.classList;\n var className = this.htmlattributes['className'];\n for (var i = 0; i < clsList.length; i++) {\n if ((className.indexOf(clsList[parseInt(i.toString(), 10)]) === -1)) {\n this.htmlattributes['className'] = this.htmlattributes['className'] + ' ' + clsList[parseInt(i.toString(), 10)];\n }\n }\n this.clsName = false;\n }\n return this.htmlattributes;\n };\n /* tslint:disable:no-any */\n ComponentBase.prototype.trigger = function (eventName, eventProp, successHandler) {\n var _this = this;\n if (this.isDestroyed !== true && this.modelObserver) {\n if (isColEName.test(eventName)) {\n var handler = getValue(eventName, this);\n if (handler) {\n handler.call(this, eventProp);\n if (successHandler) {\n successHandler.call(this, eventProp);\n }\n }\n else if (successHandler) {\n successHandler.call(this, eventProp);\n }\n }\n if ((eventName === 'change' || eventName === 'input')) {\n if (this.props.onChange && eventProp.event) {\n this.props.onChange.call(undefined, {\n syntheticEvent: eventProp.event,\n nativeEvent: { text: eventProp.value },\n value: eventProp.value,\n target: this\n });\n }\n }\n var prevDetection = this.isProtectedOnChange;\n this.isProtectedOnChange = false;\n if (eventName === 'created') {\n setTimeout(function () {\n _this.isCreated = true;\n if (!_this.isDestroyed) {\n _this.modelObserver.notify(eventName, eventProp, successHandler);\n }\n }, 10);\n }\n else {\n this.modelObserver.notify(eventName, eventProp, successHandler);\n }\n this.isProtectedOnChange = prevDetection;\n }\n };\n ComponentBase.prototype.compareValues = function (value1, value2) {\n var typeVal = typeof value1;\n var typeVal2 = typeof value2;\n if (typeVal === typeVal2) {\n if (value1 === value2) {\n return true;\n }\n if ((!isNullOrUndefined(value1) && value1.constructor) !== (!isNullOrUndefined(value2) && value2.constructor)) {\n return false;\n }\n if (value1 instanceof Date ||\n value1 instanceof RegExp ||\n value1 instanceof String ||\n value1 instanceof Number) {\n return value1.toString() === value2.toString();\n }\n if (isObject(value1) || Array.isArray(value1)) {\n var tempVal = value1;\n var tempVal2 = value2;\n if (isObject(tempVal)) {\n tempVal = [value1];\n tempVal2 = [value2];\n }\n return this.compareObjects(tempVal, tempVal2).status;\n }\n }\n return false;\n };\n ComponentBase.prototype.compareObjects = function (oldProps, newProps, propName) {\n var status = true;\n var lenSimilarity = (oldProps.length === newProps.length);\n var diffArray = [];\n if (lenSimilarity) {\n for (var i = 0, len = newProps.length; i < len; i++) {\n var curObj = {};\n var oldProp = oldProps[parseInt(i.toString(), 10)];\n var newProp = newProps[parseInt(i.toString(), 10)];\n var keys = Object.keys(newProp);\n if (keys.length !== 0) {\n for (var _i = 0, keys_2 = keys; _i < keys_2.length; _i++) {\n var key = keys_2[_i];\n var oldValue = oldProp[\"\" + key];\n var newValue = newProp[\"\" + key];\n if (key === 'items') {\n for (var _j = 0; _j < newValue.length; _j++) {\n if (this.getModuleName() === 'richtexteditor' && typeof (newValue[parseInt(_j.toString(), 10)]) === 'object') {\n return { status: true };\n }\n }\n }\n if (this.getModuleName() === 'grid' && key === 'field') {\n curObj[\"\" + key] = newValue;\n }\n if (!oldProp.hasOwnProperty(key) || !this.compareValues(oldValue, newValue)) {\n if (!propName) {\n return { status: false };\n }\n status = false;\n curObj[\"\" + key] = newValue;\n }\n }\n }\n else if (newProps[parseInt(i.toString(), 10)] === oldProps[parseInt(i.toString(), 10)]) {\n status = true;\n }\n else {\n if (!propName) {\n return { status: false };\n }\n status = false;\n }\n if (Object.keys(curObj).length) {\n diffArray.push({ index: i, value: curObj, key: propName });\n }\n }\n }\n else {\n status = false;\n }\n return { status: status, changedProperties: diffArray };\n };\n ComponentBase.prototype.refreshChild = function (silent, props) {\n if (this.checkInjectedModules) {\n var prevModule = this.getInjectedModules() || [];\n var curModule = this.getInjectedServices() || [];\n for (var _i = 0, curModule_1 = curModule; _i < curModule_1.length; _i++) {\n var mod = curModule_1[_i];\n if (prevModule.indexOf(mod) === -1) {\n prevModule.push(mod);\n }\n }\n this.injectedModules = prevModule;\n }\n if (this.directivekeys) {\n var changedProps = [];\n var directiveValue = this.validateChildren({}, this.directivekeys, (props || this.props));\n if (directiveValue && Object.keys(directiveValue).length) {\n if (!silent && this.skipRefresh) {\n for (var _a = 0, _b = this.skipRefresh; _a < _b.length; _a++) {\n var fields = _b[_a];\n delete directiveValue[\"\" + fields];\n }\n }\n if (this.prevProperties) {\n var dKeys = Object.keys(this.prevProperties);\n for (var i = 0; i < dKeys.length; i++) {\n var key = dKeys[parseInt(i.toString(), 10)];\n if (!directiveValue.hasOwnProperty(key)) {\n continue;\n }\n var compareOutput = this.compareObjects(this.prevProperties[\"\" + key], directiveValue[\"\" + key], key);\n if (compareOutput.status) {\n delete directiveValue[\"\" + key];\n }\n else {\n if (compareOutput.changedProperties.length) {\n changedProps = changedProps.concat(compareOutput.changedProperties);\n }\n var obj = {};\n obj[\"\" + key] = directiveValue[\"\" + key];\n this.prevProperties = extend(this.prevProperties, obj);\n }\n }\n }\n else {\n this.prevProperties = extend({}, directiveValue, {}, true);\n }\n if (changedProps.length) {\n if (this.getModuleName() === 'grid' && key === 'columns') {\n for (var _c1 = 0, allColumns = this.columns; _c1 < allColumns.length; _c1++) {\n var compareField1 = getValue('field', allColumns[parseInt(_c1.toString(), 10)]);\n var compareField2 = getValue(_c1 + '.value.field', changedProps);\n if (compareField1 === compareField2) {\n var propInstance = getValue(changedProps[parseInt(_c1.toString(), 10)].key + '.' + changedProps[parseInt(_c1.toString(), 10)].index, this);\n if (propInstance && propInstance.setProperties) {\n propInstance.setProperties(changedProps[parseInt(_c1.toString(), 10)].value);\n }\n else {\n extend(propInstance, changedProps[parseInt(_c1.toString(), 10)].value);\n }\n }\n else {\n this.setProperties(directiveValue, silent);\n }\n }\n }\n else {\n for (var _c = 0, changedProps_1 = changedProps; _c < changedProps_1.length; _c++) {\n var changes = changedProps_1[_c];\n var propInstance_1 = getValue(changes.key + '.' + changes.index, this);\n if (propInstance_1 && propInstance_1.setProperties) {\n propInstance_1.setProperties(changes.value);\n }\n else {\n extend(propInstance_1, changes.value);\n }\n }\n }\n }\n else {\n this.setProperties(directiveValue, silent);\n }\n }\n }\n };\n ComponentBase.prototype.componentWillUnmount = function () {\n clearTimeout(this.cachedTimeOut);\n var modulesName = ['dropdowntree', 'checkbox'];\n // tslint:disable-next-line:no-any\n if (this.initRenderCalled && this.isAppendCalled && this.element && ((!modulesName.indexOf(this.getModuleName())) ? document.body.contains(this.element) : true) && !this.isDestroyed && this.isCreated) {\n this.destroy();\n }\n };\n // tslint:disable:no-any\n ComponentBase.prototype.appendReactElement = function (element, container) {\n var portal = ReactDOM.createPortal(element, container);\n if (!this.portals) {\n this.portals = [portal];\n }\n else {\n this.portals.push(portal);\n }\n };\n // tslint:disable:no-any\n ComponentBase.prototype.renderReactTemplates = function (callback) {\n this.isReactForeceUpdate = true;\n if (callback) {\n this.forceUpdate(callback);\n }\n else {\n this.forceUpdate();\n }\n this.isReactForeceUpdate = false;\n };\n // tslint:disable:no-any\n ComponentBase.prototype.clearTemplate = function (templateNames, index, callback) {\n var _this = this;\n var tempPortal = [];\n if (templateNames && templateNames.length) {\n Array.prototype.forEach.call(templateNames, function (propName) {\n var indexCount = 0;\n var propIndexCount = 0;\n _this.portals.forEach(function (portal) {\n if (portal.propName === propName) {\n tempPortal.push(propIndexCount);\n propIndexCount++;\n }\n });\n if (!isNullOrUndefined(index) && _this.portals[tempPortal[(\"\" + index)[parseInt(indexCount.toString(), 10)]]].propName === propName) {\n _this.portals.splice(index, 1);\n indexCount++;\n }\n else {\n for (var i = 0; i < _this.portals.length; i++) {\n if (_this.portals[parseInt(i.toString(), 10)].propName === propName) {\n _this.portals.splice(i, 1);\n i--;\n }\n }\n }\n });\n }\n else {\n this.portals = [];\n }\n this.renderReactTemplates(callback);\n };\n /* tslint:disable:no-any */\n ComponentBase.prototype.validateChildren = function (childCache, mapper, props) {\n var flag = false;\n var childs = React.Children.toArray(props.children);\n for (var _i = 0, childs_1 = childs; _i < childs_1.length; _i++) {\n var child = childs_1[_i];\n var ifield = this.getChildType(child);\n var key = mapper[\"\" + ifield];\n if (ifield && mapper) {\n // tslint:disable\n var childProps = this.getChildProps(React.Children.toArray(child.props.children), key);\n if (childProps.length) {\n flag = true;\n // tslint:disable\n childCache[child.type.propertyName || ifield] = childProps;\n }\n }\n }\n if (flag) {\n return childCache;\n }\n return null;\n };\n // tslint:disable:no-any\n ComponentBase.prototype.getChildType = function (child) {\n if (child.type && child.type.isDirective) {\n return child.type.moduleName || '';\n }\n return '';\n };\n ComponentBase.prototype.getChildProps = function (subChild, matcher) {\n var ret = [];\n for (var _i = 0, subChild_1 = subChild; _i < subChild_1.length; _i++) {\n var child = subChild_1[_i];\n var accessProp = false;\n var key = void 0;\n if (typeof matcher === 'string') {\n accessProp = true;\n key = matcher;\n }\n else {\n key = Object.keys(matcher)[0];\n }\n var prop = child.props;\n // tslint:disable-next-line:no-any\n var field = this.getChildType(child);\n if (field === key) {\n if (accessProp || !prop.children) {\n // tslint:disable\n var cacheVal = extend({}, prop, {}, true);\n // tslint:disable\n this.processComplexTemplate(cacheVal, child.type);\n ret.push(cacheVal);\n }\n else {\n var cachedValue = this.validateChildren(extend({}, prop), matcher[\"\" + key], prop) || prop;\n if (cachedValue['children']) {\n delete cachedValue['children'];\n }\n // tslint:disable\n this.processComplexTemplate(cachedValue, child.type);\n ret.push(cachedValue);\n }\n }\n }\n return ret;\n };\n // tslint:disable:no-any\n ComponentBase.prototype.getInjectedServices = function () {\n var childs = React.Children.toArray(this.props.children);\n for (var _i = 0, childs_2 = childs; _i < childs_2.length; _i++) {\n var child = childs_2[_i];\n /* tslint:disable:no-any */\n if (child.type.isService) {\n return child.props.services;\n }\n }\n return [];\n };\n /**\n * @private\n */\n ComponentBase.reactUid = 1;\n return ComponentBase;\n}(React.Component));\nexport { ComponentBase };\n/* tslint:enable:no-any */\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\n/**\n * Directory base\n */\nvar ComplexBase = /** @class */ (function (_super) {\n __extends(ComplexBase, _super);\n function ComplexBase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ComplexBase.prototype.render = function () {\n return null;\n };\n ComplexBase.isDirective = true;\n return ComplexBase;\n}(React.PureComponent));\nexport { ComplexBase };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * Dependency injection\n */\nimport * as React from 'react';\nvar Inject = /** @class */ (function (_super) {\n __extends(Inject, _super);\n function Inject() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n // eslint-disable-next-line\n Inject.prototype.render = function () {\n return null;\n };\n Inject.isService = true;\n return Inject;\n}(React.PureComponent));\nexport { Inject };\n","/**\n * Template compiler for react\n */\nimport { setTemplateEngine, getTemplateEngine, extend } from '@syncfusion/ej2-base';\nimport * as ReactDOM from 'react-dom';\nimport * as React from 'react';\n/* eslint-disable @typescript-eslint/no-explicit-any */\nvar stringCompiler = getTemplateEngine();\n// eslint-disable-next-line\nexport function compile(templateElement, helper) {\n if (typeof templateElement === 'string') {\n return stringCompiler(templateElement, helper);\n }\n else {\n return function (data, component, prop, element) {\n var actTemplate = templateElement;\n var actData = data;\n if (typeof actTemplate === 'object') {\n actTemplate = templateElement.template;\n actData = extend({}, data, templateElement.data || {});\n }\n var cEle;\n if (element) {\n cEle = element;\n }\n else {\n cEle = document.createElement('div');\n }\n var rele = React.createElement(actTemplate, actData);\n var portal = ReactDOM.createPortal(rele, cEle);\n portal.propName = prop;\n if (!component.portals) {\n component.portals = [portal];\n }\n else {\n component.portals.push(portal);\n }\n if (!element) {\n return [cEle];\n }\n };\n }\n}\nsetTemplateEngine({ compile: compile });\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { PdfViewer } from '@syncfusion/ej2-pdfviewer';\nimport { ComponentBase, applyMixins } from '@syncfusion/ej2-react-base';\n/**\n * `Represents the react PdfViewer Component.\n * ```tsx\n * \n * ```\n */\nvar PdfViewerComponent = /** @class */ (function (_super) {\n __extends(PdfViewerComponent, _super);\n function PdfViewerComponent(props) {\n var _this = _super.call(this, props) || this;\n _this.initRenderCalled = false;\n _this.checkInjectedModules = true;\n _this.immediateRender = true;\n _this.portals = [];\n return _this;\n }\n PdfViewerComponent.prototype.render = function () {\n if (((this.element && !this.initRenderCalled) || this.refreshing) && !this.isReactForeceUpdate) {\n _super.prototype.render.call(this);\n this.initRenderCalled = true;\n }\n else {\n return React.createElement('div', this.getDefaultAttributes(), [].concat(this.props.children, this.portals));\n }\n };\n return PdfViewerComponent;\n}(PdfViewer));\nexport { PdfViewerComponent };\napplyMixins(PdfViewerComponent, [ComponentBase, React.Component]);\n","// eslint-disable-next-line\nexport function applyMixins(derivedClass, baseClass) {\n // tslint:disable:typedef\n baseClass.forEach(function (baseClass) {\n Object.getOwnPropertyNames(baseClass.prototype).forEach(function (name) {\n if (name !== 'isMounted' && name !== 'replaceState') {\n derivedClass.prototype[\"\" + name] = baseClass.prototype[\"\" + name];\n }\n });\n });\n}\n","import { isNullOrUndefined, classList, createElement } from '@syncfusion/ej2-base';\nvar globalTimeOut = {};\nvar DEFT_MAT_WIDTH = 30;\nvar DEFT_FAB_WIDTH = 30;\nvar DEFT_FLUENT_WIDTH = 30;\nvar DEFT_BOOT_WIDTH = 30;\nvar DEFT_BOOT4_WIDTH = 36;\nvar DEFT_BOOT5_WIDTH = 36;\nvar CLS_SHOWSPIN = 'e-spin-show';\nvar CLS_HIDESPIN = 'e-spin-hide';\nvar CLS_MATERIALSPIN = 'e-spin-material';\nvar CLS_FABRICSPIN = 'e-spin-fabric';\nvar CLS_FLUENTSPIN = 'e-spin-fluent';\nvar CLS_TAILWINDSPIN = 'e-spin-tailwind';\nvar CLS_BOOTSPIN = 'e-spin-bootstrap';\nvar CLS_BOOT4SPIN = 'e-spin-bootstrap4';\nvar CLS_BOOT5SPIN = 'e-spin-bootstrap5';\nvar CLS_HIGHCONTRASTSPIN = 'e-spin-high-contrast';\nvar CLS_SPINWRAP = 'e-spinner-pane';\nvar CLS_SPININWRAP = 'e-spinner-inner';\nvar CLS_SPINCIRCLE = 'e-path-circle';\nvar CLS_SPINARC = 'e-path-arc';\nvar CLS_SPINLABEL = 'e-spin-label';\nvar CLS_SPINTEMPLATE = 'e-spin-template';\nvar spinTemplate = null;\nvar spinCSSClass = null;\n// eslint-disable-next-line\n/**\n * Function to change the Spinners in a page globally from application end.\n * ```\n * E.g : blazorSpinner({ action: \"Create\", options: {target: targetElement}, type: \"\" });\n * ```\n *\n * @param {string} action - specifies the string\n * @param {CreateArgs} options - specifies the args\n * @param {string} target - specifies the target\n * @param {string} type - specifes the type\n * @returns {void}\n * @private\n */\nexport function Spinner(action, options, target, type) {\n switch (action) {\n case 'Create':\n /* eslint-disable */\n var element = document.querySelector(options.target);\n var args = { type: type, target: element, cssClass: options.cssClass,\n label: options.label, width: options.width };\n /* eslint-enable */\n createSpinner(args);\n break;\n case 'Show':\n showSpinner(document.querySelector(target));\n break;\n case 'Hide':\n hideSpinner(document.querySelector(target));\n break;\n case 'Set':\n // eslint-disable-next-line\n var setArgs = { cssClass: options.cssClass, type: type };\n setSpinner(setArgs);\n break;\n }\n}\n/**\n * Create a spinner for the specified target element.\n * ```\n * E.g : createSpinner({ target: targetElement, width: '34px', label: 'Loading..' });\n * ```\n *\n * @param {SpinnerArgs} args - specifies the args\n * @param {CreateElementArgs} internalCreateElement - specifis the element args\n * @returns {void}\n * @private\n */\nexport function createSpinner(args, internalCreateElement) {\n if (!args.target) {\n return;\n }\n var radius;\n var makeElement = !isNullOrUndefined(internalCreateElement) ? internalCreateElement : createElement;\n // eslint-disable-next-line\n var container = create_spinner_container(args.target, makeElement);\n if (!isNullOrUndefined(args.cssClass)) {\n container.wrap.classList.add(args.cssClass);\n }\n if (!isNullOrUndefined(args.template) || !isNullOrUndefined(spinTemplate)) {\n var template = !isNullOrUndefined(args.template) ? args.template : spinTemplate;\n container.wrap.classList.add(CLS_SPINTEMPLATE);\n replaceContent(container.wrap, template, spinCSSClass);\n }\n else {\n var theme = !isNullOrUndefined(args.type) ? args.type : getTheme(container.wrap);\n var width = !isNullOrUndefined(args.width) ? args.width : undefined;\n radius = calculateRadius(width, theme);\n setTheme(theme, container.wrap, radius, makeElement);\n if (!isNullOrUndefined(args.label)) {\n createLabel(container.inner_wrap, args.label, makeElement);\n }\n }\n container.wrap.classList.add(CLS_HIDESPIN);\n container = null;\n}\n/**\n *\n * @param {HTMLElement} container - specifies the element\n * @param {string} label - specifies the string\n * @param {createElementParams} makeElement - specifies the element\n * @returns {HTMLElement} - returns the element\n */\nfunction createLabel(container, label, makeElement) {\n var labelEle = makeElement('div', {});\n labelEle.classList.add(CLS_SPINLABEL);\n labelEle.innerHTML = label;\n container.appendChild(labelEle);\n return labelEle;\n}\n/**\n *\n * @param {HTMLElement} container - specifies the element\n * @param {number} radius - specifies the radius\n * @param {createElementParams} makeElement - specifies the element\n * @returns {void}\n */\nfunction createMaterialSpinner(container, radius, makeElement) {\n var uniqueID = random_generator();\n globalTimeOut[\"\" + uniqueID] = { timeOut: 0, type: 'Material', radius: radius };\n create_material_element(container, uniqueID, makeElement, CLS_MATERIALSPIN);\n mat_calculate_attributes(radius, container, 'Material', CLS_MATERIALSPIN);\n}\n/**\n *\n * @param {HTMLElement} container - specifies the element\n * @param {number} radius - specifies the radius\n * @param {createElementParams} makeElement - specifies the element\n * @returns {void}\n */\nfunction createBootstrap4Spinner(container, radius, makeElement) {\n var uniqueID = random_generator();\n globalTimeOut[\"\" + uniqueID] = { timeOut: 0, type: 'Bootstrap4', radius: radius };\n create_material_element(container, uniqueID, makeElement, CLS_BOOT4SPIN);\n mat_calculate_attributes(radius, container, 'Bootstrap4', CLS_BOOT4SPIN);\n}\n/**\n *\n * @param {HTMLElement} container - specifies the element\n * @param {number} radius - specifies the radius\n * @param {createElementParams} makeElement - specifies the element\n * @returns {void}\n */\nfunction createBootstrap5Spinner(container, radius, makeElement) {\n var uniqueID = random_generator();\n globalTimeOut[\"\" + uniqueID] = { timeOut: 0, type: 'Bootstrap5', radius: radius };\n create_material_element(container, uniqueID, makeElement, CLS_BOOT5SPIN);\n mat_calculate_attributes(radius, container, 'Bootstrap5', CLS_BOOT5SPIN);\n}\n/**\n *\n * @param {HTMLElement} container - specifies the element\n * @param {string} uniqueID - specifies the id.\n * @param {number} radius - specifies the radius\n * @returns {void}\n */\nfunction startMatAnimate(container, uniqueID, radius) {\n var globalObject = {};\n var timeOutVar = 0;\n globalTimeOut[\"\" + uniqueID].timeOut = 0;\n globalObject[\"\" + uniqueID] = globalVariables(uniqueID, radius, 0, 0);\n // eslint-disable-next-line\n var spinnerInfo = { uniqueID: uniqueID, container: container, globalInfo: globalObject, timeOutVar: timeOutVar };\n animateMaterial(spinnerInfo);\n}\n/**\n *\n * @param {HTMLElement} container - specifies the element\n * @param {number} radius - specifies the radius\n * @param {createElementParams} makeElement - specifies the element\n * @returns {void}\n */\nfunction createFabricSpinner(container, radius, makeElement) {\n var uniqueID = random_generator();\n globalTimeOut[\"\" + uniqueID] = { timeOut: 0, type: 'Fabric', radius: radius };\n create_fabric_element(container, uniqueID, CLS_FABRICSPIN, makeElement);\n fb_calculate_attributes(radius, container, CLS_FABRICSPIN);\n}\n/**\n *\n * @param {HTMLElement} container - specifies the element\n * @param {number} radius - specifies the radius\n * @param {createElementParams} makeElement - specifies the element\n * @returns {void}\n */\nfunction createFluentSinner(container, radius, makeElement) {\n var uniqueID = random_generator();\n globalTimeOut[\"\" + uniqueID] = { timeOut: 0, type: 'Fluent', radius: radius };\n create_fabric_element(container, uniqueID, CLS_FLUENTSPIN, makeElement);\n fb_calculate_attributes(radius, container, CLS_FLUENTSPIN);\n}\n/**\n *\n * @param {HTMLElement} container - specifies the element\n * @param {number} radius - specifies the radius\n * @param {createElementParams} makeElement - specifies the element\n * @returns {void}\n */\nfunction createTailwindSpinner(container, radius, makeElement) {\n var uniqueID = random_generator();\n globalTimeOut[\"\" + uniqueID] = { timeOut: 0, type: 'Tailwind', radius: radius };\n create_fabric_element(container, uniqueID, CLS_TAILWINDSPIN, makeElement);\n fb_calculate_attributes(radius, container, CLS_TAILWINDSPIN);\n}\n/**\n *\n * @param {HTMLElement} container - specifies the element\n * @param {number} radius - specifies the radius\n * @param {createElementParams} makeElement - specifies the element\n * @returns {void}\n */\nfunction createHighContrastSpinner(container, radius, makeElement) {\n var uniqueID = random_generator();\n globalTimeOut[\"\" + uniqueID] = { timeOut: 0, type: 'HighContrast', radius: radius };\n create_fabric_element(container, uniqueID, CLS_HIGHCONTRASTSPIN, makeElement);\n fb_calculate_attributes(radius, container, CLS_HIGHCONTRASTSPIN);\n}\n/**\n *\n * @param {HTMLElement} container - specifies the element\n * @returns {string} - returns the string\n */\nfunction getTheme(container) {\n var theme = window.getComputedStyle(container, ':after').getPropertyValue('content');\n return theme.replace(/['\"]+/g, '');\n}\n/**\n *\n * @param {string} theme - specifies the theme\n * @param {HTMLElement} container - specifies the element\n * @param {number} radius - specifies the radius\n * @param {createElementParams} makeElement - specifies the element\n * @returns {void}\n */\nfunction setTheme(theme, container, radius, makeElement) {\n var innerContainer = container.querySelector('.' + CLS_SPININWRAP);\n var svg = innerContainer.querySelector('svg');\n if (!isNullOrUndefined(svg)) {\n innerContainer.removeChild(svg);\n }\n switch (theme) {\n case 'Material':\n createMaterialSpinner(innerContainer, radius, makeElement);\n break;\n case 'Fabric':\n createFabricSpinner(innerContainer, radius, makeElement);\n break;\n case 'Fluent':\n createFluentSinner(innerContainer, radius, makeElement);\n break;\n case 'Bootstrap':\n createBootstrapSpinner(innerContainer, radius, makeElement);\n break;\n case 'HighContrast':\n createHighContrastSpinner(innerContainer, radius, makeElement);\n break;\n case 'Bootstrap4':\n createBootstrap4Spinner(innerContainer, radius, makeElement);\n break;\n case 'Bootstrap5':\n createBootstrap5Spinner(innerContainer, radius, makeElement);\n break;\n case 'Tailwind':\n case 'Tailwind-dark':\n createTailwindSpinner(innerContainer, radius, makeElement);\n break;\n }\n}\n/**\n *\n * @param {HTMLElement} innerContainer - specifies the element\n * @param {number} radius - specifies the radius\n * @param {createElementParams} makeElement - specifies the element\n * @returns {void}\n */\nfunction createBootstrapSpinner(innerContainer, radius, makeElement) {\n var uniqueID = random_generator();\n globalTimeOut[\"\" + uniqueID] = { timeOut: 0, type: 'Bootstrap', radius: radius };\n create_bootstrap_element(innerContainer, uniqueID, makeElement);\n boot_calculate_attributes(innerContainer, radius);\n}\n/**\n *\n * @param {HTMLElement} innerContainer - specifies the element\n * @param {string} uniqueID - specifies the id\n * @param {createElementParams} makeElement - specifies the element\n * @returns {void}\n */\n// eslint-disable-next-line\nfunction create_bootstrap_element(innerContainer, uniqueID, makeElement) {\n var svgBoot = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n var viewBoxValue = 64;\n var trans = 32;\n var defaultRadius = 2;\n svgBoot.setAttribute('id', uniqueID);\n svgBoot.setAttribute('class', CLS_BOOTSPIN);\n svgBoot.setAttribute('viewBox', '0 0 ' + viewBoxValue + ' ' + viewBoxValue);\n innerContainer.insertBefore(svgBoot, innerContainer.firstChild);\n for (var item = 0; item <= 7; item++) {\n var bootCircle = document.createElementNS('http://www.w3.org/2000/svg', 'circle');\n bootCircle.setAttribute('class', CLS_SPINCIRCLE + '_' + item);\n bootCircle.setAttribute('r', defaultRadius + '');\n bootCircle.setAttribute('transform', 'translate(' + trans + ',' + trans + ')');\n svgBoot.appendChild(bootCircle);\n }\n}\n/**\n *\n * @param {HTMLElement} innerContainer - specifies the element\n * @param {number} radius - specifies the radius\n * @returns {void}\n */\n// eslint-disable-next-line\nfunction boot_calculate_attributes(innerContainer, radius) {\n var svg = innerContainer.querySelector('svg.e-spin-bootstrap');\n var x = 0;\n var y = 0;\n var rad = 24;\n svg.style.width = svg.style.height = radius + 'px';\n var startArc = 90;\n for (var item = 0; item <= 7; item++) {\n var start = defineArcPoints(x, y, rad, startArc);\n var circleEle = svg.querySelector('.' + CLS_SPINCIRCLE + '_' + item);\n circleEle.setAttribute('cx', start.x + '');\n circleEle.setAttribute('cy', start.y + '');\n startArc = startArc >= 360 ? 0 : startArc;\n startArc = startArc + 45;\n }\n}\n/**\n *\n * @param {number} begin - specifies the number\n * @param {number} stop - specifirs the number\n * @returns {number[]} - returns the array of number\n */\nfunction generateSeries(begin, stop) {\n var series = [];\n var start = begin;\n var end = stop;\n // eslint-disable-next-line\n var increment = false, count = 1;\n formSeries(start);\n /**\n *\n * @param {number} i - specifies the number\n * @returns {void}\n */\n function formSeries(i) {\n series.push(i);\n if (i !== end || count === 1) {\n if (i <= start && i > 1 && !increment) {\n i = parseFloat((i - 0.2).toFixed(2));\n }\n else if (i === 1) {\n i = 7;\n i = parseFloat((i + 0.2).toFixed(2));\n increment = true;\n }\n else if (i < 8 && increment) {\n i = parseFloat((i + 0.2).toFixed(2));\n if (i === 8) {\n increment = false;\n }\n }\n else if (i <= 8 && !increment) {\n i = parseFloat((i - 0.2).toFixed(2));\n }\n ++count;\n formSeries(i);\n }\n }\n return series;\n}\n/**\n *\n * @param {HTMLElement} innerContainer - specifies the element\n * @returns {void}\n */\nfunction animateBootstrap(innerContainer) {\n var svg = innerContainer.querySelector('svg.e-spin-bootstrap');\n var id = svg.getAttribute('id');\n for (var i = 1; i <= 8; i++) {\n var circleEle = (innerContainer.getElementsByClassName('e-path-circle_' +\n (i === 8 ? 0 : i))[0]);\n rotation(circleEle, i, i, generateSeries(i, i), id);\n }\n /**\n *\n * @param {SVGCircleElement} circle - specifies the circl element\n * @param {number} start - specifies the number\n * @param {number} end - specifies the end number\n * @param {number} series - specifies the series\n * @param {string} id - specifies the id\n * @returns {void}\n */\n function rotation(circle, start, end, series, id) {\n var count = 0;\n boot_animate(start);\n // eslint-disable-next-line\n function boot_animate(radius) {\n if (globalTimeOut[\"\" + id].isAnimate) {\n ++count;\n circle.setAttribute('r', radius + '');\n if (count >= series.length) {\n count = 0;\n }\n // eslint-disable-next-line\n globalTimeOut[id].timeOut = setTimeout(boot_animate.bind(null, series[count]), 18);\n }\n }\n }\n}\n/**\n *\n * @param {HTMLElement} container - specifies the element\n * @param {string} template - specifies the template\n * @param {string} cssClass - specifies the css class.\n * @returns {void}\n */\nfunction replaceContent(container, template, cssClass) {\n if (!isNullOrUndefined(cssClass)) {\n container.classList.add(cssClass);\n }\n var inner = container.querySelector('.e-spinner-inner');\n inner.innerHTML = template;\n}\n/**\n *\n * @param {string} width - specifies the width\n * @param {string} theme - specifies the string\n * @returns {number} - returns the number\n */\nfunction calculateRadius(width, theme) {\n var defaultSize;\n switch (theme) {\n case 'Material':\n defaultSize = DEFT_MAT_WIDTH;\n break;\n case 'Fabric':\n defaultSize = DEFT_FAB_WIDTH;\n break;\n case 'Tailwind':\n case 'Tailwind-dark':\n defaultSize = DEFT_FAB_WIDTH;\n break;\n case 'Fluent':\n defaultSize = DEFT_FLUENT_WIDTH;\n break;\n case 'Bootstrap4':\n defaultSize = DEFT_BOOT4_WIDTH;\n break;\n case 'Bootstrap5':\n defaultSize = DEFT_BOOT5_WIDTH;\n break;\n default:\n defaultSize = DEFT_BOOT_WIDTH;\n }\n width = width ? parseFloat(width + '') : defaultSize;\n return theme === 'Bootstrap' ? width : width / 2;\n}\n/**\n *\n * @param {string} id - specifies the id\n * @param {number} radius - specifies the radius\n * @param {number} count - specifies the number count\n * @param {number} previousId - specifies the previous id\n * @returns {GlobalVariables} - returns the variables\n */\nfunction globalVariables(id, radius, count, previousId) {\n return {\n radius: radius,\n count: count,\n previousId: previousId\n };\n}\n/**\n * @returns {string} - returns the string\n */\n// eslint-disable-next-line\nfunction random_generator() {\n var random = '';\n var combine = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n for (var i = 0; i < 5; i++) {\n random += combine.charAt(Math.floor(Math.random() * combine.length));\n }\n return random;\n}\n/**\n *\n * @param {HTMLElement} innerCon - specifies the element\n * @param {string} uniqueID - specifies the unique id\n * @param {string} themeClass - specifies the string\n * @param {createElementParams} makeElement - specifies the element\n * @returns {void}\n */\n// eslint-disable-next-line\nfunction create_fabric_element(innerCon, uniqueID, themeClass, makeElement) {\n var svgFabric = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n svgFabric.setAttribute('id', uniqueID);\n svgFabric.setAttribute('class', themeClass);\n var fabricCirclePath = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n fabricCirclePath.setAttribute('class', CLS_SPINCIRCLE);\n var fabricCircleArc = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n fabricCircleArc.setAttribute('class', CLS_SPINARC);\n innerCon.insertBefore(svgFabric, innerCon.firstChild);\n svgFabric.appendChild(fabricCirclePath);\n svgFabric.appendChild(fabricCircleArc);\n}\n/**\n *\n * @param {HTMLElement} innerContainer - specifies the element\n * @param {string} uniqueID - specifies the unique id\n * @param {createElementParams} makeElement - specifies the element\n * @param {string} cls - specifies the string\n * @returns {void}\n */\n// eslint-disable-next-line\nfunction create_material_element(innerContainer, uniqueID, makeElement, cls) {\n var svgMaterial = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n var matCirclePath = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n svgMaterial.setAttribute('class', cls);\n svgMaterial.setAttribute('id', uniqueID);\n matCirclePath.setAttribute('class', CLS_SPINCIRCLE);\n innerContainer.insertBefore(svgMaterial, innerContainer.firstChild);\n svgMaterial.appendChild(matCirclePath);\n}\n/**\n *\n * @param {HTMLElement} target - specifies the element\n * @param {createElementParams} makeElement - specifies the element\n * @returns {void}\n */\n// eslint-disable-next-line\nfunction create_spinner_container(target, makeElement) {\n var spinnerContainer = makeElement('div', {});\n var spinnerInnerContainer = makeElement('div', {});\n spinnerContainer.classList.add(CLS_SPINWRAP);\n spinnerInnerContainer.classList.add(CLS_SPININWRAP);\n target.appendChild(spinnerContainer);\n spinnerContainer.appendChild(spinnerInnerContainer);\n // eslint-disable-next-line\n return { wrap: spinnerContainer, inner_wrap: spinnerInnerContainer };\n}\n/**\n *\n * @param {SpinnerInfo} spinnerInfo - specifies the spinner\n * @returns {void}\n */\nfunction animateMaterial(spinnerInfo) {\n var start = 1;\n var end = 149;\n var duration = 1333;\n var max = 75;\n createCircle(start, end, easeAnimation, duration, spinnerInfo.globalInfo[spinnerInfo.uniqueID].count, max, spinnerInfo);\n spinnerInfo.globalInfo[spinnerInfo.uniqueID].count = ++spinnerInfo.globalInfo[spinnerInfo.uniqueID].count % 4;\n}\n/**\n *\n * @param {number} start - specifies the number\n * @param {number} end - specifies the end number\n * @param {Function} easing - specifies the function\n * @param {number} duration - specifies the duration\n * @param {number} count - specifies the count\n * @param {number} max - specifies the max number\n * @param {SpinnerInfo} spinnerInfo - specifies the spinner info\n * @returns {void}\n */\nfunction createCircle(start, end, easing, duration, count, max, spinnerInfo) {\n var id = ++spinnerInfo.globalInfo[spinnerInfo.uniqueID].previousId;\n var startTime = new Date().getTime();\n var change = end - start;\n var diameter = getSize((spinnerInfo.globalInfo[spinnerInfo.uniqueID].radius * 2) + '');\n var strokeSize = getStrokeSize(diameter);\n var rotate = -90 * (spinnerInfo.globalInfo[spinnerInfo.uniqueID].count || 0);\n mat_animation(spinnerInfo);\n // eslint-disable-next-line\n function mat_animation(spinnerInfo) {\n var currentTime = Math.max(0, Math.min(new Date().getTime() - startTime, duration));\n updatePath(easing(currentTime, start, change, duration), spinnerInfo.container);\n if (id === spinnerInfo.globalInfo[spinnerInfo.uniqueID].previousId && currentTime < duration) {\n // eslint-disable-next-line\n globalTimeOut[spinnerInfo.uniqueID].timeOut = setTimeout(mat_animation.bind(null, spinnerInfo), 1);\n }\n else {\n animateMaterial(spinnerInfo);\n }\n }\n /**\n *\n * @param {number} value - specifies the number value\n * @param {HTMLElement} container - specifies the container\n * @returns {void}\n */\n function updatePath(value, container) {\n if ((!isNullOrUndefined(container.querySelector('svg.e-spin-material')))\n && (!isNullOrUndefined(container.querySelector('svg.e-spin-material').querySelector('path.e-path-circle')))) {\n var svg = container.querySelector('svg.e-spin-material');\n var path = svg.querySelector('path.e-path-circle');\n path.setAttribute('stroke-dashoffset', getDashOffset(diameter, strokeSize, value, max) + '');\n path.setAttribute('transform', 'rotate(' + (rotate) + ' ' + diameter / 2 + ' ' + diameter / 2 + ')');\n }\n }\n}\n/**\n *\n * @param {number} radius - specifies the number\n * @param {HTMLElement} container - specifies the element\n * @param {string} type - specifies the string type\n * @param {string} cls - specifies the string\n * @returns {void}\n */\n// eslint-disable-next-line\nfunction mat_calculate_attributes(radius, container, type, cls) {\n var diameter = radius * 2;\n var svg = container.querySelector('svg.' + cls);\n var path = svg.querySelector('path.e-path-circle');\n var strokeSize = getStrokeSize(diameter);\n var transformOrigin = (diameter / 2) + 'px';\n svg.setAttribute('viewBox', '0 0 ' + diameter + ' ' + diameter);\n svg.style.width = svg.style.height = diameter + 'px';\n svg.style.transformOrigin = transformOrigin + ' ' + transformOrigin + ' ' + transformOrigin;\n path.setAttribute('d', drawArc(diameter, strokeSize));\n if (type === 'Material') {\n path.setAttribute('stroke-width', strokeSize + '');\n path.setAttribute('stroke-dasharray', ((diameter - strokeSize) * Math.PI * 0.75) + '');\n path.setAttribute('stroke-dashoffset', getDashOffset(diameter, strokeSize, 1, 75) + '');\n }\n}\n/**\n *\n * @param {string} value - specifies the value\n * @returns {number} - returns the number\n */\nfunction getSize(value) {\n var parsed = parseFloat(value);\n return parsed;\n}\n/**\n *\n * @param {number} diameter - specifies the diameter\n * @param {number} strokeSize - specifies the size\n * @returns {string} - returns the string\n */\nfunction drawArc(diameter, strokeSize) {\n var radius = diameter / 2;\n var offset = strokeSize / 2;\n return 'M' + radius + ',' + offset\n + 'A' + (radius - offset) + ',' + (radius - offset) + ' 0 1 1 ' + offset + ',' + radius;\n}\n/**\n *\n * @param {number} diameter - specifies the number\n * @returns {number} - returns the number\n */\nfunction getStrokeSize(diameter) {\n return 10 / 100 * diameter;\n}\n/**\n *\n * @param {number} diameter - specifies the number\n * @param {number} strokeSize - specifies the stroke size\n * @param {number} value - specifies the value\n * @param {number} max - specifies the max number\n * @returns {number} - returns the number\n */\nfunction getDashOffset(diameter, strokeSize, value, max) {\n return (diameter - strokeSize) * Math.PI * ((3 * (max) / 100) - (value / 100));\n}\n/**\n *\n * @param {number} current - specifies the number\n * @param {number} start - specifies the stroke size\n * @param {number} change - specifies the value\n * @param {number} duration - specifies the max number\n * @returns {number} - returns the number\n */\nfunction easeAnimation(current, start, change, duration) {\n var timestamp = (current /= duration) * current;\n var timecount = timestamp * current;\n return start + change * (6 * timecount * timestamp + -15 * timestamp * timestamp + 10 * timecount);\n}\n/**\n *\n * @param {number} radius - specifies the number\n * @param {HTMLElement} innerConainer - specifies the element\n * @param {string} trgClass - specifies the class\n * @returns {void}\n */\n// eslint-disable-next-line\nfunction fb_calculate_attributes(radius, innerConainer, trgClass) {\n var centerX = radius;\n var centerY = radius;\n var diameter = radius * 2;\n // eslint-disable-next-line\n var startArc = 315, endArc = 45;\n var svg = innerConainer.querySelector('.' + trgClass);\n var circle = svg.querySelector('.e-path-circle');\n var path = svg.querySelector('.e-path-arc');\n var transformOrigin = (diameter / 2) + 'px';\n circle.setAttribute('d', defineCircle(centerX, centerY, radius));\n path.setAttribute('d', defineArc(centerX, centerY, radius, startArc, endArc));\n svg.setAttribute('viewBox', '0 0 ' + diameter + ' ' + diameter);\n svg.style.transformOrigin = transformOrigin + ' ' + transformOrigin + ' ' + transformOrigin;\n svg.style.width = svg.style.height = diameter + 'px';\n}\n/**\n *\n * @param {number} centerX - specifies the number\n * @param {number} centerY - specifies the stroke size\n * @param {number} radius - specifies the value\n * @param {number} angle - specifies the max number\n * @returns {number} - returns the number\n */\nfunction defineArcPoints(centerX, centerY, radius, angle) {\n var radians = (angle - 90) * Math.PI / 180.0;\n return {\n x: centerX + (radius * Math.cos(radians)),\n y: centerY + (radius * Math.sin(radians))\n };\n}\n/**\n *\n * @param {number} x - specifies the number\n * @param {number} y - specifies the stroke size\n * @param {number} radius - specifies the radius\n * @param {number} startArc - specifies the value\n * @param {number} endArc - specifies the max number\n * @returns {number} - returns the number\n */\nfunction defineArc(x, y, radius, startArc, endArc) {\n var start = defineArcPoints(x, y, radius, endArc);\n var end = defineArcPoints(x, y, radius, startArc);\n var d = [\n 'M', start.x, start.y,\n 'A', radius, radius, 0, 0, 0, end.x, end.y\n ].join(' ');\n return d;\n}\n/**\n *\n * @param {number} x - specifies the number\n * @param {number} y - specifies the stroke size\n * @param {number} radius - specifies the value\n * @returns {string} - returns the string\n */\nfunction defineCircle(x, y, radius) {\n var d = [\n 'M', x, y,\n 'm', -radius, 0,\n 'a', radius, radius, 0, 1, 0, radius * 2, 0,\n 'a', radius, radius, 0, 1, 0, -radius * 2, 0\n ].join(' ');\n return d;\n}\n/**\n * Function to show the Spinner.\n *\n * @param {HTMLElement} container - Specify the target of the Spinner.\n * @returns {void}\n * @private\n */\nexport function showSpinner(container) {\n showHideSpinner(container, false);\n container = null;\n}\n/**\n *\n * @param {HTMLElement} container - specifies the element\n * @param {boolean} isHide - specifies the boolean\n * @returns {void}\n */\nfunction showHideSpinner(container, isHide) {\n var spinnerWrap;\n if (container) {\n spinnerWrap = container.classList.contains(CLS_SPINWRAP) ? container :\n container.querySelector('.' + CLS_SPINWRAP);\n }\n if (container && spinnerWrap) {\n var inner = spinnerWrap.querySelector('.' + CLS_SPININWRAP);\n var spinCheck = void 0;\n // eslint-disable-next-line\n spinCheck = isHide ? !spinnerWrap.classList.contains(CLS_SPINTEMPLATE) && !spinnerWrap.classList.contains(CLS_HIDESPIN) :\n !spinnerWrap.classList.contains(CLS_SPINTEMPLATE) && !spinnerWrap.classList.contains(CLS_SHOWSPIN);\n if (spinCheck) {\n var svgEle = spinnerWrap.querySelector('svg');\n if (isNullOrUndefined(svgEle)) {\n return;\n }\n var id = svgEle.getAttribute('id');\n globalTimeOut[\"\" + id].isAnimate = !isHide;\n switch (globalTimeOut[\"\" + id].type) {\n case 'Material':\n // eslint-disable-next-line\n isHide ? clearTimeout(globalTimeOut[id].timeOut) : startMatAnimate(inner, id, globalTimeOut[id].radius);\n break;\n case 'Bootstrap':\n // eslint-disable-next-line\n isHide ? clearTimeout(globalTimeOut[id].timeOut) : animateBootstrap(inner);\n break;\n }\n }\n // eslint-disable-next-line\n isHide ? classList(spinnerWrap, [CLS_HIDESPIN], [CLS_SHOWSPIN]) : classList(spinnerWrap, [CLS_SHOWSPIN], [CLS_HIDESPIN]);\n container = null;\n }\n}\n/**\n * Function to hide the Spinner.\n *\n * @param {HTMLElement} container - Specify the target of the Spinner.\n * @returns {void}\n * @private\n */\nexport function hideSpinner(container) {\n showHideSpinner(container, true);\n container = null;\n}\n// eslint-disable-next-line\n/**\n * Function to change the Spinners in a page globally from application end.\n * ```\n * E.g : setSpinner({ cssClass: 'custom-css'; type: 'Material' });\n * ```\n *\n * @param {SetSpinnerArgs} args - specifies the args\n * @param {createElementParams} internalCreateElement - specifies the element params\n * @returns {void}\n * @private\n */\nexport function setSpinner(args, internalCreateElement) {\n var makeElement = !isNullOrUndefined(internalCreateElement) ? internalCreateElement : createElement;\n if (args.template !== undefined) {\n spinTemplate = args.template;\n if (args.template !== undefined) {\n spinCSSClass = args.cssClass;\n }\n }\n var container = document.querySelectorAll('.' + CLS_SPINWRAP);\n for (var index = 0; index < container.length; index++) {\n ensureTemplate(args.template, container[index], args.type, args.cssClass, makeElement);\n }\n}\n/**\n *\n * @param {string} template - specifies the string\n * @param {HTMLElement} container - specifies the container\n * @param {string} theme - specifies the theme\n * @param {string} cssClass - specifies the string class\n * @param {createElementParams} makeEle - specifies the params\n * @returns {void}\n */\nfunction ensureTemplate(template, container, theme, cssClass, makeEle) {\n if (isNullOrUndefined(template) && !container.classList.contains(CLS_SPINTEMPLATE)) {\n replaceTheme(container, theme, cssClass, makeEle);\n if (container.classList.contains(CLS_SHOWSPIN)) {\n container.classList.remove(CLS_SHOWSPIN);\n showSpinner(container);\n }\n else {\n container.classList.remove(CLS_HIDESPIN);\n hideSpinner(container);\n }\n }\n else {\n spinTemplate = template;\n if (!isNullOrUndefined(cssClass)) {\n spinCSSClass = cssClass;\n }\n }\n}\n/**\n *\n * @param {HTMLElement} container - specifies the container\n * @param {string} theme - specifies the theme\n * @param {string} cssClass - specifies the string class\n * @param {createElementParams} makeEle - specifies the params\n * @returns {void}\n */\nfunction replaceTheme(container, theme, cssClass, makeEle) {\n if (!isNullOrUndefined(cssClass)) {\n container.classList.add(cssClass);\n }\n var svgElement = container.querySelector('svg');\n var radius = theme === 'Bootstrap' ? parseFloat(svgElement.style.height) : parseFloat(svgElement.style.height) / 2;\n var classNames = svgElement.getAttribute('class');\n var svgClassList = classNames.split(/\\s/);\n if (svgClassList.indexOf('e-spin-material') >= 0) {\n var id = svgElement.getAttribute('id');\n clearTimeout(globalTimeOut[\"\" + id].timeOut);\n }\n setTheme(theme, container, radius, makeEle);\n}\n","var queryString = '';\nvar prevString = '';\nvar matches = [];\nvar activeClass = 'e-active';\nvar prevElementId = '';\n/**\n * Search and focus the list item based on key code matches with list text content\n *\n * @param { number } keyCode - Specifies the key code which pressed on keyboard events.\n * @param { HTMLElement[]} items - Specifies an array of HTMLElement, from which matches find has done.\n * @param { number } selectedIndex - Specifies the selected item in list item, so that search will happen\n * after selected item otherwise it will do from initial.\n * @param { boolean } ignoreCase - Specifies the case consideration when search has done.\n * @param {string} elementId - Specifies the list element ID.\n * @returns {Element} Returns list item based on key code matches with list text content.\n */\nexport function incrementalSearch(keyCode, items, selectedIndex, ignoreCase, elementId) {\n queryString += String.fromCharCode(keyCode);\n setTimeout(function () {\n queryString = '';\n }, 1000);\n var index;\n queryString = ignoreCase ? queryString.toLowerCase() : queryString;\n if (prevElementId === elementId && prevString === queryString) {\n for (var i = 0; i < matches.length; i++) {\n if (matches[i].classList.contains(activeClass)) {\n index = i;\n break;\n }\n }\n index = index + 1;\n return matches[index] ? matches[index] : matches[0];\n }\n else {\n var listItems = items;\n var strLength = queryString.length;\n var text = void 0;\n var item = void 0;\n selectedIndex = selectedIndex ? selectedIndex + 1 : 0;\n var i = selectedIndex;\n matches = [];\n do {\n if (i === listItems.length) {\n i = -1;\n }\n if (i === -1) {\n index = 0;\n }\n else {\n index = i;\n }\n item = listItems[index];\n text = ignoreCase ? item.innerText.toLowerCase() : item.innerText;\n if (text.substr(0, strLength) === queryString) {\n matches.push(listItems[index]);\n }\n i++;\n } while (i !== selectedIndex);\n prevString = queryString;\n prevElementId = elementId;\n return matches[0];\n }\n}\n/**\n * Search the list item based on given input value matches with search type.\n *\n * @param {string} inputVal - Specifies the given input value.\n * @param {HTMLElement[]} items - Specifies the list items.\n * @param {SearchType} searchType - Specifies the filter type.\n * @param {boolean} ignoreCase - Specifies the case sensitive option for search operation.\n * @returns {Element | number} Returns the search matched items.\n */\nexport function Search(inputVal, items, searchType, ignoreCase, dataSource, fields, type) {\n var listItems = items;\n ignoreCase = ignoreCase !== undefined && ignoreCase !== null ? ignoreCase : true;\n var itemData = { item: null, index: null };\n if (inputVal && inputVal.length) {\n var strLength = inputVal.length;\n var queryStr = ignoreCase ? inputVal.toLocaleLowerCase() : inputVal;\n queryStr = escapeCharRegExp(queryStr);\n var _loop_1 = function (i, itemsData) {\n var item = itemsData[i];\n var text = void 0;\n var filterValue;\n if (items && dataSource) {\n var checkField_1 = item;\n var fieldValue_1 = fields.text.split('.');\n dataSource.filter(function (data) {\n Array.prototype.slice.call(fieldValue_1).forEach(function (value) {\n if (type === 'object' && checkField_1.textContent.toString().indexOf(data[value]) !== -1 && checkField_1.getAttribute('data-value') === data[fields.value].toString() || type === 'string' && checkField_1.textContent.toString().indexOf(data) !== -1) {\n filterValue = type === 'object' ? data[value] : data;\n }\n });\n });\n }\n text = dataSource && filterValue ? (ignoreCase ? filterValue.toLocaleLowerCase() : filterValue).replace(/^\\s+|\\s+$/g, '') : (ignoreCase ? item.textContent.toLocaleLowerCase() : item.textContent).replace(/^\\s+|\\s+$/g, '');\n if ((searchType === 'Equal' && text === queryStr) || (searchType === 'StartsWith' && text.substr(0, strLength) === queryStr) || (searchType === 'EndsWith' && text.substr(text.length - queryStr.length) === queryStr) || (searchType === 'Contains' && new RegExp(queryStr, \"g\").test(text))) {\n itemData.item = item;\n itemData.index = i;\n return { value: { item: item, index: i } };\n }\n };\n for (var i = 0, itemsData = listItems; i < itemsData.length; i++) {\n var state_1 = _loop_1(i, itemsData);\n if (typeof state_1 === \"object\")\n return state_1.value;\n }\n return itemData;\n }\n return itemData;\n}\nexport function escapeCharRegExp(value) {\n return value.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n}\nexport function resetIncrementalSearchValues(elementId) {\n if (prevElementId === elementId) {\n prevElementId = '';\n prevString = '';\n queryString = '';\n matches = [];\n }\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Component, EventHandler, addClass, append, Property, Event, L10n, compile } from '@syncfusion/ej2-base';\nimport { setStyleAttribute, extend, removeClass, prepend, isNullOrUndefined, detach, getValue } from '@syncfusion/ej2-base';\nimport { NotifyPropertyChanges, rippleEffect, ChildProperty, Complex } from '@syncfusion/ej2-base';\nimport { DataManager, Query, DataUtil } from '@syncfusion/ej2-data';\nimport { ListBase } from '@syncfusion/ej2-lists';\nimport { select, selectAll } from '@syncfusion/ej2-base';\nvar FieldSettings = /** @class */ (function (_super) {\n __extends(FieldSettings, _super);\n function FieldSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property()\n ], FieldSettings.prototype, \"text\", void 0);\n __decorate([\n Property()\n ], FieldSettings.prototype, \"value\", void 0);\n __decorate([\n Property()\n ], FieldSettings.prototype, \"iconCss\", void 0);\n __decorate([\n Property()\n ], FieldSettings.prototype, \"groupBy\", void 0);\n __decorate([\n Property()\n ], FieldSettings.prototype, \"htmlAttributes\", void 0);\n return FieldSettings;\n}(ChildProperty));\nexport { FieldSettings };\nexport var dropDownBaseClasses = {\n root: 'e-dropdownbase',\n rtl: 'e-rtl',\n content: 'e-content',\n selected: 'e-active',\n hover: 'e-hover',\n noData: 'e-nodata',\n fixedHead: 'e-fixed-head',\n focus: 'e-item-focus',\n li: 'e-list-item',\n group: 'e-list-group-item',\n disabled: 'e-disabled',\n grouping: 'e-dd-group'\n};\nvar ITEMTEMPLATE_PROPERTY = 'ItemTemplate';\nvar DISPLAYTEMPLATE_PROPERTY = 'DisplayTemplate';\nvar SPINNERTEMPLATE_PROPERTY = 'SpinnerTemplate';\nvar VALUETEMPLATE_PROPERTY = 'ValueTemplate';\nvar GROUPTEMPLATE_PROPERTY = 'GroupTemplate';\nvar HEADERTEMPLATE_PROPERTY = 'HeaderTemplate';\nvar FOOTERTEMPLATE_PROPERTY = 'FooterTemplate';\nvar NORECORDSTEMPLATE_PROPERTY = 'NoRecordsTemplate';\nvar ACTIONFAILURETEMPLATE_PROPERTY = 'ActionFailureTemplate';\nvar HIDE_GROUPLIST = 'e-hide-group-header';\n/**\n * DropDownBase component will generate the list items based on given data and act as base class to drop-down related components\n */\nvar DropDownBase = /** @class */ (function (_super) {\n __extends(DropDownBase, _super);\n /**\n * * Constructor for DropDownBase class\n *\n * @param {DropDownBaseModel} options - Specifies the DropDownBase model.\n * @param {string | HTMLElement} element - Specifies the element to render as component.\n * @private\n */\n function DropDownBase(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.preventChange = false;\n _this.isAngular = false;\n _this.isPreventChange = false;\n _this.isDynamicDataChange = false;\n _this.addedNewItem = false;\n return _this;\n }\n DropDownBase.prototype.getPropObject = function (prop, newProp, oldProp) {\n var newProperty = new Object();\n var oldProperty = new Object();\n var propName = function (prop) {\n return prop;\n };\n newProperty[propName(prop)] = newProp[propName(prop)];\n oldProperty[propName(prop)] = oldProp[propName(prop)];\n var data = new Object();\n data.newProperty = newProperty;\n data.oldProperty = oldProperty;\n return data;\n };\n DropDownBase.prototype.getValueByText = function (text, ignoreCase, ignoreAccent) {\n var value = null;\n if (!isNullOrUndefined(this.listData)) {\n if (ignoreCase) {\n value = this.checkValueCase(text, true, ignoreAccent);\n }\n else {\n value = this.checkValueCase(text, false, ignoreAccent);\n }\n }\n return value;\n };\n DropDownBase.prototype.checkValueCase = function (text, ignoreCase, ignoreAccent, isTextByValue) {\n var _this = this;\n var value = null;\n if (isTextByValue) {\n value = text;\n }\n var dataSource = this.listData;\n var fields = this.fields;\n var type = this.typeOfData(dataSource).typeof;\n if (type === 'string' || type === 'number' || type === 'boolean') {\n for (var _i = 0, dataSource_1 = dataSource; _i < dataSource_1.length; _i++) {\n var item = dataSource_1[_i];\n if (!isNullOrUndefined(item)) {\n if (ignoreAccent) {\n value = this.checkingAccent(String(item), text, ignoreCase);\n }\n else {\n if (ignoreCase) {\n if (this.checkIgnoreCase(String(item), text)) {\n value = this.getItemValue(String(item), text, ignoreCase);\n }\n }\n else {\n if (this.checkNonIgnoreCase(String(item), text)) {\n value = this.getItemValue(String(item), text, ignoreCase, isTextByValue);\n }\n }\n }\n }\n }\n }\n else {\n if (ignoreCase) {\n dataSource.filter(function (item) {\n var itemValue = getValue(fields.value, item);\n if (!isNullOrUndefined(itemValue) && _this.checkIgnoreCase(getValue(fields.text, item).toString(), text)) {\n value = getValue(fields.value, item);\n }\n });\n }\n else {\n if (isTextByValue) {\n var compareValue_1 = null;\n compareValue_1 = value;\n dataSource.filter(function (item) {\n var itemValue = getValue(fields.value, item);\n if (!isNullOrUndefined(itemValue) && !isNullOrUndefined(value) && itemValue.toString() === compareValue_1.toString()) {\n value = getValue(fields.text, item);\n }\n });\n }\n else {\n dataSource.filter(function (item) {\n if (_this.checkNonIgnoreCase(getValue(fields.text, item), text)) {\n value = getValue(fields.value, item);\n }\n });\n }\n }\n }\n return value;\n };\n DropDownBase.prototype.checkingAccent = function (item, text, ignoreCase) {\n var dataItem = DataUtil.ignoreDiacritics(String(item));\n var textItem = DataUtil.ignoreDiacritics(text.toString());\n var value = null;\n if (ignoreCase) {\n if (this.checkIgnoreCase(dataItem, textItem)) {\n value = this.getItemValue(String(item), text, ignoreCase);\n }\n }\n else {\n if (this.checkNonIgnoreCase(String(item), text)) {\n value = this.getItemValue(String(item), text, ignoreCase);\n }\n }\n return value;\n };\n DropDownBase.prototype.checkIgnoreCase = function (item, text) {\n return String(item).toLowerCase() === text.toString().toLowerCase() ? true : false;\n };\n DropDownBase.prototype.checkNonIgnoreCase = function (item, text) {\n return String(item) === text.toString() ? true : false;\n };\n DropDownBase.prototype.getItemValue = function (dataItem, typedText, ignoreCase, isTextByValue) {\n var value = null;\n var dataSource = this.listData;\n var type = this.typeOfData(dataSource).typeof;\n if (isTextByValue) {\n value = dataItem.toString();\n }\n else {\n if (ignoreCase) {\n value = type === 'string' ? String(dataItem) : this.getFormattedValue(String(dataItem));\n }\n else {\n value = type === 'string' ? typedText : this.getFormattedValue(typedText);\n }\n }\n return value;\n };\n DropDownBase.prototype.templateCompiler = function (baseTemplate) {\n var checkTemplate = false;\n if (baseTemplate) {\n try {\n checkTemplate = (selectAll(baseTemplate, document).length) ? true : false;\n }\n catch (exception) {\n checkTemplate = false;\n }\n }\n return checkTemplate;\n };\n DropDownBase.prototype.l10nUpdate = function (actionFailure) {\n var ele = this.getModuleName() === 'listbox' ? this.ulElement : this.list;\n if (this.noRecordsTemplate !== 'No records found' || this.actionFailureTemplate !== 'Request failed') {\n var template = actionFailure ? this.actionFailureTemplate : this.noRecordsTemplate;\n var compiledString = void 0;\n var templateId = actionFailure ? this.actionFailureTemplateId : this.noRecordsTemplateId;\n ele.innerHTML = '';\n var tempaltecheck = this.templateCompiler(template);\n if (tempaltecheck) {\n compiledString = compile(select(template, document).innerHTML.trim());\n }\n else {\n compiledString = compile(template);\n }\n var templateName = actionFailure ? 'actionFailureTemplate' : 'noRecordsTemplate';\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var noDataCompTemp = compiledString({}, this, templateName, templateId, this.isStringTemplate, null, ele);\n if (noDataCompTemp && noDataCompTemp.length > 0) {\n for (var i = 0; i < noDataCompTemp.length; i++) {\n ele.appendChild(noDataCompTemp[i]);\n }\n }\n this.renderReactTemplates();\n }\n else {\n var l10nLocale = { noRecordsTemplate: 'No records found', actionFailureTemplate: 'Request failed' };\n var componentLocale = new L10n(this.getLocaleName(), {}, this.locale);\n if (componentLocale.getConstant('actionFailureTemplate') !== '') {\n this.l10n = componentLocale;\n }\n else {\n this.l10n = new L10n(this.getModuleName() === 'listbox' ? 'listbox' :\n this.getModuleName() === 'mention' ? 'mention' : 'dropdowns', l10nLocale, this.locale);\n }\n var content = actionFailure ?\n this.l10n.getConstant('actionFailureTemplate') : this.l10n.getConstant('noRecordsTemplate');\n if (this.getModuleName() === 'listbox') {\n var liElem = this.createElement('li');\n liElem.textContent = content;\n ele.appendChild(liElem);\n liElem.classList.add('e-list-nrt');\n liElem.setAttribute('role', 'option');\n }\n else {\n if (!isNullOrUndefined(ele)) {\n ele.innerHTML = content;\n }\n }\n }\n };\n DropDownBase.prototype.getLocaleName = function () {\n return 'drop-down-base';\n };\n DropDownBase.prototype.getTextByValue = function (value) {\n var text = this.checkValueCase(value, false, false, true);\n return text;\n };\n DropDownBase.prototype.getFormattedValue = function (value) {\n if (this.listData && this.listData.length) {\n var item = this.typeOfData(this.listData);\n if (typeof getValue((this.fields.value ? this.fields.value : 'value'), item.item) === 'number'\n || item.typeof === 'number') {\n return parseFloat(value);\n }\n if (typeof getValue((this.fields.value ? this.fields.value : 'value'), item.item) === 'boolean'\n || item.typeof === 'boolean') {\n return ((value === 'true') || ('' + value === 'true'));\n }\n }\n return value;\n };\n /**\n * Sets RTL to dropdownbase wrapper\n *\n * @returns {void}\n */\n DropDownBase.prototype.setEnableRtl = function () {\n if (!isNullOrUndefined(this.enableRtlElements)) {\n if (this.list) {\n this.enableRtlElements.push(this.list);\n }\n if (this.enableRtl) {\n addClass(this.enableRtlElements, dropDownBaseClasses.rtl);\n }\n else {\n removeClass(this.enableRtlElements, dropDownBaseClasses.rtl);\n }\n }\n };\n /**\n * Initialize the Component.\n *\n * @returns {void}\n */\n DropDownBase.prototype.initialize = function (e) {\n this.bindEvent = true;\n this.actionFailureTemplateId = \"\" + this.element.id + ACTIONFAILURETEMPLATE_PROPERTY;\n if (this.element.tagName === 'UL') {\n var jsonElement = ListBase.createJsonFromElement(this.element);\n this.setProperties({ fields: { text: 'text', value: 'text' } }, true);\n this.resetList(jsonElement, this.fields);\n }\n else if (this.element.tagName === 'SELECT') {\n var dataSource = this.dataSource instanceof Array ? (this.dataSource.length > 0 ? true : false)\n : !isNullOrUndefined(this.dataSource) ? true : false;\n if (!dataSource) {\n this.renderItemsBySelect();\n }\n else if (this.isDynamicDataChange) {\n this.setListData(this.dataSource, this.fields, this.query);\n }\n }\n else {\n this.setListData(this.dataSource, this.fields, this.query, e);\n }\n };\n /**\n * Get the properties to be maintained in persisted state.\n *\n * @returns {string} Returns the persisted data of the component.\n */\n DropDownBase.prototype.getPersistData = function () {\n return this.addOnPersist([]);\n };\n /**\n * Sets the enabled state to DropDownBase.\n *\n * @param {string} value - Specifies the attribute values to add on the input element.\n * @returns {void}\n */\n DropDownBase.prototype.updateDataAttribute = function (value) {\n var invalidAttr = ['class', 'style', 'id', 'type', 'aria-expanded', 'aria-autocomplete', 'aria-readonly'];\n var attr = {};\n for (var a = 0; a < this.element.attributes.length; a++) {\n if (invalidAttr.indexOf(this.element.attributes[a].name) === -1 &&\n !(this.getModuleName() === 'dropdownlist' && this.element.attributes[a].name === 'readonly')) {\n attr[this.element.attributes[a].name] = this.element.getAttribute(this.element.attributes[a].name);\n }\n }\n extend(attr, value, attr);\n this.setProperties({ htmlAttributes: attr }, true);\n };\n DropDownBase.prototype.renderItemsBySelect = function () {\n var element = this.element;\n var fields = { value: 'value', text: 'text' };\n var jsonElement = [];\n var group = element.querySelectorAll('select>optgroup');\n var option = element.querySelectorAll('select>option');\n this.getJSONfromOption(jsonElement, option, fields);\n if (group.length) {\n for (var i = 0; i < group.length; i++) {\n var item = group[i];\n var optionGroup = {};\n optionGroup[fields.text] = item.label;\n optionGroup.isHeader = true;\n var child = item.querySelectorAll('option');\n jsonElement.push(optionGroup);\n this.getJSONfromOption(jsonElement, child, fields);\n }\n element.querySelectorAll('select>option');\n }\n this.updateFields(fields.text, fields.value, this.fields.groupBy, this.fields.htmlAttributes, this.fields.iconCss);\n this.resetList(jsonElement, fields);\n };\n DropDownBase.prototype.updateFields = function (text, value, groupBy, htmlAttributes, iconCss) {\n var field = {\n 'fields': {\n text: text,\n value: value,\n groupBy: !isNullOrUndefined(groupBy) ? groupBy : this.fields && this.fields.groupBy,\n htmlAttributes: !isNullOrUndefined(htmlAttributes) ? htmlAttributes : this.fields && this.fields.htmlAttributes,\n iconCss: !isNullOrUndefined(iconCss) ? iconCss : this.fields && this.fields.iconCss\n }\n };\n this.setProperties(field, true);\n };\n DropDownBase.prototype.getJSONfromOption = function (items, options, fields) {\n for (var _i = 0, options_1 = options; _i < options_1.length; _i++) {\n var option = options_1[_i];\n var json = {};\n json[fields.text] = option.innerText;\n json[fields.value] = !isNullOrUndefined(option.getAttribute(fields.value)) ?\n option.getAttribute(fields.value) : option.innerText;\n items.push(json);\n }\n };\n /**\n * Execute before render the list items\n *\n * @private\n * @returns {void}\n */\n DropDownBase.prototype.preRender = function () {\n // there is no event handler\n this.scrollTimer = -1;\n this.enableRtlElements = [];\n this.isRequested = false;\n this.isDataFetched = false;\n this.itemTemplateId = \"\" + this.element.id + ITEMTEMPLATE_PROPERTY;\n this.displayTemplateId = \"\" + this.element.id + DISPLAYTEMPLATE_PROPERTY;\n this.spinnerTemplateId = \"\" + this.element.id + SPINNERTEMPLATE_PROPERTY;\n this.valueTemplateId = \"\" + this.element.id + VALUETEMPLATE_PROPERTY;\n this.groupTemplateId = \"\" + this.element.id + GROUPTEMPLATE_PROPERTY;\n this.headerTemplateId = \"\" + this.element.id + HEADERTEMPLATE_PROPERTY;\n this.footerTemplateId = \"\" + this.element.id + FOOTERTEMPLATE_PROPERTY;\n this.noRecordsTemplateId = \"\" + this.element.id + NORECORDSTEMPLATE_PROPERTY;\n };\n /**\n * Creates the list items of DropDownBase component.\n *\n * @param {Object[] | string[] | number[] | DataManager | boolean[]} dataSource - Specifies the data to generate the list.\n * @param {FieldSettingsModel} fields - Maps the columns of the data table and binds the data to the component.\n * @param {Query} query - Accepts the external Query that execute along with data processing.\n * @returns {void}\n */\n DropDownBase.prototype.setListData = function (dataSource, fields, query, event) {\n var _this = this;\n fields = fields ? fields : this.fields;\n var ulElement;\n this.isActive = true;\n var eventArgs = { cancel: false, data: dataSource, query: query };\n this.isPreventChange = this.isAngular && this.preventChange ? true : this.isPreventChange;\n this.trigger('actionBegin', eventArgs, function (eventArgs) {\n if (!eventArgs.cancel) {\n _this.showSpinner();\n if (dataSource instanceof DataManager) {\n _this.isRequested = true;\n if (_this.isDataFetched) {\n _this.emptyDataRequest(fields);\n return;\n }\n eventArgs.data.executeQuery(_this.getQuery(eventArgs.query)).then(function (e) {\n _this.isPreventChange = _this.isAngular && _this.preventChange ? true : _this.isPreventChange;\n _this.trigger('actionComplete', e, function (e) {\n if (!e.cancel) {\n var listItems = e.result;\n if (listItems.length === 0) {\n _this.isDataFetched = true;\n }\n ulElement = _this.renderItems(listItems, fields);\n _this.onActionComplete(ulElement, listItems, e);\n if (_this.groupTemplate) {\n _this.renderGroupTemplate(ulElement);\n }\n _this.isRequested = false;\n _this.bindChildItems(listItems, ulElement, fields, e);\n }\n });\n }).catch(function (e) {\n _this.isRequested = false;\n _this.onActionFailure(e);\n _this.hideSpinner();\n });\n }\n else {\n var dataManager = new DataManager(eventArgs.data);\n var listItems = (_this.getQuery(eventArgs.query)).executeLocal(dataManager);\n var localDataArgs = { cancel: false, result: listItems };\n _this.isPreventChange = _this.isAngular && _this.preventChange ? true : _this.isPreventChange;\n _this.trigger('actionComplete', localDataArgs, function (localDataArgs) {\n if (!localDataArgs.cancel) {\n ulElement = _this.renderItems(localDataArgs.result, fields);\n _this.onActionComplete(ulElement, localDataArgs.result, event);\n if (_this.groupTemplate) {\n _this.renderGroupTemplate(ulElement);\n }\n _this.bindChildItems(localDataArgs.result, ulElement, fields);\n setTimeout(function () {\n if (_this.getModuleName() === 'multiselect' && _this.itemTemplate != null && (ulElement.childElementCount > 0 && (ulElement.children[0].childElementCount > 0 || (_this.fields.groupBy && ulElement.children[1] && ulElement.children[1].childElementCount > 0)))) {\n _this.updateDataList();\n }\n });\n }\n });\n }\n }\n });\n };\n DropDownBase.prototype.bindChildItems = function (listItems, ulElement, fields, e) {\n var _this = this;\n if (listItems.length >= 100 && this.getModuleName() === 'autocomplete') {\n setTimeout(function () {\n var childNode = _this.remainingItems(_this.sortedData, fields);\n append(childNode, ulElement);\n _this.liCollections = _this.list.querySelectorAll('.' + dropDownBaseClasses.li);\n _this.updateListValues();\n _this.raiseDataBound(listItems, e);\n }, 0);\n }\n else {\n this.raiseDataBound(listItems, e);\n }\n };\n DropDownBase.prototype.updateListValues = function () {\n // Used this method in component side.\n };\n DropDownBase.prototype.findListElement = function (list, findNode, attribute, value) {\n var liElement = null;\n if (list) {\n var listArr = [].slice.call(list.querySelectorAll(findNode));\n for (var index = 0; index < listArr.length; index++) {\n if (listArr[index].getAttribute(attribute) === (value + '')) {\n liElement = listArr[index];\n break;\n }\n }\n }\n return liElement;\n };\n DropDownBase.prototype.raiseDataBound = function (listItems, e) {\n this.hideSpinner();\n var dataBoundEventArgs = {\n items: listItems,\n e: e\n };\n this.trigger('dataBound', dataBoundEventArgs);\n };\n DropDownBase.prototype.remainingItems = function (dataSource, fields) {\n var spliceData = new DataManager(dataSource).executeLocal(new Query().skip(100));\n if (this.itemTemplate) {\n var listElements = this.templateListItem(spliceData, fields);\n return [].slice.call(listElements.childNodes);\n }\n var type = this.typeOfData(spliceData).typeof;\n if (type === 'string' || type === 'number' || type === 'boolean') {\n return ListBase.createListItemFromArray(this.createElement, spliceData, true, this.listOption(spliceData, fields), this);\n }\n return ListBase.createListItemFromJson(this.createElement, spliceData, this.listOption(spliceData, fields), 1, true, this);\n };\n DropDownBase.prototype.emptyDataRequest = function (fields) {\n var listItems = [];\n this.onActionComplete(this.renderItems(listItems, fields), listItems);\n this.isRequested = false;\n this.hideSpinner();\n };\n DropDownBase.prototype.showSpinner = function () {\n // Used this method in component side.\n };\n DropDownBase.prototype.hideSpinner = function () {\n // Used this method in component side.\n };\n DropDownBase.prototype.onActionFailure = function (e) {\n this.liCollections = [];\n this.trigger('actionFailure', e);\n this.l10nUpdate(true);\n if (!isNullOrUndefined(this.list)) {\n addClass([this.list], dropDownBaseClasses.noData);\n }\n };\n /* eslint-disable @typescript-eslint/no-unused-vars */\n DropDownBase.prototype.onActionComplete = function (ulElement, list, e) {\n /* eslint-enable @typescript-eslint/no-unused-vars */\n this.listData = list;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact) {\n this.clearTemplate(['itemTemplate', 'groupTemplate', 'actionFailureTemplate', 'noRecordsTemplate']);\n }\n this.fixedHeaderElement = isNullOrUndefined(this.fixedHeaderElement) ? this.fixedHeaderElement : null;\n if (this.getModuleName() === 'multiselect' && this.properties.allowCustomValue && this.fields.groupBy) {\n for (var i = 0; i < ulElement.childElementCount; i++) {\n if (ulElement.children[i].classList.contains('e-list-group-item')) {\n if (isNullOrUndefined(ulElement.children[i].innerHTML) || ulElement.children[i].innerHTML == \"\") {\n addClass([ulElement.children[i]], HIDE_GROUPLIST);\n }\n }\n }\n }\n if (!isNullOrUndefined(this.list)) {\n this.list.innerHTML = '';\n this.list.appendChild(ulElement);\n this.liCollections = this.list.querySelectorAll('.' + dropDownBaseClasses.li);\n this.ulElement = this.list.querySelector('ul');\n this.postRender(this.list, list, this.bindEvent);\n }\n };\n /* eslint-disable @typescript-eslint/no-unused-vars */\n DropDownBase.prototype.postRender = function (listElement, list, bindEvent) {\n /* eslint-enable @typescript-eslint/no-unused-vars */\n var focusItem = listElement.querySelector('.' + dropDownBaseClasses.li);\n var selectedItem = listElement.querySelector('.' + dropDownBaseClasses.selected);\n if (focusItem && !selectedItem) {\n focusItem.classList.add(dropDownBaseClasses.focus);\n }\n if (list.length <= 0) {\n this.l10nUpdate();\n addClass([listElement], dropDownBaseClasses.noData);\n }\n else {\n listElement.classList.remove(dropDownBaseClasses.noData);\n }\n };\n /**\n * Get the query to do the data operation before list item generation.\n *\n * @param {Query} query - Accepts the external Query that execute along with data processing.\n * @returns {Query} Returns the query to do the data query operation.\n */\n DropDownBase.prototype.getQuery = function (query) {\n return query ? query : this.query ? this.query : new Query();\n };\n /**\n * To render the template content for group header element.\n *\n * @param {HTMLElement} listEle - Specifies the group list elements.\n * @returns {void}\n */\n DropDownBase.prototype.renderGroupTemplate = function (listEle) {\n if (this.fields.groupBy !== null && this.dataSource || this.element.querySelector('.' + dropDownBaseClasses.group)) {\n var dataSource = this.dataSource;\n var option = { groupTemplateID: this.groupTemplateId, isStringTemplate: this.isStringTemplate };\n var headerItems = listEle.querySelectorAll('.' + dropDownBaseClasses.group);\n var groupcheck = this.templateCompiler(this.groupTemplate);\n if (groupcheck) {\n var groupValue = select(this.groupTemplate, document).innerHTML.trim();\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var tempHeaders = ListBase.renderGroupTemplate(groupValue, dataSource, this.fields.properties, headerItems, option, this);\n //EJ2-55168- Group checkbox is not working with group template\n if (this.isGroupChecking) {\n for (var i = 0; i < tempHeaders.length; i++) {\n this.notify('addItem', { module: 'CheckBoxSelection', item: tempHeaders[i] });\n }\n }\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var tempHeaders = ListBase.renderGroupTemplate(this.groupTemplate, dataSource, this.fields.properties, headerItems, option, this);\n //EJ2-55168- Group checkbox is not working with group template\n if (this.isGroupChecking) {\n for (var i = 0; i < tempHeaders.length; i++) {\n this.notify('addItem', { module: 'CheckBoxSelection', item: tempHeaders[i] });\n }\n }\n }\n this.renderReactTemplates();\n }\n };\n /**\n * To create the ul li list items\n *\n * @param {object []} dataSource - Specifies the data to generate the list.\n * @param {FieldSettingsModel} fields - Maps the columns of the data table and binds the data to the component.\n * @returns {HTMLElement} Return the ul li list items.\n */\n DropDownBase.prototype.createListItems = function (dataSource, fields) {\n if (dataSource && fields.groupBy || this.element.querySelector('optgroup')) {\n if (fields.groupBy) {\n if (this.sortOrder !== 'None') {\n dataSource = this.getSortedDataSource(dataSource);\n }\n dataSource = ListBase.groupDataSource(dataSource, fields.properties, this.sortOrder);\n }\n addClass([this.list], dropDownBaseClasses.grouping);\n }\n else {\n dataSource = this.getSortedDataSource(dataSource);\n }\n var options = this.listOption(dataSource, fields);\n var spliceData = (dataSource.length > 100) ?\n new DataManager(dataSource).executeLocal(new Query().take(100))\n : dataSource;\n this.sortedData = dataSource;\n return ListBase.createList(this.createElement, (this.getModuleName() === 'autocomplete') ? spliceData : dataSource, options, true, this);\n };\n DropDownBase.prototype.listOption = function (dataSource, fields) {\n var iconCss = isNullOrUndefined(fields.iconCss) ? false : true;\n var fieldValues = !isNullOrUndefined(fields.properties) ?\n fields.properties : fields;\n var options = (fields.text !== null || fields.value !== null) ? {\n fields: fieldValues,\n showIcon: iconCss, ariaAttributes: { groupItemRole: 'presentation' }\n } : { fields: { value: 'text' } };\n return extend({}, options, fields, true);\n };\n DropDownBase.prototype.setFloatingHeader = function (e) {\n if (!isNullOrUndefined(this.list) && !this.list.classList.contains(dropDownBaseClasses.noData)) {\n if (isNullOrUndefined(this.fixedHeaderElement)) {\n this.fixedHeaderElement = this.createElement('div', { className: dropDownBaseClasses.fixedHead });\n if (!isNullOrUndefined(this.list) && !this.list.querySelector('li').classList.contains(dropDownBaseClasses.group)) {\n this.fixedHeaderElement.style.display = 'none';\n }\n if (!isNullOrUndefined(this.fixedHeaderElement) && !isNullOrUndefined(this.list)) {\n prepend([this.fixedHeaderElement], this.list);\n }\n this.setFixedHeader();\n }\n if (!isNullOrUndefined(this.fixedHeaderElement) && this.fixedHeaderElement.style.zIndex === '0') {\n this.setFixedHeader();\n }\n this.scrollStop(e);\n }\n };\n DropDownBase.prototype.scrollStop = function (e) {\n var target = !isNullOrUndefined(e) ? e.target : this.list;\n var liHeight = parseInt(getComputedStyle(this.getValidLi(), null).getPropertyValue('height'), 10);\n var topIndex = Math.round(target.scrollTop / liHeight);\n var liCollections = this.list.querySelectorAll('li' + ':not(.e-hide-listitem)');\n for (var i = topIndex; i > -1; i--) {\n if (!isNullOrUndefined(liCollections[i]) && liCollections[i].classList.contains(dropDownBaseClasses.group)) {\n var currentLi = liCollections[i];\n this.fixedHeaderElement.innerHTML = currentLi.innerHTML;\n this.fixedHeaderElement.style.top = target.scrollTop + 'px';\n this.fixedHeaderElement.style.display = 'block';\n break;\n }\n else {\n this.fixedHeaderElement.style.display = 'none';\n this.fixedHeaderElement.style.top = 'none';\n }\n }\n };\n DropDownBase.prototype.getValidLi = function () {\n return this.liCollections[0];\n };\n /**\n * To render the list items\n *\n * @param {object[]} listData - Specifies the list of array of data.\n * @param {FieldSettingsModel} fields - Maps the columns of the data table and binds the data to the component.\n * @returns {HTMLElement} Return the list items.\n */\n DropDownBase.prototype.renderItems = function (listData, fields) {\n var ulElement;\n if (this.itemTemplate && listData) {\n var dataSource = listData;\n if (dataSource && fields.groupBy) {\n if (this.sortOrder !== 'None') {\n dataSource = this.getSortedDataSource(dataSource);\n }\n dataSource = ListBase.groupDataSource(dataSource, fields.properties, this.sortOrder);\n }\n else {\n dataSource = this.getSortedDataSource(dataSource);\n }\n this.sortedData = dataSource;\n var spliceData = (dataSource.length > 100) ?\n new DataManager(dataSource).executeLocal(new Query().take(100))\n : dataSource;\n ulElement = this.templateListItem((this.getModuleName() === 'autocomplete') ? spliceData : dataSource, fields);\n }\n else {\n ulElement = this.createListItems(listData, fields);\n }\n return ulElement;\n };\n DropDownBase.prototype.templateListItem = function (dataSource, fields) {\n var option = this.listOption(dataSource, fields);\n option.templateID = this.itemTemplateId;\n option.isStringTemplate = this.isStringTemplate;\n var itemcheck = this.templateCompiler(this.itemTemplate);\n if (itemcheck) {\n var itemValue = select(this.itemTemplate, document).innerHTML.trim();\n return ListBase.renderContentTemplate(this.createElement, itemValue, dataSource, fields.properties, option, this);\n }\n else {\n return ListBase.renderContentTemplate(this.createElement, this.itemTemplate, dataSource, fields.properties, option, this);\n }\n };\n DropDownBase.prototype.typeOfData = function (items) {\n var item = { typeof: null, item: null };\n for (var i = 0; (!isNullOrUndefined(items) && i < items.length); i++) {\n if (!isNullOrUndefined(items[i])) {\n var listDataType = typeof (items[i]) === 'string' ||\n typeof (items[i]) === 'number' || typeof (items[i]) === 'boolean';\n var isNullData = listDataType ? isNullOrUndefined(items[i]) :\n isNullOrUndefined(getValue((this.fields.value ? this.fields.value : 'value'), items[i]));\n if (!isNullData) {\n return item = { typeof: typeof items[i], item: items[i] };\n }\n }\n }\n return item;\n };\n DropDownBase.prototype.setFixedHeader = function () {\n if (!isNullOrUndefined(this.list)) {\n this.list.parentElement.style.display = 'block';\n }\n var borderWidth = 0;\n if (this.list && this.list.parentElement) {\n borderWidth = parseInt(document.defaultView.getComputedStyle(this.list.parentElement, null).getPropertyValue('border-width'), 10);\n /*Shorthand property not working in Firefox for getComputedStyle method.\n Refer bug report https://bugzilla.mozilla.org/show_bug.cgi?id=137688\n Refer alternate solution https://stackoverflow.com/a/41696234/9133493*/\n if (isNaN(borderWidth)) {\n var borderTopWidth = parseInt(document.defaultView.getComputedStyle(this.list.parentElement, null).getPropertyValue('border-top-width'), 10);\n var borderBottomWidth = parseInt(document.defaultView.getComputedStyle(this.list.parentElement, null).getPropertyValue('border-bottom-width'), 10);\n var borderLeftWidth = parseInt(document.defaultView.getComputedStyle(this.list.parentElement, null).getPropertyValue('border-left-width'), 10);\n var borderRightWidth = parseInt(document.defaultView.getComputedStyle(this.list.parentElement, null).getPropertyValue('border-right-width'), 10);\n borderWidth = (borderTopWidth + borderBottomWidth + borderLeftWidth + borderRightWidth);\n }\n }\n if (!isNullOrUndefined(this.liCollections)) {\n var liWidth = this.getValidLi().offsetWidth - borderWidth;\n this.fixedHeaderElement.style.width = liWidth.toString() + 'px';\n }\n setStyleAttribute(this.fixedHeaderElement, { zIndex: 10 });\n var firstLi = this.ulElement.querySelector('.' + dropDownBaseClasses.group + ':not(.e-hide-listitem)');\n this.fixedHeaderElement.innerHTML = firstLi.innerHTML;\n };\n DropDownBase.prototype.getSortedDataSource = function (dataSource) {\n if (dataSource && this.sortOrder !== 'None') {\n var textField = this.fields.text ? this.fields.text : 'text';\n if (this.typeOfData(dataSource).typeof === 'string' || this.typeOfData(dataSource).typeof === 'number'\n || this.typeOfData(dataSource).typeof === 'boolean') {\n textField = '';\n }\n dataSource = ListBase.getDataSource(dataSource, ListBase.addSorting(this.sortOrder, textField));\n }\n return dataSource;\n };\n /**\n * Return the index of item which matched with given value in data source\n *\n * @param {string | number | boolean} value - Specifies given value.\n * @returns {number} Returns the index of the item.\n */\n DropDownBase.prototype.getIndexByValue = function (value) {\n var index;\n var listItems = this.getItems();\n for (var i = 0; i < listItems.length; i++) {\n if (!isNullOrUndefined(value) && listItems[i].getAttribute('data-value') === value.toString()) {\n index = i;\n break;\n }\n }\n return index;\n };\n /**\n * To dispatch the event manually\n *\n * @param {HTMLElement} element - Specifies the element to dispatch the event.\n * @param {string} type - Specifies the name of the event.\n * @returns {void}\n */\n DropDownBase.prototype.dispatchEvent = function (element, type) {\n var evt = document.createEvent('HTMLEvents');\n evt.initEvent(type, false, true);\n element.dispatchEvent(evt);\n };\n /**\n * To set the current fields\n *\n * @returns {void}\n */\n DropDownBase.prototype.setFields = function () {\n if (this.fields.value && !this.fields.text) {\n this.updateFields(this.fields.value, this.fields.value);\n }\n else if (!this.fields.value && this.fields.text) {\n this.updateFields(this.fields.text, this.fields.text);\n }\n else if (!this.fields.value && !this.fields.text) {\n this.updateFields('text', 'text');\n }\n };\n /**\n * reset the items list.\n *\n * @param {Object[] | string[] | number[] | DataManager | boolean[]} dataSource - Specifies the data to generate the list.\n * @param {FieldSettingsModel} fields - Maps the columns of the data table and binds the data to the component.\n * @param {Query} query - Accepts the external Query that execute along with data processing.\n * @returns {void}\n */\n DropDownBase.prototype.resetList = function (dataSource, fields, query, e) {\n if (this.list) {\n if ((this.element.tagName === 'SELECT' && this.element.options.length > 0)\n || (this.element.tagName === 'UL' && this.element.childNodes.length > 0)) {\n var data = dataSource instanceof Array ? (dataSource.length > 0)\n : !isNullOrUndefined(dataSource);\n if (!data && this.selectData && this.selectData.length > 0) {\n dataSource = this.selectData;\n }\n }\n dataSource = this.getModuleName() === 'combobox' && this.selectData && dataSource instanceof Array && dataSource.length < this.selectData.length && this.addedNewItem ? this.selectData : dataSource;\n this.addedNewItem = false;\n this.setListData(dataSource, fields, query, e);\n }\n };\n DropDownBase.prototype.updateSelectElementData = function (isFiltering) {\n if (isFiltering && isNullOrUndefined(this.selectData) && this.listData && this.listData.length > 0) {\n this.selectData = this.listData;\n }\n };\n DropDownBase.prototype.updateSelection = function () {\n // This is for after added the item, need to update the selected index values.\n };\n DropDownBase.prototype.renderList = function () {\n // This is for render the list items.\n this.render();\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n DropDownBase.prototype.updateDataSource = function (props) {\n this.resetList(this.dataSource);\n };\n DropDownBase.prototype.setUpdateInitial = function (props, newProp) {\n this.isDataFetched = false;\n var updateData = {};\n for (var j = 0; props.length > j; j++) {\n if (newProp[props[j]] && props[j] === 'fields') {\n this.setFields();\n updateData[props[j]] = newProp[props[j]];\n }\n else if (newProp[props[j]]) {\n updateData[props[j]] = newProp[props[j]];\n }\n }\n if (Object.keys(updateData).length > 0) {\n if (Object.keys(updateData).indexOf('dataSource') === -1) {\n updateData.dataSource = this.dataSource;\n }\n this.updateDataSource(updateData);\n }\n };\n /**\n * When property value changes happened, then onPropertyChanged method will execute the respective changes in this component.\n *\n * @param {DropDownBaseModel} newProp - Returns the dynamic property value of the component.\n * @param {DropDownBaseModel} oldProp - Returns the previous property value of the component.\n * @private\n * @returns {void}\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n DropDownBase.prototype.onPropertyChanged = function (newProp, oldProp) {\n if (this.getModuleName() === 'dropdownbase') {\n this.setUpdateInitial(['fields', 'query', 'dataSource'], newProp);\n }\n this.setUpdateInitial(['sortOrder', 'itemTemplate'], newProp);\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'query':\n case 'sortOrder':\n case 'dataSource':\n case 'itemTemplate':\n break;\n case 'enableRtl':\n this.setEnableRtl();\n break;\n case 'groupTemplate':\n this.renderGroupTemplate(this.list);\n if (this.ulElement && this.fixedHeaderElement) {\n var firstLi = this.ulElement.querySelector('.' + dropDownBaseClasses.group);\n this.fixedHeaderElement.innerHTML = firstLi.innerHTML;\n }\n break;\n case 'locale':\n if (this.list && (!isNullOrUndefined(this.liCollections) && this.liCollections.length === 0)) {\n this.l10nUpdate();\n }\n break;\n case 'zIndex':\n this.setProperties({ zIndex: newProp.zIndex }, true);\n this.setZIndex();\n break;\n }\n }\n };\n /**\n * Build and render the component\n *\n * @param {boolean} isEmptyData - Specifies the component to initialize with list data or not.\n * @private\n * @returns {void}\n */\n DropDownBase.prototype.render = function (e, isEmptyData) {\n this.list = this.createElement('div', { className: dropDownBaseClasses.content, attrs: { 'tabindex': '0' } });\n this.list.classList.add(dropDownBaseClasses.root);\n this.setFields();\n var rippleModel = { duration: 300, selector: '.' + dropDownBaseClasses.li };\n this.rippleFun = rippleEffect(this.list, rippleModel);\n var group = this.element.querySelector('select>optgroup');\n if ((this.fields.groupBy || !isNullOrUndefined(group)) && !this.isGroupChecking) {\n EventHandler.add(this.list, 'scroll', this.setFloatingHeader, this);\n }\n if (this.getModuleName() === 'dropdownbase') {\n if (this.element.getAttribute('tabindex')) {\n this.list.setAttribute('tabindex', this.element.getAttribute('tabindex'));\n }\n removeClass([this.element], dropDownBaseClasses.root);\n this.element.style.display = 'none';\n var wrapperElement = this.createElement('div');\n this.element.parentElement.insertBefore(wrapperElement, this.element);\n wrapperElement.appendChild(this.element);\n wrapperElement.appendChild(this.list);\n }\n this.setEnableRtl();\n if (!isEmptyData) {\n this.initialize(e);\n }\n };\n /**\n * Return the module name of this component.\n *\n * @private\n * @returns {string} Return the module name of this component.\n */\n DropDownBase.prototype.getModuleName = function () {\n return 'dropdownbase';\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Gets all the list items bound on this component.\n *\n * @returns {Element[]}\n */\n DropDownBase.prototype.getItems = function () {\n return this.ulElement.querySelectorAll('.' + dropDownBaseClasses.li);\n };\n /* eslint-enable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Adds a new item to the popup list. By default, new item appends to the list as the last item,\n * but you can insert based on the index parameter.\n *\n * @param { Object[] } items - Specifies an array of JSON data or a JSON data.\n * @param { number } itemIndex - Specifies the index to place the newly added item in the popup list.\n * @returns {void}\n\n */\n DropDownBase.prototype.addItem = function (items, itemIndex) {\n if (!this.list || (this.list.textContent === this.noRecordsTemplate && this.getModuleName() !== 'listbox')) {\n this.renderList();\n }\n if (this.sortOrder !== 'None' && isNullOrUndefined(itemIndex)) {\n var newList = [].slice.call(this.listData);\n newList.push(items);\n newList = this.getSortedDataSource(newList);\n if (this.fields.groupBy) {\n newList = ListBase.groupDataSource(newList, this.fields.properties, this.sortOrder);\n itemIndex = newList.indexOf(items);\n }\n else {\n itemIndex = newList.indexOf(items);\n }\n }\n var itemsCount = this.getItems().length;\n var selectedItemValue = this.list.querySelector('.' + dropDownBaseClasses.selected);\n items = (items instanceof Array ? items : [items]);\n var index;\n index = (isNullOrUndefined(itemIndex) || itemIndex < 0 || itemIndex > itemsCount - 1) ? itemsCount : itemIndex;\n var fields = this.fields;\n if (items && fields.groupBy) {\n items = ListBase.groupDataSource(items, fields.properties);\n }\n var liCollections = [];\n for (var i = 0; i < items.length; i++) {\n var item = items[i];\n var isHeader = item.isHeader;\n var li = this.createElement('li', { className: isHeader ? dropDownBaseClasses.group : dropDownBaseClasses.li, id: 'option-add-' + i });\n var itemText = item instanceof Object ? getValue(fields.text, item) : item;\n if (isHeader) {\n li.innerText = itemText;\n }\n if (this.itemTemplate && !isHeader) {\n var itemCheck = this.templateCompiler(this.itemTemplate);\n var compiledString = itemCheck ? compile(select(this.itemTemplate, document).innerHTML.trim()) : compile(this.itemTemplate);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var addItemTemplate = compiledString(item, this, 'itemTemplate', this.itemTemplateId, this.isStringTemplate, null, li);\n if (addItemTemplate) {\n append(addItemTemplate, li);\n }\n }\n else if (!isHeader) {\n li.appendChild(document.createTextNode(itemText));\n }\n li.setAttribute('data-value', item instanceof Object ? getValue(fields.value, item) : item);\n li.setAttribute('role', 'option');\n this.notify('addItem', { module: 'CheckBoxSelection', item: li });\n liCollections.push(li);\n this.listData.push(item);\n if (this.sortOrder === 'None' && isNullOrUndefined(itemIndex) && index === 0) {\n index = null;\n }\n this.updateActionCompleteData(li, item, index);\n //Listbox event\n this.trigger('beforeItemRender', { element: li, item: item });\n }\n if (itemsCount === 0 && isNullOrUndefined(this.list.querySelector('ul'))) {\n if (!isNullOrUndefined(this.list)) {\n this.list.innerHTML = '';\n this.list.classList.remove(dropDownBaseClasses.noData);\n if (!isNullOrUndefined(this.ulElement)) {\n this.list.appendChild(this.ulElement);\n }\n }\n this.liCollections = liCollections;\n if (!isNullOrUndefined(liCollections) && !isNullOrUndefined(this.ulElement)) {\n append(liCollections, this.ulElement);\n }\n this.updateAddItemList(this.list, itemsCount);\n }\n else {\n if (this.getModuleName() === 'listbox' && itemsCount === 0) {\n this.ulElement.innerHTML = '';\n }\n var attr = [];\n for (var i = 0; i < items.length; i++) {\n var listGroupItem = this.ulElement.querySelectorAll('.e-list-group-item');\n for (var j = 0; j < listGroupItem.length; j++) {\n attr[j] = listGroupItem[j].innerText;\n }\n if (attr.indexOf(liCollections[i].innerText) > -1 && fields.groupBy) {\n for (var j = 0; j < listGroupItem.length; j++) {\n if (attr[j] === liCollections[i].innerText) {\n if (this.sortOrder === 'None') {\n this.ulElement.insertBefore(liCollections[i + 1], listGroupItem[j + 1]);\n }\n else {\n this.ulElement.insertBefore(liCollections[i + 1], this.ulElement.childNodes[itemIndex]);\n }\n i = i + 1;\n break;\n }\n }\n }\n else {\n if (this.liCollections[index]) {\n this.liCollections[index].parentNode.insertBefore(liCollections[i], this.liCollections[index]);\n }\n else {\n this.ulElement.appendChild(liCollections[i]);\n }\n }\n var tempLi = [].slice.call(this.liCollections);\n tempLi.splice(index, 0, liCollections[i]);\n this.liCollections = tempLi;\n index += 1;\n if (this.getModuleName() === 'multiselect') {\n this.updateDataList();\n }\n }\n }\n if (selectedItemValue || itemIndex === 0) {\n this.updateSelection();\n }\n this.addedNewItem = true;\n };\n DropDownBase.prototype.validationAttribute = function (target, hidden) {\n var name = target.getAttribute('name') ? target.getAttribute('name') : target.getAttribute('id');\n hidden.setAttribute('name', name);\n target.removeAttribute('name');\n var attributes = ['required', 'aria-required', 'form'];\n for (var i = 0; i < attributes.length; i++) {\n if (!target.getAttribute(attributes[i])) {\n continue;\n }\n var attr = target.getAttribute(attributes[i]);\n hidden.setAttribute(attributes[i], attr);\n target.removeAttribute(attributes[i]);\n }\n };\n DropDownBase.prototype.setZIndex = function () {\n // this is for component wise\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n DropDownBase.prototype.updateActionCompleteData = function (li, item, index) {\n // this is for ComboBox custom value\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n DropDownBase.prototype.updateAddItemList = function (list, itemCount) {\n // this is for multiselect add item\n };\n DropDownBase.prototype.updateDataList = function () {\n // this is for multiselect update list items\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Gets the data Object that matches the given value.\n *\n * @param { string | number } value - Specifies the value of the list item.\n * @returns {Object}\n */\n DropDownBase.prototype.getDataByValue = function (value) {\n if (!isNullOrUndefined(this.listData)) {\n var type = this.typeOfData(this.listData).typeof;\n if (type === 'string' || type === 'number' || type === 'boolean') {\n for (var _i = 0, _a = this.listData; _i < _a.length; _i++) {\n var item = _a[_i];\n if (!isNullOrUndefined(item) && item === value) {\n return item;\n }\n }\n }\n else {\n for (var _b = 0, _c = this.listData; _b < _c.length; _b++) {\n var item = _c[_b];\n if (!isNullOrUndefined(item) && getValue((this.fields.value ? this.fields.value : 'value'), item) === value) {\n return item;\n }\n }\n }\n }\n return null;\n };\n /* eslint-enable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Removes the component from the DOM and detaches all its related event handlers. It also removes the attributes and classes.\n *\n * @method destroy\n * @returns {void}\n */\n DropDownBase.prototype.destroy = function () {\n if (document.body.contains(this.list)) {\n EventHandler.remove(this.list, 'scroll', this.setFloatingHeader);\n if (!isNullOrUndefined(this.rippleFun)) {\n this.rippleFun();\n }\n detach(this.list);\n }\n this.liCollections = null;\n this.ulElement = null;\n this.list = null;\n this.enableRtlElements = null;\n this.rippleFun = null;\n _super.prototype.destroy.call(this);\n };\n __decorate([\n Complex({ text: null, value: null, iconCss: null, groupBy: null }, FieldSettings)\n ], DropDownBase.prototype, \"fields\", void 0);\n __decorate([\n Property(null)\n ], DropDownBase.prototype, \"itemTemplate\", void 0);\n __decorate([\n Property(null)\n ], DropDownBase.prototype, \"groupTemplate\", void 0);\n __decorate([\n Property('No records found')\n ], DropDownBase.prototype, \"noRecordsTemplate\", void 0);\n __decorate([\n Property('Request failed')\n ], DropDownBase.prototype, \"actionFailureTemplate\", void 0);\n __decorate([\n Property('None')\n ], DropDownBase.prototype, \"sortOrder\", void 0);\n __decorate([\n Property([])\n ], DropDownBase.prototype, \"dataSource\", void 0);\n __decorate([\n Property(null)\n ], DropDownBase.prototype, \"query\", void 0);\n __decorate([\n Property('StartsWith')\n ], DropDownBase.prototype, \"filterType\", void 0);\n __decorate([\n Property(true)\n ], DropDownBase.prototype, \"ignoreCase\", void 0);\n __decorate([\n Property(1000)\n ], DropDownBase.prototype, \"zIndex\", void 0);\n __decorate([\n Property(false)\n ], DropDownBase.prototype, \"ignoreAccent\", void 0);\n __decorate([\n Property()\n ], DropDownBase.prototype, \"locale\", void 0);\n __decorate([\n Event()\n ], DropDownBase.prototype, \"actionBegin\", void 0);\n __decorate([\n Event()\n ], DropDownBase.prototype, \"actionComplete\", void 0);\n __decorate([\n Event()\n ], DropDownBase.prototype, \"actionFailure\", void 0);\n __decorate([\n Event()\n ], DropDownBase.prototype, \"select\", void 0);\n __decorate([\n Event()\n ], DropDownBase.prototype, \"dataBound\", void 0);\n __decorate([\n Event()\n ], DropDownBase.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], DropDownBase.prototype, \"destroyed\", void 0);\n DropDownBase = __decorate([\n NotifyPropertyChanges\n ], DropDownBase);\n return DropDownBase;\n}(Component));\nexport { DropDownBase };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n// eslint-disable-next-line @typescript-eslint/triple-slash-reference\n/// \nimport { EventHandler, Property, Event, compile, KeyboardEvents, append, select } from '@syncfusion/ej2-base';\nimport { attributes, isNullOrUndefined, getUniqueID, formatUnit, isUndefined, getValue } from '@syncfusion/ej2-base';\nimport { Animation, Browser, NotifyPropertyChanges } from '@syncfusion/ej2-base';\nimport { addClass, removeClass, closest, prepend, detach, classList } from '@syncfusion/ej2-base';\nimport { Popup, isCollide, createSpinner, showSpinner, hideSpinner } from '@syncfusion/ej2-popups';\nimport { Input } from '@syncfusion/ej2-inputs';\nimport { incrementalSearch, resetIncrementalSearchValues } from '../common/incremental-search';\nimport { DropDownBase, dropDownBaseClasses } from '../drop-down-base/drop-down-base';\nimport { DataManager, Query, Predicate } from '@syncfusion/ej2-data';\n// don't use space in classnames\nexport var dropDownListClasses = {\n root: 'e-dropdownlist',\n hover: dropDownBaseClasses.hover,\n selected: dropDownBaseClasses.selected,\n rtl: dropDownBaseClasses.rtl,\n li: dropDownBaseClasses.li,\n disable: dropDownBaseClasses.disabled,\n base: dropDownBaseClasses.root,\n focus: dropDownBaseClasses.focus,\n input: 'e-input-group',\n inputFocus: 'e-input-focus',\n icon: 'e-input-group-icon e-ddl-icon',\n iconAnimation: 'e-icon-anim',\n value: 'e-input-value',\n device: 'e-ddl-device',\n backIcon: 'e-input-group-icon e-back-icon e-icons',\n filterBarClearIcon: 'e-input-group-icon e-clear-icon e-icons',\n filterInput: 'e-input-filter',\n filterParent: 'e-filter-parent',\n mobileFilter: 'e-ddl-device-filter',\n footer: 'e-ddl-footer',\n header: 'e-ddl-header',\n clearIcon: 'e-clear-icon',\n clearIconHide: 'e-clear-icon-hide',\n popupFullScreen: 'e-popup-full-page',\n disableIcon: 'e-ddl-disable-icon',\n hiddenElement: 'e-ddl-hidden'\n};\nvar inputObject = {\n container: null,\n buttons: []\n};\n/**\n * The DropDownList component contains a list of predefined values from which you can\n * choose a single value.\n * ```html\n * \n * ```\n * ```typescript\n * let dropDownListObj:DropDownList = new DropDownList();\n * dropDownListObj.appendTo(\"#list\");\n * ```\n */\nvar DropDownList = /** @class */ (function (_super) {\n __extends(DropDownList, _super);\n /**\n * * Constructor for creating the DropDownList component.\n *\n * @param {DropDownListModel} options - Specifies the DropDownList model.\n * @param {string | HTMLElement} element - Specifies the element to render as component.\n * @private\n */\n function DropDownList(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.isListSearched = false;\n _this.preventChange = false;\n _this.isAngular = false;\n return _this;\n }\n /**\n * Initialize the event handler.\n *\n * @private\n * @returns {void}\n */\n DropDownList.prototype.preRender = function () {\n this.valueTempElement = null;\n this.element.style.opacity = '0';\n this.initializeData();\n _super.prototype.preRender.call(this);\n this.activeIndex = this.index;\n this.queryString = '';\n };\n DropDownList.prototype.initializeData = function () {\n this.isPopupOpen = false;\n this.isDocumentClick = false;\n this.isInteracted = false;\n this.isFilterFocus = false;\n this.beforePopupOpen = false;\n this.initial = true;\n this.initRemoteRender = false;\n this.isNotSearchList = false;\n this.isTyped = false;\n this.isSelected = false;\n this.preventFocus = false;\n this.preventAutoFill = false;\n this.isValidKey = false;\n this.typedString = '';\n this.isEscapeKey = false;\n this.isPreventBlur = false;\n this.isTabKey = false;\n this.actionCompleteData = { isUpdated: false };\n this.actionData = { isUpdated: false };\n this.prevSelectPoints = {};\n this.isSelectCustom = false;\n this.isDropDownClick = false;\n this.preventAltUp = false;\n this.isCustomFilter = false;\n this.isSecondClick = false;\n this.previousValue = null;\n this.keyConfigure = {\n tab: 'tab',\n enter: '13',\n escape: '27',\n end: '35',\n home: '36',\n down: '40',\n up: '38',\n pageUp: '33',\n pageDown: '34',\n open: 'alt+40',\n close: 'shift+tab',\n hide: 'alt+38',\n space: '32'\n };\n };\n DropDownList.prototype.setZIndex = function () {\n if (this.popupObj) {\n this.popupObj.setProperties({ 'zIndex': this.zIndex });\n }\n };\n DropDownList.prototype.renderList = function (e, isEmptyData) {\n _super.prototype.render.call(this, e, isEmptyData);\n this.unWireListEvents();\n this.wireListEvents();\n };\n DropDownList.prototype.floatLabelChange = function () {\n if (this.getModuleName() === 'dropdownlist' && this.floatLabelType === 'Auto') {\n var floatElement = this.inputWrapper.container.querySelector('.e-float-text');\n if (this.inputElement.value !== '' || this.isInteracted) {\n classList(floatElement, ['e-label-top'], ['e-label-bottom']);\n }\n else {\n classList(floatElement, ['e-label-bottom'], ['e-label-top']);\n }\n }\n };\n DropDownList.prototype.resetHandler = function (e) {\n e.preventDefault();\n this.clearAll(e);\n };\n DropDownList.prototype.resetFocusElement = function () {\n this.removeHover();\n this.removeSelection();\n this.removeFocus();\n this.list.scrollTop = 0;\n if (this.getModuleName() !== 'autocomplete' && !isNullOrUndefined(this.ulElement)) {\n var li = this.ulElement.querySelector('.' + dropDownListClasses.li);\n if (li) {\n li.classList.add(dropDownListClasses.focus);\n }\n }\n };\n DropDownList.prototype.clearAll = function (e, properties) {\n this.previousItemData = (!isNullOrUndefined(this.itemData)) ? this.itemData : null;\n if (isNullOrUndefined(properties) || (!isNullOrUndefined(properties) &&\n (isNullOrUndefined(properties.dataSource) ||\n (!(properties.dataSource instanceof DataManager) && properties.dataSource.length === 0)))) {\n this.isActive = true;\n this.resetSelection(properties);\n }\n var dataItem = this.getItemData();\n if (this.previousValue === dataItem.value) {\n return;\n }\n this.onChangeEvent(e);\n };\n DropDownList.prototype.resetSelection = function (properties) {\n if (this.list) {\n if ((!isNullOrUndefined(properties) &&\n (isNullOrUndefined(properties.dataSource) ||\n (!(properties.dataSource instanceof DataManager) && properties.dataSource.length === 0)))) {\n this.selectedLI = null;\n this.actionCompleteData.isUpdated = false;\n this.actionCompleteData.ulElement = null;\n this.actionCompleteData.list = null;\n this.resetList(properties.dataSource);\n }\n else {\n if (this.allowFiltering && this.getModuleName() !== 'autocomplete'\n && !isNullOrUndefined(this.actionCompleteData.ulElement) && !isNullOrUndefined(this.actionCompleteData.list) && this.actionCompleteData.list.length > 0) {\n this.onActionComplete(this.actionCompleteData.ulElement.cloneNode(true), this.actionCompleteData.list);\n }\n this.resetFocusElement();\n }\n }\n if (!isNullOrUndefined(this.hiddenElement)) {\n this.hiddenElement.innerHTML = '';\n }\n if (!isNullOrUndefined(this.inputElement)) {\n this.inputElement.value = '';\n }\n this.value = null;\n this.itemData = null;\n this.text = null;\n this.index = null;\n this.activeIndex = null;\n this.item = null;\n this.queryString = '';\n if (this.valueTempElement) {\n detach(this.valueTempElement);\n this.inputElement.style.display = 'block';\n this.valueTempElement = null;\n }\n this.setSelection(null, null);\n this.isSelectCustom = false;\n this.updateIconState();\n this.cloneElements();\n };\n DropDownList.prototype.setHTMLAttributes = function () {\n if (Object.keys(this.htmlAttributes).length) {\n for (var _i = 0, _a = Object.keys(this.htmlAttributes); _i < _a.length; _i++) {\n var htmlAttr = _a[_i];\n if (htmlAttr === 'class') {\n var updatedClassValue = (this.htmlAttributes[\"\" + htmlAttr].replace(/\\s+/g, ' ')).trim();\n if (updatedClassValue !== '') {\n addClass([this.inputWrapper.container], updatedClassValue.split(' '));\n }\n }\n else if (htmlAttr === 'disabled' && this.htmlAttributes[\"\" + htmlAttr] === 'disabled') {\n this.enabled = false;\n this.setEnable();\n }\n else if (htmlAttr === 'readonly' && !isNullOrUndefined(this.htmlAttributes[\"\" + htmlAttr])) {\n this.readonly = true;\n this.dataBind();\n }\n else if (htmlAttr === 'style') {\n this.inputWrapper.container.setAttribute('style', this.htmlAttributes[\"\" + htmlAttr]);\n }\n else {\n var defaultAttr = ['title', 'id', 'placeholder',\n 'role', 'autocomplete', 'autocapitalize', 'spellcheck', 'minlength', 'maxlength'];\n var validateAttr = ['name', 'required'];\n if (this.getModuleName() === 'autocomplete' || this.getModuleName() === 'combobox') {\n defaultAttr.push('tabindex');\n }\n if (validateAttr.indexOf(htmlAttr) > -1 || htmlAttr.indexOf('data') === 0) {\n this.hiddenElement.setAttribute(htmlAttr, this.htmlAttributes[\"\" + htmlAttr]);\n }\n else if (defaultAttr.indexOf(htmlAttr) > -1) {\n if (htmlAttr === 'placeholder') {\n Input.setPlaceholder(this.htmlAttributes[\"\" + htmlAttr], this.inputElement);\n }\n else {\n this.inputElement.setAttribute(htmlAttr, this.htmlAttributes[\"\" + htmlAttr]);\n }\n }\n else {\n this.inputWrapper.container.setAttribute(htmlAttr, this.htmlAttributes[\"\" + htmlAttr]);\n }\n }\n }\n }\n if (this.getModuleName() === 'autocomplete' || this.getModuleName() === 'combobox') {\n this.inputWrapper.container.removeAttribute('tabindex');\n }\n };\n DropDownList.prototype.getAriaAttributes = function () {\n return {\n 'aria-disabled': 'false',\n 'role': 'combobox',\n 'aria-expanded': 'false',\n 'aria-live': 'polite',\n 'aria-labelledby': this.hiddenElement.id\n };\n };\n DropDownList.prototype.setEnableRtl = function () {\n Input.setEnableRtl(this.enableRtl, [this.inputElement.parentElement]);\n if (this.popupObj) {\n this.popupObj.enableRtl = this.enableRtl;\n this.popupObj.dataBind();\n }\n };\n DropDownList.prototype.setEnable = function () {\n Input.setEnabled(this.enabled, this.inputElement);\n if (this.enabled) {\n removeClass([this.inputWrapper.container], dropDownListClasses.disable);\n this.inputElement.setAttribute('aria-disabled', 'false');\n this.targetElement().setAttribute('tabindex', this.tabIndex);\n }\n else {\n this.hidePopup();\n addClass([this.inputWrapper.container], dropDownListClasses.disable);\n this.inputElement.setAttribute('aria-disabled', 'true');\n this.targetElement().tabIndex = -1;\n }\n };\n /**\n * Get the properties to be maintained in the persisted state.\n *\n * @returns {string} Returns the persisted data of the component.\n */\n DropDownList.prototype.getPersistData = function () {\n return this.addOnPersist(['value']);\n };\n DropDownList.prototype.getLocaleName = function () {\n return 'drop-down-list';\n };\n DropDownList.prototype.preventTabIndex = function (element) {\n if (this.getModuleName() === 'dropdownlist') {\n element.tabIndex = -1;\n }\n };\n DropDownList.prototype.targetElement = function () {\n return !isNullOrUndefined(this.inputWrapper) ? this.inputWrapper.container : null;\n };\n DropDownList.prototype.getNgDirective = function () {\n return 'EJS-DROPDOWNLIST';\n };\n DropDownList.prototype.getElementByText = function (text) {\n return this.getElementByValue(this.getValueByText(text));\n };\n DropDownList.prototype.getElementByValue = function (value) {\n var item;\n var listItems = this.getItems();\n for (var _i = 0, listItems_1 = listItems; _i < listItems_1.length; _i++) {\n var liItem = listItems_1[_i];\n if (this.getFormattedValue(liItem.getAttribute('data-value')) === value) {\n item = liItem;\n break;\n }\n }\n return item;\n };\n DropDownList.prototype.initValue = function () {\n this.renderList();\n if (this.dataSource instanceof DataManager) {\n this.initRemoteRender = true;\n }\n else {\n this.updateValues();\n }\n };\n DropDownList.prototype.updateValues = function () {\n if (!isNullOrUndefined(this.value)) {\n this.setSelection(this.getElementByValue(this.value), null);\n }\n else if (this.text && isNullOrUndefined(this.value)) {\n var element = this.getElementByText(this.text);\n if (isNullOrUndefined(element)) {\n this.setProperties({ text: null });\n return;\n }\n else {\n this.setSelection(element, null);\n }\n }\n else {\n this.setSelection(this.liCollections[this.activeIndex], null);\n }\n this.setHiddenValue();\n Input.setValue(this.text, this.inputElement, this.floatLabelType, this.showClearButton);\n };\n DropDownList.prototype.onBlurHandler = function (e) {\n if (!this.enabled) {\n return;\n }\n var target = e.relatedTarget;\n var currentTarget = e.target;\n var isPreventBlur = this.isPreventBlur;\n this.isPreventBlur = false;\n //IE 11 - issue\n if (isPreventBlur && !this.isDocumentClick && this.isPopupOpen && (!isNullOrUndefined(currentTarget) ||\n !this.isFilterLayout() && isNullOrUndefined(target))) {\n if (this.getModuleName() === 'dropdownlist' && this.allowFiltering && this.isPopupOpen) {\n this.filterInput.focus();\n }\n else {\n this.targetElement().focus();\n }\n return;\n }\n if (this.isDocumentClick || (!isNullOrUndefined(this.popupObj)\n && document.body.contains(this.popupObj.element) &&\n this.popupObj.element.classList.contains(dropDownListClasses.mobileFilter))) {\n if (!this.beforePopupOpen) {\n this.isDocumentClick = false;\n }\n return;\n }\n if (((this.getModuleName() === 'dropdownlist' && !this.isFilterFocus && target !== this.inputElement)\n && (document.activeElement !== target || (document.activeElement === target &&\n currentTarget.classList.contains(dropDownListClasses.inputFocus)))) ||\n (isNullOrUndefined(target) && this.getModuleName() === 'dropdownlist' && this.allowFiltering &&\n currentTarget !== this.inputWrapper.container) || this.getModuleName() !== 'dropdownlist' &&\n !this.inputWrapper.container.contains(target) || this.isTabKey) {\n this.isDocumentClick = this.isPopupOpen ? true : false;\n this.focusOutAction(e);\n this.isTabKey = false;\n }\n if (this.isRequested && !this.isPopupOpen && !this.isPreventBlur) {\n this.isActive = false;\n this.beforePopupOpen = false;\n }\n };\n DropDownList.prototype.focusOutAction = function (e) {\n this.isInteracted = false;\n this.focusOut(e);\n this.onFocusOut();\n };\n DropDownList.prototype.onFocusOut = function () {\n if (!this.enabled) {\n return;\n }\n if (this.isSelected) {\n this.isSelectCustom = false;\n this.onChangeEvent(null);\n }\n this.floatLabelChange();\n this.dispatchEvent(this.hiddenElement, 'change');\n if (this.getModuleName() === 'dropdownlist' && this.element.tagName !== 'INPUT') {\n this.dispatchEvent(this.inputElement, 'blur');\n }\n if (this.inputWrapper.clearButton) {\n addClass([this.inputWrapper.clearButton], dropDownListClasses.clearIconHide);\n }\n this.trigger('blur');\n };\n DropDownList.prototype.onFocus = function (e) {\n if (!this.isInteracted) {\n this.isInteracted = true;\n var args = { isInteracted: e ? true : false, event: e };\n this.trigger('focus', args);\n }\n this.updateIconState();\n };\n DropDownList.prototype.resetValueHandler = function (e) {\n var formElement = closest(this.inputElement, 'form');\n if (formElement && e.target === formElement) {\n var val = (this.element.tagName === this.getNgDirective()) ? null : this.inputElement.getAttribute('value');\n this.text = val;\n }\n };\n DropDownList.prototype.wireEvent = function () {\n EventHandler.add(this.inputWrapper.container, 'mousedown', this.dropDownClick, this);\n EventHandler.add(this.inputWrapper.container, 'focus', this.focusIn, this);\n EventHandler.add(this.inputWrapper.container, 'keypress', this.onSearch, this);\n this.bindCommonEvent();\n };\n DropDownList.prototype.bindCommonEvent = function () {\n EventHandler.add(this.targetElement(), 'blur', this.onBlurHandler, this);\n var formElement = closest(this.inputElement, 'form');\n if (formElement) {\n EventHandler.add(formElement, 'reset', this.resetValueHandler, this);\n }\n if (!Browser.isDevice) {\n this.keyboardModule = new KeyboardEvents(this.targetElement(), {\n keyAction: this.keyActionHandler.bind(this), keyConfigs: this.keyConfigure, eventName: 'keydown'\n });\n }\n else {\n this.keyboardModule = new KeyboardEvents(this.targetElement(), {\n keyAction: this.mobileKeyActionHandler.bind(this), keyConfigs: this.keyConfigure, eventName: 'keydown'\n });\n }\n this.bindClearEvent();\n };\n DropDownList.prototype.bindClearEvent = function () {\n if (this.showClearButton) {\n EventHandler.add(this.inputWrapper.clearButton, 'mousedown', this.resetHandler, this);\n }\n };\n DropDownList.prototype.unBindCommonEvent = function () {\n if (!isNullOrUndefined(this.inputWrapper) && this.targetElement()) {\n EventHandler.remove(this.targetElement(), 'blur', this.onBlurHandler);\n }\n var formElement = this.inputElement && closest(this.inputElement, 'form');\n if (formElement) {\n EventHandler.remove(formElement, 'reset', this.resetValueHandler);\n }\n if (!Browser.isDevice) {\n this.keyboardModule.destroy();\n }\n if (this.showClearButton) {\n EventHandler.remove(this.inputWrapper.clearButton, 'mousedown', this.resetHandler);\n }\n };\n DropDownList.prototype.updateIconState = function () {\n if (this.showClearButton) {\n if (this.inputElement.value !== '' && !this.readonly) {\n removeClass([this.inputWrapper.clearButton], dropDownListClasses.clearIconHide);\n }\n else {\n addClass([this.inputWrapper.clearButton], dropDownListClasses.clearIconHide);\n }\n }\n };\n /**\n * Event binding for list\n *\n * @returns {void}\n */\n DropDownList.prototype.wireListEvents = function () {\n if (!isNullOrUndefined(this.list)) {\n EventHandler.add(this.list, 'click', this.onMouseClick, this);\n EventHandler.add(this.list, 'mouseover', this.onMouseOver, this);\n EventHandler.add(this.list, 'mouseout', this.onMouseLeave, this);\n }\n };\n DropDownList.prototype.onSearch = function (e) {\n if (e.charCode !== 32 && e.charCode !== 13) {\n if (this.list === undefined) {\n this.renderList();\n }\n this.searchKeyEvent = e;\n this.onServerIncrementalSearch(e);\n }\n };\n DropDownList.prototype.onServerIncrementalSearch = function (e) {\n if (!this.isRequested && !isNullOrUndefined(this.list) &&\n !isNullOrUndefined(this.list.querySelector('li')) && this.enabled && !this.readonly) {\n this.incrementalSearch(e);\n }\n };\n DropDownList.prototype.onMouseClick = function (e) {\n var target = e.target;\n var li = closest(target, '.' + dropDownBaseClasses.li);\n if (!this.isValidLI(li)) {\n return;\n }\n this.setSelection(li, e);\n if (Browser.isDevice && this.isFilterLayout()) {\n history.back();\n }\n else {\n var delay = 100;\n this.closePopup(delay, e);\n }\n };\n DropDownList.prototype.onMouseOver = function (e) {\n var currentLi = closest(e.target, '.' + dropDownBaseClasses.li);\n this.setHover(currentLi);\n };\n DropDownList.prototype.setHover = function (li) {\n if (this.enabled && this.isValidLI(li) && !li.classList.contains(dropDownBaseClasses.hover)) {\n this.removeHover();\n addClass([li], dropDownBaseClasses.hover);\n }\n };\n DropDownList.prototype.onMouseLeave = function () {\n this.removeHover();\n };\n DropDownList.prototype.removeHover = function () {\n if (this.list) {\n var hoveredItem = this.list.querySelectorAll('.' + dropDownBaseClasses.hover);\n if (hoveredItem && hoveredItem.length) {\n removeClass(hoveredItem, dropDownBaseClasses.hover);\n }\n }\n };\n DropDownList.prototype.isValidLI = function (li) {\n return (li && li.hasAttribute('role') && li.getAttribute('role') === 'option');\n };\n DropDownList.prototype.incrementalSearch = function (e) {\n if (this.liCollections.length > 0) {\n var li = incrementalSearch(e.charCode, this.liCollections, this.activeIndex, true, this.element.id);\n if (!isNullOrUndefined(li)) {\n this.setSelection(li, e);\n this.setScrollPosition();\n }\n }\n };\n /**\n * Hides the spinner loader.\n *\n * @returns {void}\n */\n DropDownList.prototype.hideSpinner = function () {\n if (!isNullOrUndefined(this.spinnerElement)) {\n hideSpinner(this.spinnerElement);\n removeClass([this.spinnerElement], dropDownListClasses.disableIcon);\n this.spinnerElement.innerHTML = '';\n this.spinnerElement = null;\n }\n };\n /**\n * Shows the spinner loader.\n *\n * @returns {void}\n */\n DropDownList.prototype.showSpinner = function () {\n if (isNullOrUndefined(this.spinnerElement)) {\n this.spinnerElement = Browser.isDevice && !isNullOrUndefined(this.filterInputObj) && this.filterInputObj.buttons[1] ||\n !isNullOrUndefined(this.filterInputObj) && this.filterInputObj.buttons[0] || this.inputWrapper.buttons[0];\n addClass([this.spinnerElement], dropDownListClasses.disableIcon);\n createSpinner({\n target: this.spinnerElement,\n width: Browser.isDevice ? '16px' : '14px'\n }, this.createElement);\n showSpinner(this.spinnerElement);\n }\n };\n DropDownList.prototype.keyActionHandler = function (e) {\n if (!this.enabled) {\n return;\n }\n var preventAction = e.action === 'pageUp' || e.action === 'pageDown';\n var preventHomeEnd = this.getModuleName() !== 'dropdownlist' && (e.action === 'home' || e.action === 'end');\n this.isEscapeKey = e.action === 'escape';\n this.isTabKey = !this.isPopupOpen && e.action === 'tab';\n var isNavAction = e.action === 'down' || e.action === 'up' || e.action === 'home' || e.action === 'end';\n var isNavigation = (e.action === 'down' || e.action === 'up' || e.action === 'pageUp' || e.action === 'pageDown'\n || e.action === 'home' || e.action === 'end');\n if ((this.isEditTextBox() || preventAction || preventHomeEnd) && !this.isPopupOpen) {\n return;\n }\n if (!this.readonly) {\n var isTabAction = e.action === 'tab' || e.action === 'close';\n if (isNullOrUndefined(this.list) && !this.isRequested && !isTabAction && e.action !== 'escape') {\n this.searchKeyEvent = e;\n this.renderList(e);\n }\n if (isNullOrUndefined(this.list) || (!isNullOrUndefined(this.liCollections) &&\n isNavigation && this.liCollections.length === 0) || this.isRequested) {\n return;\n }\n if ((isTabAction && this.getModuleName() !== 'autocomplete') && this.isPopupOpen\n || e.action === 'escape') {\n e.preventDefault();\n }\n this.isSelected = e.action === 'escape' ? false : this.isSelected;\n this.isTyped = (isNavigation || e.action === 'escape') ? false : this.isTyped;\n switch (e.action) {\n case 'down':\n case 'up':\n this.updateUpDownAction(e);\n break;\n case 'pageUp':\n this.pageUpSelection(this.activeIndex - this.getPageCount(), e);\n e.preventDefault();\n break;\n case 'pageDown':\n this.pageDownSelection(this.activeIndex + this.getPageCount(), e);\n e.preventDefault();\n break;\n case 'home':\n this.updateHomeEndAction(e);\n break;\n case 'end':\n this.updateHomeEndAction(e);\n break;\n case 'space':\n if (this.getModuleName() === 'dropdownlist') {\n if (!this.beforePopupOpen) {\n this.showPopup();\n }\n }\n break;\n case 'open':\n this.showPopup(e);\n break;\n case 'hide':\n this.preventAltUp = this.isPopupOpen;\n this.hidePopup(e);\n this.focusDropDown(e);\n break;\n case 'enter':\n this.selectCurrentItem(e);\n break;\n case 'tab':\n this.selectCurrentValueOnTab(e);\n break;\n case 'escape':\n case 'close':\n if (this.isPopupOpen) {\n this.hidePopup(e);\n this.focusDropDown(e);\n }\n break;\n }\n }\n };\n DropDownList.prototype.updateUpDownAction = function (e) {\n var focusEle = this.list.querySelector('.' + dropDownListClasses.focus);\n if (this.isSelectFocusItem(focusEle)) {\n this.setSelection(focusEle, e);\n }\n else if (!isNullOrUndefined(this.liCollections)) {\n var index = e.action === 'down' ? this.activeIndex + 1 : this.activeIndex - 1;\n var startIndex = 0;\n if (this.getModuleName() === 'autocomplete') {\n startIndex = e.action === 'down' && isNullOrUndefined(this.activeIndex) ? 0 : this.liCollections.length - 1;\n index = index < 0 ? this.liCollections.length - 1 : index === this.liCollections.length ? 0 : index;\n }\n var nextItem = isNullOrUndefined(this.activeIndex) ? this.liCollections[startIndex] : this.liCollections[index];\n if (!isNullOrUndefined(nextItem)) {\n this.setSelection(nextItem, e);\n }\n }\n e.preventDefault();\n };\n DropDownList.prototype.updateHomeEndAction = function (e) {\n if (this.getModuleName() === 'dropdownlist') {\n var findLi = 0;\n if (e.action === 'home') {\n findLi = 0;\n }\n else {\n findLi = this.getItems().length - 1;\n }\n e.preventDefault();\n if (this.activeIndex === findLi) {\n return;\n }\n this.setSelection(this.liCollections[findLi], e);\n }\n };\n DropDownList.prototype.selectCurrentValueOnTab = function (e) {\n if (this.getModuleName() === 'autocomplete') {\n this.selectCurrentItem(e);\n }\n else {\n if (this.isPopupOpen) {\n this.hidePopup(e);\n this.focusDropDown(e);\n }\n }\n };\n DropDownList.prototype.mobileKeyActionHandler = function (e) {\n if (!this.enabled) {\n return;\n }\n if ((this.isEditTextBox()) && !this.isPopupOpen) {\n return;\n }\n if (!this.readonly) {\n if (this.list === undefined && !this.isRequested) {\n this.searchKeyEvent = e;\n this.renderList();\n }\n if (isNullOrUndefined(this.list) || (!isNullOrUndefined(this.liCollections) &&\n this.liCollections.length === 0) || this.isRequested) {\n return;\n }\n if (e.action === 'enter') {\n this.selectCurrentItem(e);\n }\n }\n };\n DropDownList.prototype.selectCurrentItem = function (e) {\n if (this.isPopupOpen) {\n var li = this.list.querySelector('.' + dropDownListClasses.focus);\n if (li) {\n this.setSelection(li, e);\n this.isTyped = false;\n }\n if (this.isSelected) {\n this.isSelectCustom = false;\n this.onChangeEvent(e);\n }\n this.hidePopup(e);\n this.focusDropDown(e);\n }\n else {\n this.showPopup();\n }\n };\n DropDownList.prototype.isSelectFocusItem = function (element) {\n return !isNullOrUndefined(element);\n };\n DropDownList.prototype.getPageCount = function () {\n var liHeight = this.list.classList.contains(dropDownBaseClasses.noData) ? null :\n getComputedStyle(this.getItems()[0], null).getPropertyValue('height');\n return Math.round(this.list.getBoundingClientRect().height / parseInt(liHeight, 10));\n };\n DropDownList.prototype.pageUpSelection = function (steps, event) {\n var previousItem = steps >= 0 ? this.liCollections[steps + 1] : this.liCollections[0];\n this.setSelection(previousItem, event);\n };\n DropDownList.prototype.pageDownSelection = function (steps, event) {\n var list = this.getItems();\n var previousItem = steps <= list.length ? this.liCollections[steps - 1] : this.liCollections[list.length - 1];\n this.setSelection(previousItem, event);\n };\n DropDownList.prototype.unWireEvent = function () {\n if (!isNullOrUndefined(this.inputWrapper)) {\n EventHandler.remove(this.inputWrapper.container, 'mousedown', this.dropDownClick);\n EventHandler.remove(this.inputWrapper.container, 'keypress', this.onSearch);\n EventHandler.remove(this.inputWrapper.container, 'focus', this.focusIn);\n }\n this.unBindCommonEvent();\n };\n /**\n * Event un binding for list items.\n *\n * @returns {void}\n */\n DropDownList.prototype.unWireListEvents = function () {\n if (this.list) {\n EventHandler.remove(this.list, 'click', this.onMouseClick);\n EventHandler.remove(this.list, 'mouseover', this.onMouseOver);\n EventHandler.remove(this.list, 'mouseout', this.onMouseLeave);\n }\n };\n DropDownList.prototype.checkSelector = function (id) {\n return '[id=\"' + id.replace(/(:|\\.|\\[|\\]|,|=|@|\\\\|\\/|#)/g, '\\\\$1') + '\"]';\n };\n DropDownList.prototype.onDocumentClick = function (e) {\n var target = e.target;\n if (!(!isNullOrUndefined(this.popupObj) && closest(target, this.checkSelector(this.popupObj.element.id))) &&\n !isNullOrUndefined(this.inputWrapper) && !this.inputWrapper.container.contains(e.target)) {\n if (this.inputWrapper.container.classList.contains(dropDownListClasses.inputFocus) || this.isPopupOpen) {\n this.isDocumentClick = true;\n var isActive = this.isRequested;\n this.isInteracted = false;\n this.hidePopup(e);\n if (!isActive) {\n this.onFocusOut();\n this.inputWrapper.container.classList.remove(dropDownListClasses.inputFocus);\n }\n }\n }\n else if (target !== this.inputElement && !(this.allowFiltering && target === this.filterInput)\n && !(this.getModuleName() === 'combobox' &&\n !this.allowFiltering && Browser.isDevice && target === this.inputWrapper.buttons[0])) {\n this.isPreventBlur = (Browser.isIE || Browser.info.name === 'edge') && (document.activeElement === this.targetElement() ||\n document.activeElement === this.filterInput);\n e.preventDefault();\n }\n };\n DropDownList.prototype.activeStateChange = function () {\n if (this.isDocumentClick) {\n this.hidePopup();\n this.onFocusOut();\n this.inputWrapper.container.classList.remove(dropDownListClasses.inputFocus);\n }\n };\n DropDownList.prototype.focusDropDown = function (e) {\n if (!this.initial && this.isFilterLayout()) {\n this.focusIn(e);\n }\n };\n DropDownList.prototype.dropDownClick = function (e) {\n if (e.which === 3 || e.button === 2) {\n return;\n }\n if (this.targetElement().classList.contains(dropDownListClasses.disable) || this.inputWrapper.clearButton === e.target) {\n return;\n }\n var target = e.target;\n if (target !== this.inputElement && !(this.allowFiltering && target === this.filterInput) && this.getModuleName() !== 'combobox') {\n e.preventDefault();\n }\n if (!this.readonly) {\n if (this.isPopupOpen) {\n this.hidePopup(e);\n if (this.isFilterLayout()) {\n this.focusDropDown(e);\n }\n }\n else {\n this.focusIn(e);\n this.floatLabelChange();\n this.queryString = this.inputElement.value.trim() === '' ? null : this.inputElement.value;\n this.isDropDownClick = true;\n this.showPopup(e);\n }\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var proxy_1 = this;\n // eslint-disable-next-line max-len\n var duration = (this.element.tagName === this.getNgDirective() && this.itemTemplate) ? 500 : 100;\n if (!this.isSecondClick) {\n setTimeout(function () {\n proxy_1.cloneElements();\n proxy_1.isSecondClick = true;\n }, duration);\n }\n }\n else {\n this.focusIn(e);\n }\n };\n DropDownList.prototype.cloneElements = function () {\n if (this.list) {\n var ulElement = this.list.querySelector('ul');\n if (ulElement) {\n ulElement = ulElement.cloneNode ? ulElement.cloneNode(true) : ulElement;\n this.actionCompleteData.ulElement = ulElement;\n }\n }\n };\n DropDownList.prototype.updateSelectedItem = function (li, e, preventSelect, isSelection) {\n var _this = this;\n this.removeSelection();\n li.classList.add(dropDownBaseClasses.selected);\n this.removeHover();\n var value = this.getFormattedValue(li.getAttribute('data-value'));\n var selectedData = this.getDataByValue(value);\n if (!this.initial && !preventSelect && !isNullOrUndefined(e)) {\n var items = this.detachChanges(selectedData);\n this.isSelected = true;\n var eventArgs = {\n e: e,\n item: li,\n itemData: items,\n isInteracted: e ? true : false,\n cancel: false\n };\n this.trigger('select', eventArgs, function (eventArgs) {\n if (eventArgs.cancel) {\n li.classList.remove(dropDownBaseClasses.selected);\n }\n else {\n _this.selectEventCallback(li, e, preventSelect, selectedData, value);\n if (isSelection) {\n _this.setSelectOptions(li, e);\n }\n }\n });\n }\n else {\n this.selectEventCallback(li, e, preventSelect, selectedData, value);\n if (isSelection) {\n this.setSelectOptions(li, e);\n }\n }\n };\n DropDownList.prototype.selectEventCallback = function (li, e, preventSelect, selectedData, value) {\n this.previousItemData = (!isNullOrUndefined(this.itemData)) ? this.itemData : null;\n if (this.itemData != selectedData) {\n this.previousValue = (!isNullOrUndefined(this.itemData)) ? typeof this.itemData == \"object\" ? this.checkFieldValue(this.itemData, this.fields.value.split('.')) : this.itemData : null;\n }\n this.item = li;\n this.itemData = selectedData;\n var focusedItem = this.list.querySelector('.' + dropDownBaseClasses.focus);\n if (focusedItem) {\n removeClass([focusedItem], dropDownBaseClasses.focus);\n }\n li.setAttribute('aria-selected', 'true');\n this.activeIndex = this.getIndexByValue(value);\n };\n DropDownList.prototype.activeItem = function (li) {\n if (this.isValidLI(li) && !li.classList.contains(dropDownBaseClasses.selected)) {\n this.removeSelection();\n li.classList.add(dropDownBaseClasses.selected);\n this.removeHover();\n li.setAttribute('aria-selected', 'true');\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n DropDownList.prototype.setValue = function (e) {\n var dataItem = this.getItemData();\n if (dataItem.value === null) {\n Input.setValue(null, this.inputElement, this.floatLabelType, this.showClearButton);\n }\n else {\n Input.setValue(dataItem.text, this.inputElement, this.floatLabelType, this.showClearButton);\n }\n if (this.valueTemplate && this.itemData !== null) {\n this.setValueTemplate();\n }\n else if (!isNullOrUndefined(this.valueTempElement) && this.inputElement.previousSibling === this.valueTempElement) {\n detach(this.valueTempElement);\n this.inputElement.style.display = 'block';\n }\n var clearIcon = dropDownListClasses.clearIcon;\n var isFilterElement = this.isFiltering() && this.filterInput && (this.getModuleName() === 'combobox');\n var clearElement = isFilterElement && this.filterInput.parentElement.querySelector('.' + clearIcon);\n if (this.isFiltering() && clearElement) {\n clearElement.style.removeProperty('visibility');\n }\n if (this.previousValue === dataItem.value) {\n this.isSelected = false;\n return true;\n }\n else {\n this.isSelected = !this.initial ? true : false;\n this.isSelectCustom = false;\n if (this.getModuleName() === 'dropdownlist') {\n this.updateIconState();\n }\n return false;\n }\n };\n DropDownList.prototype.setSelection = function (li, e) {\n if (this.isValidLI(li) && (!li.classList.contains(dropDownBaseClasses.selected) || (this.isPopupOpen && this.isSelected\n && li.classList.contains(dropDownBaseClasses.selected)))) {\n this.updateSelectedItem(li, e, false, true);\n }\n else {\n this.setSelectOptions(li, e);\n }\n };\n DropDownList.prototype.setSelectOptions = function (li, e) {\n if (this.list) {\n this.removeHover();\n }\n this.previousSelectedLI = (!isNullOrUndefined(this.selectedLI)) ? this.selectedLI : null;\n this.selectedLI = li;\n if (this.setValue(e)) {\n return;\n }\n if ((!this.isPopupOpen && !isNullOrUndefined(li)) || (this.isPopupOpen && !isNullOrUndefined(e) &&\n (e.type !== 'keydown' || e.type === 'keydown' && e.action === 'enter'))) {\n this.isSelectCustom = false;\n this.onChangeEvent(e);\n }\n if (this.isPopupOpen && !isNullOrUndefined(this.selectedLI) && this.itemData !== null && (!e || e.type !== 'click')) {\n this.setScrollPosition(e);\n }\n if (Browser.info.name !== 'mozilla') {\n if (this.targetElement()) {\n attributes(this.targetElement(), { 'aria-label': this.inputElement.value });\n attributes(this.targetElement(), { 'aria-describedby': this.inputElement.id != '' ? this.inputElement.id : this.element.id });\n this.targetElement().removeAttribute('aria-live');\n }\n }\n if (this.isPopupOpen && !isNullOrUndefined(this.ulElement) && !isNullOrUndefined(this.ulElement.getElementsByClassName('e-item-focus')[0])) {\n attributes(this.targetElement(), { 'aria-activedescendant': this.ulElement.getElementsByClassName('e-item-focus')[0].id });\n }\n else if (this.isPopupOpen && !isNullOrUndefined(this.ulElement) && !isNullOrUndefined(this.ulElement.getElementsByClassName('e-active')[0])) {\n attributes(this.targetElement(), { 'aria-activedescendant': this.ulElement.getElementsByClassName('e-active')[0].id });\n }\n };\n DropDownList.prototype.dropdownCompiler = function (dropdownTemplate) {\n var checkTemplate = false;\n if (dropdownTemplate) {\n try {\n checkTemplate = (document.querySelectorAll(dropdownTemplate).length) ? true : false;\n }\n catch (exception) {\n checkTemplate = false;\n }\n }\n return checkTemplate;\n };\n DropDownList.prototype.setValueTemplate = function () {\n var compiledString;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact) {\n this.clearTemplate(['valueTemplate']);\n if (this.valueTempElement) {\n detach(this.valueTempElement);\n this.inputElement.style.display = 'block';\n this.valueTempElement = null;\n }\n }\n if (!this.valueTempElement) {\n this.valueTempElement = this.createElement('span', { className: dropDownListClasses.value });\n this.inputElement.parentElement.insertBefore(this.valueTempElement, this.inputElement);\n this.inputElement.style.display = 'none';\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (!this.isReact) {\n this.valueTempElement.innerHTML = '';\n }\n var valuecheck = this.dropdownCompiler(this.valueTemplate);\n if (valuecheck) {\n compiledString = compile(document.querySelector(this.valueTemplate).innerHTML.trim());\n }\n else {\n compiledString = compile(this.valueTemplate);\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var valueCompTemp = compiledString(this.itemData, this, 'valueTemplate', this.valueTemplateId, this.isStringTemplate, null, this.valueTempElement);\n if (valueCompTemp && valueCompTemp.length > 0) {\n for (var i = 0; i < valueCompTemp.length; i++) {\n this.valueTempElement.appendChild(valueCompTemp[i]);\n }\n }\n this.renderReactTemplates();\n };\n DropDownList.prototype.removeSelection = function () {\n if (this.list) {\n var selectedItems = this.list.querySelectorAll('.' + dropDownBaseClasses.selected);\n if (selectedItems.length) {\n removeClass(selectedItems, dropDownBaseClasses.selected);\n selectedItems[0].removeAttribute('aria-selected');\n }\n }\n };\n DropDownList.prototype.getItemData = function () {\n var fields = this.fields;\n var dataItem = null;\n dataItem = this.itemData;\n var dataValue;\n var dataText;\n if (!isNullOrUndefined(dataItem)) {\n dataValue = getValue(fields.value, dataItem);\n dataText = getValue(fields.text, dataItem);\n }\n var value = (!isNullOrUndefined(dataItem) &&\n !isUndefined(dataValue) ? dataValue : dataItem);\n var text = (!isNullOrUndefined(dataItem) &&\n !isUndefined(dataValue) ? dataText : dataItem);\n return { value: value, text: text };\n };\n /**\n * To trigger the change event for list.\n *\n * @param {MouseEvent | KeyboardEvent | TouchEvent} eve - Specifies the event arguments.\n * @returns {void}\n */\n DropDownList.prototype.onChangeEvent = function (eve) {\n var dataItem = this.getItemData();\n var index = this.isSelectCustom ? null : this.activeIndex;\n this.setProperties({ 'index': index, 'text': dataItem.text, 'value': dataItem.value }, true);\n this.detachChangeEvent(eve);\n };\n DropDownList.prototype.detachChanges = function (value) {\n var items;\n if (typeof value === 'string' ||\n typeof value === 'boolean' ||\n typeof value === 'number') {\n items = Object.defineProperties({}, {\n value: {\n value: value,\n enumerable: true\n },\n text: {\n value: value,\n enumerable: true\n }\n });\n }\n else {\n items = value;\n }\n return items;\n };\n DropDownList.prototype.detachChangeEvent = function (eve) {\n this.isSelected = false;\n this.previousValue = this.value;\n this.activeIndex = this.index;\n this.typedString = !isNullOrUndefined(this.text) ? this.text : '';\n if (!this.initial) {\n var items = this.detachChanges(this.itemData);\n var preItems = void 0;\n if (typeof this.previousItemData === 'string' ||\n typeof this.previousItemData === 'boolean' ||\n typeof this.previousItemData === 'number') {\n preItems = Object.defineProperties({}, {\n value: {\n value: this.previousItemData,\n enumerable: true\n },\n text: {\n value: this.previousItemData,\n enumerable: true\n }\n });\n }\n else {\n preItems = this.previousItemData;\n }\n this.setHiddenValue();\n var eventArgs = {\n e: eve,\n item: this.item,\n itemData: items,\n previousItem: this.previousSelectedLI,\n previousItemData: preItems,\n isInteracted: eve ? true : false,\n value: this.value,\n element: this.element,\n event: eve\n };\n if (this.isAngular && this.preventChange) {\n this.preventChange = false;\n }\n else {\n this.trigger('change', eventArgs);\n }\n }\n if ((isNullOrUndefined(this.value) || this.value === '') && this.floatLabelType !== 'Always') {\n removeClass([this.inputWrapper.container], 'e-valid-input');\n }\n };\n DropDownList.prototype.setHiddenValue = function () {\n if (!isNullOrUndefined(this.value)) {\n if (this.hiddenElement.querySelector('option')) {\n var selectedElement = this.hiddenElement.querySelector('option');\n selectedElement.textContent = this.text;\n selectedElement.setAttribute('value', this.value.toString());\n }\n else {\n if (!isNullOrUndefined(this.hiddenElement)) {\n this.hiddenElement.innerHTML = '';\n var selectedElement = this.hiddenElement.querySelector('option');\n selectedElement.setAttribute('value', this.value.toString());\n }\n }\n }\n else {\n this.hiddenElement.innerHTML = '';\n }\n };\n /**\n * Filter bar implementation\n *\n * @param {KeyboardEventArgs} e - Specifies the event arguments.\n * @returns {void}\n */\n DropDownList.prototype.onFilterUp = function (e) {\n if (!(e.ctrlKey && e.keyCode === 86) && (this.isValidKey || e.keyCode === 40 || e.keyCode === 38)) {\n this.isValidKey = false;\n switch (e.keyCode) {\n case 38: //up arrow\n case 40: //down arrow\n if (this.getModuleName() === 'autocomplete' && !this.isPopupOpen && !this.preventAltUp && !this.isRequested) {\n this.preventAutoFill = true;\n this.searchLists(e);\n }\n else {\n this.preventAutoFill = false;\n }\n this.preventAltUp = false;\n if (this.getModuleName() === 'autocomplete' && !isNullOrUndefined(this.ulElement) && !isNullOrUndefined(this.ulElement.getElementsByClassName('e-item-focus')[0])) {\n attributes(this.targetElement(), { 'aria-activedescendant': this.ulElement.getElementsByClassName('e-item-focus')[0].id });\n }\n e.preventDefault();\n break;\n case 46: //delete\n case 8: //backspace\n this.typedString = this.filterInput.value;\n if (!this.isPopupOpen && this.typedString !== '' || this.isPopupOpen && this.queryString.length > 0) {\n this.preventAutoFill = true;\n this.searchLists(e);\n }\n else if (this.typedString === '' && this.queryString === '' && this.getModuleName() !== 'autocomplete') {\n this.preventAutoFill = true;\n this.searchLists(e);\n }\n else if (this.typedString === '') {\n if (this.list) {\n this.resetFocusElement();\n }\n this.activeIndex = null;\n if (this.getModuleName() !== 'dropdownlist') {\n this.preventAutoFill = true;\n this.searchLists(e);\n if (this.getModuleName() === 'autocomplete') {\n this.hidePopup();\n }\n }\n }\n e.preventDefault();\n break;\n default:\n this.typedString = this.filterInput.value;\n this.preventAutoFill = false;\n this.searchLists(e);\n break;\n }\n }\n else {\n this.isValidKey = false;\n }\n };\n DropDownList.prototype.onFilterDown = function (e) {\n switch (e.keyCode) {\n case 13: //enter\n break;\n case 40: //down arrow\n case 38: //up arrow\n this.queryString = this.filterInput.value;\n e.preventDefault();\n break;\n case 9: //tab\n if (this.isPopupOpen && this.getModuleName() !== 'autocomplete') {\n e.preventDefault();\n }\n break;\n default:\n this.prevSelectPoints = this.getSelectionPoints();\n this.queryString = this.filterInput.value;\n break;\n }\n };\n DropDownList.prototype.removeFillSelection = function () {\n if (this.isInteracted) {\n var selection = this.getSelectionPoints();\n this.inputElement.setSelectionRange(selection.end, selection.end);\n }\n };\n DropDownList.prototype.getQuery = function (query) {\n var filterQuery;\n if (!this.isCustomFilter && this.allowFiltering && this.filterInput) {\n filterQuery = query ? query.clone() : this.query ? this.query.clone() : new Query();\n var filterType = this.typedString === '' ? 'contains' : this.filterType;\n var dataType = this.typeOfData(this.dataSource).typeof;\n if (!(this.dataSource instanceof DataManager) && dataType === 'string' || dataType === 'number') {\n filterQuery.where('', filterType, this.typedString, this.ignoreCase, this.ignoreAccent);\n }\n else {\n var fields = (this.fields.text) ? this.fields.text : '';\n filterQuery.where(fields, filterType, this.typedString, this.ignoreCase, this.ignoreAccent);\n }\n }\n else {\n filterQuery = query ? query.clone() : this.query ? this.query.clone() : new Query();\n }\n return filterQuery;\n };\n DropDownList.prototype.getSelectionPoints = function () {\n var input = this.inputElement;\n return { start: Math.abs(input.selectionStart), end: Math.abs(input.selectionEnd) };\n };\n DropDownList.prototype.searchLists = function (e) {\n var _this = this;\n this.isTyped = true;\n this.activeIndex = null;\n this.isListSearched = true;\n if (this.filterInput.parentElement.querySelector('.' + dropDownListClasses.clearIcon)) {\n var clearElement = this.filterInput.parentElement.querySelector('.' + dropDownListClasses.clearIcon);\n clearElement.style.visibility = this.filterInput.value === '' ? 'hidden' : 'visible';\n }\n this.isDataFetched = false;\n if (this.isFiltering()) {\n var eventArgs_1 = {\n preventDefaultAction: false,\n text: this.filterInput.value,\n updateData: function (dataSource, query, fields) {\n if (eventArgs_1.cancel) {\n return;\n }\n _this.isCustomFilter = true;\n _this.filteringAction(dataSource, query, fields);\n },\n baseEventArgs: e,\n cancel: false\n };\n this.trigger('filtering', eventArgs_1, function (eventArgs) {\n if (!eventArgs.cancel && !_this.isCustomFilter && !eventArgs.preventDefaultAction) {\n _this.filteringAction(_this.dataSource, null, _this.fields);\n }\n });\n }\n };\n /**\n * To filter the data from given data source by using query\n *\n * @param {Object[] | DataManager } dataSource - Set the data source to filter.\n * @param {Query} query - Specify the query to filter the data.\n * @param {FieldSettingsModel} fields - Specify the fields to map the column in the data table.\n * @returns {void}\n\n */\n DropDownList.prototype.filter = function (dataSource, query, fields) {\n this.isCustomFilter = true;\n this.filteringAction(dataSource, query, fields);\n };\n DropDownList.prototype.filteringAction = function (dataSource, query, fields) {\n if (!isNullOrUndefined(this.filterInput)) {\n this.beforePopupOpen = (!this.isPopupOpen && this.getModuleName() === 'combobox' && this.filterInput.value === '') ?\n false : true;\n if (this.filterInput.value.trim() === '' && !this.itemTemplate) {\n this.actionCompleteData.isUpdated = false;\n this.isTyped = false;\n if (!isNullOrUndefined(this.actionCompleteData.ulElement) && !isNullOrUndefined(this.actionCompleteData.list)) {\n this.onActionComplete(this.actionCompleteData.ulElement, this.actionCompleteData.list);\n }\n this.isTyped = true;\n if (!isNullOrUndefined(this.itemData) && this.getModuleName() === 'dropdownlist') {\n this.focusIndexItem();\n this.setScrollPosition();\n }\n this.isNotSearchList = true;\n }\n else {\n this.isNotSearchList = false;\n query = (this.filterInput.value.trim() === '') ? null : query;\n this.resetList(dataSource, fields, query);\n }\n this.renderReactTemplates();\n }\n };\n DropDownList.prototype.setSearchBox = function (popupElement) {\n if (this.isFiltering()) {\n var parentElement = popupElement.querySelector('.' + dropDownListClasses.filterParent) ?\n popupElement.querySelector('.' + dropDownListClasses.filterParent) : this.createElement('span', {\n className: dropDownListClasses.filterParent\n });\n this.filterInput = this.createElement('input', {\n attrs: { type: 'text' },\n className: dropDownListClasses.filterInput\n });\n this.element.parentNode.insertBefore(this.filterInput, this.element);\n var backIcon = false;\n if (Browser.isDevice) {\n backIcon = true;\n }\n this.filterInputObj = Input.createInput({\n element: this.filterInput,\n buttons: backIcon ?\n [dropDownListClasses.backIcon, dropDownListClasses.filterBarClearIcon] : [dropDownListClasses.filterBarClearIcon],\n properties: { placeholder: this.filterBarPlaceholder }\n }, this.createElement);\n if (!isNullOrUndefined(this.cssClass)) {\n if (this.cssClass.split(' ').indexOf('e-outline') !== -1) {\n addClass([this.filterInputObj.container], 'e-outline');\n }\n else if (this.cssClass.split(' ').indexOf('e-filled') !== -1) {\n addClass([this.filterInputObj.container], 'e-filled');\n }\n }\n append([this.filterInputObj.container], parentElement);\n prepend([parentElement], popupElement);\n attributes(this.filterInput, {\n 'aria-disabled': 'false',\n 'role': 'combobox',\n 'autocomplete': 'off',\n 'autocapitalize': 'off',\n 'spellcheck': 'false'\n });\n this.clearIconElement = this.filterInput.parentElement.querySelector('.' + dropDownListClasses.clearIcon);\n if (!Browser.isDevice && this.clearIconElement) {\n EventHandler.add(this.clearIconElement, 'click', this.clearText, this);\n this.clearIconElement.style.visibility = 'hidden';\n }\n if (!Browser.isDevice) {\n this.searchKeyModule = new KeyboardEvents(this.filterInput, {\n keyAction: this.keyActionHandler.bind(this),\n keyConfigs: this.keyConfigure,\n eventName: 'keydown'\n });\n }\n else {\n this.searchKeyModule = new KeyboardEvents(this.filterInput, {\n keyAction: this.mobileKeyActionHandler.bind(this),\n keyConfigs: this.keyConfigure,\n eventName: 'keydown'\n });\n }\n EventHandler.add(this.filterInput, 'input', this.onInput, this);\n EventHandler.add(this.filterInput, 'keyup', this.onFilterUp, this);\n EventHandler.add(this.filterInput, 'keydown', this.onFilterDown, this);\n EventHandler.add(this.filterInput, 'blur', this.onBlurHandler, this);\n EventHandler.add(this.filterInput, 'paste', this.pasteHandler, this);\n return this.filterInputObj;\n }\n else {\n return inputObject;\n }\n };\n DropDownList.prototype.onInput = function (e) {\n this.isValidKey = true;\n // For filtering works in mobile firefox.\n if (Browser.isDevice && Browser.info.name === 'mozilla') {\n this.typedString = this.filterInput.value;\n this.preventAutoFill = true;\n this.searchLists(e);\n }\n };\n DropDownList.prototype.pasteHandler = function (e) {\n var _this = this;\n setTimeout(function () {\n _this.typedString = _this.filterInput.value;\n _this.searchLists(e);\n });\n };\n DropDownList.prototype.onActionFailure = function (e) {\n _super.prototype.onActionFailure.call(this, e);\n if (this.beforePopupOpen) {\n this.renderPopup();\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n DropDownList.prototype.onActionComplete = function (ulElement, list, e, isUpdated) {\n var _this = this;\n if (this.isNotSearchList) {\n this.isNotSearchList = false;\n return;\n }\n if (this.isActive) {\n var selectedItem = this.selectedLI ? this.selectedLI.cloneNode(true) : null;\n _super.prototype.onActionComplete.call(this, ulElement, list, e);\n this.updateSelectElementData(this.allowFiltering);\n if (this.isRequested && !isNullOrUndefined(this.searchKeyEvent) && this.searchKeyEvent.type === 'keydown') {\n this.isRequested = false;\n this.keyActionHandler(this.searchKeyEvent);\n this.searchKeyEvent = null;\n }\n if (this.isRequested && !isNullOrUndefined(this.searchKeyEvent)) {\n this.incrementalSearch(this.searchKeyEvent);\n this.searchKeyEvent = null;\n }\n this.list.scrollTop = 0;\n if (!isNullOrUndefined(ulElement)) {\n attributes(ulElement, { 'id': this.element.id + '_options', 'role': 'listbox', 'aria-hidden': 'false' });\n }\n if (this.initRemoteRender) {\n this.initial = true;\n this.activeIndex = this.index;\n this.initRemoteRender = false;\n if (this.value && this.dataSource instanceof DataManager) {\n var checkField_1 = isNullOrUndefined(this.fields.value) ? this.fields.text : this.fields.value;\n var fieldValue_1 = this.fields.value.split('.');\n var checkVal = list.some(function (x) { return isNullOrUndefined(x[checkField_1]) && fieldValue_1.length > 1 ? _this.checkFieldValue(x, fieldValue_1) === _this.value : x[checkField_1] === _this.value; });\n if (!checkVal) {\n this.dataSource.executeQuery(this.getQuery(this.query).where(new Predicate(checkField_1, 'equal', this.value)))\n .then(function (e) {\n if (e.result.length > 0) {\n _this.addItem(e.result, list.length);\n _this.updateValues();\n }\n else {\n _this.updateValues();\n }\n });\n }\n else {\n this.updateValues();\n }\n }\n else {\n this.updateValues();\n }\n this.initial = false;\n }\n else if (this.getModuleName() === 'autocomplete' && this.value) {\n this.setInputValue();\n }\n if (this.getModuleName() !== 'autocomplete' && this.isFiltering() && !this.isTyped) {\n if (!this.actionCompleteData.isUpdated || ((!this.isCustomFilter\n && !this.isFilterFocus) || (isNullOrUndefined(this.itemData) && this.allowFiltering)\n && ((this.dataSource instanceof DataManager)\n || (!isNullOrUndefined(this.dataSource) && !isNullOrUndefined(this.dataSource.length) &&\n this.dataSource.length !== 0)))) {\n if (this.itemTemplate && this.element.tagName === 'EJS-COMBOBOX' && this.allowFiltering) {\n setTimeout(function () {\n _this.updateActionCompleteDataValues(ulElement, list);\n }, 0);\n }\n else {\n this.updateActionCompleteDataValues(ulElement, list);\n }\n }\n this.addNewItem(list, selectedItem);\n if (!isNullOrUndefined(this.itemData)) {\n this.focusIndexItem();\n }\n }\n if (this.beforePopupOpen) {\n this.renderPopup(e);\n }\n }\n };\n DropDownList.prototype.checkFieldValue = function (list, fieldValue) {\n var checkField = list;\n fieldValue.forEach(function (value) {\n checkField = checkField[value];\n });\n return checkField;\n };\n DropDownList.prototype.updateActionCompleteDataValues = function (ulElement, list) {\n this.actionCompleteData = { ulElement: ulElement.cloneNode(true), list: list, isUpdated: true };\n if (this.actionData.list !== this.actionCompleteData.list && this.actionCompleteData.ulElement && this.actionCompleteData.list) {\n this.actionData = this.actionCompleteData;\n }\n };\n DropDownList.prototype.addNewItem = function (listData, newElement) {\n var _this = this;\n if (!isNullOrUndefined(this.itemData) && !isNullOrUndefined(newElement)) {\n var value_1 = this.getItemData().value;\n var isExist = listData.some(function (data) {\n return (((typeof data === 'string' || typeof data === 'number') && data === value_1) ||\n (getValue(_this.fields.value, data) === value_1));\n });\n if (!isExist) {\n this.addItem(this.itemData);\n }\n }\n };\n DropDownList.prototype.updateActionCompleteData = function (li, item, index) {\n var _this = this;\n if (this.getModuleName() !== 'autocomplete' && this.actionCompleteData.ulElement) {\n if (this.itemTemplate && this.element.tagName === 'EJS-COMBOBOX' && this.allowFiltering) {\n setTimeout(function () {\n _this.actionCompleteDataUpdate(li, item, index);\n }, 0);\n }\n else {\n this.actionCompleteDataUpdate(li, item, index);\n }\n }\n };\n DropDownList.prototype.actionCompleteDataUpdate = function (li, item, index) {\n if (index != null) {\n this.actionCompleteData.ulElement.insertBefore(li.cloneNode(true), this.actionCompleteData.ulElement.childNodes[index]);\n }\n else {\n this.actionCompleteData.ulElement.appendChild(li.cloneNode(true));\n }\n if (this.isFiltering() && this.actionCompleteData.list.indexOf(item) < 0) {\n this.actionCompleteData.list.push(item);\n }\n };\n DropDownList.prototype.focusIndexItem = function () {\n var value = this.getItemData().value;\n this.activeIndex = this.getIndexByValue(value);\n var element = this.findListElement(this.list, 'li', 'data-value', value);\n this.selectedLI = element;\n this.activeItem(element);\n this.removeFocus();\n };\n DropDownList.prototype.updateSelection = function () {\n var selectedItem = this.list.querySelector('.' + dropDownBaseClasses.selected);\n if (selectedItem) {\n this.setProperties({ 'index': this.getIndexByValue(selectedItem.getAttribute('data-value')) });\n this.activeIndex = this.index;\n }\n else {\n this.removeFocus();\n this.list.querySelector('.' + dropDownBaseClasses.li).classList.add(dropDownListClasses.focus);\n }\n };\n DropDownList.prototype.removeFocus = function () {\n var highlightedItem = this.list.querySelectorAll('.' + dropDownListClasses.focus);\n if (highlightedItem && highlightedItem.length) {\n removeClass(highlightedItem, dropDownListClasses.focus);\n }\n };\n DropDownList.prototype.renderPopup = function (e) {\n var _this = this;\n if (this.popupObj && document.body.contains(this.popupObj.element)) {\n this.refreshPopup();\n return;\n }\n var args = { cancel: false };\n this.trigger('beforeOpen', args, function (args) {\n if (!args.cancel) {\n var popupEle = _this.createElement('div', {\n id: _this.element.id + '_popup', className: 'e-ddl e-popup ' + (_this.cssClass != null ? _this.cssClass : '')\n });\n var searchBox = _this.setSearchBox(popupEle);\n _this.listHeight = formatUnit(_this.popupHeight);\n if (_this.headerTemplate) {\n _this.setHeaderTemplate(popupEle);\n }\n append([_this.list], popupEle);\n if (_this.footerTemplate) {\n _this.setFooterTemplate(popupEle);\n }\n document.body.appendChild(popupEle);\n popupEle.style.visibility = 'hidden';\n if (_this.popupHeight !== 'auto') {\n _this.searchBoxHeight = 0;\n if (!isNullOrUndefined(searchBox.container)) {\n _this.searchBoxHeight = (searchBox.container.parentElement).getBoundingClientRect().height;\n _this.listHeight = (parseInt(_this.listHeight, 10) - (_this.searchBoxHeight)).toString() + 'px';\n }\n if (_this.headerTemplate) {\n _this.header = _this.header ? _this.header : popupEle.querySelector('.e-ddl-header');\n var height = Math.round(_this.header.getBoundingClientRect().height);\n _this.listHeight = (parseInt(_this.listHeight, 10) - (height + _this.searchBoxHeight)).toString() + 'px';\n }\n if (_this.footerTemplate) {\n _this.footer = _this.footer ? _this.footer : popupEle.querySelector('.e-ddl-footer');\n var height = Math.round(_this.footer.getBoundingClientRect().height);\n _this.listHeight = (parseInt(_this.listHeight, 10) - (height + _this.searchBoxHeight)).toString() + 'px';\n }\n _this.list.style.maxHeight = (parseInt(_this.listHeight, 10) - 2).toString() + 'px'; // due to box-sizing property\n popupEle.style.maxHeight = formatUnit(_this.popupHeight);\n }\n else {\n popupEle.style.height = 'auto';\n }\n var offsetValue = 0;\n var left = void 0;\n if (!isNullOrUndefined(_this.selectedLI) && (!isNullOrUndefined(_this.activeIndex) && _this.activeIndex >= 0)) {\n _this.setScrollPosition();\n }\n else {\n _this.list.scrollTop = 0;\n }\n if (Browser.isDevice && (!_this.allowFiltering && (_this.getModuleName() === 'dropdownlist' ||\n (_this.isDropDownClick && _this.getModuleName() === 'combobox')))) {\n offsetValue = _this.getOffsetValue(popupEle);\n var firstItem = _this.isEmptyList() ? _this.list : _this.liCollections[0];\n if (!isNullOrUndefined(_this.inputElement)) {\n left = -(parseInt(getComputedStyle(firstItem).textIndent, 10) -\n parseInt(getComputedStyle(_this.inputElement).paddingLeft, 10) +\n parseInt(getComputedStyle(_this.inputElement.parentElement).borderLeftWidth, 10));\n }\n }\n _this.getFocusElement();\n _this.createPopup(popupEle, offsetValue, left);\n _this.checkCollision(popupEle);\n if (Browser.isDevice) {\n _this.popupObj.element.classList.add(dropDownListClasses.device);\n if (_this.getModuleName() === 'dropdownlist' || (_this.getModuleName() === 'combobox'\n && !_this.allowFiltering && _this.isDropDownClick)) {\n _this.popupObj.collision = { X: 'fit', Y: 'fit' };\n }\n if (_this.isFilterLayout()) {\n _this.popupObj.element.classList.add(dropDownListClasses.mobileFilter);\n _this.popupObj.position = { X: 0, Y: 0 };\n _this.popupObj.dataBind();\n attributes(_this.popupObj.element, { style: 'left:0px;right:0px;top:0px;bottom:0px;' });\n addClass([document.body, _this.popupObj.element], dropDownListClasses.popupFullScreen);\n _this.setSearchBoxPosition();\n _this.backIconElement = searchBox.container.querySelector('.e-back-icon');\n _this.clearIconElement = searchBox.container.querySelector('.' + dropDownListClasses.clearIcon);\n EventHandler.add(_this.backIconElement, 'click', _this.clickOnBackIcon, _this);\n EventHandler.add(_this.clearIconElement, 'click', _this.clearText, _this);\n }\n }\n popupEle.style.visibility = 'visible';\n addClass([popupEle], 'e-popup-close');\n var scrollParentElements = _this.popupObj.getScrollableParent(_this.inputWrapper.container);\n for (var _i = 0, scrollParentElements_1 = scrollParentElements; _i < scrollParentElements_1.length; _i++) {\n var element = scrollParentElements_1[_i];\n EventHandler.add(element, 'scroll', _this.scrollHandler, _this);\n }\n if (!isNullOrUndefined(_this.list)) {\n _this.unWireListEvents();\n _this.wireListEvents();\n }\n _this.selectedElementID = _this.selectedLI ? _this.selectedLI.id : null;\n attributes(_this.targetElement(), { 'aria-expanded': 'true', 'aria-owns': _this.inputElement.id + '_options' });\n _this.inputElement.setAttribute('aria-expanded', 'true');\n var inputParent = _this.isFiltering() ? _this.filterInput.parentElement : _this.inputWrapper.container;\n addClass([inputParent], [dropDownListClasses.inputFocus]);\n var animModel = { name: 'FadeIn', duration: 100 };\n _this.beforePopupOpen = true;\n var popupInstance = _this.popupObj;\n var eventArgs = { popup: popupInstance, event: e, cancel: false, animation: animModel };\n _this.trigger('open', eventArgs, function (eventArgs) {\n if (!eventArgs.cancel) {\n if (!isNullOrUndefined(_this.inputWrapper)) {\n addClass([_this.inputWrapper.container], [dropDownListClasses.iconAnimation]);\n }\n _this.renderReactTemplates();\n if (!isNullOrUndefined(_this.popupObj)) {\n _this.popupObj.show(new Animation(eventArgs.animation), (_this.zIndex === 1000) ? _this.element : null);\n }\n }\n else {\n _this.beforePopupOpen = false;\n _this.destroyPopup();\n }\n });\n }\n else {\n _this.beforePopupOpen = false;\n }\n });\n };\n DropDownList.prototype.checkCollision = function (popupEle) {\n if (!Browser.isDevice || (Browser.isDevice && !(this.getModuleName() === 'dropdownlist' || this.isDropDownClick))) {\n var collision = isCollide(popupEle);\n if (collision.length > 0) {\n popupEle.style.marginTop = -parseInt(getComputedStyle(popupEle).marginTop, 10) + 'px';\n }\n this.popupObj.resolveCollision();\n }\n };\n DropDownList.prototype.getOffsetValue = function (popupEle) {\n var popupStyles = getComputedStyle(popupEle);\n var borderTop = parseInt(popupStyles.borderTopWidth, 10);\n var borderBottom = parseInt(popupStyles.borderBottomWidth, 10);\n return this.setPopupPosition(borderTop + borderBottom);\n };\n DropDownList.prototype.createPopup = function (element, offsetValue, left) {\n var _this = this;\n this.popupObj = new Popup(element, {\n width: this.setWidth(), targetType: 'relative',\n relateTo: this.inputWrapper.container, collision: { X: 'flip', Y: 'flip' }, offsetY: offsetValue,\n enableRtl: this.enableRtl, offsetX: left, position: { X: 'left', Y: 'bottom' },\n zIndex: this.zIndex,\n close: function () {\n if (!_this.isDocumentClick) {\n _this.focusDropDown();\n }\n // eslint-disable-next-line\n if (_this.isReact) {\n _this.clearTemplate(['headerTemplate', 'footerTemplate']);\n }\n var isResetItem = (_this.getModuleName() === 'autocomplete') ? true : false;\n _this.isNotSearchList = false;\n _this.isDocumentClick = false;\n _this.destroyPopup();\n if (_this.isFiltering() && _this.actionCompleteData.list && _this.actionCompleteData.list[0]) {\n _this.isActive = true;\n _this.onActionComplete(_this.actionCompleteData.ulElement, _this.actionCompleteData.list, null, true);\n }\n },\n open: function () {\n EventHandler.remove(document, 'mousedown', _this.onDocumentClick);\n EventHandler.add(document, 'mousedown', _this.onDocumentClick, _this);\n _this.isPopupOpen = true;\n var actionList = _this.actionCompleteData && _this.actionCompleteData.ulElement &&\n _this.actionCompleteData.ulElement.querySelector('li');\n var ulElement = _this.list.querySelector('ul li');\n if (!isNullOrUndefined(_this.ulElement) && !isNullOrUndefined(_this.ulElement.getElementsByClassName('e-item-focus')[0])) {\n attributes(_this.targetElement(), { 'aria-activedescendant': _this.ulElement.getElementsByClassName('e-item-focus')[0].id });\n }\n else if (!isNullOrUndefined(_this.ulElement) && !isNullOrUndefined(_this.ulElement.getElementsByClassName('e-active')[0])) {\n attributes(_this.targetElement(), { 'aria-activedescendant': _this.ulElement.getElementsByClassName('e-active')[0].id });\n }\n if (_this.isFiltering() && _this.itemTemplate && (_this.element.tagName === _this.getNgDirective()) &&\n (actionList && ulElement && actionList.textContent !== ulElement.textContent) &&\n _this.element.tagName !== 'EJS-COMBOBOX') {\n _this.cloneElements();\n }\n if (_this.isFilterLayout()) {\n removeClass([_this.inputWrapper.container], [dropDownListClasses.inputFocus]);\n _this.isFilterFocus = true;\n _this.filterInput.focus();\n if (_this.inputWrapper.clearButton) {\n addClass([_this.inputWrapper.clearButton], dropDownListClasses.clearIconHide);\n }\n }\n _this.activeStateChange();\n },\n targetExitViewport: function () {\n if (!Browser.isDevice) {\n _this.hidePopup();\n }\n }\n });\n };\n DropDownList.prototype.isEmptyList = function () {\n return !isNullOrUndefined(this.liCollections) && this.liCollections.length === 0;\n };\n DropDownList.prototype.getFocusElement = function () {\n // combo-box used this method\n };\n DropDownList.prototype.isFilterLayout = function () {\n return this.getModuleName() === 'dropdownlist' && this.allowFiltering;\n };\n DropDownList.prototype.scrollHandler = function () {\n if (Browser.isDevice && ((this.getModuleName() === 'dropdownlist' &&\n !this.isFilterLayout()) || (this.getModuleName() === 'combobox' && !this.allowFiltering && this.isDropDownClick))) {\n this.hidePopup();\n }\n };\n DropDownList.prototype.setSearchBoxPosition = function () {\n var searchBoxHeight = this.filterInput.parentElement.getBoundingClientRect().height;\n this.popupObj.element.style.maxHeight = '100%';\n this.popupObj.element.style.width = '100%';\n this.list.style.maxHeight = (window.innerHeight - searchBoxHeight) + 'px';\n this.list.style.height = (window.innerHeight - searchBoxHeight) + 'px';\n var clearElement = this.filterInput.parentElement.querySelector('.' + dropDownListClasses.clearIcon);\n detach(this.filterInput);\n clearElement.parentElement.insertBefore(this.filterInput, clearElement);\n };\n DropDownList.prototype.setPopupPosition = function (border) {\n var offsetValue;\n var popupOffset = border;\n var selectedLI = this.list.querySelector('.' + dropDownListClasses.focus) || this.selectedLI;\n var firstItem = this.isEmptyList() ? this.list : this.liCollections[0];\n var lastItem = this.isEmptyList() ? this.list : this.liCollections[this.getItems().length - 1];\n var liHeight = firstItem.getBoundingClientRect().height;\n var listHeight = this.list.offsetHeight / 2;\n var height = isNullOrUndefined(selectedLI) ? firstItem.offsetTop : selectedLI.offsetTop;\n var lastItemOffsetValue = lastItem.offsetTop;\n if (lastItemOffsetValue - listHeight < height && !isNullOrUndefined(this.liCollections) &&\n this.liCollections.length > 0 && !isNullOrUndefined(selectedLI)) {\n var count = this.list.offsetHeight / liHeight;\n var paddingBottom = parseInt(getComputedStyle(this.list).paddingBottom, 10);\n offsetValue = (count - (this.liCollections.length - this.activeIndex)) * liHeight - popupOffset + paddingBottom;\n this.list.scrollTop = selectedLI.offsetTop;\n }\n else if (height > listHeight) {\n offsetValue = listHeight - liHeight / 2;\n this.list.scrollTop = height - listHeight + liHeight / 2;\n }\n else {\n offsetValue = height;\n }\n var inputHeight = this.inputWrapper.container.offsetHeight;\n offsetValue = offsetValue + liHeight + popupOffset - ((liHeight - inputHeight) / 2);\n return -offsetValue;\n };\n DropDownList.prototype.setWidth = function () {\n var width = formatUnit(this.popupWidth);\n if (width.indexOf('%') > -1) {\n var inputWidth = this.inputWrapper.container.offsetWidth * parseFloat(width) / 100;\n width = inputWidth.toString() + 'px';\n }\n if (Browser.isDevice && (!this.allowFiltering && (this.getModuleName() === 'dropdownlist' ||\n (this.isDropDownClick && this.getModuleName() === 'combobox')))) {\n var firstItem = this.isEmptyList() ? this.list : this.liCollections[0];\n width = (parseInt(width, 10) + (parseInt(getComputedStyle(firstItem).textIndent, 10) -\n parseInt(getComputedStyle(this.inputElement).paddingLeft, 10) +\n parseInt(getComputedStyle(this.inputElement.parentElement).borderLeftWidth, 10)) * 2) + 'px';\n }\n return width;\n };\n DropDownList.prototype.scrollBottom = function (isInitial) {\n if (!isNullOrUndefined(this.selectedLI)) {\n var currentOffset = this.list.offsetHeight;\n var nextBottom = this.selectedLI.offsetTop + this.selectedLI.offsetHeight - this.list.scrollTop;\n var nextOffset = this.list.scrollTop + nextBottom - currentOffset;\n nextOffset = isInitial ? nextOffset + parseInt(getComputedStyle(this.list).paddingTop, 10) * 2 : nextOffset;\n var boxRange = this.selectedLI.offsetTop + this.selectedLI.offsetHeight - this.list.scrollTop;\n boxRange = this.fields.groupBy && !isNullOrUndefined(this.fixedHeaderElement) ?\n boxRange - this.fixedHeaderElement.offsetHeight : boxRange;\n if (this.activeIndex === 0) {\n this.list.scrollTop = 0;\n }\n else if (nextBottom > currentOffset || !(boxRange > 0 && this.list.offsetHeight > boxRange)) {\n this.list.scrollTop = nextOffset;\n }\n }\n };\n DropDownList.prototype.scrollTop = function () {\n if (!isNullOrUndefined(this.selectedLI)) {\n var nextOffset = this.selectedLI.offsetTop - this.list.scrollTop;\n nextOffset = this.fields.groupBy && !isNullOrUndefined(this.fixedHeaderElement) ?\n nextOffset - this.fixedHeaderElement.offsetHeight : nextOffset;\n var boxRange = (this.selectedLI.offsetTop + this.selectedLI.offsetHeight - this.list.scrollTop);\n if (this.activeIndex === 0) {\n this.list.scrollTop = 0;\n }\n else if (nextOffset < 0) {\n this.list.scrollTop = this.list.scrollTop + nextOffset;\n }\n else if (!(boxRange > 0 && this.list.offsetHeight > boxRange)) {\n this.list.scrollTop = this.selectedLI.offsetTop - (this.fields.groupBy && !isNullOrUndefined(this.fixedHeaderElement) ?\n this.fixedHeaderElement.offsetHeight : 0);\n }\n }\n };\n DropDownList.prototype.isEditTextBox = function () {\n return false;\n };\n DropDownList.prototype.isFiltering = function () {\n return this.allowFiltering;\n };\n DropDownList.prototype.isPopupButton = function () {\n return true;\n };\n DropDownList.prototype.setScrollPosition = function (e) {\n if (!isNullOrUndefined(e)) {\n switch (e.action) {\n case 'pageDown':\n case 'down':\n case 'end':\n this.scrollBottom();\n break;\n default:\n this.scrollTop();\n break;\n }\n }\n else {\n this.scrollBottom(true);\n }\n };\n DropDownList.prototype.clearText = function () {\n this.filterInput.value = this.typedString = '';\n this.searchLists(null);\n };\n DropDownList.prototype.setEleWidth = function (width) {\n if (!isNullOrUndefined(width)) {\n if (typeof width === 'number') {\n this.inputWrapper.container.style.width = formatUnit(width);\n }\n else if (typeof width === 'string') {\n this.inputWrapper.container.style.width = (width.match(/px|%|em/)) ? (width) : (formatUnit(width));\n }\n }\n };\n DropDownList.prototype.closePopup = function (delay, e) {\n var _this = this;\n this.isTyped = false;\n if (!(this.popupObj && document.body.contains(this.popupObj.element) && (this.beforePopupOpen || this.isEventCancel))) {\n return;\n }\n this.isActive = false;\n this.filterInputObj = null;\n this.isDropDownClick = false;\n this.preventAutoFill = false;\n var scrollableParentElements = this.popupObj.getScrollableParent(this.inputWrapper.container);\n for (var _i = 0, scrollableParentElements_1 = scrollableParentElements; _i < scrollableParentElements_1.length; _i++) {\n var element = scrollableParentElements_1[_i];\n EventHandler.remove(element, 'scroll', this.scrollHandler);\n }\n if (Browser.isDevice && this.isFilterLayout()) {\n removeClass([document.body, this.popupObj.element], dropDownListClasses.popupFullScreen);\n }\n if (this.isFilterLayout()) {\n if (!Browser.isDevice) {\n this.searchKeyModule.destroy();\n if (this.clearIconElement) {\n EventHandler.remove(this.clearIconElement, 'click', this.clearText);\n }\n }\n if (this.backIconElement) {\n EventHandler.remove(this.backIconElement, 'click', this.clickOnBackIcon);\n EventHandler.remove(this.clearIconElement, 'click', this.clearText);\n }\n if (!isNullOrUndefined(this.filterInput)) {\n EventHandler.remove(this.filterInput, 'input', this.onInput);\n EventHandler.remove(this.filterInput, 'keyup', this.onFilterUp);\n EventHandler.remove(this.filterInput, 'keydown', this.onFilterDown);\n EventHandler.remove(this.filterInput, 'blur', this.onBlurHandler);\n EventHandler.remove(this.filterInput, 'paste', this.pasteHandler);\n }\n this.filterInput = null;\n }\n attributes(this.targetElement(), { 'aria-expanded': 'false' });\n this.inputElement.setAttribute('aria-expanded', 'false');\n this.targetElement().removeAttribute('aria-owns');\n this.targetElement().removeAttribute('aria-activedescendant');\n this.inputWrapper.container.classList.remove(dropDownListClasses.iconAnimation);\n if (this.isFiltering()) {\n this.actionCompleteData.isUpdated = false;\n }\n this.beforePopupOpen = false;\n var animModel = {\n name: 'FadeOut',\n duration: 100,\n delay: delay ? delay : 0\n };\n var popupInstance = this.popupObj;\n var eventArgs = { popup: popupInstance, cancel: false, animation: animModel, event: e || null };\n this.trigger('close', eventArgs, function (eventArgs) {\n _this.isEventCancel = eventArgs.cancel;\n if (!isNullOrUndefined(_this.popupObj) &&\n !isNullOrUndefined(_this.popupObj.element.querySelector('.e-fixed-head'))) {\n var fixedHeader = _this.popupObj.element.querySelector('.e-fixed-head');\n fixedHeader.parentNode.removeChild(fixedHeader);\n _this.fixedHeaderElement = null;\n }\n if (!eventArgs.cancel) {\n if (_this.getModuleName() === 'autocomplete') {\n _this.rippleFun();\n }\n if (_this.isPopupOpen) {\n _this.popupObj.hide(new Animation(eventArgs.animation));\n }\n else {\n _this.destroyPopup();\n }\n }\n });\n };\n DropDownList.prototype.destroyPopup = function () {\n this.isPopupOpen = false;\n this.isFilterFocus = false;\n this.popupObj.destroy();\n detach(this.popupObj.element);\n };\n DropDownList.prototype.clickOnBackIcon = function () {\n this.hidePopup();\n this.focusIn();\n };\n /**\n * To Initialize the control rendering\n *\n * @private\n * @returns {void}\n */\n DropDownList.prototype.render = function () {\n if (this.element.tagName === 'INPUT') {\n this.inputElement = this.element;\n if (isNullOrUndefined(this.inputElement.getAttribute('role'))) {\n this.inputElement.setAttribute('role', 'combobox');\n }\n if (isNullOrUndefined(this.inputElement.getAttribute('type'))) {\n this.inputElement.setAttribute('type', 'text');\n }\n this.inputElement.setAttribute('aria-expanded', 'false');\n }\n else {\n this.inputElement = this.createElement('input', { attrs: { role: 'combobox', type: 'text' } });\n if (this.element.tagName !== this.getNgDirective()) {\n this.element.style.display = 'none';\n }\n this.element.parentElement.insertBefore(this.inputElement, this.element);\n this.preventTabIndex(this.inputElement);\n }\n var updatedCssClassValues = this.cssClass;\n if (!isNullOrUndefined(this.cssClass) && this.cssClass !== '') {\n updatedCssClassValues = (this.cssClass.replace(/\\s+/g, ' ')).trim();\n }\n if (!isNullOrUndefined(closest(this.element, \"fieldset\")) && closest(this.element, \"fieldset\").disabled) {\n this.enabled = false;\n }\n this.inputWrapper = Input.createInput({\n element: this.inputElement,\n buttons: this.isPopupButton() ? [dropDownListClasses.icon] : null,\n floatLabelType: this.floatLabelType,\n properties: {\n readonly: this.getModuleName() === 'dropdownlist' ? true : this.readonly,\n placeholder: this.placeholder,\n cssClass: updatedCssClassValues,\n enabled: this.enabled,\n enableRtl: this.enableRtl,\n showClearButton: this.showClearButton\n }\n }, this.createElement);\n if (this.element.tagName === this.getNgDirective()) {\n this.element.appendChild(this.inputWrapper.container);\n }\n else {\n this.inputElement.parentElement.insertBefore(this.element, this.inputElement);\n }\n this.hiddenElement = this.createElement('select', {\n attrs: { 'aria-hidden': 'true', 'tabindex': '-1', 'class': dropDownListClasses.hiddenElement }\n });\n prepend([this.hiddenElement], this.inputWrapper.container);\n this.validationAttribute(this.element, this.hiddenElement);\n this.setReadOnly();\n this.setFields();\n this.inputWrapper.container.style.width = formatUnit(this.width);\n this.inputWrapper.container.classList.add('e-ddl');\n Input.calculateWidth(this.inputElement, this.inputWrapper.container);\n if (!isNullOrUndefined(this.inputWrapper.buttons[0]) && this.inputWrapper.container.getElementsByClassName('e-float-text-content')[0] && this.floatLabelType !== 'Never') {\n this.inputWrapper.container.getElementsByClassName('e-float-text-content')[0].classList.add('e-icon');\n }\n this.wireEvent();\n this.tabIndex = this.element.hasAttribute('tabindex') ? this.element.getAttribute('tabindex') : '0';\n this.element.removeAttribute('tabindex');\n var id = this.element.getAttribute('id') ? this.element.getAttribute('id') : getUniqueID('ej2_dropdownlist');\n this.element.id = id;\n this.hiddenElement.id = id + '_hidden';\n this.targetElement().setAttribute('tabindex', this.tabIndex);\n attributes(this.targetElement(), this.getAriaAttributes());\n this.updateDataAttribute(this.htmlAttributes);\n this.setHTMLAttributes();\n if (this.targetElement() === this.inputElement) {\n this.inputElement.removeAttribute('aria-labelledby');\n }\n if (this.value !== null || this.activeIndex !== null || this.text !== null) {\n this.initValue();\n }\n else if (this.element.tagName === 'SELECT' && this.element.options[0]) {\n var selectElement = this.element;\n this.value = selectElement.options[selectElement.selectedIndex].value;\n this.text = isNullOrUndefined(this.value) ? null : selectElement.options[selectElement.selectedIndex].textContent;\n this.initValue();\n }\n this.setEnabled();\n this.preventTabIndex(this.element);\n if (!this.enabled) {\n this.targetElement().tabIndex = -1;\n }\n this.initial = false;\n this.element.style.opacity = '';\n this.inputElement.onselect = function (e) {\n e.stopImmediatePropagation();\n };\n this.inputElement.onchange = function (e) {\n e.stopImmediatePropagation();\n };\n if (this.element.hasAttribute('autofocus')) {\n this.focusIn();\n }\n if (!isNullOrUndefined(this.text)) {\n this.inputElement.setAttribute('value', this.text);\n }\n if (this.element.hasAttribute('data-val')) {\n this.element.setAttribute('data-val', 'false');\n }\n var floatLabelElement = this.inputWrapper.container.getElementsByClassName('e-float-text')[0];\n if (!isNullOrUndefined(this.element.id) && this.element.id !== '' && !isNullOrUndefined(floatLabelElement)) {\n floatLabelElement.id = 'label_' + this.element.id.replace(/ /g, '_');\n attributes(this.inputElement, { 'aria-labelledby': floatLabelElement.id });\n }\n this.renderComplete();\n };\n DropDownList.prototype.setFooterTemplate = function (popupEle) {\n var compiledString;\n if (this.footer) {\n if (this.isReact) {\n this.clearTemplate(['footerTemplate']);\n }\n else {\n this.footer.innerHTML = '';\n }\n }\n else {\n this.footer = this.createElement('div');\n addClass([this.footer], dropDownListClasses.footer);\n }\n var footercheck = this.dropdownCompiler(this.footerTemplate);\n if (footercheck) {\n compiledString = compile(select(this.footerTemplate, document).innerHTML.trim());\n }\n else {\n compiledString = compile(this.footerTemplate);\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var footerCompTemp = compiledString({}, this, 'footerTemplate', this.footerTemplateId, this.isStringTemplate, null, this.footer);\n if (footerCompTemp && footerCompTemp.length > 0) {\n for (var i = 0; i < footerCompTemp.length; i++) {\n this.footer.appendChild(footerCompTemp[i]);\n }\n }\n append([this.footer], popupEle);\n };\n DropDownList.prototype.setHeaderTemplate = function (popupEle) {\n var compiledString;\n if (this.header) {\n this.header.innerHTML = '';\n }\n else {\n this.header = this.createElement('div');\n addClass([this.header], dropDownListClasses.header);\n }\n var headercheck = this.dropdownCompiler(this.headerTemplate);\n if (headercheck) {\n compiledString = compile(select(this.headerTemplate, document).innerHTML.trim());\n }\n else {\n compiledString = compile(this.headerTemplate);\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var headerCompTemp = compiledString({}, this, 'headerTemplate', this.headerTemplateId, this.isStringTemplate, null, this.header);\n if (headerCompTemp && headerCompTemp.length) {\n for (var i = 0; i < headerCompTemp.length; i++) {\n this.header.appendChild(headerCompTemp[i]);\n }\n }\n var contentEle = popupEle.querySelector('div.e-content');\n popupEle.insertBefore(this.header, contentEle);\n };\n /**\n * Sets the enabled state to DropDownBase.\n *\n * @returns {void}\n */\n DropDownList.prototype.setEnabled = function () {\n this.element.setAttribute('aria-disabled', (this.enabled) ? 'false' : 'true');\n };\n DropDownList.prototype.setOldText = function (text) {\n this.text = text;\n };\n DropDownList.prototype.setOldValue = function (value) {\n this.value = value;\n };\n DropDownList.prototype.refreshPopup = function () {\n if (!isNullOrUndefined(this.popupObj) && document.body.contains(this.popupObj.element) &&\n ((this.allowFiltering && !(Browser.isDevice && this.isFilterLayout())) || this.getModuleName() === 'autocomplete')) {\n removeClass([this.popupObj.element], 'e-popup-close');\n this.popupObj.refreshPosition(this.inputWrapper.container);\n this.popupObj.resolveCollision();\n }\n };\n DropDownList.prototype.checkData = function (newProp) {\n if (newProp.dataSource && !isNullOrUndefined(Object.keys(newProp.dataSource)) && this.itemTemplate && this.allowFiltering &&\n !(this.isListSearched && (newProp.dataSource instanceof DataManager))) {\n this.list = null;\n this.actionCompleteData = { ulElement: null, list: null, isUpdated: false };\n }\n this.isListSearched = false;\n var isChangeValue = Object.keys(newProp).indexOf('value') !== -1 && isNullOrUndefined(newProp.value);\n var isChangeText = Object.keys(newProp).indexOf('text') !== -1 && isNullOrUndefined(newProp.text);\n if (this.getModuleName() !== 'autocomplete' && this.allowFiltering && (isChangeValue || isChangeText)) {\n this.itemData = null;\n }\n if (this.allowFiltering && newProp.dataSource && !isNullOrUndefined(Object.keys(newProp.dataSource))) {\n this.actionCompleteData = { ulElement: null, list: null, isUpdated: false };\n this.actionData = this.actionCompleteData;\n }\n else if (this.allowFiltering && newProp.query && !isNullOrUndefined(Object.keys(newProp.query))) {\n this.actionCompleteData = this.getModuleName() === 'combobox' ?\n { ulElement: null, list: null, isUpdated: false } : this.actionCompleteData;\n this.actionData = this.actionCompleteData;\n }\n };\n DropDownList.prototype.updateDataSource = function (props) {\n if (this.inputElement.value !== '' || (!isNullOrUndefined(props) && (isNullOrUndefined(props.dataSource)\n || (!(props.dataSource instanceof DataManager) && props.dataSource.length === 0)))) {\n this.clearAll(null, props);\n }\n if ((this.fields.groupBy && props.fields) && !this.isGroupChecking && this.list) {\n EventHandler.remove(this.list, 'scroll', this.setFloatingHeader);\n EventHandler.add(this.list, 'scroll', this.setFloatingHeader, this);\n }\n if (!(!isNullOrUndefined(props) && (isNullOrUndefined(props.dataSource)\n || (!(props.dataSource instanceof DataManager) && props.dataSource.length === 0))) || !(props.dataSource === [])) {\n this.typedString = '';\n this.resetList(this.dataSource);\n }\n if (!this.isCustomFilter && !this.isFilterFocus && document.activeElement !== this.filterInput) {\n this.checkCustomValue();\n }\n };\n DropDownList.prototype.checkCustomValue = function () {\n this.itemData = this.getDataByValue(this.value);\n var dataItem = this.getItemData();\n this.setProperties({ 'text': dataItem.text, 'value': dataItem.value });\n };\n DropDownList.prototype.updateInputFields = function () {\n if (this.getModuleName() === 'dropdownlist') {\n Input.setValue(this.text, this.inputElement, this.floatLabelType, this.showClearButton);\n }\n };\n /**\n * Dynamically change the value of properties.\n *\n * @private\n * @param {DropDownListModel} newProp - Returns the dynamic property value of the component.\n * @param {DropDownListModel} oldProp - Returns the previous previous value of the component.\n * @returns {void}\n */\n DropDownList.prototype.onPropertyChanged = function (newProp, oldProp) {\n var _this = this;\n if (this.getModuleName() === 'dropdownlist') {\n this.checkData(newProp);\n this.setUpdateInitial(['fields', 'query', 'dataSource'], newProp);\n }\n var _loop_1 = function (prop) {\n switch (prop) {\n case 'query':\n case 'dataSource': break;\n case 'htmlAttributes':\n this_1.setHTMLAttributes();\n break;\n case 'width':\n this_1.setEleWidth(newProp.width);\n Input.calculateWidth(this_1.inputElement, this_1.inputWrapper.container);\n break;\n case 'placeholder':\n Input.setPlaceholder(newProp.placeholder, this_1.inputElement);\n break;\n case 'filterBarPlaceholder':\n if (this_1.filterInput) {\n Input.setPlaceholder(newProp.filterBarPlaceholder, this_1.filterInput);\n }\n break;\n case 'readonly':\n if (this_1.getModuleName() !== 'dropdownlist') {\n Input.setReadonly(newProp.readonly, this_1.inputElement);\n }\n this_1.setReadOnly();\n break;\n case 'cssClass':\n this_1.setCssClass(newProp.cssClass, oldProp.cssClass);\n Input.calculateWidth(this_1.inputElement, this_1.inputWrapper.container);\n break;\n case 'enableRtl':\n this_1.setEnableRtl();\n break;\n case 'enabled':\n this_1.setEnable();\n break;\n case 'text':\n if (newProp.text === null) {\n this_1.clearAll();\n break;\n }\n if (!this_1.list) {\n if (this_1.dataSource instanceof DataManager) {\n this_1.initRemoteRender = true;\n }\n this_1.renderList();\n }\n if (!this_1.initRemoteRender) {\n var li = this_1.getElementByText(newProp.text);\n if (!this_1.checkValidLi(li)) {\n if (this_1.liCollections && this_1.liCollections.length === 100 &&\n this_1.getModuleName() === 'autocomplete' && this_1.listData.length > 100) {\n this_1.setSelectionData(newProp.text, oldProp.text, 'text');\n }\n else if (newProp.text && this_1.dataSource instanceof DataManager) {\n var listLength_1 = this_1.getItems().length;\n var checkField = isNullOrUndefined(this_1.fields.text) ? this_1.fields.value : this_1.fields.text;\n this_1.typedString = '';\n this_1.dataSource.executeQuery(this_1.getQuery(this_1.query).where(new Predicate(checkField, 'equal', newProp.text)))\n .then(function (e) {\n if (e.result.length > 0) {\n _this.addItem(e.result, listLength_1);\n _this.updateValues();\n }\n else {\n _this.setOldText(oldProp.text);\n }\n });\n }\n else if (this_1.getModuleName() === 'autocomplete') {\n this_1.setInputValue(newProp, oldProp);\n }\n else {\n this_1.setOldText(oldProp.text);\n }\n }\n this_1.updateInputFields();\n }\n break;\n case 'value':\n if (newProp.value === null) {\n this_1.clearAll();\n break;\n }\n this_1.notify('beforeValueChange', { newProp: newProp }); // gird component value type change\n if (!this_1.list) {\n if (this_1.dataSource instanceof DataManager) {\n this_1.initRemoteRender = true;\n }\n this_1.renderList();\n }\n if (!this_1.initRemoteRender) {\n var item = this_1.getElementByValue(newProp.value);\n if (!this_1.checkValidLi(item)) {\n if (this_1.liCollections && this_1.liCollections.length === 100 &&\n this_1.getModuleName() === 'autocomplete' && this_1.listData.length > 100) {\n this_1.setSelectionData(newProp.value, oldProp.value, 'value');\n }\n else if (newProp.value && this_1.dataSource instanceof DataManager) {\n var listLength_2 = this_1.getItems().length;\n var checkField = isNullOrUndefined(this_1.fields.value) ? this_1.fields.text : this_1.fields.value;\n this_1.typedString = '';\n this_1.dataSource.executeQuery(this_1.getQuery(this_1.query).where(new Predicate(checkField, 'equal', newProp.value)))\n .then(function (e) {\n if (e.result.length > 0) {\n _this.addItem(e.result, listLength_2);\n _this.updateValues();\n }\n else {\n _this.setOldValue(oldProp.value);\n }\n });\n }\n else if (this_1.getModuleName() === 'autocomplete') {\n this_1.setInputValue(newProp, oldProp);\n }\n else {\n this_1.setOldValue(oldProp.value);\n }\n }\n this_1.updateInputFields();\n this_1.preventChange = this_1.isAngular && this_1.preventChange ? !this_1.preventChange : this_1.preventChange;\n }\n break;\n case 'index':\n if (newProp.index === null) {\n this_1.clearAll();\n break;\n }\n if (!this_1.list) {\n if (this_1.dataSource instanceof DataManager) {\n this_1.initRemoteRender = true;\n }\n this_1.renderList();\n }\n if (!this_1.initRemoteRender && this_1.liCollections) {\n var element = this_1.liCollections[newProp.index];\n if (!this_1.checkValidLi(element)) {\n if (this_1.liCollections && this_1.liCollections.length === 100 &&\n this_1.getModuleName() === 'autocomplete' && this_1.listData.length > 100) {\n this_1.setSelectionData(newProp.index, oldProp.index, 'index');\n }\n else {\n this_1.index = oldProp.index;\n }\n }\n this_1.updateInputFields();\n }\n break;\n case 'footerTemplate':\n if (this_1.popupObj) {\n this_1.setFooterTemplate(this_1.popupObj.element);\n }\n break;\n case 'headerTemplate':\n if (this_1.popupObj) {\n this_1.setHeaderTemplate(this_1.popupObj.element);\n }\n break;\n case 'valueTemplate':\n if (!isNullOrUndefined(this_1.itemData) && this_1.valueTemplate != null) {\n this_1.setValueTemplate();\n }\n break;\n case 'allowFiltering':\n if (this_1.allowFiltering) {\n this_1.actionCompleteData = { ulElement: this_1.ulElement,\n list: this_1.listData, isUpdated: true };\n this_1.actionData = this_1.actionCompleteData;\n this_1.updateSelectElementData(this_1.allowFiltering);\n }\n break;\n case 'floatLabelType':\n Input.removeFloating(this_1.inputWrapper);\n Input.addFloating(this_1.inputElement, newProp.floatLabelType, this_1.placeholder, this_1.createElement);\n if (!isNullOrUndefined(this_1.inputWrapper.buttons[0]) && this_1.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0] && this_1.floatLabelType !== 'Never') {\n this_1.inputWrapper.container.getElementsByClassName('e-float-text-overflow')[0].classList.add('e-icon');\n }\n break;\n case 'showClearButton':\n Input.setClearButton(newProp.showClearButton, this_1.inputElement, this_1.inputWrapper, null, this_1.createElement);\n this_1.bindClearEvent();\n break;\n default:\n {\n // eslint-disable-next-line max-len\n var ddlProps = this_1.getPropObject(prop, newProp, oldProp);\n _super.prototype.onPropertyChanged.call(this_1, ddlProps.newProperty, ddlProps.oldProperty);\n }\n break;\n }\n };\n var this_1 = this;\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n _loop_1(prop);\n }\n };\n DropDownList.prototype.checkValidLi = function (element) {\n if (this.isValidLI(element)) {\n this.setSelection(element, null);\n return true;\n }\n return false;\n };\n DropDownList.prototype.setSelectionData = function (newProp, oldProp, prop) {\n var _this = this;\n var li;\n this.updateListValues = function () {\n if (prop === 'text') {\n li = _this.getElementByText(newProp);\n if (!_this.checkValidLi(li)) {\n _this.setOldText(oldProp);\n }\n }\n else if (prop === 'value') {\n li = _this.getElementByValue(newProp);\n if (!_this.checkValidLi(li)) {\n _this.setOldValue(oldProp);\n }\n }\n else if (prop === 'index') {\n li = _this.liCollections[newProp];\n if (!_this.checkValidLi(li)) {\n _this.index = oldProp;\n }\n }\n };\n };\n DropDownList.prototype.setReadOnly = function () {\n if (this.readonly) {\n addClass([this.inputWrapper.container], ['e-readonly']);\n }\n else {\n removeClass([this.inputWrapper.container], ['e-readonly']);\n }\n };\n DropDownList.prototype.setInputValue = function (newProp, oldProp) {\n };\n DropDownList.prototype.setCssClass = function (newClass, oldClass) {\n if (!isNullOrUndefined(oldClass)) {\n oldClass = (oldClass.replace(/\\s+/g, ' ')).trim();\n }\n if (!isNullOrUndefined(newClass)) {\n newClass = (newClass.replace(/\\s+/g, ' ')).trim();\n }\n Input.setCssClass(newClass, [this.inputWrapper.container], oldClass);\n if (this.popupObj) {\n Input.setCssClass(newClass, [this.popupObj.element], oldClass);\n }\n };\n /**\n * Return the module name of this component.\n *\n * @private\n * @returns {string} Return the module name of this component.\n */\n DropDownList.prototype.getModuleName = function () {\n return 'dropdownlist';\n };\n /**\n * Opens the popup that displays the list of items.\n *\n * @returns {void}\n */\n DropDownList.prototype.showPopup = function (e) {\n if (!this.enabled) {\n return;\n }\n if (this.isFiltering() && this.dataSource instanceof DataManager && (this.actionData.list != this.actionCompleteData.list) &&\n this.actionData.list && this.actionData.ulElement) {\n this.actionCompleteData = this.actionData;\n this.onActionComplete(this.actionCompleteData.ulElement, this.actionCompleteData.list, null, true);\n }\n if (this.beforePopupOpen) {\n this.refreshPopup();\n return;\n }\n this.beforePopupOpen = true;\n if (this.isFiltering() && !this.isActive && this.actionCompleteData.list && this.actionCompleteData.list[0]) {\n this.isActive = true;\n this.onActionComplete(this.actionCompleteData.ulElement, this.actionCompleteData.list, null, true);\n }\n else if (isNullOrUndefined(this.list) || !isUndefined(this.list) && (this.list.classList.contains(dropDownBaseClasses.noData) ||\n this.list.querySelectorAll('.' + dropDownBaseClasses.li).length <= 0)) {\n this.renderList(e);\n }\n this.invokeRenderPopup(e);\n };\n DropDownList.prototype.invokeRenderPopup = function (e) {\n if (Browser.isDevice && this.isFilterLayout()) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var proxy_2 = this;\n window.onpopstate = function () {\n proxy_2.hidePopup();\n };\n history.pushState({}, '');\n }\n if (!isNullOrUndefined(this.list) && (!isNullOrUndefined(this.list.children[0]) || this.list.classList.contains(dropDownBaseClasses.noData))) {\n this.renderPopup(e);\n }\n };\n DropDownList.prototype.renderHightSearch = function () {\n // update high light search\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-param */\n /**\n * Hides the popup if it is in an open state.\n *\n * @returns {void}\n */\n DropDownList.prototype.hidePopup = function (e) {\n /* eslint-enable valid-jsdoc, jsdoc/require-param */\n if (this.isEscapeKey && this.getModuleName() === 'dropdownlist') {\n if (!isNullOrUndefined(this.inputElement)) {\n Input.setValue(this.text, this.inputElement, this.floatLabelType, this.showClearButton);\n }\n this.isEscapeKey = false;\n if (!isNullOrUndefined(this.index)) {\n var element = this.findListElement(this.ulElement, 'li', 'data-value', this.value);\n this.selectedLI = this.liCollections[this.index] || element;\n if (this.selectedLI) {\n this.updateSelectedItem(this.selectedLI, null, true);\n if (this.valueTemplate && this.itemData !== null) {\n this.setValueTemplate();\n }\n }\n }\n else {\n this.resetSelection();\n }\n }\n this.closePopup(0, e);\n var dataItem = this.getItemData();\n var isSelectVal = !isNullOrUndefined(this.selectedLI);\n if (this.inputElement && this.inputElement.value.trim() === '' && !this.isInteracted && (this.isSelectCustom ||\n isSelectVal && this.inputElement.value !== dataItem.text)) {\n this.isSelectCustom = false;\n this.clearAll(e);\n }\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-param */\n /**\n * Sets the focus on the component for interaction.\n *\n * @returns {void}\n */\n DropDownList.prototype.focusIn = function (e) {\n if (!this.enabled) {\n return;\n }\n if (this.targetElement().classList.contains(dropDownListClasses.disable)) {\n return;\n }\n var isFocused = false;\n if (this.preventFocus && Browser.isDevice) {\n this.inputWrapper.container.tabIndex = 1;\n this.inputWrapper.container.focus();\n this.preventFocus = false;\n isFocused = true;\n }\n if (!isFocused) {\n this.targetElement().focus();\n }\n addClass([this.inputWrapper.container], [dropDownListClasses.inputFocus]);\n this.onFocus(e);\n Input.calculateWidth(this.inputElement, this.inputWrapper.container);\n };\n /**\n * Moves the focus from the component if the component is already focused.\n *\n * @returns {void}\n */\n DropDownList.prototype.focusOut = function (e) {\n /* eslint-enable valid-jsdoc, jsdoc/require-param */\n if (!this.enabled) {\n return;\n }\n this.isTyped = true;\n this.hidePopup(e);\n if (this.targetElement()) {\n this.targetElement().blur();\n }\n removeClass([this.inputWrapper.container], [dropDownListClasses.inputFocus]);\n Input.calculateWidth(this.inputElement, this.inputWrapper.container);\n };\n /**\n * Removes the component from the DOM and detaches all its related event handlers. Also it removes the attributes and classes.\n *\n * @method destroy\n * @returns {void}\n */\n DropDownList.prototype.destroy = function () {\n this.isActive = false;\n resetIncrementalSearchValues(this.element.id);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact) {\n this.clearTemplate();\n }\n this.hidePopup();\n this.unWireEvent();\n if (this.list) {\n this.unWireListEvents();\n }\n if (this.element && !this.element.classList.contains('e-' + this.getModuleName())) {\n return;\n }\n if (this.inputElement) {\n var attrArray = ['readonly', 'aria-disabled', 'placeholder', 'aria-labelledby',\n 'aria-expanded', 'autocomplete', 'aria-readonly', 'autocapitalize',\n 'spellcheck', 'aria-autocomplete', 'aria-live', 'aria-describedby', 'aria-label'];\n for (var i = 0; i < attrArray.length; i++) {\n this.inputElement.removeAttribute(attrArray[i]);\n }\n this.inputElement.setAttribute('tabindex', this.tabIndex);\n this.inputElement.classList.remove('e-input');\n Input.setValue('', this.inputElement, this.floatLabelType, this.showClearButton);\n }\n this.element.style.display = 'block';\n if (this.inputWrapper.container.parentElement.tagName === this.getNgDirective()) {\n detach(this.inputWrapper.container);\n }\n else {\n this.inputWrapper.container.parentElement.insertBefore(this.element, this.inputWrapper.container);\n detach(this.inputWrapper.container);\n }\n this.hiddenElement = null;\n this.inputWrapper = null;\n this.keyboardModule = null;\n this.ulElement = null;\n this.list = null;\n this.popupObj = null;\n this.rippleFun = null;\n this.selectedLI = null;\n this.liCollections = null;\n this.item = null;\n this.inputWrapper = null;\n this.footer = null;\n this.header = null;\n this.previousSelectedLI = null;\n this.valueTempElement = null;\n _super.prototype.destroy.call(this);\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Gets all the list items bound on this component.\n *\n * @returns {Element[]}\n */\n DropDownList.prototype.getItems = function () {\n if (!this.list) {\n if (this.dataSource instanceof DataManager) {\n this.initRemoteRender = true;\n }\n this.renderList();\n }\n return this.ulElement ? _super.prototype.getItems.call(this) : [];\n };\n /**\n * Gets the data Object that matches the given value.\n *\n * @param { string | number } value - Specifies the value of the list item.\n * @returns {Object}\n */\n DropDownList.prototype.getDataByValue = function (value) {\n return _super.prototype.getDataByValue.call(this, value);\n };\n /* eslint-enable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Allows you to clear the selected values from the component.\n *\n * @returns {void}\n */\n DropDownList.prototype.clear = function () {\n this.value = null;\n };\n __decorate([\n Property(null)\n ], DropDownList.prototype, \"cssClass\", void 0);\n __decorate([\n Property('100%')\n ], DropDownList.prototype, \"width\", void 0);\n __decorate([\n Property(true)\n ], DropDownList.prototype, \"enabled\", void 0);\n __decorate([\n Property(false)\n ], DropDownList.prototype, \"enablePersistence\", void 0);\n __decorate([\n Property('300px')\n ], DropDownList.prototype, \"popupHeight\", void 0);\n __decorate([\n Property('100%')\n ], DropDownList.prototype, \"popupWidth\", void 0);\n __decorate([\n Property(null)\n ], DropDownList.prototype, \"placeholder\", void 0);\n __decorate([\n Property(null)\n ], DropDownList.prototype, \"filterBarPlaceholder\", void 0);\n __decorate([\n Property({})\n ], DropDownList.prototype, \"htmlAttributes\", void 0);\n __decorate([\n Property(null)\n ], DropDownList.prototype, \"query\", void 0);\n __decorate([\n Property(null)\n ], DropDownList.prototype, \"valueTemplate\", void 0);\n __decorate([\n Property(null)\n ], DropDownList.prototype, \"headerTemplate\", void 0);\n __decorate([\n Property(null)\n ], DropDownList.prototype, \"footerTemplate\", void 0);\n __decorate([\n Property(false)\n ], DropDownList.prototype, \"allowFiltering\", void 0);\n __decorate([\n Property(false)\n ], DropDownList.prototype, \"readonly\", void 0);\n __decorate([\n Property(null)\n ], DropDownList.prototype, \"text\", void 0);\n __decorate([\n Property(null)\n ], DropDownList.prototype, \"value\", void 0);\n __decorate([\n Property(null)\n ], DropDownList.prototype, \"index\", void 0);\n __decorate([\n Property('Never')\n ], DropDownList.prototype, \"floatLabelType\", void 0);\n __decorate([\n Property(false)\n ], DropDownList.prototype, \"showClearButton\", void 0);\n __decorate([\n Event()\n ], DropDownList.prototype, \"filtering\", void 0);\n __decorate([\n Event()\n ], DropDownList.prototype, \"change\", void 0);\n __decorate([\n Event()\n ], DropDownList.prototype, \"beforeOpen\", void 0);\n __decorate([\n Event()\n ], DropDownList.prototype, \"open\", void 0);\n __decorate([\n Event()\n ], DropDownList.prototype, \"close\", void 0);\n __decorate([\n Event()\n ], DropDownList.prototype, \"blur\", void 0);\n __decorate([\n Event()\n ], DropDownList.prototype, \"focus\", void 0);\n DropDownList = __decorate([\n NotifyPropertyChanges\n ], DropDownList);\n return DropDownList;\n}(DropDownBase));\nexport { DropDownList };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n// eslint-disable-next-line @typescript-eslint/triple-slash-reference\n/// \nimport { EventHandler, Property, Event, addClass, Browser, removeClass, detach } from '@syncfusion/ej2-base';\nimport { isNullOrUndefined, NotifyPropertyChanges, getValue, setValue } from '@syncfusion/ej2-base';\nimport { DropDownList, dropDownListClasses } from '../drop-down-list/drop-down-list';\nimport { Search } from '../common/incremental-search';\nimport { createSpinner, showSpinner, hideSpinner } from '@syncfusion/ej2-popups';\nimport { Input } from '@syncfusion/ej2-inputs';\nvar SPINNER_CLASS = 'e-atc-spinner-icon';\ndropDownListClasses.root = 'e-combobox';\nvar inputObject = {\n container: null,\n buttons: []\n};\n/**\n * The ComboBox component allows the user to type a value or choose an option from the list of predefined options.\n * ```html\n * \n * ```\n * ```typescript\n * let games:ComboBox = new ComboBox();\n * games.appendTo(\"#list\");\n * ```\n */\nvar ComboBox = /** @class */ (function (_super) {\n __extends(ComboBox, _super);\n /**\n * *Constructor for creating the component\n *\n * @param {ComboBoxModel} options - Specifies the ComboBox model.\n * @param {string | HTMLElement} element - Specifies the element to render as component.\n * @private\n */\n function ComboBox(options, element) {\n return _super.call(this, options, element) || this;\n }\n /**\n * Initialize the event handler\n *\n * @private\n * @returns {void}\n */\n ComboBox.prototype.preRender = function () {\n _super.prototype.preRender.call(this);\n };\n ComboBox.prototype.getLocaleName = function () {\n return 'combo-box';\n };\n ComboBox.prototype.wireEvent = function () {\n if (this.getModuleName() === 'combobox') {\n EventHandler.add(this.inputWrapper.buttons[0], 'mousedown', this.preventBlur, this);\n EventHandler.add(this.inputWrapper.container, 'blur', this.onBlurHandler, this);\n }\n if (!isNullOrUndefined(this.inputWrapper.buttons[0])) {\n EventHandler.add(this.inputWrapper.buttons[0], 'mousedown', this.dropDownClick, this);\n }\n EventHandler.add(this.inputElement, 'focus', this.targetFocus, this);\n if (!this.readonly) {\n EventHandler.add(this.inputElement, 'input', this.onInput, this);\n EventHandler.add(this.inputElement, 'keyup', this.onFilterUp, this);\n EventHandler.add(this.inputElement, 'keydown', this.onFilterDown, this);\n EventHandler.add(this.inputElement, 'paste', this.pasteHandler, this);\n }\n this.bindCommonEvent();\n };\n ComboBox.prototype.preventBlur = function (e) {\n if ((!this.allowFiltering && document.activeElement !== this.inputElement &&\n !document.activeElement.classList.contains(dropDownListClasses.input) && Browser.isDevice || !Browser.isDevice)) {\n e.preventDefault();\n }\n };\n ComboBox.prototype.onBlurHandler = function (e) {\n var inputValue = this.inputElement && this.inputElement.value === '' ?\n null : this.inputElement && this.inputElement.value;\n if (!isNullOrUndefined(this.listData) && !isNullOrUndefined(inputValue) && inputValue !== this.text) {\n this.customValue(e);\n }\n _super.prototype.onBlurHandler.call(this, e);\n };\n ComboBox.prototype.targetElement = function () {\n return this.inputElement;\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n ComboBox.prototype.setOldText = function (text) {\n Input.setValue(this.text, this.inputElement, this.floatLabelType, this.showClearButton);\n this.customValue();\n this.removeSelection();\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n ComboBox.prototype.setOldValue = function (value) {\n if (this.allowCustom) {\n this.valueMuteChange(this.value);\n }\n else {\n this.valueMuteChange(null);\n }\n this.removeSelection();\n this.setHiddenValue();\n };\n ComboBox.prototype.valueMuteChange = function (value) {\n var inputValue = isNullOrUndefined(value) ? null : value.toString();\n Input.setValue(inputValue, this.inputElement, this.floatLabelType, this.showClearButton);\n this.setProperties({ value: value, text: value, index: null }, true);\n this.activeIndex = this.index;\n var fields = this.fields;\n var dataItem = {};\n dataItem[fields.text] = isNullOrUndefined(value) ? null : value.toString();\n dataItem[fields.value] = isNullOrUndefined(value) ? null : value.toString();\n this.itemData = dataItem;\n this.item = null;\n if (this.previousValue !== this.value) {\n this.detachChangeEvent(null);\n }\n };\n ComboBox.prototype.updateValues = function () {\n if (!isNullOrUndefined(this.value)) {\n var li = this.getElementByValue(this.value);\n if (li) {\n this.setSelection(li, null);\n }\n else if (this.allowCustom) {\n this.valueMuteChange(this.value);\n }\n else {\n this.valueMuteChange(null);\n }\n }\n else if (this.text && isNullOrUndefined(this.value)) {\n var li = this.getElementByText(this.text);\n if (li) {\n this.setSelection(li, null);\n }\n else {\n Input.setValue(this.text, this.inputElement, this.floatLabelType, this.showClearButton);\n this.customValue();\n }\n }\n else {\n this.setSelection(this.liCollections[this.activeIndex], null);\n }\n this.setHiddenValue();\n Input.setValue(this.text, this.inputElement, this.floatLabelType, this.showClearButton);\n };\n ComboBox.prototype.updateIconState = function () {\n if (this.showClearButton) {\n if (this.inputElement && this.inputElement.value !== '' && !this.readonly) {\n removeClass([this.inputWrapper.clearButton], dropDownListClasses.clearIconHide);\n }\n else {\n addClass([this.inputWrapper.clearButton], dropDownListClasses.clearIconHide);\n }\n }\n };\n ComboBox.prototype.getAriaAttributes = function () {\n var ariaAttributes = {\n 'role': 'combobox',\n 'aria-autocomplete': 'both',\n 'aria-labelledby': this.hiddenElement.id,\n 'aria-expanded': 'false',\n 'aria-readonly': this.readonly.toString(),\n 'autocomplete': 'off',\n 'autocapitalize': 'off',\n 'spellcheck': 'false'\n };\n return ariaAttributes;\n };\n ComboBox.prototype.searchLists = function (e) {\n this.isTyped = true;\n if (this.isFiltering()) {\n _super.prototype.searchLists.call(this, e);\n if (this.ulElement && this.filterInput.value.trim() === '') {\n this.setHoverList(this.ulElement.querySelector('.' + dropDownListClasses.li));\n }\n }\n else {\n if (this.ulElement && this.inputElement.value === '' && this.preventAutoFill) {\n this.setHoverList(this.ulElement.querySelector('.' + dropDownListClasses.li));\n }\n this.incrementalSearch(e);\n }\n };\n ComboBox.prototype.getNgDirective = function () {\n return 'EJS-COMBOBOX';\n };\n ComboBox.prototype.setSearchBox = function () {\n this.filterInput = this.inputElement;\n return (this.isFiltering() ? this.inputWrapper : inputObject);\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n ComboBox.prototype.onActionComplete = function (ulElement, list, e, isUpdated) {\n var _this = this;\n _super.prototype.onActionComplete.call(this, ulElement, list, e);\n if (this.isSelectCustom) {\n this.removeSelection();\n }\n if (!this.preventAutoFill && this.getModuleName() === 'combobox' && this.isTyped) {\n setTimeout(function () {\n _this.inlineSearch();\n });\n }\n };\n ComboBox.prototype.getFocusElement = function () {\n var dataItem = this.isSelectCustom ? { text: '' } : this.getItemData();\n var selected = !isNullOrUndefined(this.list) ? this.list.querySelector('.' + dropDownListClasses.selected) : this.list;\n var isSelected = dataItem.text === this.inputElement.value && !isNullOrUndefined(selected);\n if (isSelected) {\n return selected;\n }\n if ((Browser.isDevice && !this.isDropDownClick || !Browser.isDevice) &&\n !isNullOrUndefined(this.liCollections) && this.liCollections.length > 0) {\n var inputValue = this.inputElement.value;\n var dataSource = this.sortedData;\n var type = this.typeOfData(dataSource).typeof;\n var activeItem = Search(inputValue, this.liCollections, this.filterType, true, dataSource, this.fields, type);\n var activeElement = activeItem.item;\n if (!isNullOrUndefined(activeElement)) {\n var count = this.getIndexByValue(activeElement.getAttribute('data-value')) - 1;\n var height = parseInt(getComputedStyle(this.liCollections[0], null).getPropertyValue('height'), 10);\n if (!isNaN(height) && this.getModuleName() !== 'autocomplete') {\n this.removeFocus();\n var fixedHead = this.fields.groupBy ? this.liCollections[0].offsetHeight : 0;\n this.list.scrollTop = count * height + fixedHead;\n addClass([activeElement], dropDownListClasses.focus);\n }\n }\n else {\n if (this.isSelectCustom && this.inputElement.value.trim() !== '') {\n this.removeFocus();\n this.list.scrollTop = 0;\n }\n }\n return activeElement;\n }\n else {\n return null;\n }\n };\n ComboBox.prototype.setValue = function (e) {\n if (e && e.type === 'keydown' && e.action === 'enter') {\n this.removeFillSelection();\n }\n if (this.autofill && this.getModuleName() === 'combobox' && e && e.type === 'keydown' && e.action !== 'enter') {\n this.preventAutoFill = false;\n this.inlineSearch(e);\n return false;\n }\n else {\n return _super.prototype.setValue.call(this, e);\n }\n };\n ComboBox.prototype.checkCustomValue = function () {\n this.itemData = this.getDataByValue(this.value);\n var dataItem = this.getItemData();\n if (!(this.allowCustom && isNullOrUndefined(dataItem.value) && isNullOrUndefined(dataItem.text))) {\n this.setProperties({ 'value': dataItem.value }, !this.allowCustom);\n }\n };\n /**\n * Shows the spinner loader.\n *\n * @returns {void}\n\n */\n ComboBox.prototype.showSpinner = function () {\n if (isNullOrUndefined(this.spinnerElement)) {\n this.spinnerElement = (this.getModuleName() === 'autocomplete') ? (this.inputWrapper.buttons[0] ||\n this.inputWrapper.clearButton ||\n Input.appendSpan('e-input-group-icon ' + SPINNER_CLASS, this.inputWrapper.container, this.createElement)) :\n (this.inputWrapper.buttons[0] || this.inputWrapper.clearButton);\n addClass([this.spinnerElement], dropDownListClasses.disableIcon);\n createSpinner({\n target: this.spinnerElement,\n width: Browser.isDevice ? '16px' : '14px'\n }, this.createElement);\n showSpinner(this.spinnerElement);\n }\n };\n /**\n * Hides the spinner loader.\n *\n * @returns {void}\n\n */\n ComboBox.prototype.hideSpinner = function () {\n if (!isNullOrUndefined(this.spinnerElement)) {\n hideSpinner(this.spinnerElement);\n removeClass([this.spinnerElement], dropDownListClasses.disableIcon);\n if (this.spinnerElement.classList.contains(SPINNER_CLASS)) {\n detach(this.spinnerElement);\n }\n else {\n this.spinnerElement.innerHTML = '';\n }\n this.spinnerElement = null;\n }\n };\n ComboBox.prototype.setAutoFill = function (activeElement, isHover) {\n if (!isHover) {\n this.setHoverList(activeElement);\n }\n if (this.autofill && !this.preventAutoFill) {\n var currentValue = this.getTextByValue(activeElement.getAttribute('data-value')).toString();\n var currentFillValue = this.getFormattedValue(activeElement.getAttribute('data-value'));\n if (this.getModuleName() === 'combobox') {\n if (!this.isSelected && this.previousValue !== currentFillValue) {\n this.updateSelectedItem(activeElement, null);\n this.isSelected = true;\n this.previousValue = this.getFormattedValue(activeElement.getAttribute('data-value'));\n }\n else {\n this.updateSelectedItem(activeElement, null, true);\n }\n }\n if (!this.isAndroidAutoFill(currentValue)) {\n this.setAutoFillSelection(currentValue, isHover);\n }\n }\n };\n ComboBox.prototype.isAndroidAutoFill = function (value) {\n if (Browser.isAndroid) {\n var currentPoints = this.getSelectionPoints();\n var prevEnd = this.prevSelectPoints.end;\n var curEnd = currentPoints.end;\n var prevStart = this.prevSelectPoints.start;\n var curStart = currentPoints.start;\n if (prevEnd !== 0 && ((prevEnd === value.length && prevStart === value.length) ||\n (prevStart > curStart && prevEnd > curEnd) || (prevEnd === curEnd && prevStart === curStart))) {\n return true;\n }\n else {\n return false;\n }\n }\n else {\n return false;\n }\n };\n ComboBox.prototype.clearAll = function (e, property) {\n if (isNullOrUndefined(property) || (!isNullOrUndefined(property) && isNullOrUndefined(property.dataSource))) {\n _super.prototype.clearAll.call(this, e);\n }\n if (this.isFiltering() && !isNullOrUndefined(e) && e.target === this.inputWrapper.clearButton) {\n this.searchLists(e);\n }\n };\n ComboBox.prototype.isSelectFocusItem = function (element) {\n return !isNullOrUndefined(element);\n };\n ComboBox.prototype.inlineSearch = function (e) {\n var isKeyNavigate = (e && (e.action === 'down' || e.action === 'up' ||\n e.action === 'home' || e.action === 'end' || e.action === 'pageUp' || e.action === 'pageDown'));\n var activeElement = isKeyNavigate ? this.liCollections[this.activeIndex] : this.getFocusElement();\n if (!isNullOrUndefined(activeElement)) {\n if (!isKeyNavigate) {\n var value = this.getFormattedValue(activeElement.getAttribute('data-value'));\n this.activeIndex = this.getIndexByValue(value);\n this.activeIndex = !isNullOrUndefined(this.activeIndex) ? this.activeIndex : null;\n }\n this.preventAutoFill = this.inputElement.value === '' ? false : this.preventAutoFill;\n this.setAutoFill(activeElement, isKeyNavigate);\n }\n else if (this.inputElement.value === '') {\n this.activeIndex = null;\n if (!isNullOrUndefined(this.list)) {\n this.list.scrollTop = 0;\n var focusItem = this.list.querySelector('.' + dropDownListClasses.li);\n this.setHoverList(focusItem);\n }\n }\n else {\n this.activeIndex = null;\n this.removeSelection();\n if (this.liCollections && this.liCollections.length > 0 && !this.isCustomFilter) {\n this.removeFocus();\n }\n }\n };\n ComboBox.prototype.incrementalSearch = function (e) {\n this.showPopup(e);\n if (!isNullOrUndefined(this.listData)) {\n this.inlineSearch(e);\n e.preventDefault();\n }\n };\n ComboBox.prototype.setAutoFillSelection = function (currentValue, isKeyNavigate) {\n if (isKeyNavigate === void 0) { isKeyNavigate = false; }\n var selection = this.getSelectionPoints();\n var value = this.inputElement.value.substr(0, selection.start);\n if (value && (value.toLowerCase() === currentValue.substr(0, selection.start).toLowerCase())) {\n var inputValue = value + currentValue.substr(value.length, currentValue.length);\n Input.setValue(inputValue, this.inputElement, this.floatLabelType, this.showClearButton);\n this.inputElement.setSelectionRange(selection.start, this.inputElement.value.length);\n }\n else if (isKeyNavigate) {\n Input.setValue(currentValue, this.inputElement, this.floatLabelType, this.showClearButton);\n this.inputElement.setSelectionRange(0, this.inputElement.value.length);\n }\n };\n ComboBox.prototype.getValueByText = function (text) {\n return _super.prototype.getValueByText.call(this, text, true, this.ignoreAccent);\n };\n ComboBox.prototype.unWireEvent = function () {\n if (this.getModuleName() === 'combobox') {\n EventHandler.remove(this.inputWrapper.buttons[0], 'mousedown', this.preventBlur);\n EventHandler.remove(this.inputWrapper.container, 'blur', this.onBlurHandler);\n }\n if (!isNullOrUndefined(this.inputWrapper.buttons[0])) {\n EventHandler.remove(this.inputWrapper.buttons[0], 'mousedown', this.dropDownClick);\n }\n if (this.inputElement) {\n EventHandler.remove(this.inputElement, 'focus', this.targetFocus);\n if (!this.readonly) {\n EventHandler.remove(this.inputElement, 'input', this.onInput);\n EventHandler.remove(this.inputElement, 'keyup', this.onFilterUp);\n EventHandler.remove(this.inputElement, 'keydown', this.onFilterDown);\n EventHandler.remove(this.inputElement, 'paste', this.pasteHandler);\n }\n }\n this.unBindCommonEvent();\n };\n ComboBox.prototype.setSelection = function (li, e) {\n _super.prototype.setSelection.call(this, li, e);\n if (!isNullOrUndefined(li) && !this.autofill && !this.isDropDownClick) {\n this.removeFocus();\n }\n };\n ComboBox.prototype.selectCurrentItem = function (e) {\n var li;\n if (this.isPopupOpen) {\n if (this.isSelected) {\n li = this.list.querySelector('.' + dropDownListClasses.selected);\n }\n else {\n li = this.list.querySelector('.' + dropDownListClasses.focus);\n }\n if (li) {\n this.setSelection(li, e);\n this.isTyped = false;\n }\n if (this.isSelected) {\n this.isSelectCustom = false;\n this.onChangeEvent(e);\n }\n }\n if (e.action === 'enter' && this.inputElement.value.trim() === '') {\n this.clearAll(e);\n }\n else if (this.isTyped && !this.isSelected && isNullOrUndefined(li)) {\n this.customValue(e);\n }\n this.hidePopup(e);\n };\n ComboBox.prototype.setHoverList = function (li) {\n this.removeSelection();\n if (this.isValidLI(li) && !li.classList.contains(dropDownListClasses.selected)) {\n this.removeFocus();\n li.classList.add(dropDownListClasses.focus);\n }\n };\n ComboBox.prototype.targetFocus = function (e) {\n if (Browser.isDevice && !this.allowFiltering) {\n this.preventFocus = false;\n }\n this.onFocus(e);\n Input.calculateWidth(this.inputElement, this.inputWrapper.container);\n };\n ComboBox.prototype.dropDownClick = function (e) {\n e.preventDefault();\n if (Browser.isDevice && !this.isFiltering()) {\n this.preventFocus = true;\n }\n _super.prototype.dropDownClick.call(this, e);\n };\n ComboBox.prototype.customValue = function (e) {\n var _this = this;\n var value = this.getValueByText(this.inputElement.value);\n if (!this.allowCustom && this.inputElement.value !== '') {\n var previousValue = this.previousValue;\n var currentValue = this.value;\n this.setProperties({ value: value });\n if (isNullOrUndefined(this.value)) {\n Input.setValue('', this.inputElement, this.floatLabelType, this.showClearButton);\n }\n if (this.autofill && previousValue === this.value && currentValue !== this.value) {\n this.onChangeEvent(null);\n }\n }\n else if (this.inputElement.value.trim() !== '') {\n var previousValue_1 = this.value;\n if (isNullOrUndefined(value)) {\n var value_1 = this.inputElement.value === '' ? null : this.inputElement.value;\n // eslint-disable-next-line max-len\n var eventArgs = { text: value_1, item: {} };\n if (!this.initial) {\n this.trigger('customValueSpecifier', eventArgs, function (eventArgs) {\n _this.updateCustomValueCallback(value_1, eventArgs, previousValue_1, e);\n });\n }\n else {\n this.updateCustomValueCallback(value_1, eventArgs, previousValue_1);\n }\n }\n else {\n this.isSelectCustom = false;\n this.setProperties({ value: value });\n if (previousValue_1 !== this.value) {\n this.onChangeEvent(e);\n }\n }\n }\n else if (this.allowCustom) {\n this.isSelectCustom = true;\n }\n };\n ComboBox.prototype.updateCustomValueCallback = function (value, eventArgs, previousValue, e) {\n var fields = this.fields;\n var item = eventArgs.item;\n var dataItem = {};\n if (item && getValue(fields.text, item) && getValue(fields.value, item)) {\n dataItem = item;\n }\n else {\n setValue(fields.text, value, dataItem);\n setValue(fields.value, value, dataItem);\n }\n this.itemData = dataItem;\n var changeData = {\n text: getValue(fields.text, this.itemData),\n value: getValue(fields.value, this.itemData),\n index: null\n };\n this.setProperties(changeData, true);\n this.setSelection(null, null);\n this.isSelectCustom = true;\n if (previousValue !== this.value) {\n this.onChangeEvent(e);\n }\n };\n /**\n * Dynamically change the value of properties.\n *\n * @param {ComboBoxModel} newProp - Returns the dynamic property value of the component.\n * @param {ComboBoxModel} oldProp - Returns the previous property value of the component.\n * @private\n * @returns {void}\n */\n ComboBox.prototype.onPropertyChanged = function (newProp, oldProp) {\n if (this.getModuleName() === 'combobox') {\n this.checkData(newProp);\n this.setUpdateInitial(['fields', 'query', 'dataSource'], newProp);\n }\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'readonly':\n Input.setReadonly(this.readonly, this.inputElement);\n if (this.readonly) {\n EventHandler.remove(this.inputElement, 'input', this.onInput);\n EventHandler.remove(this.inputElement, 'keyup', this.onFilterUp);\n EventHandler.remove(this.inputElement, 'keydown', this.onFilterDown);\n }\n else {\n EventHandler.add(this.inputElement, 'input', this.onInput, this);\n EventHandler.add(this.inputElement, 'keyup', this.onFilterUp, this);\n EventHandler.add(this.inputElement, 'keydown', this.onFilterDown, this);\n }\n this.setReadOnly();\n break;\n case 'allowFiltering':\n this.setSearchBox();\n if (this.isFiltering() && this.getModuleName() === 'combobox' && isNullOrUndefined(this.list)) {\n _super.prototype.renderList.call(this);\n }\n break;\n case 'allowCustom':\n break;\n default: {\n // eslint-disable-next-line max-len\n var comboProps = this.getPropObject(prop, newProp, oldProp);\n _super.prototype.onPropertyChanged.call(this, comboProps.newProperty, comboProps.oldProperty);\n if (this.isFiltering() && prop === 'dataSource' && isNullOrUndefined(this.list) && this.itemTemplate &&\n this.getModuleName() === 'combobox') {\n _super.prototype.renderList.call(this);\n }\n break;\n }\n }\n }\n };\n /**\n * To initialize the control rendering.\n *\n * @private\n * @returns {void}\n */\n ComboBox.prototype.render = function () {\n _super.prototype.render.call(this);\n this.setSearchBox();\n if (this.isFiltering() && this.getModuleName() === 'combobox' && isNullOrUndefined(this.list)) {\n _super.prototype.renderList.call(this);\n }\n this.renderComplete();\n };\n /**\n * Return the module name of this component.\n *\n * @private\n * @returns {string} Return the module name of this component.\n */\n ComboBox.prototype.getModuleName = function () {\n return 'combobox';\n };\n /**\n * Adds a new item to the combobox popup list. By default, new item appends to the list as the last item,\n * but you can insert based on the index parameter.\n *\n * @param { Object[] } items - Specifies an array of JSON data or a JSON data.\n * @param { number } itemIndex - Specifies the index to place the newly added item in the popup list.\n * @returns {void}\n\n */\n ComboBox.prototype.addItem = function (items, itemIndex) {\n _super.prototype.addItem.call(this, items, itemIndex);\n };\n /**\n * To filter the data from given data source by using query\n *\n * @param {Object[] | DataManager } dataSource - Set the data source to filter.\n * @param {Query} query - Specify the query to filter the data.\n * @param {FieldSettingsModel} fields - Specify the fields to map the column in the data table.\n * @returns {void}\n\n */\n ComboBox.prototype.filter = function (dataSource, query, fields) {\n _super.prototype.filter.call(this, dataSource, query, fields);\n };\n /**\n * Opens the popup that displays the list of items.\n *\n * @returns {void}\n\n */\n ComboBox.prototype.showPopup = function (e) {\n _super.prototype.showPopup.call(this, e);\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-param */\n /**\n * Hides the popup if it is in open state.\n *\n * @returns {void}\n\n */\n ComboBox.prototype.hidePopup = function (e) {\n /* eslint-enable valid-jsdoc, jsdoc/require-param */\n var inputValue = this.inputElement && this.inputElement.value === '' ? null\n : this.inputElement && this.inputElement.value;\n if (!isNullOrUndefined(this.listData)) {\n var isEscape = this.isEscapeKey;\n if (this.isEscapeKey) {\n Input.setValue(this.typedString, this.inputElement, this.floatLabelType, this.showClearButton);\n this.isEscapeKey = false;\n }\n if (this.autofill) {\n this.removeFillSelection();\n }\n var dataItem = this.isSelectCustom ? { text: '' } : this.getItemData();\n var selected = !isNullOrUndefined(this.list) ? this.list.querySelector('.' + dropDownListClasses.selected) : null;\n if (this.inputElement && dataItem.text === this.inputElement.value && !isNullOrUndefined(selected)) {\n if (this.isSelected) {\n this.onChangeEvent(e);\n this.isSelectCustom = false;\n }\n _super.prototype.hidePopup.call(this, e);\n return;\n }\n if (this.getModuleName() === 'combobox' && this.inputElement.value.trim() !== '') {\n var dataSource = this.sortedData;\n var type = this.typeOfData(dataSource).typeof;\n var searchItem = Search(this.inputElement.value, this.liCollections, 'Equal', true, dataSource, this.fields, type);\n this.selectedLI = searchItem.item;\n if (isNullOrUndefined(searchItem.index)) {\n searchItem.index = Search(this.inputElement.value, this.liCollections, 'StartsWith', true, dataSource, this.fields, type).index;\n }\n this.activeIndex = searchItem.index;\n if (!isNullOrUndefined(this.selectedLI)) {\n this.updateSelectedItem(this.selectedLI, null, true);\n }\n else if (isEscape) {\n this.isSelectCustom = true;\n this.removeSelection();\n }\n }\n if (!this.isEscapeKey && this.isTyped && !this.isInteracted) {\n this.customValue(e);\n }\n }\n if (isNullOrUndefined(this.listData) && this.allowCustom && !isNullOrUndefined(inputValue) && inputValue !== this.value) {\n this.customValue();\n }\n _super.prototype.hidePopup.call(this, e);\n };\n /**\n * Sets the focus to the component for interaction.\n *\n * @returns {void}\n */\n ComboBox.prototype.focusIn = function () {\n if (!this.enabled) {\n return;\n }\n if (Browser.isDevice && !this.isFiltering()) {\n this.preventFocus = true;\n }\n _super.prototype.focusIn.call(this);\n };\n /**\n * Allows you to clear the selected values from the component.\n *\n * @returns {void}\n\n */\n ComboBox.prototype.clear = function () {\n this.value = null;\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-param */\n /**\n * Moves the focus from the component if the component is already focused.\n *\n * @returns {void}\n\n */\n ComboBox.prototype.focusOut = function (e) {\n /* eslint-enable valid-jsdoc, jsdoc/require-param */\n _super.prototype.focusOut.call(this, e);\n };\n /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */\n /**\n * Gets all the list items bound on this component.\n *\n * @returns {Element[]}\n\n */\n ComboBox.prototype.getItems = function () {\n return _super.prototype.getItems.call(this);\n };\n /**\n * Gets the data Object that matches the given value.\n *\n * @param { string | number } value - Specifies the value of the list item.\n * @returns {Object}\n\n */\n ComboBox.prototype.getDataByValue = function (value) {\n return _super.prototype.getDataByValue.call(this, value);\n };\n /* eslint-enable valid-jsdoc, jsdoc/require-returns-description */\n ComboBox.prototype.renderHightSearch = function () {\n // update high light search\n };\n __decorate([\n Property(false)\n ], ComboBox.prototype, \"autofill\", void 0);\n __decorate([\n Property(true)\n ], ComboBox.prototype, \"allowCustom\", void 0);\n __decorate([\n Property({})\n ], ComboBox.prototype, \"htmlAttributes\", void 0);\n __decorate([\n Property(false)\n ], ComboBox.prototype, \"allowFiltering\", void 0);\n __decorate([\n Property(null)\n ], ComboBox.prototype, \"query\", void 0);\n __decorate([\n Property(null)\n ], ComboBox.prototype, \"index\", void 0);\n __decorate([\n Property(true)\n ], ComboBox.prototype, \"showClearButton\", void 0);\n __decorate([\n Property(false)\n ], ComboBox.prototype, \"enableRtl\", void 0);\n __decorate([\n Event()\n ], ComboBox.prototype, \"customValueSpecifier\", void 0);\n __decorate([\n Event()\n ], ComboBox.prototype, \"filtering\", void 0);\n __decorate([\n Property(null)\n ], ComboBox.prototype, \"valueTemplate\", void 0);\n __decorate([\n Property('Never')\n ], ComboBox.prototype, \"floatLabelType\", void 0);\n __decorate([\n Property(null)\n ], ComboBox.prototype, \"filterBarPlaceholder\", void 0);\n __decorate([\n Property(null)\n ], ComboBox.prototype, \"cssClass\", void 0);\n __decorate([\n Property(null)\n ], ComboBox.prototype, \"headerTemplate\", void 0);\n __decorate([\n Property(null)\n ], ComboBox.prototype, \"footerTemplate\", void 0);\n __decorate([\n Property(null)\n ], ComboBox.prototype, \"placeholder\", void 0);\n __decorate([\n Property('100%')\n ], ComboBox.prototype, \"width\", void 0);\n __decorate([\n Property('300px')\n ], ComboBox.prototype, \"popupHeight\", void 0);\n __decorate([\n Property('100%')\n ], ComboBox.prototype, \"popupWidth\", void 0);\n __decorate([\n Property(false)\n ], ComboBox.prototype, \"readonly\", void 0);\n __decorate([\n Property(null)\n ], ComboBox.prototype, \"text\", void 0);\n __decorate([\n Property(null)\n ], ComboBox.prototype, \"value\", void 0);\n ComboBox = __decorate([\n NotifyPropertyChanges\n ], ComboBox);\n return ComboBox;\n}(DropDownList));\nexport { ComboBox };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/* eslint-disable @typescript-eslint/triple-slash-reference */\n/// \nimport { attributes, NotifyPropertyChanges, Property } from '@syncfusion/ej2-base';\nimport { Browser, Complex, getUniqueID, SanitizeHtmlHelper } from '@syncfusion/ej2-base';\nimport { MenuBase, FieldSettings } from '../common/menu-base';\nvar VMENU = 'e-vertical';\nvar SCROLLABLE = 'e-scrollable';\nvar HAMBURGER = 'e-hamburger';\n/**\n * The Menu is a graphical user interface that serve as navigation headers for your application or site.\n * ```html\n * \n * ```\n * ```typescript\n * \n * ```\n */\nvar Menu = /** @class */ (function (_super) {\n __extends(Menu, _super);\n /**\n * Constructor for creating the component.\n *\n * @private\n * @param {MenuModel} options - Specifies the menu model\n * @param {string} element - Specifies the element\n */\n function Menu(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.tempItems = [];\n return _this;\n }\n /**\n * Get module name.\n *\n * @private\n * @returns {string} - Module Name\n */\n Menu.prototype.getModuleName = function () {\n return 'menu';\n };\n /**\n * For internal use only - prerender processing.\n *\n * @private\n * @returns {void}\n */\n Menu.prototype.preRender = function () {\n this.isMenu = true;\n this.element.id = this.element.id || getUniqueID('ej2-menu');\n if (this.template) {\n try {\n if (document.querySelectorAll(this.template).length) {\n this.template = document.querySelector(this.template).innerHTML.trim();\n this.clearChanges();\n }\n }\n catch (e) {\n /* action on catch */\n }\n this.updateMenuItems(this.items);\n }\n else {\n this.updateMenuItems(this.items);\n }\n _super.prototype.preRender.call(this);\n };\n Menu.prototype.initialize = function () {\n _super.prototype.initialize.call(this);\n attributes(this.element, { 'role': 'menubar', 'tabindex': '0' });\n if (this.orientation === 'Vertical') {\n this.element.classList.add(VMENU);\n if (this.hamburgerMode && !this.target) {\n this.element.previousElementSibling.classList.add(VMENU);\n }\n this.element.setAttribute('aria-orientation', 'vertical');\n }\n else {\n if (Browser.isDevice && !this.enableScrolling) {\n this.element.parentElement.classList.add(SCROLLABLE);\n }\n }\n if (this.hamburgerMode) {\n this.element.parentElement.classList.add(HAMBURGER);\n if (this.orientation === 'Horizontal') {\n this.element.classList.add('e-hide-menu');\n }\n }\n };\n Menu.prototype.updateMenuItems = function (items) {\n this.tempItems = items;\n this.items = [];\n this.tempItems.map(this.createMenuItems, this);\n this.setProperties({ items: this.items }, true);\n this.tempItems = [];\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @private\n * @param {MenuModel} newProp - Specifies the new properties.\n * @param {MenuModel} oldProp - Specifies the old properties.\n * @returns {void}\n */\n Menu.prototype.onPropertyChanged = function (newProp, oldProp) {\n var _this = this;\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'orientation':\n if (newProp.orientation === 'Vertical') {\n this.element.classList.add(VMENU);\n if (this.hamburgerMode) {\n if (!this.target) {\n this.element.previousElementSibling.classList.add(VMENU);\n }\n this.element.classList.remove('e-hide-menu');\n }\n this.element.setAttribute('aria-orientation', 'vertical');\n }\n else {\n this.element.classList.remove(VMENU);\n if (this.hamburgerMode) {\n if (!this.target) {\n this.element.previousElementSibling.classList.remove(VMENU);\n }\n this.element.classList.add('e-hide-menu');\n }\n this.element.removeAttribute('aria-orientation');\n }\n break;\n case 'items':\n if (!Object.keys(oldProp.items).length) {\n this.updateMenuItems(newProp.items);\n }\n break;\n case 'hamburgerMode':\n if (!this.element.previousElementSibling) {\n _super.prototype.createHeaderContainer.call(this);\n }\n if (newProp.hamburgerMode) {\n this.element.parentElement.classList.add(HAMBURGER);\n [].slice.call(this.element.getElementsByClassName('e-blankicon')).forEach(function (li) {\n li.style[_this.enableRtl ? 'paddingRight' : 'paddingLeft'] = '';\n });\n }\n else {\n this.element.parentElement.classList.remove(HAMBURGER);\n if (this.orientation === 'Vertical') {\n this.setBlankIconStyle(this.element);\n }\n }\n if (this.orientation === 'Vertical') {\n if (!this.target) {\n this.element.previousElementSibling.classList.add(VMENU);\n }\n this.element.classList.remove('e-hide-menu');\n }\n else {\n if (this.target) {\n this.element.previousElementSibling.classList.add(VMENU);\n }\n else {\n this.element.previousElementSibling.classList.remove(VMENU);\n }\n this.element.classList[newProp.hamburgerMode ? 'add' : 'remove']('e-hide-menu');\n }\n break;\n case 'title':\n if (this.hamburgerMode && this.element.previousElementSibling) {\n newProp.title = (this.enableHtmlSanitizer) ? SanitizeHtmlHelper.sanitize(newProp.title) : newProp.title;\n this.element.previousElementSibling.querySelector('.e-menu-title').innerHTML = newProp.title;\n }\n break;\n case 'target':\n if (this.hamburgerMode) {\n this.unWireEvents(oldProp.target);\n this.wireEvents();\n if (this.orientation === 'Horizontal') {\n if (!newProp.target) {\n if (!this.element.previousElementSibling) {\n _super.prototype.createHeaderContainer.call(this);\n }\n this.element.previousElementSibling.classList.remove(VMENU);\n }\n else {\n this.element.previousElementSibling.classList.add(VMENU);\n }\n this.element.classList.add('e-hide-menu');\n }\n }\n break;\n }\n }\n _super.prototype.onPropertyChanged.call(this, newProp, oldProp);\n };\n Menu.prototype.createMenuItems = function (item) {\n var idx;\n var i;\n var items = this.items;\n var pIdField = this.getField('parentId');\n if (item[\"\" + pIdField]) {\n idx = this.getIndex(item[\"\" + pIdField].toString(), true);\n for (i = 0; i < idx.length; i++) {\n if (!items[idx[i]].items) {\n items[idx[i]].items = [];\n }\n items = items[idx[i]].items;\n }\n items.push(item);\n }\n else {\n this.items.push(item);\n }\n };\n /**\n * This method is used to open the Menu in hamburger mode.\n *\n * @function open\n * @returns {void}\n */\n Menu.prototype.open = function () {\n _super.prototype.openHamburgerMenu.call(this);\n };\n /**\n * Closes the Menu if it is opened in hamburger mode.\n *\n * @function close\n * @returns {void}\n */\n Menu.prototype.close = function () {\n _super.prototype.closeHamburgerMenu.call(this);\n };\n __decorate([\n Property('Horizontal')\n ], Menu.prototype, \"orientation\", void 0);\n __decorate([\n Property('')\n ], Menu.prototype, \"target\", void 0);\n __decorate([\n Property(null)\n ], Menu.prototype, \"template\", void 0);\n __decorate([\n Property(false)\n ], Menu.prototype, \"enableScrolling\", void 0);\n __decorate([\n Property(false)\n ], Menu.prototype, \"hamburgerMode\", void 0);\n __decorate([\n Property('Menu')\n ], Menu.prototype, \"title\", void 0);\n __decorate([\n Property(false)\n ], Menu.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Complex({ itemId: 'id', text: 'text', parentId: 'parentId', iconCss: 'iconCss', url: 'url', separator: 'separator', children: 'items' }, FieldSettings)\n ], Menu.prototype, \"fields\", void 0);\n Menu = __decorate([\n NotifyPropertyChanges\n ], Menu);\n return Menu;\n}(MenuBase));\nexport { Menu };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { ChildProperty, extend, deleteObject, Property, addClass, isNullOrUndefined } from '@syncfusion/ej2-base';\n/**\n * @param {Object} props - Specifies the properties\n * @param {string[]} model - Specifies the model\n * @returns {Object} Component Model\n */\nexport function getModel(props, model) {\n var obj = extend({}, props);\n for (var _i = 0, _a = Object.keys(obj); _i < _a.length; _i++) {\n var prop = _a[_i];\n if ((model).indexOf(prop) < 0) {\n deleteObject(obj, prop);\n }\n }\n return obj;\n}\n/** @hidden\n * @param {HTMLElement} ul - Specifies the UL element\n * @param {number} keyCode - Specifies the keycode\n * @returns {void}\n */\nexport function upDownKeyHandler(ul, keyCode) {\n var defaultIdx = keyCode === 40 ? 0 : ul.childElementCount - 1;\n var liIdx = defaultIdx;\n var li;\n var selectedLi = ul.querySelector('.e-selected');\n if (selectedLi) {\n selectedLi.classList.remove('e-selected');\n }\n for (var i = 0, len = ul.children.length; i < len; i++) {\n if (ul.children[i].classList.contains('e-focused')) {\n li = ul.children[i];\n liIdx = i;\n li.classList.remove('e-focused');\n if (keyCode === 40) {\n liIdx++;\n }\n else {\n liIdx--;\n }\n if (liIdx === (keyCode === 40 ? ul.childElementCount : -1)) {\n liIdx = defaultIdx;\n }\n }\n }\n li = ul.children[liIdx];\n liIdx = isValidLI(ul, li, liIdx, keyCode);\n if (liIdx !== -1) {\n addClass([ul.children[liIdx]], 'e-focused');\n ul.children[liIdx].focus();\n }\n}\n/**\n * Get Valid LI element\n *\n * @param {HTMLElement} ul - Specifies the UL element\n * @param {Element} li - Specifies the LI element\n * @param {number} index - Specifies the index\n * @param {number} keyCode - Specifies the keycode\n * @param {number} count - Specifies the count\n * @returns {number} - Index\n */\nfunction isValidLI(ul, li, index, keyCode, count) {\n if (count === void 0) { count = 0; }\n if (li.classList.contains('e-separator') || li.classList.contains('e-disabled')) {\n if (index === (keyCode === 40 ? ul.childElementCount - 1 : 0)) {\n index = keyCode === 40 ? 0 : ul.childElementCount - 1;\n }\n else {\n if (keyCode === 40) {\n index++;\n }\n else {\n index--;\n }\n }\n }\n li = ul.children[index];\n if (li.classList.contains('e-separator') || li.classList.contains('e-disabled')) {\n count++;\n if (count === ul.childElementCount) {\n return index = -1;\n }\n index = isValidLI(ul, li, index, keyCode, count);\n }\n return index;\n}\n/** @hidden\n * @param {HTMLElement} popup - Specifies the popup element.\n * @returns {void}\n */\nexport function setBlankIconStyle(popup, blankIcon) {\n var blankIconList = [].slice.call(popup.getElementsByClassName('e-blank-icon'));\n if (blankIcon) {\n var menuItem = [].slice.call(popup.getElementsByClassName('e-item'));\n menuItem.forEach(function (li) {\n if (li.style.paddingLeft || li.style.paddingRight) {\n li.removeAttribute('style');\n }\n });\n }\n if (!blankIconList.length) {\n return;\n }\n var iconLi = popup.querySelector('.e-item:not(.e-blank-icon):not(.e-separator)');\n if (isNullOrUndefined(iconLi)) {\n return;\n }\n if (iconLi.classList.contains('e-url')) {\n iconLi = iconLi.querySelector('.e-menu-url');\n }\n var icon = iconLi.querySelector('.e-menu-icon');\n var cssProp;\n var enableRtl = popup.classList.contains('e-rtl');\n if (enableRtl) {\n cssProp = { padding: 'paddingRight', margin: 'marginLeft' };\n }\n else {\n cssProp = { padding: 'paddingLeft', margin: 'marginRight' };\n }\n /* eslint-disable */\n var size = parseInt(getComputedStyle(icon).fontSize, 10) + parseInt((enableRtl ? getComputedStyle(icon)[cssProp.margin] : getComputedStyle(icon)[cssProp.margin]), 10)\n + parseInt(getComputedStyle(iconLi).paddingLeft, 10) + \"px\";\n blankIconList.forEach(function (li) {\n if (li.classList.contains('e-url')) {\n li.querySelector('.e-menu-url').style[cssProp.padding] = size;\n }\n else {\n li.style[cssProp.padding] = size;\n }\n });\n /* eslint-enable */\n}\n/**\n * Defines the items of Split Button/DropDownButton.\n */\nvar Item = /** @class */ (function (_super) {\n __extends(Item, _super);\n function Item() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], Item.prototype, \"iconCss\", void 0);\n __decorate([\n Property('')\n ], Item.prototype, \"id\", void 0);\n __decorate([\n Property(false)\n ], Item.prototype, \"separator\", void 0);\n __decorate([\n Property('')\n ], Item.prototype, \"text\", void 0);\n __decorate([\n Property('')\n ], Item.prototype, \"url\", void 0);\n __decorate([\n Property(false)\n ], Item.prototype, \"disabled\", void 0);\n return Item;\n}(ChildProperty));\nexport { Item };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Collection, Event, NotifyPropertyChanges, detach, Property, EventHandler, isRippleEnabled } from '@syncfusion/ej2-base';\nimport { addClass, getUniqueID, rippleEffect, getComponent } from '@syncfusion/ej2-base';\nimport { attributes, Component, closest, select, SanitizeHtmlHelper } from '@syncfusion/ej2-base';\nimport { classList, removeClass } from '@syncfusion/ej2-base';\nimport { Button } from '@syncfusion/ej2-buttons';\nimport { Popup } from '@syncfusion/ej2-popups';\nimport { upDownKeyHandler } from './../common/common';\nimport { getModel, Item, setBlankIconStyle } from './../common/common';\nvar classNames = {\n DISABLED: 'e-disabled',\n FOCUS: 'e-focused',\n ICON: 'e-menu-icon',\n ITEM: 'e-item',\n POPUP: 'e-dropdown-popup',\n RTL: 'e-rtl',\n SEPARATOR: 'e-separator',\n VERTICAL: 'e-vertical'\n};\n/**\n * DropDownButton component is used to toggle contextual overlays for displaying list of action items.\n * It can contain both text and images.\n * ```html\n * \n * ```\n * ```typescript\n * \n * ```\n */\nvar DropDownButton = /** @class */ (function (_super) {\n __extends(DropDownButton, _super);\n /**\n * Constructor for creating the widget\n *\n * @param {DropDownButtonModel} options - Specifies dropdown button model\n * @param {string|HTMLButtonElement} element - Specifies element\n * @hidden\n */\n function DropDownButton(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.isPopupCreated = true;\n return _this;\n }\n DropDownButton.prototype.preRender = function () {\n /** */\n };\n /**\n * Get the properties to be maintained in the persisted state.\n *\n * @returns {string} - Persist data\n */\n DropDownButton.prototype.getPersistData = function () {\n return this.addOnPersist([]);\n };\n /**\n * To open/close DropDownButton popup based on current state of the DropDownButton.\n *\n * @returns {void}\n */\n DropDownButton.prototype.toggle = function () {\n if (this.canOpen()) {\n this.openPopUp();\n }\n else {\n this.closePopup();\n }\n };\n /**\n * Initialize the Component rendering\n *\n * @returns {void}\n * @private\n */\n DropDownButton.prototype.render = function () {\n this.initialize();\n if (!this.disabled) {\n this.wireEvents();\n }\n this.renderComplete();\n };\n /**\n * Adds a new item to the menu. By default, new item appends to the list as the last item,\n * but you can insert based on the text parameter.\n *\n * @param { ItemModel[] } items - Specifies an array of JSON data.\n * @param { string } text - Specifies the text to insert the newly added item in the menu.\n * @returns {void}.\n */\n DropDownButton.prototype.addItems = function (items, text) {\n var newItem;\n var idx = this.items.length;\n for (var j = 0, len = this.items.length; j < len; j++) {\n if (text === this.items[j].text) {\n idx = j;\n break;\n }\n }\n for (var i = items.length - 1; i >= 0; i--) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n newItem = new Item(this, 'items', items[i], true);\n this.items.splice(idx, 0, newItem);\n }\n if (!this.canOpen()) {\n this.createItems();\n }\n };\n /**\n * Removes the items from the menu.\n *\n * @param { string[] } items - Specifies an array of string to remove the items.\n * @param { string } isUniqueId - Set `true` if specified items is a collection of unique id.\n * @returns {void}.\n */\n DropDownButton.prototype.removeItems = function (items, isUniqueId) {\n var refresh = false;\n for (var i = 0, len = items.length; i < len; i++) {\n for (var j = 0, len_1 = this.items.length; j < len_1; j++) {\n if (items[i] === (isUniqueId ? this.items[j].id : this.items[j].text)) {\n this.items.splice(j, 1);\n refresh = true;\n break;\n }\n }\n }\n if (refresh && this.getULElement()) {\n this.createItems();\n }\n };\n DropDownButton.prototype.createPopup = function () {\n var _a;\n var div = this.createElement('div', {\n className: classNames.POPUP,\n id: this.element.id + '-popup'\n });\n document.body.appendChild(div);\n this.dropDown = new Popup(div, {\n relateTo: this.element,\n collision: { X: 'fit', Y: 'flip' },\n position: { X: 'left', Y: 'bottom' },\n targetType: 'relative',\n content: this.target ? this.getTargetElement() : '',\n enableRtl: this.enableRtl\n });\n if (this.dropDown.element.style.position === 'fixed') {\n this.dropDown.refreshPosition(this.element);\n }\n this.dropDown.hide();\n attributes(this.element, (_a = {},\n _a['aria-haspopup'] = this.items.length || this.target ? 'true' : 'false',\n _a['aria-expanded'] = 'false',\n _a['type'] = 'button',\n _a['aria-label'] = this.element.textContent ? this.element.textContent : 'dropdownbutton',\n _a));\n if (this.cssClass) {\n addClass([div], this.cssClass.split(' '));\n }\n this.isPopupCreated = true;\n };\n DropDownButton.prototype.getTargetElement = function () {\n return typeof (this.target) === 'string' ? select(this.target) : this.target;\n };\n DropDownButton.prototype.createItems = function (appendItems) {\n var items = this.items;\n var showIcon = this.hasIcon(this.items, 'iconCss');\n var span;\n var item;\n var li;\n var eventArgs;\n var ul = this.getULElement();\n if (ul) {\n ul.innerHTML = '';\n }\n else {\n ul = this.createElement('ul', {\n attrs: { 'role': 'menu', 'tabindex': '0' }\n });\n }\n for (var i = 0; i < items.length; i++) {\n item = items[i];\n var tempItem = item.text;\n li = this.createElement('li', {\n innerHTML: item.url ? '' : tempItem,\n className: item.separator ? classNames.ITEM + ' ' + classNames.SEPARATOR : classNames.ITEM,\n attrs: item.separator ? { 'role': 'separator', 'tabindex': '-1' } : { 'role': 'menuitem', 'tabindex': '-1', 'aria-label': tempItem },\n id: item.id ? item.id : getUniqueID('e-' + this.getModuleName() + '-item')\n });\n if (this.enableHtmlSanitizer) {\n li.textContent = item.url ? '' : tempItem;\n }\n else {\n li.innerHTML = item.url ? '' : tempItem;\n }\n if (item.url) {\n li.appendChild(this.createAnchor(item));\n li.classList.add('e-url');\n }\n if (item.iconCss) {\n span = this.createElement('span', { className: classNames.ICON + ' ' + item.iconCss });\n if (item.url) {\n li.childNodes[0].appendChild(span);\n }\n else {\n li.insertBefore(span, li.childNodes[0]);\n }\n }\n else {\n if (showIcon && !item.separator) {\n li.classList.add('e-blank-icon');\n }\n }\n if (item.disabled) {\n li.classList.add('e-disabled');\n }\n eventArgs = { item: item, element: li };\n this.trigger('beforeItemRender', eventArgs);\n ul.appendChild(li);\n }\n if (appendItems) {\n this.getPopUpElement().appendChild(ul);\n }\n if (showIcon) {\n setBlankIconStyle(this.getPopUpElement());\n }\n };\n DropDownButton.prototype.hasIcon = function (items, field) {\n for (var i = 0, len = items.length; i < len; i++) {\n if (items[i][\"\" + field]) {\n return true;\n }\n }\n return false;\n };\n DropDownButton.prototype.createAnchor = function (item) {\n var tempItem = (this.enableHtmlSanitizer) ? SanitizeHtmlHelper.sanitize(item.text) : item.text;\n return this.createElement('a', { className: 'e-menu-text e-menu-url', innerHTML: tempItem, attrs: { 'href': item.url } });\n };\n DropDownButton.prototype.initialize = function () {\n this.button = new Button({\n iconCss: this.iconCss, iconPosition: this.iconPosition, cssClass: this.cssClass, content: this.content,\n disabled: this.disabled, enableRtl: this.enableRtl, enablePersistence: this.enablePersistence\n });\n this.button.createElement = this.createElement;\n this.button.appendTo(this.element);\n if (!this.element.id) {\n this.element.id = getUniqueID('e-' + this.getModuleName());\n }\n this.appendArrowSpan();\n this.setActiveElem([this.element]);\n if ((this.target && !this.isColorPicker()) || !this.createPopupOnClick) {\n this.createPopup();\n }\n else {\n this.isPopupCreated = false;\n }\n };\n DropDownButton.prototype.isColorPicker = function () {\n if (!this.element) {\n return false;\n }\n var prevElem = this.element.previousSibling;\n if (prevElem && prevElem.classList && prevElem.classList.contains('e-split-colorpicker')) {\n return true;\n }\n return false;\n };\n DropDownButton.prototype.appendArrowSpan = function () {\n this.element.appendChild(this.createElement('span', {\n className: 'e-btn-icon e-icons ' + 'e-icon-' + (this.cssClass.indexOf(classNames.VERTICAL) > -1\n ? 'bottom' : 'right') + ' e-caret'\n }));\n };\n DropDownButton.prototype.setActiveElem = function (elem) {\n this.activeElem = elem;\n };\n /**\n * Get component name.\n *\n * @returns {string} - Module Name\n * @private\n */\n DropDownButton.prototype.getModuleName = function () {\n return 'dropdown-btn';\n };\n DropDownButton.prototype.canOpen = function () {\n var val = false;\n if (this.isPopupCreated) {\n val = this.getPopUpElement().classList.contains('e-popup-close');\n }\n return val;\n };\n /**\n * Destroys the widget.\n *\n * @returns {void}\n */\n DropDownButton.prototype.destroy = function () {\n var _this = this;\n _super.prototype.destroy.call(this);\n if (this.getModuleName() === 'dropdown-btn') {\n var classList_1;\n if (this.element.querySelector('span.e-caret')) {\n detach(this.element.querySelector('span.e-caret'));\n }\n if (this.cssClass) {\n classList_1 = this.cssClass.split(' ');\n }\n this.button.destroy();\n if (classList_1) {\n removeClass([this.element], classList_1);\n }\n removeClass(this.activeElem, ['e-active']);\n var attrList = this.element.getAttribute('class') ? ['aria-haspopup', 'aria-expanded', 'aria-owns', 'type']\n : ['aria-haspopup', 'aria-expanded', 'aria-owns', 'type', 'class'];\n attrList.forEach(function (key) {\n _this.element.removeAttribute(key);\n });\n this.popupUnWireEvents();\n this.destroyPopup();\n this.isPopupCreated = false;\n if (!this.disabled) {\n this.unWireEvents();\n }\n }\n };\n DropDownButton.prototype.destroyPopup = function () {\n if (this.isPopupCreated) {\n this.dropDown.destroy();\n if (this.getPopUpElement()) {\n var popupEle = document.getElementById(this.getPopUpElement().id);\n if (popupEle) {\n removeClass([popupEle], ['e-popup-open', 'e-popup-close']);\n detach(popupEle);\n }\n }\n EventHandler.remove(this.getPopUpElement(), 'click', this.clickHandler);\n EventHandler.remove(this.getPopUpElement(), 'keydown', this.keyBoardHandler);\n if (this.isPopupCreated) {\n this.dropDown = undefined;\n }\n }\n this.isPopupCreated = false;\n };\n DropDownButton.prototype.getPopUpElement = function () {\n var val = null;\n if (this.dropDown) {\n val = this.dropDown.element;\n }\n return val;\n };\n DropDownButton.prototype.getULElement = function () {\n var val = null;\n if (this.getPopUpElement()) {\n val = this.getPopUpElement().children[0];\n }\n return val;\n };\n DropDownButton.prototype.wireEvents = function () {\n this.delegateMousedownHandler = this.mousedownHandler.bind(this);\n if (!this.createPopupOnClick) {\n EventHandler.add(document, 'mousedown touchstart', this.delegateMousedownHandler, this);\n }\n EventHandler.add(this.element, 'click', this.clickHandler, this);\n EventHandler.add(this.element, 'keydown', this.keyBoardHandler, this);\n };\n DropDownButton.prototype.popupWireEvents = function () {\n var popupElement = this.getPopUpElement();\n if (this.createPopupOnClick) {\n EventHandler.add(document, 'mousedown touchstart', this.delegateMousedownHandler, this);\n }\n if (popupElement) {\n EventHandler.add(popupElement, 'click', this.clickHandler, this);\n EventHandler.add(popupElement, 'keydown', this.keyBoardHandler, this);\n if (this.closeActionEvents) {\n EventHandler.add(popupElement, this.closeActionEvents, this.focusoutHandler, this);\n }\n }\n this.rippleFn = rippleEffect(popupElement, { selector: '.' + classNames.ITEM });\n };\n DropDownButton.prototype.popupUnWireEvents = function () {\n var popupElement = this.getPopUpElement();\n if (this.createPopupOnClick) {\n EventHandler.remove(document, 'mousedown touchstart', this.delegateMousedownHandler);\n }\n if (popupElement && popupElement.parentElement) {\n EventHandler.remove(popupElement, 'click', this.clickHandler);\n EventHandler.remove(popupElement, 'keydown', this.keyBoardHandler);\n if (this.closeActionEvents) {\n EventHandler.remove(popupElement, this.closeActionEvents, this.focusoutHandler);\n }\n }\n if (isRippleEnabled && this.rippleFn) {\n this.rippleFn();\n }\n };\n /**\n * Handles the keyboard interactions.\n *\n * @param {KeyboardEventArgs} e - Specifies keyboard event args.\n * @returns {void}\n * @hidden\n */\n DropDownButton.prototype.keyBoardHandler = function (e) {\n if (e.target === this.element && (e.keyCode === 9 || (!e.altKey && e.keyCode === 40) || e.keyCode === 38)) {\n return;\n }\n switch (e.keyCode) {\n case 38:\n case 40:\n if (e.altKey && (e.keyCode === 38 || e.keyCode === 40)) {\n this.keyEventHandler(e);\n }\n else {\n this.upDownKeyHandler(e);\n }\n break;\n case 9:\n case 13:\n case 27:\n case 32:\n this.keyEventHandler(e);\n break;\n }\n };\n DropDownButton.prototype.upDownKeyHandler = function (e) {\n if (this.target && (e.keyCode === 38 || e.keyCode === 40)) {\n return;\n }\n e.preventDefault();\n upDownKeyHandler(this.getULElement(), e.keyCode);\n };\n DropDownButton.prototype.keyEventHandler = function (e) {\n if (this.target && (e.keyCode === 13 || e.keyCode === 9)) {\n return;\n }\n if (e.target && e.target.className.indexOf('e-edit-template') > -1 && e.keyCode === 32) {\n return;\n }\n if (e.keyCode !== 9) {\n e.preventDefault();\n }\n if (e.keyCode === 27 || e.keyCode === 38 || e.keyCode === 9) {\n if (!this.canOpen()) {\n this.closePopup(e, this.element);\n }\n }\n else {\n this.clickHandler(e);\n }\n };\n DropDownButton.prototype.getLI = function (elem) {\n return elem.tagName === 'LI' ? elem : closest(elem, 'li');\n };\n DropDownButton.prototype.mousedownHandler = function (e) {\n var trgt = e.target;\n if (this.dropDown && !this.canOpen() && !(closest(trgt, '[id=\"' + this.getPopUpElement().id + '\"]')\n || closest(trgt, '[id=\"' + this.element.id + '\"]'))) {\n this.closePopup(e);\n }\n };\n DropDownButton.prototype.focusoutHandler = function (e) {\n if (this.isPopupCreated && !this.canOpen()) {\n var liTarget = e.relatedTarget;\n if (liTarget && liTarget.className.indexOf('e-item') > -1) {\n var li = this.getLI(liTarget);\n if (li) {\n var liIdx = Array.prototype.indexOf.call(this.getULElement().children, li);\n var item = this.items[liIdx];\n if (item) {\n var selectEventArgs = { element: li, item: item };\n this.trigger('select', selectEventArgs);\n }\n }\n }\n this.closePopup(e);\n }\n };\n DropDownButton.prototype.clickHandler = function (e) {\n var trgt = e.target;\n if (closest(trgt, '[id=\"' + this.element.id + '\"]')) {\n if (!this.createPopupOnClick || (this.target && !this.isColorPicker())) {\n if (this.getPopUpElement().classList.contains('e-popup-close')) {\n this.openPopUp(e);\n }\n else {\n this.closePopup(e);\n }\n }\n else if (this.isPopupCreated) {\n this.closePopup(e, this.activeElem[0]);\n }\n else {\n this.createPopup();\n this.openPopUp(e);\n }\n }\n else {\n if (closest(trgt, '[id=\"' + this.getPopUpElement().id + '\"]')) {\n var eventArgs = void 0;\n var liIdx = void 0;\n var item = void 0;\n var li = this.getLI(trgt);\n if (li) {\n liIdx = Array.prototype.indexOf.call(this.getULElement().children, li);\n item = this.items[liIdx];\n if (item) {\n eventArgs = { element: li, item: item };\n this.trigger('select', eventArgs);\n }\n this.closePopup(e, this.activeElem[0]);\n }\n }\n }\n };\n DropDownButton.prototype.openPopUp = function (e) {\n var _this = this;\n if (e === void 0) { e = null; }\n var isReact = false;\n var popupElem = this.getPopUpElement();\n if (!this.target) {\n this.createItems(true);\n }\n else {\n if (this.activeElem.length > 1) {\n var splitButton = getComponent(this.activeElem[0], 'split-btn');\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (splitButton.isReact && popupElem.childNodes.length < 1) {\n isReact = true;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n splitButton.appendReactElement(this.getTargetElement(), this.getPopUpElement());\n this.renderReactTemplates();\n }\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact && popupElem.childNodes.length < 1) {\n isReact = true;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.appendReactElement(this.getTargetElement(), this.getPopUpElement());\n this.renderReactTemplates();\n }\n }\n }\n var ul = this.getULElement();\n this.popupWireEvents();\n var beforeOpenArgs = { element: ul, items: this.items, event: e, cancel: false };\n this.trigger('beforeOpen', beforeOpenArgs, function (observedArgs) {\n if (!observedArgs.cancel) {\n var ul_1 = _this.getULElement();\n _this.dropDown.show(null, _this.element);\n addClass([_this.element], 'e-active');\n _this.element.setAttribute('aria-expanded', 'true');\n _this.element.setAttribute('aria-owns', _this.getPopUpElement().id);\n if (ul_1) {\n ul_1.focus();\n }\n var openArgs = { element: ul_1, items: _this.items };\n _this.trigger('open', openArgs);\n }\n });\n };\n DropDownButton.prototype.closePopup = function (e, focusEle) {\n var _this = this;\n if (e === void 0) { e = null; }\n var ul = this.getULElement();\n var beforeCloseArgs = { element: ul, items: this.items, event: e, cancel: false };\n this.trigger('beforeClose', beforeCloseArgs, function (observedArgs) {\n if (!observedArgs.cancel) {\n var popupElement = _this.getPopUpElement();\n if (popupElement) {\n EventHandler.remove(popupElement, 'keydown', _this.keyBoardHandler);\n }\n _this.popupUnWireEvents();\n var ul_2 = _this.getULElement();\n var selectedLi = void 0;\n if (ul_2) {\n selectedLi = ul_2.querySelector('.e-selected');\n }\n if (selectedLi) {\n selectedLi.classList.remove('e-selected');\n }\n _this.dropDown.hide();\n removeClass(_this.activeElem, 'e-active');\n _this.element.setAttribute('aria-expanded', 'false');\n _this.element.removeAttribute('aria-owns');\n if (focusEle) {\n focusEle.focus();\n }\n var closeArgs = { element: ul_2, items: _this.items };\n _this.trigger('close', closeArgs);\n if (!_this.target && ul_2) {\n detach(ul_2);\n }\n if (!_this.target || _this.isColorPicker()) {\n if (_this.createPopupOnClick) {\n _this.destroyPopup();\n }\n }\n if (_this.target) {\n _this.isPopupCreated = _this.createPopupOnClick ? false : true;\n }\n }\n else {\n if (ul) {\n ul.focus();\n }\n }\n });\n };\n DropDownButton.prototype.unWireEvents = function () {\n if (!this.createPopupOnClick) {\n EventHandler.remove(document, 'mousedown touchstart', this.delegateMousedownHandler);\n }\n EventHandler.remove(this.element, 'click', this.clickHandler);\n EventHandler.remove(this.element, 'keydown', this.keyBoardHandler);\n if (this.isPopupCreated) {\n EventHandler.remove(this.getPopUpElement(), 'click', this.clickHandler);\n EventHandler.remove(this.getPopUpElement(), 'keydown', this.keyBoardHandler);\n }\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {DropDownButtonModel} newProp - Specifies new properties\n * @param {DropDownButtonModel} oldProp - Specifies old properties\n * @returns {void}\n * @private\n */\n DropDownButton.prototype.onPropertyChanged = function (newProp, oldProp) {\n var btnModel = ['content', 'cssClass', 'iconCss', 'iconPosition', 'disabled', 'enableRtl'];\n this.button.setProperties(getModel(newProp, btnModel));\n var popupElement;\n if (this.isPopupCreated) {\n popupElement = this.getPopUpElement();\n this.dropDown.setProperties(getModel(newProp, ['enableRtl']));\n }\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'content':\n if (!this.element.querySelector('span.e-caret')) {\n this.appendArrowSpan();\n }\n break;\n case 'disabled':\n if (newProp.disabled) {\n this.unWireEvents();\n if (this.isPopupCreated && !this.canOpen()) {\n this.closePopup();\n }\n }\n else {\n this.wireEvents();\n }\n break;\n case 'cssClass':\n if (newProp.cssClass.indexOf(classNames.VERTICAL) > -1 || oldProp.cssClass.indexOf(classNames.VERTICAL) > -1) {\n if (!this.element.querySelector('span.e-caret')) {\n this.appendArrowSpan();\n }\n var arrowSpan = this.element.querySelector('span.e-caret');\n newProp.cssClass.indexOf(classNames.VERTICAL) > -1 ? classList(arrowSpan, ['e-icon-bottom'], ['e-icon-right'])\n : classList(arrowSpan, ['e-icon-right'], ['e-icon-bottom']);\n }\n if (this.isPopupCreated) {\n if (oldProp.cssClass) {\n removeClass([popupElement], oldProp.cssClass.split(' '));\n }\n if (newProp.cssClass) {\n addClass([popupElement], newProp.cssClass.split(' '));\n }\n }\n break;\n case 'target':\n this.dropDown.content = this.getTargetElement();\n this.dropDown.dataBind();\n break;\n case 'items':\n if (this.isPopupCreated && this.getULElement()) {\n this.createItems();\n }\n break;\n case 'createPopupOnClick':\n if (newProp.createPopupOnClick) {\n this.destroyPopup();\n }\n else {\n this.createPopup();\n }\n break;\n }\n }\n };\n /**\n * Sets the focus to DropDownButton\n * its native method\n *\n * @public\n * @returns {void}\n */\n DropDownButton.prototype.focusIn = function () {\n this.element.focus();\n };\n __decorate([\n Property('')\n ], DropDownButton.prototype, \"content\", void 0);\n __decorate([\n Property('')\n ], DropDownButton.prototype, \"cssClass\", void 0);\n __decorate([\n Property(false)\n ], DropDownButton.prototype, \"disabled\", void 0);\n __decorate([\n Property('')\n ], DropDownButton.prototype, \"iconCss\", void 0);\n __decorate([\n Property('Left')\n ], DropDownButton.prototype, \"iconPosition\", void 0);\n __decorate([\n Property(false)\n ], DropDownButton.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Collection([], Item)\n ], DropDownButton.prototype, \"items\", void 0);\n __decorate([\n Property(false)\n ], DropDownButton.prototype, \"createPopupOnClick\", void 0);\n __decorate([\n Property('')\n ], DropDownButton.prototype, \"target\", void 0);\n __decorate([\n Property('')\n ], DropDownButton.prototype, \"closeActionEvents\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"beforeItemRender\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"beforeOpen\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"beforeClose\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"close\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"open\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"select\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"created\", void 0);\n DropDownButton = __decorate([\n NotifyPropertyChanges\n ], DropDownButton);\n return DropDownButton;\n}(Component));\nexport { DropDownButton };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n// eslint-disable-next-line @typescript-eslint/triple-slash-reference\n/// \nimport { Event, remove, addClass, removeClass, detach, getValue, setValue } from '@syncfusion/ej2-base';\nimport { EventHandler, Collection, NotifyPropertyChanges, Property } from '@syncfusion/ej2-base';\nimport { attributes, getUniqueID, getInstance, KeyboardEvents } from '@syncfusion/ej2-base';\nimport { Button } from '@syncfusion/ej2-buttons';\nimport { getModel, Item } from './../common/common';\nimport { DropDownButton } from '../drop-down-button/drop-down-button';\nvar RTL = 'e-rtl';\nvar TAGNAME = 'EJS-SPLITBUTTON';\n/**\n * SplitButton component has primary and secondary button. Primary button is used to select\n * default action and secondary button is used to toggle contextual overlays for displaying list of\n * action items. It can contain both text and images.\n * ```html\n * \n * ```\n * ```typescript\n * \n * ```\n */\nvar SplitButton = /** @class */ (function (_super) {\n __extends(SplitButton, _super);\n /**\n * Constructor for creating the widget\n *\n * @param {SplitButtonModel} options - Specifies the splitbutton model\n * @param {string|HTMLButtonElement} element - Specifies the element\n * @hidden\n */\n function SplitButton(options, element) {\n return _super.call(this, options, element) || this;\n }\n /**\n * Initialize Angular support.\n *\n * @private\n * @returns {void}\n */\n SplitButton.prototype.preRender = function () {\n var ele = this.element;\n if (ele.tagName === TAGNAME) {\n var ejInstance = getValue('ej2_instances', ele);\n var btn = this.createElement('button', { attrs: { 'type': 'button' } });\n var wrapper = this.createElement(TAGNAME, { className: 'e-' + this.getModuleName() + '-wrapper' });\n for (var idx = 0, len = ele.attributes.length; idx < len; idx++) {\n btn.setAttribute(ele.attributes[idx].nodeName, ele.attributes[idx].nodeValue);\n }\n ele.parentNode.insertBefore(wrapper, ele);\n detach(ele);\n ele = btn;\n wrapper.appendChild(ele);\n setValue('ej2_instances', ejInstance, ele);\n this.wrapper = wrapper;\n this.element = ele;\n }\n if (!this.element.id) {\n this.element.id = getUniqueID('e-' + this.getModuleName());\n }\n };\n /**\n * Initialize the Component rendering.\n *\n * @returns {void}\n * @private\n */\n SplitButton.prototype.render = function () {\n this.initWrapper();\n this.createPrimaryButton();\n this.renderControl();\n };\n SplitButton.prototype.renderControl = function () {\n this.createSecondaryButton();\n this.setActiveElem([this.element, this.secondaryBtnObj.element]);\n this.setAria();\n this.wireEvents();\n this.renderComplete();\n };\n /**\n * Adds a new item to the menu. By default, new item appends to the list as the last item,\n * but you can insert based on the text parameter.\n *\n * @param { ItemModel[] } items - Specifies an array of JSON data.\n * @param { string } text - Specifies the text to insert the newly added item in the menu.\n * @returns {void}.\n */\n SplitButton.prototype.addItems = function (items, text) {\n _super.prototype.addItems.call(this, items, text);\n this.secondaryBtnObj.items = this.items;\n };\n /**\n * Removes the items from the menu.\n *\n * @param { string[] } items - Specifies an array of string to remove the items.\n * @param { string } isUniqueId - Set `true` if specified items is a collection of unique id.\n * @returns {void}.\n */\n SplitButton.prototype.removeItems = function (items, isUniqueId) {\n _super.prototype.removeItems.call(this, items, isUniqueId);\n this.secondaryBtnObj.items = this.items;\n };\n SplitButton.prototype.initWrapper = function () {\n if (!this.wrapper) {\n this.wrapper = this.createElement('div', { className: 'e-' + this.getModuleName() + '-wrapper' });\n this.element.parentNode.insertBefore(this.wrapper, this.element);\n }\n this.element.classList.remove('e-' + this.getModuleName());\n if (this.enableRtl) {\n this.wrapper.classList.add(RTL);\n }\n if (this.cssClass) {\n addClass([this.wrapper], this.cssClass.split(' '));\n }\n };\n SplitButton.prototype.createPrimaryButton = function () {\n var btnModel = {\n cssClass: this.cssClass,\n enableRtl: this.enableRtl,\n iconCss: this.iconCss,\n iconPosition: this.iconPosition,\n content: this.content,\n disabled: this.disabled\n };\n this.primaryBtnObj = new Button(btnModel);\n this.primaryBtnObj.createElement = this.createElement;\n this.primaryBtnObj.appendTo(this.element);\n this.element.classList.add('e-' + this.getModuleName());\n this.element.type = 'button';\n this.wrapper.appendChild(this.element);\n };\n SplitButton.prototype.createSecondaryButton = function () {\n var _this = this;\n var btnElem = this.createElement('button', {\n className: 'e-icon-btn',\n attrs: { 'tabindex': '-1' },\n id: this.element.id + '_dropdownbtn'\n });\n this.wrapper.appendChild(btnElem);\n var dropDownBtnModel = {\n cssClass: this.cssClass,\n disabled: this.disabled,\n enableRtl: this.enableRtl,\n items: this.items,\n target: this.target,\n createPopupOnClick: this.createPopupOnClick\n };\n dropDownBtnModel.beforeItemRender = function (args) {\n if (_this.createPopupOnClick) {\n _this.secondaryBtnObj.dropDown.relateTo = _this.wrapper;\n _this.dropDown = _this.secondaryBtnObj.dropDown;\n }\n _this.trigger('beforeItemRender', args);\n };\n dropDownBtnModel.open = function (args) {\n _this.trigger('open', args);\n };\n dropDownBtnModel.close = function (args) {\n _this.trigger('close', args);\n };\n dropDownBtnModel.select = function (args) {\n _this.trigger('select', args);\n };\n dropDownBtnModel.beforeOpen = function (args) {\n if (_this.createPopupOnClick && _this.items.length == 0) {\n _this.secondaryBtnObj.dropDown.relateTo = _this.wrapper;\n _this.dropDown = _this.secondaryBtnObj.dropDown;\n }\n var callBackPromise = new Deferred();\n _this.trigger('beforeOpen', args, function (observedArgs) {\n callBackPromise.resolve(observedArgs);\n });\n return callBackPromise;\n };\n dropDownBtnModel.beforeClose = function (args) {\n var callBackPromise = new Deferred();\n _this.trigger('beforeClose', args, function (observedArgs) {\n callBackPromise.resolve(observedArgs);\n });\n return callBackPromise;\n };\n this.secondaryBtnObj = new DropDownButton(dropDownBtnModel);\n this.secondaryBtnObj.createElement = this.createElement;\n this.secondaryBtnObj.appendTo(btnElem);\n if (!this.createPopupOnClick) {\n this.secondaryBtnObj.dropDown.relateTo = this.wrapper;\n this.dropDown = this.secondaryBtnObj.dropDown;\n }\n this.secondaryBtnObj.activeElem = [this.element, this.secondaryBtnObj.element];\n this.secondaryBtnObj.element.querySelector('.e-btn-icon').classList.remove('e-icon-right');\n };\n SplitButton.prototype.setAria = function () {\n attributes(this.element, {\n 'aria-expanded': 'false', 'aria-haspopup': 'true',\n 'aria-label': this.element.textContent + ' splitbutton', 'aria-owns': this.element.id + '_dropdownbtn-popup'\n });\n };\n /**\n * Get component name.\n *\n * @returns {string} - Module Name\n * @private\n */\n SplitButton.prototype.getModuleName = function () {\n return 'split-btn';\n };\n /**\n * To open/close SplitButton popup based on current state of the SplitButton.\n *\n * @returns {void}\n */\n SplitButton.prototype.toggle = function () {\n this.secondaryBtnObj.toggle();\n };\n SplitButton.prototype.destroy = function () {\n var _this = this;\n var classList = [RTL];\n if (this.cssClass) {\n classList = classList.concat(this.cssClass.split(' '));\n }\n if (this.element) {\n var element = document.getElementById(this.element.id);\n if (element && element.parentElement === this.wrapper) {\n if (this.wrapper.tagName === TAGNAME) {\n this.wrapper.innerHTML = '';\n removeClass([this.wrapper], ['e-rtl', 'e-' + this.getModuleName() + '-wrapper']);\n removeClass([this.wrapper], this.cssClass.split(' '));\n }\n else {\n removeClass([this.element], classList);\n ['aria-label', 'aria-haspopup', 'aria-expanded', 'aria-owns', 'type'].forEach(function (key) {\n _this.element.removeAttribute(key);\n });\n this.wrapper.parentNode.insertBefore(this.element, this.wrapper);\n remove(this.wrapper);\n }\n this.unWireEvents();\n }\n }\n this.primaryBtnObj.destroy();\n this.secondaryBtnObj.destroy();\n _super.prototype.destroy.call(this);\n if (!this.element.getAttribute('class')) {\n this.element.removeAttribute('class');\n }\n };\n SplitButton.prototype.wireEvents = function () {\n EventHandler.add(this.element, 'click', this.primaryBtnClickHandler, this);\n new KeyboardEvents(this.element, {\n keyAction: this.btnKeyBoardHandler.bind(this),\n keyConfigs: {\n altdownarrow: 'alt+downarrow'\n }\n });\n };\n SplitButton.prototype.unWireEvents = function () {\n EventHandler.remove(this.element, 'click', this.primaryBtnClickHandler);\n getInstance(this.element, KeyboardEvents).destroy();\n };\n SplitButton.prototype.primaryBtnClickHandler = function () {\n this.trigger('click', { element: this.element });\n };\n SplitButton.prototype.btnKeyBoardHandler = function (e) {\n switch (e.action) {\n case 'altdownarrow':\n this.clickHandler(e);\n break;\n }\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {SplitButtonModel} newProp - Specifies new properties\n * @param {SplitButtonModel} oldProp - Specifies old properties\n * @returns {void}\n */\n SplitButton.prototype.onPropertyChanged = function (newProp, oldProp) {\n var model = ['content', 'iconCss', 'iconPosition', 'cssClass', 'disabled', 'enableRtl'];\n this.primaryBtnObj.setProperties(getModel(newProp, model));\n model = ['beforeOpen', 'beforeItemRender', 'select', 'open',\n 'close', 'cssClass', 'disabled', 'enableRtl', 'createPopupOnClick'];\n if (Object.keys(newProp).indexOf('items') > -1) {\n this.secondaryBtnObj.items = newProp.items;\n this.secondaryBtnObj.dataBind();\n }\n this.secondaryBtnObj.setProperties(getModel(newProp, model));\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'cssClass':\n if (oldProp.cssClass) {\n removeClass([this.wrapper], oldProp.cssClass.split(' '));\n }\n addClass([this.wrapper], newProp.cssClass.split(' '));\n break;\n case 'enableRtl':\n if (newProp.enableRtl) {\n addClass([this.wrapper], RTL);\n }\n else {\n removeClass([this.wrapper], RTL);\n }\n break;\n }\n }\n };\n /**\n * Sets the focus to SplitButton\n * its native method\n *\n * @public\n * @returns {void}\n */\n SplitButton.prototype.focusIn = function () {\n this.element.focus();\n };\n __decorate([\n Property('')\n ], SplitButton.prototype, \"content\", void 0);\n __decorate([\n Property('')\n ], SplitButton.prototype, \"cssClass\", void 0);\n __decorate([\n Property(false)\n ], SplitButton.prototype, \"disabled\", void 0);\n __decorate([\n Property('')\n ], SplitButton.prototype, \"iconCss\", void 0);\n __decorate([\n Property('Left')\n ], SplitButton.prototype, \"iconPosition\", void 0);\n __decorate([\n Property(false)\n ], SplitButton.prototype, \"createPopupOnClick\", void 0);\n __decorate([\n Collection([], Item)\n ], SplitButton.prototype, \"items\", void 0);\n __decorate([\n Property('')\n ], SplitButton.prototype, \"target\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"beforeItemRender\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"beforeOpen\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"beforeClose\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"click\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"close\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"open\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"select\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"created\", void 0);\n SplitButton = __decorate([\n NotifyPropertyChanges\n ], SplitButton);\n return SplitButton;\n}(DropDownButton));\nexport { SplitButton };\n/**\n * Deferred is used to handle asynchronous operation.\n */\nvar Deferred = /** @class */ (function () {\n function Deferred() {\n var _this = this;\n /**\n * Promise is an object that represents a value that may not be available yet, but will be resolved at some point in the future.\n */\n this.promise = new Promise(function (resolve, reject) {\n _this.resolve = resolve;\n _this.reject = reject;\n });\n /**\n * Defines the callback function triggers when the Deferred object is rejected.\n */\n this.catch = this.promise.catch.bind(this.promise);\n /**\n * Defines the callback function triggers when the Deferred object is resolved.\n */\n this.then = this.promise.then.bind(this.promise);\n }\n return Deferred;\n}());\nexport { Deferred };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Component, EventHandler, Property, Event, Complex, Collection } from '@syncfusion/ej2-base';\nimport { L10n, Internationalization } from '@syncfusion/ej2-base';\nimport { NotifyPropertyChanges, ChildProperty } from '@syncfusion/ej2-base';\nimport { attributes, addClass, removeClass, setStyleAttribute, detach, closest } from '@syncfusion/ej2-base';\nimport { isNullOrUndefined, formatUnit, Browser, SanitizeHtmlHelper } from '@syncfusion/ej2-base';\nimport { Tooltip, getZindexPartial } from '@syncfusion/ej2-popups';\n/**\n * Configures the ticks data of the Slider.\n */\nvar TicksData = /** @class */ (function (_super) {\n __extends(TicksData, _super);\n function TicksData() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('None')\n ], TicksData.prototype, \"placement\", void 0);\n __decorate([\n Property(10)\n ], TicksData.prototype, \"largeStep\", void 0);\n __decorate([\n Property(1)\n ], TicksData.prototype, \"smallStep\", void 0);\n __decorate([\n Property(false)\n ], TicksData.prototype, \"showSmallTicks\", void 0);\n __decorate([\n Property(null)\n ], TicksData.prototype, \"format\", void 0);\n return TicksData;\n}(ChildProperty));\nexport { TicksData };\n/**\n * It illustrates the color track data in slider.\n * {% codeBlock src='slider/colorrange/index.md' %}{% endcodeBlock %}\n */\nvar ColorRangeData = /** @class */ (function (_super) {\n __extends(ColorRangeData, _super);\n function ColorRangeData() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(null)\n ], ColorRangeData.prototype, \"color\", void 0);\n __decorate([\n Property(null)\n ], ColorRangeData.prototype, \"start\", void 0);\n __decorate([\n Property(null)\n ], ColorRangeData.prototype, \"end\", void 0);\n return ColorRangeData;\n}(ChildProperty));\nexport { ColorRangeData };\n/**\n * It illustrates the limit data in slider.\n * {% codeBlock src='slider/limits/index.md' %}{% endcodeBlock %}\n */\nvar LimitData = /** @class */ (function (_super) {\n __extends(LimitData, _super);\n function LimitData() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(false)\n ], LimitData.prototype, \"enabled\", void 0);\n __decorate([\n Property(null)\n ], LimitData.prototype, \"minStart\", void 0);\n __decorate([\n Property(null)\n ], LimitData.prototype, \"minEnd\", void 0);\n __decorate([\n Property(null)\n ], LimitData.prototype, \"maxStart\", void 0);\n __decorate([\n Property(null)\n ], LimitData.prototype, \"maxEnd\", void 0);\n __decorate([\n Property(false)\n ], LimitData.prototype, \"startHandleFixed\", void 0);\n __decorate([\n Property(false)\n ], LimitData.prototype, \"endHandleFixed\", void 0);\n return LimitData;\n}(ChildProperty));\nexport { LimitData };\n/**\n * It illustrates the tooltip data in slider.\n */\nvar TooltipData = /** @class */ (function (_super) {\n __extends(TooltipData, _super);\n function TooltipData() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], TooltipData.prototype, \"cssClass\", void 0);\n __decorate([\n Property('Before')\n ], TooltipData.prototype, \"placement\", void 0);\n __decorate([\n Property('Focus')\n ], TooltipData.prototype, \"showOn\", void 0);\n __decorate([\n Property(false)\n ], TooltipData.prototype, \"isVisible\", void 0);\n __decorate([\n Property(null)\n ], TooltipData.prototype, \"format\", void 0);\n return TooltipData;\n}(ChildProperty));\nexport { TooltipData };\nvar bootstrapTooltipOffset = 6;\nvar bootstrap4TooltipOffset = 3;\nvar classNames = {\n root: 'e-slider',\n rtl: 'e-rtl',\n sliderHiddenInput: 'e-slider-input',\n controlWrapper: 'e-control-wrapper',\n sliderHandle: 'e-handle',\n rangeBar: 'e-range',\n sliderButton: 'e-slider-button',\n firstButton: 'e-first-button',\n secondButton: 'e-second-button',\n scale: 'e-scale',\n tick: 'e-tick',\n large: 'e-large',\n tickValue: 'e-tick-value',\n sliderTooltip: 'e-slider-tooltip',\n sliderHover: 'e-slider-hover',\n sliderFirstHandle: 'e-handle-first',\n sliderSecondHandle: 'e-handle-second',\n sliderDisabled: 'e-disabled',\n sliderContainer: 'e-slider-container',\n horizontalTooltipBefore: 'e-slider-horizontal-before',\n horizontalTooltipAfter: 'e-slider-horizontal-after',\n verticalTooltipBefore: 'e-slider-vertical-before',\n verticalTooltipAfter: 'e-slider-vertical-after',\n materialTooltip: 'e-material-tooltip',\n materialTooltipOpen: 'e-material-tooltip-open',\n materialTooltipActive: 'e-tooltip-active',\n materialSlider: 'e-material-slider',\n sliderTrack: 'e-slider-track',\n sliderHorizantalColor: 'e-slider-horizantal-color',\n sliderVerticalColor: 'e-slider-vertical-color',\n sliderHandleFocused: 'e-handle-focused',\n verticalSlider: 'e-vertical',\n horizontalSlider: 'e-horizontal',\n sliderHandleStart: 'e-handle-start',\n sliderTooltipStart: 'e-material-tooltip-start',\n sliderTabHandle: 'e-tab-handle',\n sliderButtonIcon: 'e-button-icon',\n sliderSmallSize: 'e-small-size',\n sliderTickPosition: 'e-tick-pos',\n sliderFirstTick: 'e-first-tick',\n sliderLastTick: 'e-last-tick',\n sliderButtonClass: 'e-slider-btn',\n sliderTooltipWrapper: 'e-tooltip-wrap',\n sliderTabTrack: 'e-tab-track',\n sliderTabRange: 'e-tab-range',\n sliderActiveHandle: 'e-handle-active',\n sliderMaterialHandle: 'e-material-handle',\n sliderMaterialRange: 'e-material-range',\n sliderMaterialDefault: 'e-material-default',\n materialTooltipShow: 'e-material-tooltip-show',\n materialTooltipHide: 'e-material-tooltip-hide',\n readonly: 'e-read-only',\n limits: 'e-limits',\n limitBarDefault: 'e-limit-bar',\n limitBarFirst: 'e-limit-first',\n limitBarSecond: 'e-limit-second',\n dragHorizontal: 'e-drag-horizontal',\n dragVertical: 'e-drag-vertical'\n};\n/**\n * The Slider component allows the user to select a value or range\n * of values in-between a min and max range, by dragging the handle over the slider bar.\n * ```html\n *
    \n * ```\n * ```typescript\n * \n * ```\n */\nvar Slider = /** @class */ (function (_super) {\n __extends(Slider, _super);\n function Slider(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.horDir = 'left';\n _this.verDir = 'bottom';\n _this.transition = {\n handle: 'left .4s cubic-bezier(.25, .8, .25, 1), right .4s cubic-bezier(.25, .8, .25, 1), ' +\n 'top .4s cubic-bezier(.25, .8, .25, 1) , bottom .4s cubic-bezier(.25, .8, .25, 1)',\n rangeBar: 'all .4s cubic-bezier(.25, .8, .25, 1)'\n };\n _this.transitionOnMaterialTooltip = {\n handle: 'left 1ms ease-out, right 1ms ease-out, bottom 1ms ease-out, top 1ms ease-out',\n rangeBar: 'left 1ms ease-out, right 1ms ease-out, bottom 1ms ease-out, width 1ms ease-out, height 1ms ease-out'\n };\n _this.scaleTransform = 'transform .4s cubic-bezier(.25, .8, .25, 1)';\n _this.customAriaText = null;\n _this.drag = true;\n _this.isDragComplete = false;\n _this.initialTooltip = true;\n return _this;\n }\n Slider.prototype.preRender = function () {\n // eslint-disable-next-line\n var localeText = { incrementTitle: 'Increase', decrementTitle: 'Decrease' };\n this.l10n = new L10n('slider', localeText, this.locale);\n this.isElementFocused = false;\n this.tickElementCollection = [];\n this.tooltipFormatInfo = {};\n this.ticksFormatInfo = {};\n this.initCultureInfo();\n this.initCultureFunc();\n this.formChecker();\n };\n Slider.prototype.formChecker = function () {\n var formElement = closest(this.element, 'form');\n if (formElement) {\n this.isForm = true;\n // this condition needs to be checked, if the slider is going to be refreshed by `refresh()`\n // then we need to revert the slider `value` back to `formResetValue` to preserve the initial value\n if (!isNullOrUndefined(this.formResetValue)) {\n this.setProperties({ 'value': this.formResetValue }, true);\n }\n this.formResetValue = this.value;\n if (this.type === 'Range' &&\n (isNullOrUndefined(this.formResetValue) || typeof (this.formResetValue) !== 'object')) {\n this.formResetValue = [parseFloat(formatUnit(this.min)), parseFloat(formatUnit(this.max))];\n }\n else if (isNullOrUndefined(this.formResetValue)) {\n this.formResetValue = parseFloat(formatUnit(this.min));\n }\n this.formElement = formElement;\n }\n else {\n this.isForm = false;\n }\n };\n Slider.prototype.initCultureFunc = function () {\n this.internationalization = new Internationalization(this.locale);\n };\n Slider.prototype.initCultureInfo = function () {\n this.tooltipFormatInfo.format = (!isNullOrUndefined(this.tooltip.format)) ? this.tooltip.format : null;\n this.ticksFormatInfo.format = (!isNullOrUndefined(this.ticks.format)) ? this.ticks.format : null;\n };\n Slider.prototype.formatString = function (value, formatInfo) {\n var formatValue = null;\n var formatString = null;\n if ((value || value === 0)) {\n formatValue = this.formatNumber(value);\n var numberOfDecimals = this.numberOfDecimals(value);\n formatString = this.internationalization.getNumberFormat(formatInfo)(this.makeRoundNumber(value, numberOfDecimals));\n }\n return { elementVal: formatValue, formatString: formatString };\n };\n Slider.prototype.formatNumber = function (value) {\n var numberOfDecimals = this.numberOfDecimals(value);\n return this.internationalization.getNumberFormat({\n maximumFractionDigits: numberOfDecimals,\n minimumFractionDigits: numberOfDecimals, useGrouping: false\n })(value);\n };\n Slider.prototype.numberOfDecimals = function (value) {\n var decimalPart = value.toString().split('.')[1];\n var numberOfDecimals = !decimalPart || !decimalPart.length ? 0 : decimalPart.length;\n return numberOfDecimals;\n };\n Slider.prototype.makeRoundNumber = function (value, precision) {\n var decimals = precision || 0;\n return Number(value.toFixed(decimals));\n };\n Slider.prototype.fractionalToInteger = function (value) {\n value = (this.numberOfDecimals(value) === 0) ? Number(value).toFixed(this.noOfDecimals) : value;\n var tens = 1;\n for (var i = 0; i < this.noOfDecimals; i++) {\n tens *= 10;\n }\n value = Number((value * tens).toFixed(0));\n return value;\n };\n /**\n * To Initialize the control rendering\n * @private\n */\n Slider.prototype.render = function () {\n var _this = this;\n this.initialize();\n this.initRender();\n this.wireEvents();\n this.setZindex();\n this.renderComplete();\n if (this.element.tagName === 'EJS-SLIDER') {\n if (this.getTheme(this.sliderContainer) == \"none\") {\n setTimeout(function () {\n _this.refresh();\n }, 0);\n }\n }\n };\n Slider.prototype.initialize = function () {\n addClass([this.element], classNames.root);\n this.setCSSClass();\n };\n Slider.prototype.setElementWidth = function (width) {\n if (!isNullOrUndefined(width)) {\n if (typeof width === 'number') {\n this.sliderContainer.style.width = formatUnit(width);\n }\n else if (typeof width === 'string') {\n this.sliderContainer.style.width = (width.match(/px|%|em/)) ? (width) : (formatUnit(width));\n }\n }\n };\n Slider.prototype.setCSSClass = function (oldCSSClass) {\n if (oldCSSClass) {\n removeClass([this.element], oldCSSClass.split(' '));\n }\n if (this.cssClass) {\n addClass([this.element], this.cssClass.split(' '));\n }\n };\n Slider.prototype.setEnabled = function () {\n if (!this.enabled) {\n addClass([this.sliderContainer], [classNames.sliderDisabled]);\n if (this.tooltip.isVisible && this.tooltipElement && this.tooltip.showOn === 'Always') {\n this.tooltipElement.classList.add(classNames.sliderDisabled);\n }\n this.unwireEvents();\n }\n else {\n removeClass([this.sliderContainer], [classNames.sliderDisabled]);\n if (this.tooltip.isVisible && this.tooltipElement && this.tooltip.showOn === 'Always') {\n this.tooltipElement.classList.remove(classNames.sliderDisabled);\n }\n this.wireEvents();\n }\n };\n Slider.prototype.getTheme = function (container) {\n var theme = window.getComputedStyle(container, ':after').getPropertyValue('content');\n return theme.replace(/['\"]+/g, '');\n };\n /**\n * Initialize the rendering\n * @private\n */\n Slider.prototype.initRender = function () {\n this.sliderContainer = this.createElement('div', { className: classNames.sliderContainer + ' ' + classNames.controlWrapper });\n this.element.parentNode.insertBefore(this.sliderContainer, this.element);\n this.sliderContainer.appendChild(this.element);\n this.sliderTrack = this.createElement('div', { className: classNames.sliderTrack });\n this.element.appendChild(this.sliderTrack);\n this.setElementWidth(this.width);\n this.element.tabIndex = -1;\n this.getThemeInitialization();\n this.setHandler();\n this.createRangeBar();\n if (this.limits.enabled) {\n this.createLimitBar();\n }\n this.setOrientClass();\n this.hiddenInput = (this.createElement('input', {\n attrs: {\n type: 'hidden', value: (isNullOrUndefined(this.value) ? this.min.toString() : this.value.toString()),\n name: this.element.getAttribute('name') || this.element.getAttribute('id') ||\n '_' + (Math.random() * 1000).toFixed(0) + 'slider', class: classNames.sliderHiddenInput\n }\n }));\n this.hiddenInput.tabIndex = -1;\n this.sliderContainer.appendChild(this.hiddenInput);\n if (this.showButtons) {\n this.setButtons();\n }\n this.setEnableRTL();\n if (this.type === 'Range') {\n this.rangeValueUpdate();\n }\n else {\n this.value = isNullOrUndefined(this.value) ? parseFloat(formatUnit(this.min.toString())) : this.value;\n }\n this.previousVal = this.type !== 'Range' ? this.checkHandleValue(parseFloat(formatUnit(this.value.toString()))) :\n [this.checkHandleValue(parseFloat(formatUnit(this.value[0].toString()))),\n this.checkHandleValue(parseFloat(formatUnit(this.value[1].toString())))];\n this.previousChanged = this.previousVal;\n if (!isNullOrUndefined(this.element.hasAttribute('name'))) {\n this.element.removeAttribute('name');\n }\n this.setValue();\n if (this.limits.enabled) {\n this.setLimitBar();\n }\n if (this.ticks.placement !== 'None') {\n this.renderScale();\n }\n if (this.tooltip.isVisible) {\n this.renderTooltip();\n }\n if (!this.enabled) {\n addClass([this.sliderContainer], [classNames.sliderDisabled]);\n }\n else {\n removeClass([this.sliderContainer], [classNames.sliderDisabled]);\n }\n if (this.readonly) {\n addClass([this.sliderContainer], [classNames.readonly]);\n }\n else {\n removeClass([this.sliderContainer], [classNames.readonly]);\n }\n };\n Slider.prototype.getThemeInitialization = function () {\n this.isMaterial = this.getTheme(this.sliderContainer) === 'material'\n || this.getTheme(this.sliderContainer) === 'material-dark';\n this.isBootstrap = this.getTheme(this.sliderContainer) === 'bootstrap'\n || this.getTheme(this.sliderContainer) === 'bootstrap-dark';\n this.isBootstrap4 = this.getTheme(this.sliderContainer) === 'bootstrap4';\n this.isTailwind = this.getTheme(this.sliderContainer) === 'tailwind' || this.getTheme(this.sliderContainer) === 'tailwind-dark';\n this.isBootstrap5 = this.getTheme(this.sliderContainer) === 'bootstrap5';\n this.isFluent = this.getTheme(this.sliderContainer) === 'FluentUI';\n this.isMaterialTooltip = this.isMaterial && this.type !== 'Range' && this.tooltip.isVisible;\n };\n Slider.prototype.createRangeBar = function () {\n if (this.type !== 'Default') {\n this.rangeBar = (this.createElement('div', { attrs: { class: classNames.rangeBar } }));\n this.element.appendChild(this.rangeBar);\n if (this.drag && this.type === 'Range') {\n if (this.orientation === 'Horizontal') {\n this.rangeBar.classList.add(classNames.dragHorizontal);\n }\n else {\n this.rangeBar.classList.add(classNames.dragVertical);\n }\n }\n }\n };\n Slider.prototype.createLimitBar = function () {\n var firstElementClassName = this.type !== 'Range' ? classNames.limitBarDefault :\n classNames.limitBarFirst;\n firstElementClassName += ' ' + classNames.limits;\n this.limitBarFirst = (this.createElement('div', {\n attrs: { class: firstElementClassName }\n }));\n this.element.appendChild(this.limitBarFirst);\n if (this.type === 'Range') {\n this.limitBarSecond = (this.createElement('div', {\n attrs: {\n class: classNames.limitBarSecond + ' ' + classNames.limits\n }\n }));\n this.element.appendChild(this.limitBarSecond);\n }\n };\n Slider.prototype.setOrientClass = function () {\n if (this.orientation !== 'Vertical') {\n this.sliderContainer.classList.remove(classNames.verticalSlider);\n this.sliderContainer.classList.add(classNames.horizontalSlider);\n this.firstHandle.setAttribute('aria-orientation', 'horizontal');\n if (this.type === 'Range') {\n this.secondHandle.setAttribute('aria-orientation', 'horizontal');\n }\n }\n else {\n this.sliderContainer.classList.remove(classNames.horizontalSlider);\n this.sliderContainer.classList.add(classNames.verticalSlider);\n this.firstHandle.setAttribute('aria-orientation', 'vertical');\n if (this.type === 'Range') {\n this.secondHandle.setAttribute('aria-orientation', 'vertical');\n }\n }\n };\n Slider.prototype.setAriaAttributes = function (element) {\n var _this = this;\n var min = this.min;\n var max = this.max;\n if (!isNullOrUndefined(this.customValues) && this.customValues.length > 0) {\n min = this.customValues[0];\n max = this.customValues[this.customValues.length - 1];\n }\n if (this.type !== 'Range') {\n attributes(element, {\n 'aria-valuemin': min.toString(), 'aria-valuemax': max.toString()\n });\n }\n else {\n var range = !isNullOrUndefined(this.customValues) && this.customValues.length > 0 ?\n [[min.toString(), (this.customValues[this.value[1]]).toString()],\n [(this.customValues[this.value[0]]).toString(), max.toString()]] :\n [[min.toString(), this.value[1].toString()], [this.value[0].toString(), max.toString()]];\n range.forEach(function (range, index) {\n var element = index === 0 ? _this.firstHandle : _this.secondHandle;\n if (element) {\n attributes(element, {\n 'aria-valuemin': range[0], 'aria-valuemax': range[1]\n });\n }\n });\n }\n };\n Slider.prototype.createSecondHandle = function () {\n this.secondHandle = this.createElement('div', {\n attrs: {\n class: classNames.sliderHandle, 'role': 'slider', tabIndex: '0', 'aria-label': 'slider'\n }\n });\n this.secondHandle.classList.add(classNames.sliderSecondHandle);\n this.element.appendChild(this.secondHandle);\n };\n Slider.prototype.createFirstHandle = function () {\n this.firstHandle = this.createElement('div', {\n attrs: {\n class: classNames.sliderHandle, 'role': 'slider', tabIndex: '0', 'aria-label': 'slider'\n }\n });\n this.firstHandle.classList.add(classNames.sliderFirstHandle);\n this.element.appendChild(this.firstHandle);\n if (this.isMaterialTooltip) {\n this.materialHandle = this.createElement('div', {\n attrs: {\n class: classNames.sliderHandle + ' ' +\n classNames.sliderMaterialHandle\n }\n });\n this.element.appendChild(this.materialHandle);\n }\n };\n Slider.prototype.wireFirstHandleEvt = function (destroy) {\n if (!destroy) {\n EventHandler.add(this.firstHandle, 'mousedown touchstart', this.handleFocus, this);\n EventHandler.add(this.firstHandle, 'transitionend', this.transitionEnd, this);\n EventHandler.add(this.firstHandle, 'mouseenter touchenter', this.handleOver, this);\n EventHandler.add(this.firstHandle, 'mouseleave touchend', this.handleLeave, this);\n }\n else {\n EventHandler.remove(this.firstHandle, 'mousedown touchstart', this.handleFocus);\n EventHandler.remove(this.firstHandle, 'transitionend', this.transitionEnd);\n EventHandler.remove(this.firstHandle, 'mouseenter touchenter', this.handleOver);\n EventHandler.remove(this.firstHandle, 'mouseleave touchend', this.handleLeave);\n }\n };\n Slider.prototype.wireSecondHandleEvt = function (destroy) {\n if (!destroy) {\n EventHandler.add(this.secondHandle, 'mousedown touchstart', this.handleFocus, this);\n EventHandler.add(this.secondHandle, 'transitionend', this.transitionEnd, this);\n EventHandler.add(this.secondHandle, 'mouseenter touchenter', this.handleOver, this);\n EventHandler.add(this.secondHandle, 'mouseleave touchend', this.handleLeave, this);\n }\n else {\n EventHandler.remove(this.secondHandle, 'mousedown touchstart', this.handleFocus);\n EventHandler.remove(this.secondHandle, 'transitionend', this.transitionEnd);\n EventHandler.remove(this.secondHandle, 'mouseenter touchenter', this.handleOver);\n EventHandler.remove(this.secondHandle, 'mouseleave touchend', this.handleLeave);\n }\n };\n Slider.prototype.handleStart = function () {\n if (this.type !== 'Range') {\n this.firstHandle.classList[this.handlePos1 === 0 ? 'add' : 'remove'](classNames.sliderHandleStart);\n if (this.isMaterialTooltip) {\n this.materialHandle.classList[this.handlePos1 === 0 ? 'add' : 'remove'](classNames.sliderHandleStart);\n if (this.tooltipElement) {\n this.tooltipElement.classList[this.handlePos1 === 0 ? 'add' : 'remove'](classNames.sliderTooltipStart);\n }\n }\n }\n };\n Slider.prototype.transitionEnd = function (e) {\n if (e.propertyName !== 'transform') {\n this.handleStart();\n if (!this.enableAnimation) {\n this.getHandle().style.transition = 'none';\n }\n if (this.type !== 'Default') {\n this.rangeBar.style.transition = 'none';\n }\n if (this.isMaterial && this.tooltip.isVisible && this.type === 'Default') {\n this.tooltipElement.style.transition = this.transition.handle;\n }\n this.tooltipToggle(this.getHandle());\n this.closeTooltip();\n }\n };\n Slider.prototype.handleFocusOut = function () {\n if (this.firstHandle.classList.contains(classNames.sliderHandleFocused)) {\n this.firstHandle.classList.remove(classNames.sliderHandleFocused);\n }\n if (this.type === 'Range') {\n if (this.secondHandle.classList.contains(classNames.sliderHandleFocused)) {\n this.secondHandle.classList.remove(classNames.sliderHandleFocused);\n }\n }\n };\n Slider.prototype.handleFocus = function (e) {\n this.focusSliderElement();\n this.sliderBarClick(e);\n if (e.currentTarget === this.firstHandle) {\n this.firstHandle.classList.add(classNames.sliderHandleFocused);\n this.firstHandle.classList.add(classNames.sliderTabHandle);\n }\n else {\n this.secondHandle.classList.add(classNames.sliderHandleFocused);\n this.secondHandle.classList.add(classNames.sliderTabHandle);\n }\n EventHandler.add(document, 'mousemove touchmove', this.sliderBarMove, this);\n EventHandler.add(document, 'mouseup touchend', this.sliderBarUp, this);\n };\n Slider.prototype.handleOver = function (e) {\n if (this.tooltip.isVisible && this.tooltip.showOn === 'Hover') {\n this.tooltipToggle(e.currentTarget);\n }\n if (this.type === 'Default') {\n this.tooltipToggle(this.getHandle());\n }\n };\n Slider.prototype.handleLeave = function (e) {\n if (this.tooltip.isVisible && this.tooltip.showOn === 'Hover' &&\n !e.currentTarget.classList.contains(classNames.sliderHandleFocused) &&\n !e.currentTarget.classList.contains(classNames.sliderTabHandle)) {\n this.closeTooltip();\n }\n };\n Slider.prototype.setHandler = function () {\n if (this.min > this.max) {\n this.min = this.max;\n }\n this.createFirstHandle();\n if (this.type === 'Range') {\n this.createSecondHandle();\n }\n };\n Slider.prototype.setEnableRTL = function () {\n this.enableRtl && this.orientation !== 'Vertical' ? addClass([this.sliderContainer], classNames.rtl) :\n removeClass([this.sliderContainer], classNames.rtl);\n var preDir = (this.orientation !== 'Vertical') ? this.horDir : this.verDir;\n if (this.enableRtl) {\n this.horDir = 'right';\n this.verDir = 'bottom';\n }\n else {\n this.horDir = 'left';\n this.verDir = 'bottom';\n }\n var currDir = (this.orientation !== 'Vertical') ? this.horDir : this.verDir;\n if (preDir !== currDir) {\n if (this.orientation === 'Horizontal') {\n setStyleAttribute(this.firstHandle, { 'right': '', 'left': 'auto' });\n if (this.type === 'Range') {\n setStyleAttribute(this.secondHandle, { 'top': '', 'left': 'auto' });\n }\n }\n }\n this.setBarColor();\n };\n Slider.prototype.tooltipValue = function () {\n var _this = this;\n var text;\n var args = {\n value: this.value,\n text: ''\n };\n if (this.initialTooltip) {\n this.initialTooltip = false;\n this.setTooltipContent();\n args.text = text = this.tooltipObj.content;\n this.trigger('tooltipChange', args, function (observedArgs) {\n _this.addTooltipClass(observedArgs.text);\n if (text !== observedArgs.text) {\n _this.customAriaText = observedArgs.text;\n _this.tooltipObj.content = observedArgs.text;\n _this.setAriaAttrValue(_this.firstHandle);\n if (_this.type === 'Range') {\n _this.setAriaAttrValue(_this.secondHandle);\n }\n }\n });\n if (this.isMaterialTooltip) {\n this.setPreviousVal('change', this.value);\n }\n }\n };\n Slider.prototype.setTooltipContent = function () {\n var content;\n content = this.formatContent(this.tooltipFormatInfo, false);\n this.tooltipObj.content = content;\n };\n Slider.prototype.formatContent = function (formatInfo, ariaContent) {\n var content = '';\n var handle1 = this.handleVal1;\n var handle2 = this.handleVal2;\n if (!isNullOrUndefined(this.customValues) && this.customValues.length > 0) {\n handle1 = this.customValues[this.handleVal1];\n handle2 = this.customValues[this.handleVal2];\n }\n if (!ariaContent) {\n if (this.type === 'Range') {\n if (this.enableRtl && this.orientation !== 'Vertical') {\n content = (!isNullOrUndefined(formatInfo.format)) ? (this.formatString(handle2, formatInfo)\n .formatString + ' - ' + this.formatString(handle1, formatInfo).formatString) :\n (handle2.toString() + ' - ' + handle1.toString());\n }\n else {\n content = (!isNullOrUndefined(formatInfo.format)) ? (this.formatString(handle1, formatInfo)\n .formatString + ' - ' + this.formatString(handle2, formatInfo).formatString) :\n (handle1.toString() + ' - ' + handle2.toString());\n }\n }\n else {\n if (!isNullOrUndefined(handle1)) {\n content = (!isNullOrUndefined(formatInfo.format)) ?\n this.formatString(handle1, formatInfo).formatString : handle1.toString();\n }\n }\n return content;\n }\n else {\n if (this.type === 'Range') {\n if (this.enableRtl && this.orientation !== 'Vertical') {\n content = (!isNullOrUndefined(this.tooltip) && !isNullOrUndefined(this.tooltip.format)) ?\n (this.formatString(handle2, formatInfo).elementVal + ' - ' +\n this.formatString(handle1, formatInfo).elementVal) :\n (handle2.toString() + ' - ' + handle1.toString());\n }\n else {\n content = (!isNullOrUndefined(this.tooltip) && !isNullOrUndefined(this.tooltip.format)) ?\n (this.formatString(handle1, formatInfo).elementVal + ' - ' +\n this.formatString(handle2, formatInfo).elementVal) :\n (handle1.toString() + ' - ' + handle2.toString());\n }\n }\n else {\n if (!isNullOrUndefined(handle1)) {\n content = (!isNullOrUndefined(this.tooltip) && !isNullOrUndefined(this.tooltip.format)) ?\n this.formatString(handle1, formatInfo).elementVal : handle1.toString();\n }\n }\n return content;\n }\n };\n Slider.prototype.addTooltipClass = function (content) {\n if (this.isMaterialTooltip) {\n var count = content.toString().length;\n if (!this.tooltipElement) {\n var cssClass = count > 4 ? classNames.sliderMaterialRange : classNames.sliderMaterialDefault;\n this.tooltipObj.cssClass = classNames.sliderTooltip + ' ' + cssClass;\n }\n else {\n var cssClass = count > 4 ?\n { oldCss: classNames.sliderMaterialDefault, newCss: classNames.sliderMaterialRange } :\n { oldCss: classNames.sliderMaterialRange, newCss: classNames.sliderMaterialDefault };\n this.tooltipElement.classList.remove(cssClass.oldCss);\n if (!this.tooltipElement.classList.contains(cssClass.newCss)) {\n this.tooltipElement.classList.add(cssClass.newCss);\n this.tooltipElement.style.transform = count > 4 ? 'scale(1)' :\n this.getTooltipTransformProperties(this.previousTooltipClass).rotate;\n }\n }\n }\n };\n Slider.prototype.tooltipPlacement = function () {\n return this.orientation === 'Horizontal' ? (this.tooltip.placement === 'Before' ? 'TopCenter' : 'BottomCenter') :\n (this.tooltip.placement === 'Before' ? 'LeftCenter' : 'RightCenter');\n };\n Slider.prototype.tooltipBeforeOpen = function (args) {\n this.tooltipElement = args.element;\n if (this.tooltip.cssClass) {\n addClass([this.tooltipElement], this.tooltip.cssClass.split(' ').filter(function (css) { return css; }));\n }\n args.target.removeAttribute('aria-describedby');\n if (this.isMaterialTooltip) {\n this.tooltipElement.firstElementChild.classList.add(classNames.materialTooltipHide);\n this.handleStart();\n this.setTooltipTransform();\n }\n };\n Slider.prototype.tooltipCollision = function (position) {\n if (this.isBootstrap || this.isBootstrap4 || (this.isMaterial && !this.isMaterialTooltip)) {\n var tooltipOffsetValue = this.isBootstrap4 ? bootstrap4TooltipOffset : bootstrapTooltipOffset;\n switch (position) {\n case 'TopCenter':\n this.tooltipObj.setProperties({ 'offsetY': -(tooltipOffsetValue) }, false);\n break;\n case 'BottomCenter':\n this.tooltipObj.setProperties({ 'offsetY': tooltipOffsetValue }, false);\n break;\n case 'LeftCenter':\n this.tooltipObj.setProperties({ 'offsetX': -(tooltipOffsetValue) }, false);\n break;\n case 'RightCenter':\n this.tooltipObj.setProperties({ 'offsetX': tooltipOffsetValue }, false);\n break;\n }\n }\n };\n Slider.prototype.materialTooltipEventCallBack = function (event) {\n this.sliderBarClick(event);\n EventHandler.add(document, 'mousemove touchmove', this.sliderBarMove, this);\n EventHandler.add(document, 'mouseup touchend', this.sliderBarUp, this);\n };\n Slider.prototype.wireMaterialTooltipEvent = function (destroy) {\n if (this.isMaterialTooltip) {\n if (!destroy) {\n EventHandler.add(this.tooltipElement, 'mousedown touchstart', this.materialTooltipEventCallBack, this);\n }\n else {\n EventHandler.remove(this.tooltipElement, 'mousedown touchstart', this.materialTooltipEventCallBack);\n }\n }\n };\n Slider.prototype.tooltipPositionCalculation = function (position) {\n var cssClass;\n switch (position) {\n case 'TopCenter':\n cssClass = classNames.horizontalTooltipBefore;\n break;\n case 'BottomCenter':\n cssClass = classNames.horizontalTooltipAfter;\n break;\n case 'LeftCenter':\n cssClass = classNames.verticalTooltipBefore;\n break;\n case 'RightCenter':\n cssClass = classNames.verticalTooltipAfter;\n break;\n }\n return cssClass;\n };\n Slider.prototype.getTooltipTransformProperties = function (className) {\n var transformProperties;\n if (this.tooltipElement) {\n var position = this.orientation === 'Horizontal' ?\n ((this.tooltipElement.clientHeight + 14) - (this.tooltipElement.clientHeight / 2)) :\n ((this.tooltipElement.clientWidth + 14) - (this.tooltipElement.clientWidth / 2));\n transformProperties = this.orientation === 'Horizontal' ?\n (className === classNames.horizontalTooltipBefore ? { rotate: 'rotate(45deg)', translate: \"translateY(\" + position + \"px)\" } :\n { rotate: 'rotate(225deg)', translate: \"translateY(\" + -(position) + \"px)\" }) :\n (className === classNames.verticalTooltipBefore ? { rotate: 'rotate(-45deg)', translate: \"translateX(\" + position + \"px)\" } :\n { rotate: 'rotate(-225deg)', translate: \"translateX(\" + (-position) + \"px)\" });\n }\n return transformProperties;\n };\n Slider.prototype.openMaterialTooltip = function () {\n var _this = this;\n if (this.isMaterialTooltip) {\n this.refreshTooltip(this.firstHandle);\n var tooltipContentElement = this.tooltipElement.firstElementChild;\n tooltipContentElement.classList.remove(classNames.materialTooltipHide);\n tooltipContentElement.classList.add(classNames.materialTooltipShow);\n this.firstHandle.style.cursor = 'default';\n this.tooltipElement.style.transition = this.scaleTransform;\n this.tooltipElement.classList.add(classNames.materialTooltipOpen);\n this.materialHandle.style.transform = 'scale(0)';\n if (tooltipContentElement.innerText.length > 4) {\n this.tooltipElement.style.transform = 'scale(1)';\n }\n else {\n this.tooltipElement.style.transform = this.getTooltipTransformProperties(this.previousTooltipClass).rotate;\n }\n if (this.type === 'Default') {\n setTimeout(function () { _this.tooltipElement.style.transition = _this.transition.handle; }, 2500);\n }\n else {\n setTimeout(function () { _this.tooltipElement.style.transition = 'none'; }, 2500);\n }\n }\n };\n Slider.prototype.closeMaterialTooltip = function () {\n var _this = this;\n if (this.isMaterialTooltip) {\n var tooltipContentElement = this.tooltipElement.firstElementChild;\n this.tooltipElement.style.transition = this.scaleTransform;\n tooltipContentElement.classList.remove(classNames.materialTooltipShow);\n tooltipContentElement.classList.add(classNames.materialTooltipHide);\n this.firstHandle.style.cursor = '-webkit-grab';\n this.firstHandle.style.cursor = 'grab';\n if (this.materialHandle) {\n this.materialHandle.style.transform = 'scale(1)';\n }\n this.tooltipElement.classList.remove(classNames.materialTooltipOpen);\n this.setTooltipTransform();\n this.tooltipTarget = undefined;\n setTimeout(function () { _this.tooltipElement.style.transition = 'none'; }, 2500);\n }\n };\n Slider.prototype.checkTooltipPosition = function (args) {\n var tooltipClass = this.tooltipPositionCalculation(args.collidedPosition);\n if (this.tooltipCollidedPosition === undefined ||\n this.tooltipCollidedPosition !== args.collidedPosition || !args.element.classList.contains(tooltipClass)) {\n if (this.isMaterialTooltip) {\n if (tooltipClass !== undefined) {\n args.element.classList.remove(this.previousTooltipClass);\n args.element.classList.add(tooltipClass);\n this.previousTooltipClass = tooltipClass;\n }\n if (args.element.style.transform && args.element.classList.contains(classNames.materialTooltipOpen) &&\n args.element.firstElementChild.innerText.length <= 4) {\n args.element.style.transform = this.getTooltipTransformProperties(this.previousTooltipClass).rotate;\n }\n }\n this.tooltipCollidedPosition = args.collidedPosition;\n }\n if (this.isMaterialTooltip && this.tooltipElement && this.tooltipElement.style.transform.indexOf('translate') !== -1) {\n this.setTooltipTransform();\n }\n };\n Slider.prototype.setTooltipTransform = function () {\n var transformProperties = this.getTooltipTransformProperties(this.previousTooltipClass);\n if (this.tooltipElement.firstElementChild.innerText.length > 4) {\n this.tooltipElement.style.transform = transformProperties.translate + \" scale(0.01)\";\n }\n else {\n this.tooltipElement.style.transform = transformProperties.translate + \" \" + transformProperties.rotate + \" scale(0.01)\";\n }\n };\n Slider.prototype.renderTooltip = function () {\n this.tooltipObj = new Tooltip({\n showTipPointer: this.isBootstrap || this.isMaterial || this.isBootstrap4 || this.isTailwind || this.isBootstrap5 || this.isFluent,\n cssClass: classNames.sliderTooltip,\n height: this.isMaterial ? 30 : 'auto',\n animation: { open: { effect: 'None' }, close: { effect: 'FadeOut', duration: 500 } },\n opensOn: 'Custom',\n beforeOpen: this.tooltipBeforeOpen.bind(this),\n beforeCollision: this.checkTooltipPosition.bind(this),\n beforeClose: this.tooltipBeforeClose.bind(this),\n enableHtmlSanitizer: this.enableHtmlSanitizer\n });\n this.tooltipObj.appendTo(this.firstHandle);\n this.initializeTooltipProps();\n };\n Slider.prototype.initializeTooltipProps = function () {\n var tooltipShowOn = (this.tooltip.showOn === 'Auto' ? 'Hover' : this.tooltip.showOn);\n this.setProperties({ tooltip: { showOn: tooltipShowOn } }, true);\n this.tooltipObj.position = this.tooltipPlacement();\n this.tooltipCollision(this.tooltipObj.position);\n [this.firstHandle, this.rangeBar, this.secondHandle].forEach(function (handle) {\n if (!isNullOrUndefined(handle)) {\n handle.style.transition = 'none';\n }\n });\n if (this.isMaterialTooltip) {\n this.sliderContainer.classList.add(classNames.materialSlider);\n this.tooltipValue();\n this.tooltipObj.animation.close.effect = 'None';\n // eslint-disable-next-line security/detect-non-literal-fs-filename -- Safe as no value holds user input\n this.tooltipObj.open(this.firstHandle);\n }\n };\n Slider.prototype.tooltipBeforeClose = function () {\n this.tooltipElement = undefined;\n this.tooltipCollidedPosition = undefined;\n };\n Slider.prototype.setButtons = function () {\n this.firstBtn = this.createElement('div', { className: classNames.sliderButton + ' ' + classNames.firstButton });\n this.firstBtn.appendChild(this.createElement('span', { className: classNames.sliderButtonIcon }));\n if (this.isTailwind) {\n this.firstBtn.querySelector('span').classList.add('e-icons');\n }\n this.firstBtn.tabIndex = -1;\n this.secondBtn = this.createElement('div', { className: classNames.sliderButton + ' ' + classNames.secondButton });\n this.secondBtn.appendChild(this.createElement('span', { className: classNames.sliderButtonIcon }));\n if (this.isTailwind) {\n this.secondBtn.querySelector('span').classList.add('e-icons');\n }\n this.secondBtn.tabIndex = -1;\n this.sliderContainer.classList.add(classNames.sliderButtonClass);\n this.sliderContainer.appendChild(this.firstBtn);\n this.sliderContainer.appendChild(this.secondBtn);\n this.sliderContainer.appendChild(this.element);\n this.buttonTitle();\n };\n Slider.prototype.buttonTitle = function () {\n var enabledRTL = this.enableRtl && this.orientation !== 'Vertical';\n this.l10n.setLocale(this.locale);\n var decrementTitle = this.l10n.getConstant('decrementTitle');\n var incrementTitle = this.l10n.getConstant('incrementTitle');\n attributes(enabledRTL ? this.secondBtn : this.firstBtn, { 'aria-label': decrementTitle, title: decrementTitle });\n attributes(enabledRTL ? this.firstBtn : this.secondBtn, { 'aria-label': incrementTitle, title: incrementTitle });\n };\n Slider.prototype.buttonFocusOut = function () {\n if (this.isMaterial) {\n this.getHandle().classList.remove('e-large-thumb-size');\n }\n };\n Slider.prototype.repeatButton = function (args) {\n var hVal = this.handleValueUpdate();\n var enabledRTL = this.enableRtl && this.orientation !== 'Vertical';\n var value;\n if (args.target.parentElement.classList.contains(classNames.firstButton)\n || args.target.classList.contains(classNames.firstButton)) {\n enabledRTL ? (value = this.add(hVal, parseFloat(this.step.toString()), true)) :\n (value = this.add(hVal, parseFloat(this.step.toString()), false));\n }\n else if (args.target.parentElement.classList.contains(classNames.secondButton)\n || (args.target.classList.contains(classNames.secondButton))) {\n enabledRTL ? (value = this.add(hVal, parseFloat(this.step.toString()), false)) :\n (value = this.add(hVal, parseFloat(this.step.toString()), true));\n }\n if (this.limits.enabled) {\n value = this.getLimitCorrectedValues(value);\n }\n if (value >= this.min && value <= this.max) {\n this.changeHandleValue(value);\n this.tooltipToggle(this.getHandle());\n }\n };\n Slider.prototype.repeatHandlerMouse = function (args) {\n args.preventDefault();\n if (args.type === ('mousedown') || args.type === ('touchstart')) {\n this.buttonClick(args);\n this.repeatInterval = setInterval(this.repeatButton.bind(this), 180, args);\n }\n };\n Slider.prototype.materialChange = function () {\n if (!this.getHandle().classList.contains('e-large-thumb-size')) {\n this.getHandle().classList.add('e-large-thumb-size');\n }\n };\n Slider.prototype.focusHandle = function () {\n if (!this.getHandle().classList.contains(classNames.sliderTabHandle)) {\n this.getHandle().classList.add(classNames.sliderTabHandle);\n }\n };\n Slider.prototype.repeatHandlerUp = function (e) {\n this.changeEvent('changed', e);\n this.closeTooltip();\n clearInterval(this.repeatInterval);\n this.getHandle().focus();\n };\n Slider.prototype.customTickCounter = function (bigNum) {\n var tickCount = 4;\n if (!isNullOrUndefined(this.customValues) && this.customValues.length > 0) {\n if (bigNum > 4) {\n tickCount = 3;\n }\n if (bigNum > 7) {\n tickCount = 2;\n }\n if (bigNum > 14) {\n tickCount = 1;\n }\n if (bigNum > 28) {\n tickCount = 0;\n }\n }\n return tickCount;\n };\n // tslint:disable-next-line:max-func-body-length\n Slider.prototype.renderScale = function () {\n var liElementPosition = 0;\n var orien = this.orientation === 'Vertical' ? 'v' : 'h';\n var spanText;\n this.noOfDecimals = this.numberOfDecimals(this.step);\n this.ul = this.createElement('ul', {\n className: classNames.scale + ' ' + 'e-' + orien + '-scale ' + classNames.tick + '-' + this.ticks.placement.toLowerCase(),\n attrs: { role: 'presentation', tabIndex: '-1', 'aria-hidden': 'true' }\n });\n this.ul.style.zIndex = '-1';\n if (Browser.isAndroid && orien === 'h') {\n this.ul.classList.add(classNames.sliderTickPosition);\n }\n var smallStep = this.ticks.smallStep;\n if (!this.ticks.showSmallTicks) {\n this.ticks.largeStep > 0 ? (smallStep = this.ticks.largeStep) :\n (smallStep = (parseFloat(formatUnit(this.max))) - (parseFloat(formatUnit(this.min))));\n }\n else if (smallStep <= 0) {\n smallStep = parseFloat(formatUnit(this.step));\n }\n var min = this.fractionalToInteger(this.min);\n var max = this.fractionalToInteger(this.max);\n var steps = this.fractionalToInteger(smallStep);\n var bigNum = !isNullOrUndefined(this.customValues) && this.customValues.length > 0 && this.customValues.length - 1;\n var customStep = this.customTickCounter(bigNum);\n var count = !isNullOrUndefined(this.customValues) && this.customValues.length > 0 ?\n (bigNum * customStep) + bigNum : Math.abs((max - min) / steps);\n this.element.appendChild(this.ul);\n var li;\n var start = parseFloat(this.min.toString());\n if (orien === 'v') {\n start = parseFloat(this.max.toString());\n }\n var left = 0;\n var islargeTick;\n var tickWidth = 100 / count;\n if (tickWidth === Infinity) {\n tickWidth = 5;\n }\n for (var i = 0, y = !isNullOrUndefined(this.customValues) && this.customValues.length > 0 ?\n this.customValues.length - 1 : 0, k = 0; i <= count; i++) {\n li = (this.createElement('li', {\n attrs: {\n class: classNames.tick, role: 'presentation', tabIndex: '-1',\n 'aria-hidden': 'true'\n }\n }));\n if (!isNullOrUndefined(this.customValues) && this.customValues.length > 0) {\n islargeTick = i % (customStep + 1) === 0;\n if (islargeTick) {\n if (orien === 'h') {\n start = this.customValues[k];\n k++;\n }\n else {\n start = this.customValues[y];\n y--;\n }\n li.setAttribute('title', start.toString());\n }\n }\n else {\n li.setAttribute('title', start.toString());\n if (this.numberOfDecimals(this.max) === 0 && this.numberOfDecimals(this.min) === 0 &&\n this.numberOfDecimals(this.step) === 0) {\n if (orien === 'h') {\n islargeTick = ((start - parseFloat(this.min.toString())) % this.ticks.largeStep === 0) ? true : false;\n }\n else {\n islargeTick = (Math.abs(start - parseFloat(this.max.toString())) % this.ticks.largeStep === 0) ? true : false;\n }\n }\n else {\n var largestep = this.fractionalToInteger(this.ticks.largeStep);\n var startValue = this.fractionalToInteger(start);\n if (orien === 'h') {\n islargeTick = ((startValue - min) % largestep === 0) ? true : false;\n }\n else {\n islargeTick = (Math.abs(startValue - parseFloat(max.toString())) % largestep === 0) ? true : false;\n }\n }\n }\n if (islargeTick) {\n li.classList.add(classNames.large);\n }\n (orien === 'h') ? (li.style.width = tickWidth + '%') : (li.style.height = tickWidth + '%');\n var repeat = islargeTick ? (this.ticks.placement === 'Both' ? 2 : 1) : 0;\n if (islargeTick) {\n for (var j = 0; j < repeat; j++) {\n this.createTick(li, start, tickWidth);\n }\n }\n else if (isNullOrUndefined(this.customValues)) {\n this.formatTicksValue(li, start);\n }\n this.ul.appendChild(li);\n this.tickElementCollection.push(li);\n var decimalPoints = void 0;\n if (isNullOrUndefined(this.customValues)) {\n if (this.numberOfDecimals(smallStep) > this.numberOfDecimals(start)) {\n decimalPoints = this.numberOfDecimals(smallStep);\n }\n else {\n decimalPoints = this.numberOfDecimals(start);\n }\n if (orien === 'h') {\n start = this.makeRoundNumber(start + smallStep, decimalPoints);\n }\n else {\n start = this.makeRoundNumber(start - smallStep, decimalPoints);\n }\n left = this.makeRoundNumber(left + smallStep, decimalPoints);\n }\n }\n this.ticksAlignment(orien, tickWidth);\n };\n Slider.prototype.ticksAlignment = function (orien, tickWidth, triggerEvent) {\n if (triggerEvent === void 0) { triggerEvent = true; }\n this.firstChild = this.ul.firstElementChild;\n this.lastChild = this.ul.lastElementChild;\n this.firstChild.classList.add(classNames.sliderFirstTick);\n this.lastChild.classList.add(classNames.sliderLastTick);\n this.sliderContainer.classList.add(classNames.scale + '-' + this.ticks.placement.toLowerCase());\n if (orien === 'h') {\n this.firstChild.style.width = tickWidth / 2 + '%';\n this.lastChild.style.width = tickWidth / 2 + '%';\n }\n else {\n this.firstChild.style.height = tickWidth / 2 + '%';\n this.lastChild.style.height = tickWidth / 2 + '%';\n }\n var eventArgs = { ticksWrapper: this.ul, tickElements: this.tickElementCollection };\n if (triggerEvent) {\n this.trigger('renderedTicks', eventArgs);\n }\n this.scaleAlignment();\n };\n Slider.prototype.createTick = function (li, start, tickWidth) {\n var span = this.createElement('span', {\n className: classNames.tickValue + ' ' + classNames.tick + '-' + this.ticks.placement.toLowerCase(),\n attrs: { role: 'presentation', tabIndex: '-1', 'aria-hidden': 'true' }\n });\n li.appendChild(span);\n if (isNullOrUndefined(this.customValues)) {\n this.formatTicksValue(li, start, span, tickWidth);\n }\n else {\n if (this.enableHtmlSanitizer) {\n span.innerHTML = SanitizeHtmlHelper.sanitize(start.toString());\n }\n else {\n span.innerHTML = start.toString();\n }\n }\n };\n Slider.prototype.formatTicksValue = function (li, start, spanElement, tickWidth) {\n var _this = this;\n var tickText = this.formatNumber(start);\n var text = !isNullOrUndefined(this.ticks) && !isNullOrUndefined(this.ticks.format) ?\n this.formatString(start, this.ticksFormatInfo).formatString : tickText;\n var eventArgs = { value: start, text: text, tickElement: li };\n this.trigger('renderingTicks', eventArgs, function (observedArgs) {\n li.setAttribute('title', observedArgs.text.toString());\n if (spanElement) {\n if (_this.enableHtmlSanitizer) {\n spanElement.innerHTML = SanitizeHtmlHelper.sanitize(observedArgs.text.toString());\n }\n else {\n spanElement.innerHTML = observedArgs.text.toString();\n }\n }\n });\n };\n Slider.prototype.scaleAlignment = function () {\n this.tickValuePosition();\n var smallTick = 12;\n var largeTick = 20;\n var half = largeTick / 2;\n var orien = this.orientation === 'Vertical' ? 'v' : 'h';\n if (this.orientation === 'Vertical') {\n (this.element.getBoundingClientRect().width <= 15) ?\n this.sliderContainer.classList.add(classNames.sliderSmallSize) :\n this.sliderContainer.classList.remove(classNames.sliderSmallSize);\n }\n else {\n (this.element.getBoundingClientRect().height <= 15) ?\n this.sliderContainer.classList.add(classNames.sliderSmallSize) :\n this.sliderContainer.classList.remove(classNames.sliderSmallSize);\n }\n };\n Slider.prototype.tickValuePosition = function () {\n this.firstChild = this.element.querySelector('ul').children[0];\n var first = this.firstChild.getBoundingClientRect();\n var firstChild;\n var otherChild;\n var smallStep = this.ticks.smallStep;\n var count = Math.abs((parseFloat(formatUnit(this.max))) - (parseFloat(formatUnit(this.min)))) / smallStep;\n if (this.firstChild.children.length > 0) {\n firstChild = this.firstChild.children[0].getBoundingClientRect();\n }\n var tickElements = [this.sliderContainer.querySelectorAll('.' + classNames.tick + '.' +\n classNames.large + ' .' + classNames.tickValue)];\n var other;\n if (this.ticks.placement === 'Both') {\n other = [].slice.call(tickElements[0], 2);\n }\n else {\n other = [].slice.call(tickElements[0], 1);\n }\n var tickWidth = this.orientation === 'Vertical' ?\n (first.height * 2) : (first.width * 2);\n for (var i = 0; i < this.firstChild.children.length; i++) {\n if (this.orientation === 'Vertical') {\n this.firstChild.children[i].style.top = -(firstChild.height / 2) + 'px';\n }\n else {\n if (!this.enableRtl) {\n this.firstChild.children[i].style.left = -(firstChild.width / 2) + 'px';\n }\n else {\n this.firstChild.children[i].style.left = (tickWidth -\n this.firstChild.children[i].getBoundingClientRect().width) / 2 + 'px';\n }\n }\n }\n for (var i = 0; i < other.length; i++) {\n otherChild = other[i].getBoundingClientRect();\n if (this.orientation === 'Vertical') {\n setStyleAttribute(other[i], { top: (tickWidth - otherChild.height) / 2 + 'px' });\n }\n else {\n setStyleAttribute(other[i], { left: (tickWidth - otherChild.width) / 2 + 'px' });\n }\n }\n if (this.enableRtl && this.lastChild.children.length && count !== 0) {\n this.lastChild.children[0].style.left = -(this.lastChild.getBoundingClientRect().width / 2) + 'px';\n if (this.ticks.placement === 'Both') {\n this.lastChild.children[1].style.left = -(this.lastChild.getBoundingClientRect().width / 2) + 'px';\n }\n }\n if (count === 0) {\n if (this.orientation === 'Horizontal') {\n if (!this.enableRtl) {\n this.firstChild.classList.remove(classNames.sliderLastTick);\n this.firstChild.style.left = this.firstHandle.style.left;\n }\n else {\n this.firstChild.classList.remove(classNames.sliderLastTick);\n this.firstChild.style.right = this.firstHandle.style.right;\n this.firstChild.children[0].style.left =\n (this.firstChild.getBoundingClientRect().width / 2) + 2 + 'px';\n if (this.ticks.placement === 'Both') {\n this.firstChild.children[1].style.left =\n (this.firstChild.getBoundingClientRect().width / 2) + 2 + 'px';\n }\n }\n }\n if (this.orientation === 'Vertical') {\n this.firstChild.classList.remove(classNames.sliderLastTick);\n }\n }\n };\n Slider.prototype.setAriaAttrValue = function (element) {\n var ariaValueText;\n var isTickFormatted = ((!isNullOrUndefined(this.ticks) && !isNullOrUndefined(this.ticks.format))) ? true : false;\n var text = !isTickFormatted ?\n this.formatContent(this.ticksFormatInfo, false) : this.formatContent(this.tooltipFormatInfo, false);\n var valuenow = isTickFormatted ? this.formatContent(this.ticksFormatInfo, true) :\n this.formatContent(this.tooltipFormatInfo, true);\n text = (!this.customAriaText) ? (text) : (this.customAriaText);\n if (text.split(' - ').length === 2) {\n ariaValueText = text.split(' - ');\n }\n else {\n ariaValueText = [text, text];\n }\n this.setAriaAttributes(element);\n if (this.type !== 'Range') {\n attributes(element, { 'aria-valuenow': valuenow, 'aria-valuetext': text });\n }\n else {\n // eslint-disable-next-line\n (!this.enableRtl) ? ((element === this.firstHandle) ?\n attributes(element, { 'aria-valuenow': valuenow.split(' - ')[0], 'aria-valuetext': ariaValueText[0] }) :\n attributes(element, { 'aria-valuenow': valuenow.split(' - ')[1], 'aria-valuetext': ariaValueText[1] })) :\n ((element === this.firstHandle) ?\n attributes(element, { 'aria-valuenow': valuenow.split(' - ')[1], 'aria-valuetext': ariaValueText[1] }) :\n attributes(element, { 'aria-valuenow': valuenow.split(' - ')[0], 'aria-valuetext': ariaValueText[0] }));\n }\n };\n Slider.prototype.handleValueUpdate = function () {\n var hVal;\n if (this.type === 'Range') {\n if (this.activeHandle === 1) {\n hVal = this.handleVal1;\n }\n else {\n hVal = this.handleVal2;\n }\n }\n else {\n hVal = this.handleVal1;\n }\n return hVal;\n };\n Slider.prototype.getLimitCorrectedValues = function (value) {\n if (this.type === 'MinRange' || this.type === 'Default') {\n value = (this.getLimitValueAndPosition(value, this.limits.minStart, this.limits.minEnd))[0];\n }\n else {\n if (this.activeHandle === 1) {\n value = (this.getLimitValueAndPosition(value, this.limits.minStart, this.limits.minEnd))[0];\n }\n else {\n value = (this.getLimitValueAndPosition(value, this.limits.maxStart, this.limits.maxEnd))[0];\n }\n }\n return value;\n };\n Slider.prototype.focusSliderElement = function () {\n if (!this.isElementFocused) {\n this.element.focus();\n this.isElementFocused = true;\n }\n };\n Slider.prototype.buttonClick = function (args) {\n this.focusSliderElement();\n var value;\n var enabledRTL = this.enableRtl && this.orientation !== 'Vertical';\n var hVal = this.handleValueUpdate();\n if ((args.keyCode === 40) || (args.keyCode === 37)\n || args.currentTarget.classList.contains(classNames.firstButton)) {\n // eslint-disable-next-line\n enabledRTL ? (value = this.add(hVal, parseFloat(this.step.toString()), true)) :\n (value = this.add(hVal, parseFloat(this.step.toString()), false));\n }\n else if ((args.keyCode === 38) || (args.keyCode === 39) ||\n args.currentTarget.classList.contains(classNames.secondButton)) {\n // eslint-disable-next-line\n enabledRTL ? (value = this.add(hVal, parseFloat(this.step.toString()), false)) :\n (value = this.add(hVal, parseFloat(this.step.toString()), true));\n }\n else if ((args.keyCode === 33\n || args.currentTarget.classList.contains(classNames.firstButton))) {\n // eslint-disable-next-line\n enabledRTL ? (value = this.add(hVal, parseFloat(this.ticks.largeStep.toString()), false)) :\n (value = this.add(hVal, parseFloat(this.ticks.largeStep.toString()), true));\n }\n else if ((args.keyCode === 34) ||\n args.currentTarget.classList.contains(classNames.secondButton)) {\n // eslint-disable-next-line\n enabledRTL ? (value = this.add(hVal, parseFloat(this.ticks.largeStep.toString()), true)) :\n (value = this.add(hVal, parseFloat(this.ticks.largeStep.toString()), false));\n }\n else if ((args.keyCode === 36)) {\n value = parseFloat(this.min.toString());\n }\n else if ((args.keyCode === 35)) {\n value = parseFloat(this.max.toString());\n }\n if (this.limits.enabled) {\n value = this.getLimitCorrectedValues(value);\n }\n this.changeHandleValue(value);\n if (this.isMaterial && !this.tooltip.isVisible &&\n !this.getHandle().classList.contains(classNames.sliderTabHandle)) {\n this.materialChange();\n }\n this.tooltipToggle(this.getHandle());\n this.getHandle().focus();\n this.focusHandle();\n if (args.currentTarget.classList.contains(classNames.firstButton)) {\n EventHandler.add(this.firstBtn, 'mouseup touchend', this.buttonUp, this);\n }\n if (args.currentTarget.classList.contains(classNames.secondButton)) {\n EventHandler.add(this.secondBtn, 'mouseup touchend', this.buttonUp, this);\n }\n };\n Slider.prototype.tooltipToggle = function (target) {\n if (this.isMaterialTooltip) {\n // eslint-disable-next-line\n !this.tooltipElement.classList.contains(classNames.materialTooltipOpen) ?\n this.openMaterialTooltip() : this.refreshTooltip(this.firstHandle);\n }\n else {\n // eslint-disable-next-line\n !this.tooltipElement ? this.openTooltip(target) : this.refreshTooltip(target);\n }\n };\n Slider.prototype.buttonUp = function (args) {\n if (args.currentTarget.classList.contains(classNames.firstButton)) {\n EventHandler.remove(this.firstBtn, 'mouseup touchend', this.buttonUp);\n }\n if (args.currentTarget.classList.contains(classNames.secondButton)) {\n EventHandler.remove(this.secondBtn, 'mouseup touchend', this.buttonUp);\n }\n };\n Slider.prototype.setRangeBar = function () {\n if (this.orientation === 'Horizontal') {\n if (this.type === 'MinRange') {\n // eslint-disable-next-line\n this.enableRtl ? (this.rangeBar.style.right = '0px') : (this.rangeBar.style.left = '0px');\n setStyleAttribute(this.rangeBar, { 'width': isNullOrUndefined(this.handlePos1) ? 0 : this.handlePos1 + 'px' });\n }\n else {\n // eslint-disable-next-line\n this.enableRtl ? (this.rangeBar.style.right =\n this.handlePos1 + 'px') : (this.rangeBar.style.left = this.handlePos1 + 'px');\n setStyleAttribute(this.rangeBar, { 'width': this.handlePos2 - this.handlePos1 + 'px' });\n }\n }\n else {\n if (this.type === 'MinRange') {\n this.rangeBar.style.bottom = '0px';\n setStyleAttribute(this.rangeBar, { 'height': isNullOrUndefined(this.handlePos1) ? 0 : this.handlePos1 + 'px' });\n }\n else {\n this.rangeBar.style.bottom = this.handlePos1 + 'px';\n setStyleAttribute(this.rangeBar, { 'height': this.handlePos2 - this.handlePos1 + 'px' });\n }\n }\n };\n Slider.prototype.checkValidValueAndPos = function (value) {\n value = this.checkHandleValue(value);\n value = this.checkHandlePosition(value);\n return value;\n };\n Slider.prototype.setLimitBarPositions = function (fromMinPostion, fromMaxpostion, toMinPostion, toMaxpostion) {\n if (this.orientation === 'Horizontal') {\n if (!this.enableRtl) {\n this.limitBarFirst.style.left = fromMinPostion + 'px';\n this.limitBarFirst.style.width = (fromMaxpostion - fromMinPostion) + 'px';\n }\n else {\n this.limitBarFirst.style.right = fromMinPostion + 'px';\n this.limitBarFirst.style.width = (fromMaxpostion - fromMinPostion) + 'px';\n }\n }\n else {\n this.limitBarFirst.style.bottom = fromMinPostion + 'px';\n this.limitBarFirst.style.height = (fromMaxpostion - fromMinPostion) + 'px';\n }\n if (this.type === 'Range') {\n if (this.orientation === 'Horizontal') {\n if (!this.enableRtl) {\n this.limitBarSecond.style.left = toMinPostion + 'px';\n this.limitBarSecond.style.width = (toMaxpostion - toMinPostion) + 'px';\n }\n else {\n this.limitBarSecond.style.right = toMinPostion + 'px';\n this.limitBarSecond.style.width = (toMaxpostion - toMinPostion) + 'px';\n }\n }\n else {\n this.limitBarSecond.style.bottom = toMinPostion + 'px';\n this.limitBarSecond.style.height = (toMaxpostion - toMinPostion) + 'px';\n }\n }\n };\n Slider.prototype.setLimitBar = function () {\n if (this.type === 'Default' || this.type === 'MinRange') {\n var fromPosition = (this.getLimitValueAndPosition(this.limits.minStart, this.limits.minStart, this.limits.minEnd, true))[0];\n fromPosition = this.checkValidValueAndPos(fromPosition);\n var toPosition = (this.getLimitValueAndPosition(this.limits.minEnd, this.limits.minStart, this.limits.minEnd, true))[0];\n toPosition = this.checkValidValueAndPos(toPosition);\n this.setLimitBarPositions(fromPosition, toPosition);\n }\n else if (this.type === 'Range') {\n var fromMinPostion = (this.getLimitValueAndPosition(this.limits.minStart, this.limits.minStart, this.limits.minEnd, true))[0];\n fromMinPostion = this.checkValidValueAndPos(fromMinPostion);\n var fromMaxpostion = (this.getLimitValueAndPosition(this.limits.minEnd, this.limits.minStart, this.limits.minEnd, true))[0];\n fromMaxpostion = this.checkValidValueAndPos(fromMaxpostion);\n var toMinPostion = (this.getLimitValueAndPosition(this.limits.maxStart, this.limits.maxStart, this.limits.maxEnd, true))[0];\n toMinPostion = this.checkValidValueAndPos(toMinPostion);\n var toMaxpostion = (this.getLimitValueAndPosition(this.limits.maxEnd, this.limits.maxStart, this.limits.maxEnd, true))[0];\n toMaxpostion = this.checkValidValueAndPos(toMaxpostion);\n this.setLimitBarPositions(fromMinPostion, fromMaxpostion, toMinPostion, toMaxpostion);\n }\n };\n Slider.prototype.getLimitValueAndPosition = function (currentValue, minValue, maxValue, limitBar) {\n if (isNullOrUndefined(minValue)) {\n minValue = this.min;\n if (isNullOrUndefined(currentValue) && limitBar) {\n currentValue = minValue;\n }\n }\n if (isNullOrUndefined(maxValue)) {\n maxValue = this.max;\n if (isNullOrUndefined(currentValue) && limitBar) {\n currentValue = maxValue;\n }\n }\n if (currentValue < minValue) {\n currentValue = minValue;\n }\n if (currentValue > maxValue) {\n currentValue = maxValue;\n }\n return [currentValue, this.checkHandlePosition(currentValue)];\n };\n Slider.prototype.setValue = function () {\n if (!isNullOrUndefined(this.customValues) && this.customValues.length > 0) {\n this.min = 0;\n this.max = this.customValues.length - 1;\n this.setBarColor();\n }\n this.setAriaAttributes(this.firstHandle);\n this.handleVal1 = isNullOrUndefined(this.value) ? this.checkHandleValue(parseFloat(this.min.toString())) :\n this.checkHandleValue(parseFloat(this.value.toString()));\n this.handlePos1 = this.checkHandlePosition(this.handleVal1);\n this.preHandlePos1 = this.handlePos1;\n // eslint-disable-next-line\n isNullOrUndefined(this.activeHandle) ? (this.type === 'Range' ? this.activeHandle = 2 : this.activeHandle = 1) :\n // eslint-disable-next-line no-self-assign\n this.activeHandle = this.activeHandle;\n if (this.type === 'Default' || this.type === 'MinRange') {\n if (this.limits.enabled) {\n var values = this.getLimitValueAndPosition(this.handleVal1, this.limits.minStart, this.limits.minEnd);\n this.handleVal1 = values[0];\n this.handlePos1 = values[1];\n this.preHandlePos1 = this.handlePos1;\n }\n this.setHandlePosition(null);\n this.handleStart();\n this.value = this.handleVal1;\n this.setAriaAttrValue(this.firstHandle);\n this.changeEvent('changed', null);\n }\n else {\n this.validateRangeValue();\n }\n if (this.type !== 'Default') {\n this.setRangeBar();\n }\n if (this.limits.enabled) {\n this.setLimitBar();\n }\n };\n Slider.prototype.rangeValueUpdate = function () {\n if (this.value === null || typeof (this.value) !== 'object') {\n this.value = [parseFloat(formatUnit(this.min)), parseFloat(formatUnit(this.max))];\n }\n };\n Slider.prototype.validateRangeValue = function () {\n this.rangeValueUpdate();\n this.setRangeValue();\n };\n Slider.prototype.modifyZindex = function () {\n if (this.type === 'Range') {\n if (this.activeHandle === 1) {\n this.firstHandle.style.zIndex = (this.zIndex + 4) + '';\n this.secondHandle.style.zIndex = (this.zIndex + 3) + '';\n }\n else {\n this.firstHandle.style.zIndex = (this.zIndex + 3) + '';\n this.secondHandle.style.zIndex = (this.zIndex + 4) + '';\n }\n }\n else if (this.isMaterialTooltip && this.tooltipElement) {\n this.tooltipElement.style.zIndex = getZindexPartial(this.element) + '';\n }\n };\n Slider.prototype.setHandlePosition = function (event) {\n var _this = this;\n var handle;\n var pos = (this.activeHandle === 1) ? this.handlePos1 : this.handlePos2;\n if (this.isMaterialTooltip) {\n handle = [this.firstHandle, this.materialHandle];\n }\n else {\n handle = [this.getHandle()];\n }\n this.handleStart();\n handle.forEach(function (handle) {\n if (_this.orientation === 'Horizontal') {\n // eslint-disable-next-line\n _this.enableRtl ? (handle.style.right =\n pos + \"px\") : (handle.style.left = pos + \"px\");\n }\n else {\n handle.style.bottom = pos + \"px\";\n }\n });\n this.changeEvent('change', event);\n };\n Slider.prototype.getHandle = function () {\n return (this.activeHandle === 1) ? this.firstHandle : this.secondHandle;\n };\n Slider.prototype.setRangeValue = function () {\n this.updateRangeValue();\n this.activeHandle = 1;\n this.setHandlePosition(null);\n this.activeHandle = 2;\n this.setHandlePosition(null);\n this.activeHandle = 1;\n };\n Slider.prototype.changeEvent = function (eventName, e) {\n var previous = eventName === 'change' ? this.previousVal : this.previousChanged;\n if (this.type !== 'Range') {\n this.setProperties({ 'value': this.handleVal1 }, true);\n if (previous !== this.value && (!this.isMaterialTooltip || !this.initialTooltip)) {\n this.trigger(eventName, this.changeEventArgs(eventName, e));\n this.initialTooltip = true;\n this.setPreviousVal(eventName, this.value);\n }\n this.setAriaAttrValue(this.firstHandle);\n }\n else {\n var value = this.value = [this.handleVal1, this.handleVal2];\n this.setProperties({ 'value': value }, true);\n if (previous.length === this.value.length\n && this.value[0] !== previous[0] || this.value[1] !== previous[1]) {\n this.initialTooltip = false;\n this.trigger(eventName, this.changeEventArgs(eventName, e));\n this.initialTooltip = true;\n this.setPreviousVal(eventName, this.value);\n }\n this.setAriaAttrValue(this.getHandle());\n }\n this.hiddenInput.value = this.value.toString();\n };\n Slider.prototype.changeEventArgs = function (eventName, e) {\n var eventArgs;\n if (this.tooltip.isVisible && this.tooltipObj && this.initialTooltip) {\n this.tooltipValue();\n eventArgs = {\n value: this.value,\n previousValue: eventName === 'change' ? this.previousVal : this.previousChanged,\n action: eventName, text: this.tooltipObj.content, isInteracted: isNullOrUndefined(e) ? false : true\n };\n }\n else {\n eventArgs = {\n value: this.value,\n previousValue: eventName === 'change' ? this.previousVal : this.previousChanged,\n action: eventName, text: isNullOrUndefined(this.ticksFormatInfo.format) ? this.value.toString() :\n (this.type !== 'Range' ? this.formatString(this.value, this.ticksFormatInfo).formatString :\n (this.formatString(this.value[0], this.ticksFormatInfo).formatString + ' - ' +\n this.formatString(this.value[1], this.ticksFormatInfo).formatString)),\n isInteracted: isNullOrUndefined(e) ? false : true\n };\n }\n return eventArgs;\n };\n Slider.prototype.setPreviousVal = function (eventName, value) {\n if (eventName === 'change') {\n this.previousVal = value;\n }\n else {\n this.previousChanged = value;\n }\n };\n Slider.prototype.updateRangeValue = function () {\n var values = this.value.toString().split(',').map(Number);\n if ((this.enableRtl && this.orientation !== 'Vertical') || this.rtl) {\n this.value = [values[1], values[0]];\n }\n else {\n this.value = [values[0], values[1]];\n }\n if (this.enableRtl && this.orientation !== 'Vertical') {\n this.handleVal1 = this.checkHandleValue(this.value[1]);\n this.handleVal2 = this.checkHandleValue(this.value[0]);\n }\n else {\n this.handleVal1 = this.checkHandleValue(this.value[0]);\n this.handleVal2 = this.checkHandleValue(this.value[1]);\n }\n this.handlePos1 = this.checkHandlePosition(this.handleVal1);\n this.handlePos2 = this.checkHandlePosition(this.handleVal2);\n if (this.handlePos1 > this.handlePos2) {\n this.handlePos1 = this.handlePos2;\n this.handleVal1 = this.handleVal2;\n }\n this.preHandlePos1 = this.handlePos1;\n this.preHandlePos2 = this.handlePos2;\n if (this.limits.enabled) {\n this.activeHandle = 1;\n var values_1 = this.getLimitValueAndPosition(this.handleVal1, this.limits.minStart, this.limits.minEnd);\n this.handleVal1 = values_1[0];\n this.handlePos1 = values_1[1];\n this.preHandlePos1 = this.handlePos1;\n this.activeHandle = 2;\n values_1 = this.getLimitValueAndPosition(this.handleVal2, this.limits.maxStart, this.limits.maxEnd);\n this.handleVal2 = values_1[0];\n this.handlePos2 = values_1[1];\n this.preHandlePos2 = this.handlePos2;\n }\n };\n Slider.prototype.checkHandlePosition = function (value) {\n var pos;\n value = (100 *\n (value - (parseFloat(formatUnit(this.min))))) / ((parseFloat(formatUnit(this.max))) - (parseFloat(formatUnit(this.min))));\n if (this.orientation === 'Horizontal') {\n pos = this.element.getBoundingClientRect().width * (value / 100);\n }\n else {\n pos = this.element.getBoundingClientRect().height * (value / 100);\n }\n if (((parseFloat(formatUnit(this.max))) === (parseFloat(formatUnit(this.min))))) {\n if (this.orientation === 'Horizontal') {\n pos = this.element.getBoundingClientRect().width;\n }\n else {\n pos = this.element.getBoundingClientRect().height;\n }\n }\n return pos;\n };\n Slider.prototype.checkHandleValue = function (value) {\n if (this.min > this.max) {\n this.min = this.max;\n }\n if (this.min === this.max) {\n return (parseFloat(formatUnit(this.max)));\n }\n var handle = this.tempStartEnd();\n if (value < handle.start) {\n value = handle.start;\n }\n else if (value > handle.end) {\n value = handle.end;\n }\n return value;\n };\n /**\n * It is used to reposition slider.\n * @returns void\n */\n Slider.prototype.reposition = function () {\n var _this = this;\n this.firstHandle.style.transition = 'none';\n if (this.type !== 'Default') {\n this.rangeBar.style.transition = 'none';\n }\n if (this.type === 'Range') {\n this.secondHandle.style.transition = 'none';\n }\n this.handlePos1 = this.checkHandlePosition(this.handleVal1);\n if (this.handleVal2) {\n this.handlePos2 = this.checkHandlePosition(this.handleVal2);\n }\n if (this.orientation === 'Horizontal') {\n // eslint-disable-next-line\n this.enableRtl ? this.firstHandle.style.right =\n this.handlePos1 + \"px\" : this.firstHandle.style.left = this.handlePos1 + \"px\";\n if (this.isMaterialTooltip) {\n // eslint-disable-next-line\n this.enableRtl ? this.materialHandle.style.right =\n this.handlePos1 + \"px\" : this.materialHandle.style.left = this.handlePos1 + \"px\";\n }\n if (this.type === 'MinRange') {\n // eslint-disable-next-line\n this.enableRtl ? (this.rangeBar.style.right = '0px') : (this.rangeBar.style.left = '0px');\n setStyleAttribute(this.rangeBar, { 'width': isNullOrUndefined(this.handlePos1) ? 0 : this.handlePos1 + 'px' });\n }\n else if (this.type === 'Range') {\n // eslint-disable-next-line\n this.enableRtl ? this.secondHandle.style.right =\n this.handlePos2 + \"px\" : this.secondHandle.style.left = this.handlePos2 + \"px\";\n // eslint-disable-next-line\n this.enableRtl ? (this.rangeBar.style.right =\n this.handlePos1 + 'px') : (this.rangeBar.style.left = this.handlePos1 + 'px');\n setStyleAttribute(this.rangeBar, { 'width': this.handlePos2 - this.handlePos1 + 'px' });\n }\n }\n else {\n this.firstHandle.style.bottom = this.handlePos1 + \"px\";\n if (this.isMaterialTooltip) {\n this.materialHandle.style.bottom = this.handlePos1 + \"px\";\n }\n if (this.type === 'MinRange') {\n this.rangeBar.style.bottom = '0px';\n setStyleAttribute(this.rangeBar, { 'height': isNullOrUndefined(this.handlePos1) ? 0 : this.handlePos1 + 'px' });\n }\n else if (this.type === 'Range') {\n this.secondHandle.style.bottom = this.handlePos2 + \"px\";\n this.rangeBar.style.bottom = this.handlePos1 + 'px';\n setStyleAttribute(this.rangeBar, { 'height': this.handlePos2 - this.handlePos1 + 'px' });\n }\n }\n if (this.limits.enabled) {\n this.setLimitBar();\n }\n if (this.ticks.placement !== 'None' && this.ul) {\n this.removeElement(this.ul);\n this.ul = undefined;\n this.renderScale();\n }\n this.handleStart();\n if (!this.tooltip.isVisible) {\n setTimeout(function () {\n _this.firstHandle.style.transition = _this.scaleTransform;\n if (_this.type === 'Range') {\n _this.secondHandle.style.transition = _this.scaleTransform;\n }\n });\n }\n this.refreshTooltip(this.tooltipTarget);\n this.setBarColor();\n };\n Slider.prototype.changeHandleValue = function (value) {\n var position = null;\n if (this.activeHandle === 1) {\n if (!(this.limits.enabled && this.limits.startHandleFixed)) {\n this.handleVal1 = this.checkHandleValue(value);\n this.handlePos1 = this.checkHandlePosition(this.handleVal1);\n if (this.type === 'Range' && this.handlePos1 > this.handlePos2) {\n this.handlePos1 = this.handlePos2;\n this.handleVal1 = this.handleVal2;\n }\n if (this.handlePos1 !== this.preHandlePos1) {\n position = this.preHandlePos1 = this.handlePos1;\n }\n }\n this.modifyZindex();\n }\n else {\n if (!(this.limits.enabled && this.limits.endHandleFixed)) {\n this.handleVal2 = this.checkHandleValue(value);\n this.handlePos2 = this.checkHandlePosition(this.handleVal2);\n if (this.type === 'Range' && this.handlePos2 < this.handlePos1) {\n this.handlePos2 = this.handlePos1;\n this.handleVal2 = this.handleVal1;\n }\n if (this.handlePos2 !== this.preHandlePos2) {\n position = this.preHandlePos2 = this.handlePos2;\n }\n }\n this.modifyZindex();\n }\n if (position !== null) {\n if (this.type !== 'Default') {\n this.setRangeBar();\n }\n this.setHandlePosition(null);\n }\n };\n // eslint-disable-next-line\n Slider.prototype.tempStartEnd = function () {\n if (this.min > this.max) {\n return {\n start: this.max,\n end: this.min\n };\n }\n else {\n return {\n start: this.min,\n end: this.max\n };\n }\n };\n // eslint-disable-next-line\n Slider.prototype.xyToPosition = function (position) {\n var pos;\n if (this.min === this.max) {\n return 100;\n }\n if (this.orientation === 'Horizontal') {\n var left = position.x - this.element.getBoundingClientRect().left;\n var num = this.element.offsetWidth / 100;\n this.val = (left / num);\n }\n else {\n var top_1 = position.y - this.element.getBoundingClientRect().top;\n var num = this.element.offsetHeight / 100;\n this.val = 100 - (top_1 / num);\n }\n var val = this.stepValueCalculation(this.val);\n if (val < 0) {\n val = 0;\n }\n else if (val > 100) {\n val = 100;\n }\n if (this.enableRtl && this.orientation !== 'Vertical') {\n val = 100 - val;\n }\n if (this.orientation === 'Horizontal') {\n pos = this.element.getBoundingClientRect().width * (val / 100);\n }\n else {\n pos = this.element.getBoundingClientRect().height * (val / 100);\n }\n return pos;\n };\n Slider.prototype.stepValueCalculation = function (value) {\n if (this.step === 0) {\n this.step = 1;\n }\n var percentStep = (parseFloat(formatUnit(this.step))) / ((parseFloat(formatUnit(this.max)) - parseFloat(formatUnit(this.min))) / 100);\n var remain = value % Math.abs(percentStep);\n if (remain !== 0) {\n if ((percentStep / 2) > remain) {\n value -= remain;\n }\n else {\n value += Math.abs(percentStep) - remain;\n }\n }\n return value;\n };\n Slider.prototype.add = function (a, b, addition) {\n var precision;\n var x = Math.pow(10, precision || 3);\n var val;\n if (addition) {\n val = (Math.round(a * x) + Math.round(b * x)) / x;\n }\n else {\n val = (Math.round(a * x) - Math.round(b * x)) / x;\n }\n return val;\n };\n Slider.prototype.positionToValue = function (pos) {\n var val;\n var diff = parseFloat(formatUnit(this.max)) - parseFloat(formatUnit(this.min));\n if (this.orientation === 'Horizontal') {\n val = (pos / this.element.getBoundingClientRect().width) * diff;\n }\n else {\n val = (pos / this.element.getBoundingClientRect().height) * diff;\n }\n var total = this.add(val, parseFloat(this.min.toString()), true);\n return (total);\n };\n Slider.prototype.sliderBarClick = function (evt) {\n evt.preventDefault();\n // eslint-disable-next-line\n var pos;\n if (evt.type === 'mousedown' || evt.type === 'mouseup' || evt.type === 'click') {\n pos = { x: evt.clientX, y: evt.clientY };\n }\n else if (evt.type === 'touchend' || evt.type === 'touchstart') {\n pos = { x: evt.changedTouches[0].clientX, y: evt.changedTouches[0].clientY };\n }\n var handlepos = this.xyToPosition(pos);\n var handleVal = this.positionToValue(handlepos);\n if (this.type === 'Range' && (this.handlePos2 - handlepos) < (handlepos - this.handlePos1)) {\n this.activeHandle = 2;\n if (!(this.limits.enabled && this.limits.endHandleFixed)) {\n if (this.limits.enabled) {\n var value = this.getLimitValueAndPosition(handleVal, this.limits.maxStart, this.limits.maxEnd);\n handleVal = value[0];\n handlepos = value[1];\n }\n this.secondHandle.classList.add(classNames.sliderActiveHandle);\n this.handlePos2 = this.preHandlePos2 = handlepos;\n this.handleVal2 = handleVal;\n }\n this.modifyZindex();\n this.secondHandle.focus();\n }\n else {\n this.activeHandle = 1;\n if (!(this.limits.enabled && this.limits.startHandleFixed)) {\n if (this.limits.enabled) {\n var value = this.getLimitValueAndPosition(handleVal, this.limits.minStart, this.limits.minEnd);\n handleVal = value[0];\n handlepos = value[1];\n }\n this.firstHandle.classList.add(classNames.sliderActiveHandle);\n this.handlePos1 = this.preHandlePos1 = handlepos;\n this.handleVal1 = handleVal;\n }\n this.modifyZindex();\n this.firstHandle.focus();\n }\n if (this.isMaterialTooltip) {\n this.tooltipElement.classList.add(classNames.materialTooltipActive);\n }\n var focusedElement = this.element.querySelector('.' + classNames.sliderTabHandle);\n if (focusedElement && this.getHandle() !== focusedElement) {\n focusedElement.classList.remove(classNames.sliderTabHandle);\n }\n var handle = this.activeHandle === 1 ? this.firstHandle : this.secondHandle;\n if (evt.target === handle) {\n if (this.isMaterial && !this.tooltip.isVisible &&\n !this.getHandle().classList.contains(classNames.sliderTabHandle)) {\n this.materialChange();\n }\n this.sliderBarUp(evt);\n this.tooltipToggle(this.getHandle());\n return;\n }\n if (!this.checkRepeatedValue(handleVal)) {\n return;\n }\n var transition = this.isMaterial && this.tooltip.isVisible ?\n this.transitionOnMaterialTooltip : this.transition;\n this.getHandle().style.transition = transition.handle;\n if (this.type !== 'Default') {\n this.rangeBar.style.transition = transition.rangeBar;\n }\n this.setHandlePosition(evt);\n if (this.isMaterialTooltip) {\n this.initialTooltip = false;\n }\n this.changeEvent('changed', evt);\n if (this.type !== 'Default') {\n this.setRangeBar();\n }\n };\n Slider.prototype.handleValueAdjust = function (handleValue, assignValue, handleNumber) {\n if (handleNumber === 1) {\n this.handleVal1 = assignValue;\n this.handleVal2 = this.handleVal1 + this.minDiff;\n }\n else if (handleNumber === 2) {\n this.handleVal2 = assignValue;\n this.handleVal1 = this.handleVal2 - this.minDiff;\n }\n this.handlePos1 = this.checkHandlePosition(this.handleVal1);\n this.handlePos2 = this.checkHandlePosition(this.handleVal2);\n };\n Slider.prototype.dragRangeBarMove = function (event) {\n var _a, _b;\n if (event.type !== 'touchmove') {\n event.preventDefault();\n }\n this.rangeBarDragged = true;\n var pos;\n this.rangeBar.style.transition = 'none';\n this.firstHandle.style.transition = 'none';\n this.secondHandle.style.transition = 'none';\n var xPostion;\n var yPostion;\n if (event.type === 'mousemove') {\n _a = [event.clientX, event.clientY], xPostion = _a[0], yPostion = _a[1];\n }\n else {\n _b = [event.changedTouches[0].clientX, event.changedTouches[0].clientY], xPostion = _b[0], yPostion = _b[1];\n }\n if (!(this.limits.enabled && this.limits.startHandleFixed) && !(this.limits.enabled && this.limits.endHandleFixed)) {\n if (!this.enableRtl) {\n pos = { x: xPostion - this.firstPartRemain, y: yPostion + this.secondPartRemain };\n }\n else {\n pos = { x: xPostion + this.secondPartRemain, y: yPostion + this.secondPartRemain };\n }\n this.handlePos1 = this.xyToPosition(pos);\n this.handleVal1 = this.positionToValue(this.handlePos1);\n if (!this.enableRtl) {\n pos = { x: xPostion + this.secondPartRemain, y: yPostion - this.firstPartRemain };\n }\n else {\n pos = { x: xPostion - this.firstPartRemain, y: yPostion - this.firstPartRemain };\n }\n this.handlePos2 = this.xyToPosition(pos);\n this.handleVal2 = this.positionToValue(this.handlePos2);\n if (this.limits.enabled) {\n var value = this.getLimitValueAndPosition(this.handleVal1, this.limits.minStart, this.limits.minEnd);\n this.handleVal1 = value[0];\n this.handlePos1 = value[1];\n if (this.handleVal1 === this.limits.minEnd) {\n this.handleValueAdjust(this.handleVal1, this.limits.minEnd, 1);\n }\n if (this.handleVal1 === this.limits.minStart) {\n this.handleValueAdjust(this.handleVal1, this.limits.minStart, 1);\n }\n value = this.getLimitValueAndPosition(this.handleVal2, this.limits.maxStart, this.limits.maxEnd);\n this.handleVal2 = value[0];\n this.handlePos2 = value[1];\n if (this.handleVal2 === this.limits.maxStart) {\n this.handleValueAdjust(this.handleVal2, this.limits.maxStart, 2);\n }\n if (this.handleVal2 === this.limits.maxEnd) {\n this.handleValueAdjust(this.handleVal2, this.limits.maxEnd, 2);\n }\n }\n if (this.handleVal2 === this.max) {\n this.handleValueAdjust(this.handleVal2, this.max, 2);\n }\n if (this.handleVal1 === this.min) {\n this.handleValueAdjust(this.handleVal1, this.min, 1);\n }\n }\n this.activeHandle = 1;\n this.setHandlePosition(event);\n this.activeHandle = 2;\n this.setHandlePosition(event);\n this.tooltipToggle(this.rangeBar);\n this.setRangeBar();\n };\n Slider.prototype.sliderBarUp = function (event) {\n this.changeEvent('changed', event);\n this.handleFocusOut();\n this.firstHandle.classList.remove(classNames.sliderActiveHandle);\n if (this.type === 'Range') {\n this.initialTooltip = false;\n this.secondHandle.classList.remove(classNames.sliderActiveHandle);\n }\n this.closeTooltip();\n if (this.isMaterial) {\n this.getHandle().classList.remove('e-large-thumb-size');\n if (this.isMaterialTooltip) {\n this.tooltipElement.classList.remove(classNames.materialTooltipActive);\n }\n }\n EventHandler.remove(document, 'mousemove touchmove', this.sliderBarMove);\n EventHandler.remove(document, 'mouseup touchend', this.sliderBarUp);\n };\n Slider.prototype.sliderBarMove = function (evt) {\n if (evt.type !== 'touchmove') {\n evt.preventDefault();\n }\n var pos;\n if (evt.type === 'mousemove') {\n pos = { x: evt.clientX, y: evt.clientY };\n }\n else {\n pos = { x: evt.changedTouches[0].clientX, y: evt.changedTouches[0].clientY };\n }\n var handlepos = this.xyToPosition(pos);\n var handleVal = this.positionToValue(handlepos);\n handlepos = Math.round(handlepos);\n if (this.type !== 'Range' && this.activeHandle === 1) {\n if (!(this.limits.enabled && this.limits.startHandleFixed)) {\n if (this.limits.enabled) {\n var valueAndPostion = this.getLimitValueAndPosition(handleVal, this.limits.minStart, this.limits.minEnd);\n handlepos = valueAndPostion[1];\n handleVal = valueAndPostion[0];\n }\n this.handlePos1 = handlepos;\n this.handleVal1 = handleVal;\n }\n this.firstHandle.classList.add(classNames.sliderActiveHandle);\n }\n if (this.type === 'Range') {\n if (this.activeHandle === 1) {\n this.firstHandle.classList.add(classNames.sliderActiveHandle);\n if (!(this.limits.enabled && this.limits.startHandleFixed)) {\n if (handlepos > this.handlePos2) {\n handlepos = this.handlePos2;\n handleVal = this.handleVal2;\n }\n if (handlepos !== this.preHandlePos1) {\n if (this.limits.enabled) {\n var value = this.getLimitValueAndPosition(handleVal, this.limits.minStart, this.limits.minEnd);\n handleVal = value[0];\n handlepos = value[1];\n }\n this.handlePos1 = this.preHandlePos1 = handlepos;\n this.handleVal1 = handleVal;\n this.activeHandle = 1;\n }\n }\n }\n else if (this.activeHandle === 2) {\n this.secondHandle.classList.add(classNames.sliderActiveHandle);\n if (!(this.limits.enabled && this.limits.endHandleFixed)) {\n if (handlepos < this.handlePos1) {\n handlepos = this.handlePos1;\n handleVal = this.handleVal1;\n }\n if (handlepos !== this.preHandlePos2) {\n if (this.limits.enabled) {\n var value = this.getLimitValueAndPosition(handleVal, this.limits.maxStart, this.limits.maxEnd);\n handleVal = value[0];\n handlepos = value[1];\n }\n this.handlePos2 = this.preHandlePos2 = handlepos;\n this.handleVal2 = handleVal;\n this.activeHandle = 2;\n }\n }\n }\n }\n if (!this.checkRepeatedValue(handleVal)) {\n return;\n }\n this.getHandle().style.transition = this.scaleTransform;\n if (this.type !== 'Default') {\n this.rangeBar.style.transition = 'none';\n }\n this.setHandlePosition(evt);\n if (this.isMaterial && !this.tooltip.isVisible &&\n !this.getHandle().classList.contains(classNames.sliderTabHandle)) {\n this.materialChange();\n }\n this.tooltipToggle(this.getHandle());\n if (this.type !== 'Default') {\n this.setRangeBar();\n }\n };\n Slider.prototype.dragRangeBarUp = function (event) {\n if (!this.rangeBarDragged) {\n this.focusSliderElement();\n this.sliderBarClick(event);\n }\n else {\n this.isDragComplete = true;\n }\n this.changeEvent('changed', event);\n this.closeTooltip();\n EventHandler.remove(document, 'mousemove touchmove', this.dragRangeBarMove);\n EventHandler.remove(document, 'mouseup touchend', this.dragRangeBarUp);\n this.rangeBarDragged = false;\n };\n Slider.prototype.checkRepeatedValue = function (currentValue) {\n if (this.type === 'Range') {\n var previousVal = this.enableRtl && this.orientation !== 'Vertical' ? (this.activeHandle === 1 ?\n this.previousVal[1] : this.previousVal[0]) :\n (this.activeHandle === 1 ? this.previousVal[0] : this.previousVal[1]);\n if (currentValue === previousVal) {\n return 0;\n }\n }\n else {\n if (currentValue === this.previousVal) {\n return 0;\n }\n }\n return 1;\n };\n Slider.prototype.refreshTooltip = function (target) {\n if (this.tooltip.isVisible && this.tooltipObj) {\n this.tooltipValue();\n if (target) {\n this.tooltipObj.refresh(target);\n this.tooltipTarget = target;\n }\n }\n };\n Slider.prototype.openTooltip = function (target) {\n if (this.tooltip.isVisible && this.tooltipObj && !this.isMaterialTooltip) {\n this.tooltipValue();\n // eslint-disable-next-line security/detect-non-literal-fs-filename -- Safe as no value holds user input\n this.tooltipObj.open(target);\n this.tooltipTarget = target;\n }\n };\n Slider.prototype.closeTooltip = function () {\n if (this.tooltip.isVisible && this.tooltipObj && this.tooltip.showOn !== 'Always' && !this.isMaterialTooltip) {\n this.tooltipValue();\n this.tooltipObj.close();\n this.tooltipTarget = undefined;\n }\n };\n Slider.prototype.keyDown = function (event) {\n switch (event.keyCode) {\n case 37:\n case 38:\n case 39:\n case 40:\n case 33:\n case 34:\n case 36:\n case 35:\n event.preventDefault();\n this.buttonClick(event);\n break;\n }\n };\n Slider.prototype.wireButtonEvt = function (destroy) {\n if (!destroy) {\n EventHandler.add(this.firstBtn, 'mouseleave touchleave', this.buttonFocusOut, this);\n EventHandler.add(this.secondBtn, 'mouseleave touchleave', this.buttonFocusOut, this);\n EventHandler.add(this.firstBtn, 'mousedown touchstart', this.repeatHandlerMouse, this);\n EventHandler.add(this.firstBtn, 'mouseup mouseleave touchup touchend', this.repeatHandlerUp, this);\n EventHandler.add(this.secondBtn, 'mousedown touchstart', this.repeatHandlerMouse, this);\n EventHandler.add(this.secondBtn, 'mouseup mouseleave touchup touchend', this.repeatHandlerUp, this);\n EventHandler.add(this.firstBtn, 'focusout', this.sliderFocusOut, this);\n EventHandler.add(this.secondBtn, 'focusout', this.sliderFocusOut, this);\n }\n else {\n EventHandler.remove(this.firstBtn, 'mouseleave touchleave', this.buttonFocusOut);\n EventHandler.remove(this.secondBtn, 'mouseleave touchleave', this.buttonFocusOut);\n EventHandler.remove(this.firstBtn, 'mousedown touchstart', this.repeatHandlerMouse);\n EventHandler.remove(this.firstBtn, 'mouseup mouseleave touchup touchend', this.repeatHandlerUp);\n EventHandler.remove(this.secondBtn, 'mousedown touchstart', this.repeatHandlerMouse);\n EventHandler.remove(this.secondBtn, 'mouseup mouseleave touchup touchend', this.repeatHandlerUp);\n EventHandler.remove(this.firstBtn, 'focusout', this.sliderFocusOut);\n EventHandler.remove(this.secondBtn, 'focusout', this.sliderFocusOut);\n }\n };\n Slider.prototype.rangeBarMousedown = function (event) {\n var _a, _b;\n event.preventDefault();\n this.focusSliderElement();\n if (this.type === 'Range' && this.drag && event.target === this.rangeBar) {\n var xPostion = void 0;\n var yPostion = void 0;\n if (event.type === 'mousedown') {\n _a = [event.clientX, event.clientY], xPostion = _a[0], yPostion = _a[1];\n }\n else if (event.type === 'touchstart') {\n _b = [event.changedTouches[0].clientX, event.changedTouches[0].clientY], xPostion = _b[0], yPostion = _b[1];\n }\n if (this.orientation === 'Horizontal') {\n this.firstPartRemain = xPostion - this.rangeBar.getBoundingClientRect().left;\n this.secondPartRemain = this.rangeBar.getBoundingClientRect().right - xPostion;\n }\n else {\n this.firstPartRemain = yPostion - this.rangeBar.getBoundingClientRect().top;\n this.secondPartRemain = this.rangeBar.getBoundingClientRect().bottom - yPostion;\n }\n this.minDiff = this.handleVal2 - this.handleVal1;\n this.tooltipToggle(this.rangeBar);\n var focusedElement = this.element.querySelector('.' + classNames.sliderTabHandle);\n if (focusedElement) {\n focusedElement.classList.remove(classNames.sliderTabHandle);\n }\n EventHandler.add(document, 'mousemove touchmove', this.dragRangeBarMove, this);\n EventHandler.add(document, 'mouseup touchend', this.dragRangeBarUp, this);\n }\n };\n Slider.prototype.elementClick = function (event) {\n if (this.isDragComplete) {\n this.isDragComplete = false;\n return;\n }\n event.preventDefault();\n this.focusSliderElement();\n this.sliderBarClick(event);\n this.focusHandle();\n };\n Slider.prototype.wireEvents = function () {\n this.onresize = this.reposition.bind(this);\n window.addEventListener('resize', this.onresize);\n if (this.enabled && !this.readonly) {\n EventHandler.add(this.element, 'click', this.elementClick, this);\n if (this.type === 'Range' && this.drag) {\n EventHandler.add(this.rangeBar, 'mousedown touchstart', this.rangeBarMousedown, this);\n }\n EventHandler.add(this.sliderContainer, 'keydown', this.keyDown, this);\n EventHandler.add(this.sliderContainer, 'keyup', this.keyUp, this);\n EventHandler.add(this.element, 'focusout', this.sliderFocusOut, this);\n EventHandler.add(this.sliderContainer, 'mouseover mouseout touchstart touchend', this.hover, this);\n this.wireFirstHandleEvt(false);\n if (this.type === 'Range') {\n this.wireSecondHandleEvt(false);\n }\n if (this.showButtons) {\n this.wireButtonEvt(false);\n }\n this.wireMaterialTooltipEvent(false);\n if (this.isForm) {\n EventHandler.add(this.formElement, 'reset', this.formResetHandler, this);\n }\n }\n };\n Slider.prototype.unwireEvents = function () {\n EventHandler.remove(this.element, 'click', this.elementClick);\n if (this.type === 'Range' && this.drag) {\n EventHandler.remove(this.rangeBar, 'mousedown touchstart', this.rangeBarMousedown);\n }\n EventHandler.remove(this.sliderContainer, 'keydown', this.keyDown);\n EventHandler.remove(this.sliderContainer, 'keyup', this.keyUp);\n EventHandler.remove(this.element, 'focusout', this.sliderFocusOut);\n EventHandler.remove(this.sliderContainer, 'mouseover mouseout touchstart touchend', this.hover);\n this.wireFirstHandleEvt(true);\n if (this.type === 'Range') {\n this.wireSecondHandleEvt(true);\n }\n if (this.showButtons) {\n this.wireButtonEvt(true);\n }\n this.wireMaterialTooltipEvent(true);\n EventHandler.remove(this.element, 'reset', this.formResetHandler);\n };\n Slider.prototype.formResetHandler = function () {\n this.setProperties({ 'value': this.formResetValue }, true);\n this.setValue();\n };\n Slider.prototype.keyUp = function (event) {\n if (event.keyCode === 9 && event.target.classList.contains(classNames.sliderHandle)) {\n this.focusSliderElement();\n if (!event.target.classList.contains(classNames.sliderTabHandle)) {\n if (this.element.querySelector('.' + classNames.sliderTabHandle)) {\n this.element.querySelector('.' + classNames.sliderTabHandle).classList.remove(classNames.sliderTabHandle);\n }\n event.target.classList.add(classNames.sliderTabHandle);\n var parentElement = event.target.parentElement;\n if (parentElement === this.element) {\n parentElement.querySelector('.' + classNames.sliderTrack).classList.add(classNames.sliderTabTrack);\n if (this.type === 'Range' || this.type === 'MinRange') {\n parentElement.querySelector('.' + classNames.rangeBar).classList.add(classNames.sliderTabRange);\n }\n }\n if (this.type === 'Range') {\n (event.target.previousSibling).classList.contains(classNames.sliderHandle) ?\n this.activeHandle = 2 : this.activeHandle = 1;\n }\n this.getHandle().focus();\n this.tooltipToggle(this.getHandle());\n }\n }\n this.closeTooltip();\n this.changeEvent('changed', event);\n };\n Slider.prototype.hover = function (event) {\n if (!isNullOrUndefined(event)) {\n if (event.type === 'mouseover' || event.type === 'touchmove' || event.type === 'mousemove' ||\n event.type === 'pointermove' || event.type === 'touchstart') {\n this.sliderContainer.classList.add(classNames.sliderHover);\n }\n else {\n this.sliderContainer.classList.remove(classNames.sliderHover);\n var curTarget = event.currentTarget;\n if (this.tooltip.isVisible && this.tooltip.showOn !== 'Always' && this.tooltipObj && this.isMaterialTooltip &&\n !curTarget.classList.contains(classNames.sliderHandleFocused) &&\n !curTarget.classList.contains(classNames.sliderTabHandle)) {\n this.closeMaterialTooltip();\n }\n }\n }\n };\n Slider.prototype.sliderFocusOut = function (event) {\n if (event.relatedTarget !== this.secondHandle && event.relatedTarget !== this.firstHandle &&\n event.relatedTarget !== this.element && event.relatedTarget !== this.firstBtn && event.relatedTarget !== this.secondBtn) {\n this.closeMaterialTooltip();\n this.closeTooltip();\n if (this.element.querySelector('.' + classNames.sliderTabHandle)) {\n this.element.querySelector('.' + classNames.sliderTabHandle).classList.remove(classNames.sliderTabHandle);\n }\n if (this.element.querySelector('.' + classNames.sliderTabTrack)) {\n this.element.querySelector('.' + classNames.sliderTabTrack).classList.remove(classNames.sliderTabTrack);\n if ((this.type === 'Range' || this.type === 'MinRange') &&\n this.element.querySelector('.' + classNames.sliderTabRange)) {\n this.element.querySelector('.' + classNames.sliderTabRange).classList.remove(classNames.sliderTabRange);\n }\n }\n this.hiddenInput.focus();\n this.hiddenInput.blur();\n this.isElementFocused = false;\n }\n };\n Slider.prototype.removeElement = function (element) {\n if (element.parentNode) {\n element.parentNode.removeChild(element);\n }\n };\n Slider.prototype.changeSliderType = function (type, args) {\n if (this.isMaterialTooltip && this.materialHandle) {\n this.sliderContainer.classList.remove(classNames.materialSlider);\n this.removeElement(this.materialHandle);\n this.materialHandle = undefined;\n }\n this.removeElement(this.firstHandle);\n this.firstHandle = undefined;\n if (type !== 'Default') {\n if (type === 'Range') {\n this.removeElement(this.secondHandle);\n this.secondHandle = undefined;\n }\n this.removeElement(this.rangeBar);\n this.rangeBar = undefined;\n }\n if (this.tooltip.isVisible && !isNullOrUndefined(this.tooltipObj)) {\n this.tooltipObj.destroy();\n this.tooltipElement = undefined;\n this.tooltipCollidedPosition = undefined;\n }\n if (this.limits.enabled) {\n if (type === 'MinRange' || type === 'Default') {\n if (!isNullOrUndefined(this.limitBarFirst)) {\n this.removeElement(this.limitBarFirst);\n this.limitBarFirst = undefined;\n }\n }\n else {\n if (!isNullOrUndefined(this.limitBarSecond)) {\n this.removeElement(this.limitBarSecond);\n this.limitBarSecond = undefined;\n }\n }\n }\n this.activeHandle = 1;\n this.getThemeInitialization();\n if (this.type === 'Range') {\n this.rangeValueUpdate();\n }\n this.createRangeBar();\n if (this.limits.enabled) {\n this.createLimitBar();\n }\n this.setHandler();\n this.setOrientClass();\n this.wireFirstHandleEvt(false);\n if (this.type === 'Range') {\n this.wireSecondHandleEvt(false);\n }\n this.setValue();\n if (this.tooltip.isVisible) {\n this.renderTooltip();\n this.wireMaterialTooltipEvent(false);\n }\n this.setBarColor();\n if (args !== 'tooltip') {\n this.updateConfig();\n }\n };\n Slider.prototype.changeRtl = function () {\n if (!this.enableRtl && this.type === 'Range') {\n this.value = [this.handleVal2, this.handleVal1];\n }\n this.updateConfig();\n if (this.tooltip.isVisible) {\n this.tooltipObj.refresh(this.firstHandle);\n }\n if (this.showButtons) {\n var enabledRTL = this.enableRtl && this.orientation !== 'Vertical';\n attributes(enabledRTL ? this.secondBtn : this.firstBtn, { 'aria-label': 'Decrease', title: 'Decrease' });\n attributes(enabledRTL ? this.firstBtn : this.secondBtn, { 'aria-label': 'Increase', title: 'Increase' });\n }\n };\n Slider.prototype.changeOrientation = function () {\n this.changeSliderType(this.type, 'null');\n };\n Slider.prototype.updateConfig = function () {\n this.setEnableRTL();\n this.setValue();\n if (this.tooltip.isVisible) {\n this.refreshTooltip(this.tooltipTarget);\n }\n if (this.ticks.placement !== 'None') {\n if (this.ul) {\n this.removeElement(this.ul);\n this.ul = undefined;\n this.renderScale();\n }\n }\n this.limitsPropertyChange();\n };\n Slider.prototype.limitsPropertyChange = function () {\n if (this.limits.enabled) {\n if (isNullOrUndefined(this.limitBarFirst) && this.type !== 'Range') {\n this.createLimitBar();\n }\n if (isNullOrUndefined(this.limitBarFirst) && isNullOrUndefined(this.limitBarSecond) && this.type === 'Range') {\n this.createLimitBar();\n }\n this.setLimitBar();\n this.setValue();\n }\n else {\n if (!isNullOrUndefined(this.limitBarFirst)) {\n detach(this.limitBarFirst);\n }\n if (!isNullOrUndefined(this.limitBarSecond)) {\n detach(this.limitBarSecond);\n }\n }\n };\n /**\n * Get the properties to be maintained in the persisted state.\n * @private\n */\n Slider.prototype.getPersistData = function () {\n var keyEntity = ['value'];\n return this.addOnPersist(keyEntity);\n };\n /**\n * Removes the component from the DOM and detaches all its related event handlers.\n * Also it removes the attributes and classes.\n * @method destroy\n * @return {void}\n */\n Slider.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n this.unwireEvents();\n window.removeEventListener('resize', this.onresize);\n removeClass([this.sliderContainer], [classNames.sliderDisabled]);\n this.firstHandle.removeAttribute('aria-orientation');\n if (this.type === 'Range') {\n this.secondHandle.removeAttribute('aria-orientation');\n }\n this.sliderContainer.parentNode.insertBefore(this.element, this.sliderContainer);\n detach(this.sliderContainer);\n if (this.tooltip.isVisible) {\n this.tooltipObj.destroy();\n }\n this.element.innerHTML = '';\n };\n /**\n * Calls internally if any of the property value is changed.\n * @private\n */\n // tslint:disable-next-line\n Slider.prototype.onPropertyChanged = function (newProp, oldProp) {\n var _this = this;\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'cssClass':\n this.setCSSClass(oldProp.cssClass);\n break;\n case 'value':\n if (newProp && oldProp) {\n var value = isNullOrUndefined(newProp.value) ?\n (this.type === 'Range' ? [this.min, this.max] : this.min) : newProp.value;\n this.setProperties({ 'value': value }, true);\n if (!isNullOrUndefined(oldProp.value) && oldProp.value.toString() !== value.toString()) {\n this.setValue();\n this.refreshTooltip(this.tooltipTarget);\n if (this.type === 'Range') {\n if (isNullOrUndefined(newProp.value) || oldProp.value[1] === value[1]) {\n this.activeHandle = 1;\n }\n else {\n this.activeHandle = 2;\n }\n }\n }\n }\n break;\n case 'min':\n case 'step':\n case 'max':\n this.setMinMaxValue();\n break;\n case 'tooltip':\n if (!isNullOrUndefined(newProp.tooltip) && !isNullOrUndefined(oldProp.tooltip)) {\n this.setTooltip(prop);\n }\n break;\n case 'type':\n if (!isNullOrUndefined(oldProp) && Object.keys(oldProp).length\n && !isNullOrUndefined(oldProp.type)) {\n this.changeSliderType(oldProp.type, prop);\n this.setZindex();\n }\n break;\n case 'enableRtl':\n if (oldProp.enableRtl !== newProp.enableRtl && this.orientation !== 'Vertical') {\n this.rtl = oldProp.enableRtl;\n this.changeRtl();\n }\n break;\n case 'limits':\n this.limitsPropertyChange();\n break;\n case 'orientation':\n this.changeOrientation();\n break;\n case 'ticks':\n if (!isNullOrUndefined(this.sliderContainer.querySelector('.' + classNames.scale))) {\n detach(this.ul);\n Array.prototype.forEach.call(this.sliderContainer.classList, function (className) {\n if (className.match(/e-scale-/)) {\n _this.sliderContainer.classList.remove(className);\n }\n });\n }\n if (this.ticks.placement !== 'None') {\n this.renderScale();\n this.setZindex();\n }\n break;\n case 'locale':\n if (this.showButtons) {\n this.buttonTitle();\n }\n break;\n case 'showButtons':\n if (newProp.showButtons) {\n this.setButtons();\n this.reposition();\n if (this.enabled && !this.readonly) {\n this.wireButtonEvt(false);\n }\n }\n else {\n if (this.firstBtn && this.secondBtn) {\n this.sliderContainer.removeChild(this.firstBtn);\n this.sliderContainer.removeChild(this.secondBtn);\n this.sliderContainer.classList.remove(classNames.sliderButtonClass);\n this.firstBtn = undefined;\n this.secondBtn = undefined;\n this.reposition();\n }\n }\n break;\n case 'enabled':\n this.setEnabled();\n break;\n case 'readonly':\n this.setReadOnly();\n break;\n case 'customValues':\n this.setValue();\n this.reposition();\n break;\n case 'colorRange':\n this.reposition();\n break;\n case 'width':\n this.setElementWidth(newProp.width);\n this.setMinMaxValue();\n if (this.limits) {\n this.limitsPropertyChange();\n }\n break;\n }\n }\n };\n Slider.prototype.setReadOnly = function () {\n if (this.readonly) {\n this.unwireEvents();\n this.sliderContainer.classList.add(classNames.readonly);\n }\n else {\n this.wireEvents();\n this.sliderContainer.classList.remove(classNames.readonly);\n }\n };\n Slider.prototype.setMinMaxValue = function () {\n var _this = this;\n this.setValue();\n this.refreshTooltip(this.tooltipTarget);\n if (!isNullOrUndefined(this.sliderContainer.querySelector('.' + classNames.scale))) {\n if (this.ul) {\n detach(this.ul);\n Array.prototype.forEach.call(this.sliderContainer.classList, function (className) {\n if (className.match(/e-scale-/)) {\n _this.sliderContainer.classList.remove(className);\n }\n });\n }\n }\n if (this.ticks.placement !== 'None') {\n this.renderScale();\n this.setZindex();\n }\n };\n Slider.prototype.setZindex = function () {\n this.zIndex = 6;\n if (!isNullOrUndefined(this.ticks) && this.ticks.placement !== 'None') {\n this.ul.style.zIndex = (this.zIndex + -7) + '';\n this.element.style.zIndex = (this.zIndex + 2) + '';\n }\n if (!this.isMaterial && !isNullOrUndefined(this.ticks) && this.ticks.placement === 'Both') {\n this.element.style.zIndex = (this.zIndex + 2) + '';\n }\n this.firstHandle.style.zIndex = (this.zIndex + 3) + '';\n if (this.type === 'Range') {\n this.secondHandle.style.zIndex = (this.zIndex + 4) + '';\n }\n };\n Slider.prototype.setTooltip = function (args) {\n this.changeSliderType(this.type, args);\n };\n Slider.prototype.setBarColor = function () {\n var trackPosition;\n var trackClassName;\n var child = this.sliderTrack.lastElementChild;\n while (child) {\n this.sliderTrack.removeChild(child);\n child = this.sliderTrack.lastElementChild;\n }\n for (var i = 0; i < this.colorRange.length; i++) {\n if (!isNullOrUndefined(this.colorRange[i].start) && !isNullOrUndefined(this.colorRange[i].end)) {\n if (this.colorRange[i].end > this.colorRange[i].start) {\n if (this.colorRange[i].start < this.min) {\n this.colorRange[i].start = this.min;\n }\n if (this.colorRange[i].end > this.max) {\n this.colorRange[i].end = this.max;\n }\n var startingPosition = this.checkHandlePosition(this.colorRange[i].start);\n var endPosition = this.checkHandlePosition(this.colorRange[i].end);\n var trackContainer = this.createElement('div');\n trackContainer.style.backgroundColor = this.colorRange[i].color;\n trackContainer.style.border = '1px solid ' + this.colorRange[i].color;\n if (this.orientation === 'Horizontal') {\n trackClassName = classNames.sliderHorizantalColor;\n if (this.enableRtl) {\n if (isNullOrUndefined(this.customValues)) {\n trackPosition = this.checkHandlePosition(this.max) - this.checkHandlePosition(this.colorRange[i].end);\n }\n else {\n trackPosition = this.checkHandlePosition(this.customValues.length - this.colorRange[i].end - 1);\n }\n }\n else {\n trackPosition = this.checkHandlePosition(this.colorRange[i].start);\n }\n trackContainer.style.width = endPosition - startingPosition + 'px';\n trackContainer.style.left = trackPosition + 'px';\n }\n else {\n trackClassName = classNames.sliderVerticalColor;\n trackPosition = this.checkHandlePosition(this.colorRange[i].start);\n trackContainer.style.height = endPosition - startingPosition + 'px';\n trackContainer.style.bottom = trackPosition + 'px';\n }\n trackContainer.classList.add(trackClassName);\n this.sliderTrack.appendChild(trackContainer);\n }\n }\n }\n };\n /**\n * Gets the component name\n * @private\n */\n Slider.prototype.getModuleName = function () {\n return 'slider';\n };\n __decorate([\n Property(null)\n ], Slider.prototype, \"value\", void 0);\n __decorate([\n Property(null)\n ], Slider.prototype, \"customValues\", void 0);\n __decorate([\n Property(1)\n ], Slider.prototype, \"step\", void 0);\n __decorate([\n Property(null)\n ], Slider.prototype, \"width\", void 0);\n __decorate([\n Property(0)\n ], Slider.prototype, \"min\", void 0);\n __decorate([\n Property(100)\n ], Slider.prototype, \"max\", void 0);\n __decorate([\n Property(false)\n ], Slider.prototype, \"readonly\", void 0);\n __decorate([\n Property('Default')\n ], Slider.prototype, \"type\", void 0);\n __decorate([\n Collection([{}], ColorRangeData)\n ], Slider.prototype, \"colorRange\", void 0);\n __decorate([\n Complex({}, TicksData)\n ], Slider.prototype, \"ticks\", void 0);\n __decorate([\n Complex({}, LimitData)\n ], Slider.prototype, \"limits\", void 0);\n __decorate([\n Property(true)\n ], Slider.prototype, \"enabled\", void 0);\n __decorate([\n Complex({}, TooltipData)\n ], Slider.prototype, \"tooltip\", void 0);\n __decorate([\n Property(false)\n ], Slider.prototype, \"showButtons\", void 0);\n __decorate([\n Property(true)\n ], Slider.prototype, \"enableAnimation\", void 0);\n __decorate([\n Property('Horizontal')\n ], Slider.prototype, \"orientation\", void 0);\n __decorate([\n Property('')\n ], Slider.prototype, \"cssClass\", void 0);\n __decorate([\n Property(false)\n ], Slider.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Event()\n ], Slider.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], Slider.prototype, \"change\", void 0);\n __decorate([\n Event()\n ], Slider.prototype, \"changed\", void 0);\n __decorate([\n Event()\n ], Slider.prototype, \"renderingTicks\", void 0);\n __decorate([\n Event()\n ], Slider.prototype, \"renderedTicks\", void 0);\n __decorate([\n Event()\n ], Slider.prototype, \"tooltipChange\", void 0);\n Slider = __decorate([\n NotifyPropertyChanges\n ], Slider);\n return Slider;\n}(Component));\nexport { Slider };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/* eslint-disable prefer-spread */\nimport { Component, Event, NotifyPropertyChanges, Property } from '@syncfusion/ej2-base';\nimport { Browser, closest, detach, EventHandler, getInstance, select, selectAll, formatUnit } from '@syncfusion/ej2-base';\nimport { addClass, attributes, classList, isNullOrUndefined, L10n } from '@syncfusion/ej2-base';\nimport { remove, removeClass, rippleEffect } from '@syncfusion/ej2-base';\nimport { SplitButton, getModel } from '@syncfusion/ej2-splitbuttons';\nimport { Deferred } from '@syncfusion/ej2-splitbuttons';\nimport { Tooltip, getZindexPartial, Popup } from '@syncfusion/ej2-popups';\nimport { Input } from './../input/index';\nimport { NumericTextBox } from './../numerictextbox/index';\nimport { Slider } from './../slider/slider';\nvar APPLY = 'e-apply';\nvar CANCEL = 'e-cancel';\nvar CURRENT = 'e-current';\nvar CONTAINER = 'e-container';\nvar CTRLBTN = 'e-ctrl-btn';\nvar CTRLSWITCH = 'e-switch-ctrl-btn';\nvar DISABLED = 'e-disabled';\nvar FORMATSWITCH = 'e-value-switch-btn';\nvar HANDLER = 'e-handler';\nvar HEX = 'e-hex';\nvar HIDEHEX = 'e-hide-hex-value';\nvar HIDEOPACITY = 'e-hide-opacity';\nvar HIDERGBA = 'e-hide-switchable-value';\nvar HIDEVALUE = 'e-hide-value';\nvar HIDEVALUESWITCH = 'e-hide-valueswitcher';\nvar HSVAREA = 'e-hsv-color';\nvar HSVCONTAINER = 'e-hsv-container';\nvar INPUTWRAPPER = 'e-selected-value';\nvar MODESWITCH = 'e-mode-switch-btn';\nvar NOCOLOR = 'e-nocolor-item';\nvar OPACITY = 'e-opacity-value';\nvar PALETTES = 'e-palette';\nvar PALETTECONTENT = 'e-color-palette';\nvar PICKERCONTENT = 'e-color-picker';\nvar PREVIEW = 'e-preview-container';\nvar PREVIOUS = 'e-previous';\nvar RTL = 'e-rtl';\nvar SHOWVALUE = 'e-show-value';\nvar SELECT = 'e-selected';\nvar SPLITPREVIEW = 'e-split-preview';\nvar TILE = 'e-tile';\nvar presets = {\n default: ['#000000', '#f44336', '#e91e63', '#9c27b0', '#673ab7', '#2196f3', '#03a9f4', '#00bcd4', '#009688', '#ffeb3b',\n '#ffffff', '#ffebee', '#fce4ec', '#f3e5f5', '#ede7f6', '#e3f2fd', '#e1f5fe', '#e0f7fa', '#e0f2f1', '#fffde7',\n '#f2f2f2', '#ffcdd2', '#f8bbd0', '#e1bee7', '#d1c4e9', '#bbdefb', '#b3e5fc', '#b2ebf2', '#b2dfdb', '#fff9c4',\n '#e6e6e6', '#ef9a9a', '#f48fb1', '#ce93d8', '#b39ddb', '#90caf9', '#81d4fa', '#80deea', '#80cbc4', '#fff59d',\n '#cccccc', '#e57373', '#f06292', '#ba68c8', '#9575cd', '#64b5f6', '#4fc3f7', '#4dd0e1', '#4db6ac', '#fff176',\n '#b3b3b3', '#ef5350', '#ec407a', '#ab47bc', '#7e57c2', '#42a5f5', '#29b6f6', '#26c6da', '#26a69a', '#ffee58',\n '#999999', '#e53935', '#d81b60', '#8e24aa', '#5e35b1', '#1e88e5', '#039be5', '#00acc1', '#00897b', '#fdd835',\n '#808080', '#d32f2f', '#c2185b', '#7b1fa2', '#512da8', '#1976d2', '#0288d1', '#0097a7', '#00796b', '#fbc02d',\n '#666666', '#c62828', '#ad1457', '#6a1b9a', '#4527a0', '#1565c0', '#0277bd', '#00838f', '#00695c', '#f9a825',\n '#4d4d4d', '#b71c1c', '#880e4f', '#4a148c', '#311b92', '#0d47a1', '#01579b', '#006064', '#004d40', '#f57f17']\n};\n/**\n * ColorPicker component is a user interface to select and adjust color values. It provides supports for various\n * color specification like Red Green Blue, Hue Saturation Value and Hex codes.\n * ```html\n * \n * ```\n * ```typescript\n * \n * ```\n */\nvar ColorPicker = /** @class */ (function (_super) {\n __extends(ColorPicker, _super);\n function ColorPicker(options, element) {\n return _super.call(this, options, element) || this;\n }\n ColorPicker.prototype.preRender = function () {\n var ele = this.element;\n this.formElement = closest(this.element, 'form');\n if (this.formElement) {\n EventHandler.add(this.formElement, 'reset', this.formResetHandler, this);\n }\n var localeText = { Apply: 'Apply', Cancel: 'Cancel', ModeSwitcher: 'Switch Mode' };\n this.l10n = new L10n('colorpicker', localeText, this.locale);\n if (ele.getAttribute('ejs-for') && !ele.getAttribute('name')) {\n ele.setAttribute('name', ele.id);\n }\n };\n /**\n * To Initialize the component rendering\n *\n * @private\n * @returns {void}\n */\n ColorPicker.prototype.render = function () {\n this.initWrapper();\n if (this.inline) {\n this.createWidget();\n }\n else {\n this.createSplitBtn();\n }\n if (!this.enableOpacity) {\n addClass([this.container.parentElement], HIDEOPACITY);\n }\n this.renderComplete();\n };\n ColorPicker.prototype.initWrapper = function () {\n var wrapper = this.createElement('div', { className: 'e-' + this.getModuleName() + '-wrapper' });\n this.element.parentNode.insertBefore(wrapper, this.element);\n wrapper.appendChild(this.element);\n attributes(this.element, { 'tabindex': '-1', 'spellcheck': 'false', 'aria-label': 'colorpicker' });\n this.container = this.createElement('div', { className: CONTAINER });\n this.getWrapper().appendChild(this.container);\n var value = this.value ? this.roundValue(this.value).toLowerCase() : '#008000ff';\n if (this.noColor && this.mode === 'Palette' && this.value === '') {\n value = '';\n }\n var slicedValue = value.slice(0, 7);\n if (isNullOrUndefined(this.initialInputValue)) {\n this.initialInputValue = slicedValue;\n }\n this.element.value = slicedValue;\n if (this.enableOpacity) {\n this.setProperties({ 'value': value }, true);\n }\n else {\n this.setProperties({ 'value': slicedValue }, true);\n }\n if (this.enableRtl) {\n wrapper.classList.add(RTL);\n }\n if (this.cssClass) {\n addClass([wrapper], this.cssClass.split(' '));\n }\n this.tileRipple = rippleEffect(this.container, { selector: '.' + TILE });\n this.ctrlBtnRipple = rippleEffect(this.container, { selector: '.e-btn' });\n };\n ColorPicker.prototype.getWrapper = function () {\n return this.element.parentElement;\n };\n ColorPicker.prototype.createWidget = function () {\n if (this.mode === 'Palette') {\n this.createPalette();\n if (!this.inline) {\n this.firstPaletteFocus();\n }\n }\n else {\n this.createPicker();\n if (!this.inline) {\n this.getDragHandler().focus();\n }\n }\n this.isRgb = true;\n this.createInput();\n this.createCtrlBtn();\n if (!this.disabled) {\n this.wireEvents();\n }\n if (this.inline && this.disabled) {\n this.toggleDisabled(true);\n }\n if (Browser.isDevice) {\n this.refreshPopupPos();\n }\n };\n ColorPicker.prototype.createSplitBtn = function () {\n var _this = this;\n var splitButton = this.createElement('button', { className: 'e-split-colorpicker' });\n this.getWrapper().appendChild(splitButton);\n this.splitBtn = new SplitButton({\n iconCss: 'e-selected-color',\n target: this.container,\n disabled: this.disabled,\n enableRtl: this.enableRtl,\n createPopupOnClick: this.createPopupOnClick,\n open: this.onOpen.bind(this),\n click: function () {\n _this.trigger('change', {\n currentValue: { hex: _this.value.slice(0, 7), rgba: _this.convertToRgbString(_this.hexToRgb(_this.value)) },\n previousValue: { hex: null, rgba: null }, value: _this.value\n });\n }\n });\n this.splitBtn.createElement = this.createElement;\n this.splitBtn.appendTo(splitButton);\n var preview = this.createElement('span', { className: SPLITPREVIEW });\n select('.e-selected-color', splitButton).appendChild(preview);\n preview.style.backgroundColor = this.convertToRgbString(this.hexToRgb(this.value));\n var popupEle = this.getPopupEle();\n addClass([popupEle], 'e-colorpicker-popup');\n if (this.cssClass) {\n addClass([popupEle], this.cssClass.split(' '));\n }\n if (Browser.isDevice) {\n var popupInst = this.getPopupInst();\n popupInst.relateTo = document.body;\n popupInst.position = { X: 'center', Y: 'center' };\n popupInst.targetType = 'container';\n popupInst.collision = { X: 'fit', Y: 'fit' };\n popupInst.offsetY = 4;\n popupEle.style.zIndex = getZindexPartial(this.splitBtn.element).toString();\n }\n this.bindCallBackEvent();\n };\n ColorPicker.prototype.onOpen = function () {\n this.trigger('open', { element: this.container });\n };\n ColorPicker.prototype.getPopupInst = function () {\n return getInstance(this.getPopupEle(), Popup);\n };\n ColorPicker.prototype.bindCallBackEvent = function () {\n var _this = this;\n this.splitBtn.beforeOpen = function (args) {\n var callBackPromise = new Deferred();\n _this.trigger('beforeOpen', args, function (observeOpenArgs) {\n if (!observeOpenArgs.cancel) {\n var popupEle = _this.getPopupEle();\n popupEle.style.top = formatUnit(0 + pageYOffset);\n popupEle.style.left = formatUnit(0 + pageXOffset);\n popupEle.style.display = 'block';\n _this.createWidget();\n popupEle.style.display = '';\n if (Browser.isDevice) {\n _this.modal = _this.createElement('div');\n _this.modal.className = 'e-' + _this.getModuleName() + ' e-modal';\n _this.modal.style.display = 'none';\n document.body.insertBefore(_this.modal, popupEle);\n document.body.className += ' e-colorpicker-overflow';\n _this.modal.style.display = 'block';\n _this.modal.style.zIndex = (Number(popupEle.style.zIndex) - 1).toString();\n }\n }\n args.cancel = observeOpenArgs.cancel;\n callBackPromise.resolve(observeOpenArgs);\n });\n return callBackPromise;\n };\n this.splitBtn.beforeClose = function (args) {\n var callBackPromise = new Deferred();\n if (!isNullOrUndefined(args.event)) {\n var beforeCloseArgs = { element: _this.container, event: args.event, cancel: false };\n _this.trigger('beforeClose', beforeCloseArgs, function (observedCloseArgs) {\n if (Browser.isDevice && args.event.target === _this.modal) {\n observedCloseArgs.cancel = true;\n }\n if (!observedCloseArgs.cancel) {\n _this.onPopupClose();\n }\n args.cancel = observedCloseArgs.cancel;\n callBackPromise.resolve(observedCloseArgs);\n });\n }\n else {\n callBackPromise.resolve(args);\n }\n return callBackPromise;\n };\n };\n ColorPicker.prototype.onPopupClose = function () {\n this.unWireEvents();\n this.destroyOtherComp();\n this.container.style.width = '';\n select('.' + SPLITPREVIEW, this.splitBtn.element).style.backgroundColor\n = this.convertToRgbString(this.hexToRgb(this.value));\n this.container.innerHTML = '';\n removeClass([this.container], [PICKERCONTENT, PALETTECONTENT]);\n if (Browser.isDevice && this.modal) {\n removeClass([document.body], 'e-colorpicker-overflow');\n this.modal.style.display = 'none';\n this.modal.outerHTML = '';\n this.modal = null;\n }\n };\n ColorPicker.prototype.createPalette = function () {\n classList(this.container, [PALETTECONTENT], [PICKERCONTENT]);\n if (this.presetColors) {\n var paletteGroup = this.createElement('div', { className: 'e-custom-palette' });\n this.appendElement(paletteGroup);\n var keys = Object.keys(this.presetColors);\n if (keys.length === 1) {\n this.appendPalette(this.presetColors[keys[0]], keys[0], paletteGroup);\n }\n else {\n for (var i = 0, len = keys.length; i < len; i++) {\n this.appendPalette(this.presetColors[keys[i]], keys[i], paletteGroup);\n }\n }\n if (selectAll('.e-row', paletteGroup).length > 10) {\n addClass([paletteGroup], 'e-palette-group');\n }\n }\n else {\n this.appendPalette(presets.default, 'default');\n }\n if (this.mode === 'Palette' && !this.modeSwitcher && this.noColor) {\n this.setNoColor();\n }\n var width = parseInt(getComputedStyle(this.container).borderBottomWidth, 10);\n this.container.style.width = formatUnit(this.container.children[0].offsetWidth + width + width);\n this.rgb = this.hexToRgb(this.roundValue(this.value));\n this.hsv = this.rgbToHsv.apply(this, this.rgb);\n };\n ColorPicker.prototype.firstPaletteFocus = function () {\n if (!select('.' + SELECT, this.container.children[0])) {\n selectAll('.' + PALETTES, this.container)[0].focus();\n }\n };\n ColorPicker.prototype.appendPalette = function (colors, key, refEle) {\n var palette = this.createElement('div', { className: PALETTES, attrs: { 'tabindex': '0', 'role': 'grid' } });\n if (refEle) {\n refEle.appendChild(palette);\n }\n else {\n this.appendElement(palette);\n }\n var row;\n var tile;\n var roundedColor;\n for (var i = 0, len = colors.length; i < len; i++) {\n if (i === 0 || i % this.columns === 0) {\n row = this.createElement('div', {\n className: 'e-row', attrs: { 'role': 'row' }\n });\n palette.appendChild(row);\n }\n roundedColor = this.roundValue(colors[i]).toLowerCase();\n tile = this.createElement('span', {\n className: TILE, attrs: { 'role': 'gridcell', 'aria-label': roundedColor, 'aria-selected': 'false', 'tabindex': '0' }\n });\n this.trigger('beforeTileRender', { element: tile, presetName: key, value: colors[i] });\n row.appendChild(tile);\n if (this.value === roundedColor) {\n this.addTileSelection(tile);\n palette.focus();\n }\n tile.style.backgroundColor = this.convertToRgbString(this.hexToRgb(roundedColor));\n }\n };\n ColorPicker.prototype.setNoColor = function () {\n var noColorEle = this.container.querySelector('.e-row').children[0];\n noColorEle.classList.add(NOCOLOR);\n if (!this.value) {\n noColorEle.classList.add(SELECT);\n closest(noColorEle, '.' + PALETTES).focus();\n }\n ['aria-selected', 'aria-label'].forEach(function (attr) { noColorEle.removeAttribute(attr); });\n noColorEle.style.backgroundColor = '';\n };\n ColorPicker.prototype.appendElement = function (ele, insertPos) {\n if (insertPos === void 0) { insertPos = 0; }\n var refEle = this.container.children[insertPos];\n if (refEle) {\n this.container.insertBefore(ele, refEle);\n }\n else {\n this.container.appendChild(ele);\n }\n };\n ColorPicker.prototype.addTileSelection = function (ele) {\n ele.classList.add(SELECT);\n ele.setAttribute('aria-selected', 'true');\n };\n ColorPicker.prototype.createPicker = function () {\n classList(this.container, [PICKERCONTENT], [PALETTECONTENT]);\n var hsvContainer = this.createElement('div', { className: HSVCONTAINER });\n this.appendElement(hsvContainer);\n hsvContainer.appendChild(this.createElement('div', { className: HSVAREA }));\n var dragHandler = this.createElement('span', { className: HANDLER, attrs: { 'tabindex': '0' } });\n hsvContainer.appendChild(dragHandler);\n if (this.value === null) {\n this.value = '#008000ff';\n }\n this.rgb = this.hexToRgb(this.value);\n this.hsv = this.rgbToHsv.apply(this, this.rgb);\n this.setHsvContainerBg();\n this.setHandlerPosition();\n this.createSlider();\n this.createDragTooltip();\n };\n ColorPicker.prototype.setHsvContainerBg = function (h) {\n if (h === void 0) { h = this.hsv[0]; }\n this.getHsvContainer().style.backgroundColor = this.convertToRgbString(this.hsvToRgb(h, 100, 100, 1));\n };\n ColorPicker.prototype.getHsvContainer = function () {\n return select('.' + HSVCONTAINER, this.container);\n };\n ColorPicker.prototype.setHandlerPosition = function () {\n var dragHandler = this.getDragHandler();\n var hsvArea = select('.' + HSVAREA, this.container);\n if (this.enableRtl) {\n dragHandler.style.left = formatUnit(hsvArea.offsetWidth * Math.abs(100 - this.hsv[1]) / 100);\n }\n else {\n dragHandler.style.left = formatUnit(hsvArea.offsetWidth * this.hsv[1] / 100);\n }\n dragHandler.style.top = formatUnit(hsvArea.offsetHeight * (100 - this.hsv[2]) / 100);\n };\n ColorPicker.prototype.createSlider = function () {\n var sliderPreviewWrapper = this.createElement('div', { className: 'e-slider-preview' });\n this.appendElement(sliderPreviewWrapper, 1);\n this.createPreview(sliderPreviewWrapper);\n var sliderWrapper = this.createElement('div', { className: 'e-colorpicker-slider' });\n sliderPreviewWrapper.insertBefore(sliderWrapper, sliderPreviewWrapper.children[0]);\n var slider = this.createElement('div', { className: 'e-hue-slider' });\n sliderWrapper.appendChild(slider);\n this.hueSlider = new Slider({\n value: this.hsv[0],\n min: 0,\n max: 359,\n enableRtl: this.enableRtl,\n enabled: !this.disabled,\n change: this.hueChange.bind(this)\n });\n this.hueSlider.createElement = this.createElement;\n this.hueSlider.appendTo(slider);\n if (this.enableOpacity) {\n slider = this.createElement('div', { className: 'e-opacity-slider' });\n sliderWrapper.appendChild(slider);\n this.createOpacitySlider(slider);\n }\n };\n ColorPicker.prototype.createOpacitySlider = function (slider) {\n this.opacitySlider = new Slider({\n value: this.rgb[3] * 100,\n min: 0,\n max: 100,\n enableRtl: this.enableRtl,\n enabled: !this.disabled,\n change: this.opacityChange.bind(this)\n });\n this.opacitySlider.createElement = this.createElement;\n this.opacitySlider.appendTo(slider);\n var opacityBgTrack = this.createElement('div', { className: 'e-opacity-empty-track' });\n slider.appendChild(opacityBgTrack);\n this.updateOpacitySliderBg();\n };\n ColorPicker.prototype.updateOpacitySliderBg = function () {\n var direction = this.enableRtl ? 'to left' : 'to right';\n var opacityEle = select('.e-opacity-empty-track', this.opacitySlider.element);\n if (opacityEle) {\n opacityEle.style.background =\n 'linear-gradient(' + direction + ', rgba(' + this.rgb.slice(0, 3) + ', 0) 0%, ' +\n this.convertToRgbString(this.rgb.slice(0, 3)) + ' 100%)';\n }\n };\n ColorPicker.prototype.hueChange = function (args) {\n this.hsv[0] = args.value;\n this.setHsvContainerBg();\n this.convertToOtherFormat();\n };\n ColorPicker.prototype.opacityChange = function (args) {\n var value = args.value;\n var pValue = this.rgbToHex(this.rgb);\n this.hsv[3] = value / 100;\n this.rgb[3] = value / 100;\n var cValue = this.rgbToHex(this.rgb);\n this.updateOpacityInput(value);\n var rgb = this.convertToRgbString(this.rgb);\n this.updatePreview(rgb);\n this.triggerEvent(cValue, pValue, rgb);\n };\n ColorPicker.prototype.updateOpacityInput = function (value) {\n if (this.enableOpacity && !this.getWrapper().classList.contains(HIDEVALUE)) {\n var opacityTextBoxInst = getInstance(select('.' + OPACITY, this.container), NumericTextBox);\n opacityTextBoxInst.value = value;\n opacityTextBoxInst.dataBind();\n }\n };\n ColorPicker.prototype.createPreview = function (parentEle) {\n var previewContainer = this.createElement('div', { className: PREVIEW });\n parentEle.appendChild(previewContainer);\n var preview = this.createElement('span', { className: 'e-preview ' + CURRENT });\n previewContainer.appendChild(preview);\n var colorValue = this.convertToRgbString(this.rgb);\n preview.style.backgroundColor = colorValue;\n preview = this.createElement('span', { className: 'e-preview ' + PREVIOUS });\n previewContainer.appendChild(preview);\n preview.style.backgroundColor = colorValue;\n };\n ColorPicker.prototype.isPicker = function () {\n return !this.container.classList.contains(PALETTECONTENT);\n };\n ColorPicker.prototype.getPopupEle = function () {\n return this.container.parentElement;\n };\n ColorPicker.prototype.createNumericInput = function (element, value, label, max) {\n var _this = this;\n var numericInput = new NumericTextBox({\n value: value,\n placeholder: label,\n min: 0,\n max: max,\n format: '###.##',\n showSpinButton: false,\n floatLabelType: 'Always',\n enableRtl: this.enableRtl,\n enabled: !this.disabled,\n readonly: this.isPicker() ? false : true,\n change: function (args) {\n if (args.event) {\n _this.inputHandler(args.event);\n }\n }\n });\n numericInput.createElement = this.createElement;\n numericInput.appendTo(element);\n };\n ColorPicker.prototype.createInput = function () {\n var isPicker = this.isPicker();\n var wrapper = this.getWrapper();\n if ((isPicker && !wrapper.classList.contains(HIDEVALUE)) || (!isPicker && wrapper.classList.contains(SHOWVALUE))) {\n var inputWrap = this.createElement('div', { className: INPUTWRAPPER });\n if (isPicker) {\n this.appendElement(inputWrap, 2);\n }\n else {\n this.appendElement(inputWrap, 1);\n }\n var container = this.createElement('div', { className: 'e-input-container' });\n inputWrap.appendChild(container);\n if (!wrapper.classList.contains(HIDEVALUESWITCH)) {\n this.appendValueSwitchBtn(inputWrap);\n }\n if (!wrapper.classList.contains(HIDEHEX)) {\n var hexInput = this.createElement('input', {\n className: HEX,\n attrs: { 'maxlength': '7', 'spellcheck': 'false', 'aria-label': 'HEX' }\n });\n container.appendChild(hexInput);\n Input.createInput({\n element: hexInput,\n floatLabelType: 'Always',\n properties: {\n placeholder: 'HEX',\n enableRtl: this.enableRtl,\n enabled: !this.disabled,\n readonly: this.isPicker() ? false : true\n }\n }, this.createElement);\n Input.setValue(this.value.slice(0, 7), hexInput);\n hexInput.addEventListener('input', this.inputHandler.bind(this));\n }\n if (!wrapper.classList.contains(HIDERGBA)) {\n var label = void 0;\n var value = void 0;\n if (this.isRgb) {\n label = 'RGB';\n value = this.rgb;\n }\n else {\n label = 'HSV';\n value = this.hsv;\n }\n var clsName = ['rh', 'gs', 'bv'];\n for (var i = 0; i < 3; i++) {\n this.createNumericInput(container.appendChild(this.createElement('input', { className: 'e-' + clsName[i] + '-value' })), value[i], label[i], 255);\n }\n if (this.enableOpacity) {\n this.appendOpacityValue(container);\n }\n }\n }\n };\n ColorPicker.prototype.appendOpacityValue = function (container) {\n this.createNumericInput(container.appendChild(this.createElement('input', { className: OPACITY })), this.rgb[3] * 100, 'A', 100);\n };\n ColorPicker.prototype.appendValueSwitchBtn = function (targetEle) {\n var valueSwitchBtn = this.createElement('button', {\n className: 'e-icons e-css e-btn e-flat e-icon-btn ' + FORMATSWITCH,\n attrs: { 'title': 'Toggle format' }\n });\n targetEle.appendChild(valueSwitchBtn);\n if (this.isPicker() && !this.getWrapper().classList.contains(HIDERGBA)) {\n valueSwitchBtn.addEventListener('click', this.formatSwitchHandler.bind(this));\n }\n };\n ColorPicker.prototype.createCtrlBtn = function () {\n if (this.modeSwitcher || this.showButtons) {\n this.l10n.setLocale(this.locale);\n var btnWrapper = this.createElement('div', { className: CTRLSWITCH });\n this.container.appendChild(btnWrapper);\n if (this.showButtons) {\n var controlBtnWrapper = this.createElement('div', { className: CTRLBTN });\n btnWrapper.appendChild(controlBtnWrapper);\n var apply = this.l10n.getConstant('Apply');\n controlBtnWrapper.appendChild(this.createElement('button', {\n innerHTML: apply,\n className: 'e-btn e-css e-flat e-primary e-small ' + APPLY,\n attrs: { 'title': apply }\n }));\n var cancel = this.l10n.getConstant('Cancel');\n controlBtnWrapper.appendChild(this.createElement('button', {\n innerHTML: cancel,\n className: 'e-btn e-css e-flat e-small ' + CANCEL,\n attrs: { 'title': cancel }\n }));\n }\n if (this.modeSwitcher) {\n this.appendModeSwitchBtn();\n }\n }\n };\n ColorPicker.prototype.appendModeSwitchBtn = function () {\n var modeSwitcher = this.createElement('button', {\n className: 'e-icons e-btn e-flat e-icon-btn ' + MODESWITCH, attrs: { title: this.l10n.getConstant('ModeSwitcher') }\n });\n select('.' + CTRLSWITCH, this.container).insertBefore(modeSwitcher, select('.' + CTRLBTN, this.container));\n };\n ColorPicker.prototype.createDragTooltip = function () {\n var _this = this;\n var tooltip = new Tooltip({\n opensOn: 'Custom',\n showTipPointer: false,\n cssClass: 'e-color-picker-tooltip',\n beforeOpen: function (args) {\n _this.tooltipEle = args.element;\n },\n animation: { open: { effect: 'None' }, close: { effect: 'None' } }\n });\n tooltip.createElement = this.createElement;\n tooltip.appendTo(this.container);\n // eslint-disable-next-line\n tooltip.open(this.container);\n this.tooltipEle.style.zIndex = getZindexPartial(this.tooltipEle).toString();\n select('.e-tip-content', this.tooltipEle).appendChild(this.createElement('div', { className: 'e-tip-transparent' }));\n };\n ColorPicker.prototype.getTooltipInst = function () {\n return getInstance(this.container, Tooltip);\n };\n ColorPicker.prototype.setTooltipOffset = function (value) {\n this.getTooltipInst().offsetY = value;\n };\n ColorPicker.prototype.toggleDisabled = function (enable) {\n if (enable) {\n this.getWrapper().classList.add(DISABLED);\n }\n else {\n this.getWrapper().classList.remove(DISABLED);\n }\n if (this.showButtons) {\n ([].slice.call(selectAll('.e-btn', this.container))).forEach(function (ele) {\n if (enable) {\n attributes(ele, { 'disabled': '' });\n }\n else {\n ele.removeAttribute('disabled');\n }\n });\n }\n };\n ColorPicker.prototype.convertToRgbString = function (rgb) {\n return rgb.length ? rgb.length === 4 ? 'rgba(' + rgb.join() + ')' : 'rgb(' + rgb.join() + ')' : '';\n };\n ColorPicker.prototype.convertToHsvString = function (hsv) {\n return hsv.length === 4 ? 'hsva(' + hsv.join() + ')' : 'hsv(' + hsv.join() + ')';\n };\n ColorPicker.prototype.updateHsv = function () {\n this.hsv[1] = this.hsv[1] > 100 ? 100 : this.hsv[1];\n this.hsv[2] = this.hsv[2] > 100 ? 100 : this.hsv[2];\n this.setHandlerPosition();\n };\n ColorPicker.prototype.convertToOtherFormat = function (isKey) {\n if (isKey === void 0) { isKey = false; }\n var pValue = this.rgbToHex(this.rgb);\n this.rgb = this.hsvToRgb.apply(this, this.hsv);\n var cValue = this.rgbToHex(this.rgb);\n var rgba = this.convertToRgbString(this.rgb);\n this.updatePreview(rgba);\n this.updateInput(cValue);\n this.triggerEvent(cValue, pValue, rgba, isKey);\n };\n ColorPicker.prototype.updateInput = function (value) {\n var wrapper = this.getWrapper();\n if (!wrapper.classList.contains(HIDEVALUE)) {\n if (!wrapper.classList.contains(HIDEHEX)) {\n Input.setValue(value.substr(0, 7), select('.' + HEX, this.container));\n }\n if (!wrapper.classList.contains(HIDERGBA)) {\n if (this.isRgb) {\n this.updateValue(this.rgb, false);\n }\n else {\n this.updateValue(this.hsv, false);\n }\n }\n }\n };\n ColorPicker.prototype.updatePreview = function (value) {\n if (this.enableOpacity) {\n this.updateOpacitySliderBg();\n }\n select('.e-tip-transparent', this.tooltipEle).style.backgroundColor = value;\n select('.' + PREVIEW + ' .' + CURRENT, this.container).style.backgroundColor = value;\n select('.' + PREVIEW + ' .' + PREVIOUS, this.container).style.backgroundColor\n = this.convertToRgbString(this.hexToRgb(this.value));\n };\n ColorPicker.prototype.getDragHandler = function () {\n return select('.' + HANDLER, this.container);\n };\n ColorPicker.prototype.removeTileSelection = function () {\n var selectedEle = [].slice.call(selectAll('.' + SELECT, this.container.children[0]));\n selectedEle.forEach(function (ele) {\n ele.classList.remove(SELECT);\n ele.setAttribute('aria-selected', 'false');\n });\n };\n ColorPicker.prototype.convertRgbToNumberArray = function (value) {\n return (value.slice(value.indexOf('(') + 1, value.indexOf(')'))).split(',').map(function (n, i) {\n return (i !== 3) ? parseInt(n, 10) : parseFloat(n);\n });\n };\n /**\n * To get color value in specified type.\n *\n * @param {string} value - Specify the color value.\n * @param {string} type - Specify the type to which the specified color needs to be converted.\n * @method getValue\n * @returns {string} - Color value\n */\n ColorPicker.prototype.getValue = function (value, type) {\n if (!value) {\n value = this.value;\n }\n type = !type ? 'hex' : type.toLowerCase();\n if (value[0] === 'r') {\n var cValue = this.convertRgbToNumberArray(value);\n if (type === 'hex' || type === 'hexa') {\n var hex = this.rgbToHex(cValue);\n return type === 'hex' ? hex.slice(0, 7) : hex;\n }\n else {\n if (type === 'hsv') {\n return this.convertToHsvString(this.rgbToHsv.apply(this, cValue.slice(0, 3)));\n }\n else {\n if (type === 'hsva') {\n return this.convertToHsvString(this.rgbToHsv.apply(this, cValue));\n }\n else {\n return 'null';\n }\n }\n }\n }\n else {\n if (value[0] === 'h') {\n var cValue = this.hsvToRgb.apply(this, this.convertRgbToNumberArray(value));\n if (type === 'rgba') {\n return this.convertToRgbString(cValue);\n }\n else {\n if (type === 'hex' || type === 'hexa') {\n var hex = this.rgbToHex(cValue);\n return type === 'hex' ? hex.slice(0, 7) : hex;\n }\n else {\n if (type === 'rgb') {\n return this.convertToRgbString(cValue.slice(0, 3));\n }\n else {\n return 'null';\n }\n }\n }\n }\n else {\n value = this.roundValue(value);\n var rgb = this.hexToRgb(value);\n if (type === 'rgb' || type === 'hsv') {\n rgb = rgb.slice(0, 3);\n }\n if (type === 'rgba' || type === 'rgb') {\n return this.convertToRgbString(rgb);\n }\n else {\n if (type === 'hsva' || type === 'hsv') {\n return this.convertToHsvString(this.rgbToHsv.apply(this, rgb));\n }\n else {\n if (type === 'hex') {\n return value.slice(0, 7);\n }\n else {\n if (type === 'a') {\n return rgb[3].toString();\n }\n else {\n return 'null';\n }\n }\n }\n }\n }\n }\n };\n /**\n * To show/hide ColorPicker popup based on current state of the SplitButton.\n *\n * @method toggle\n * @returns {void}\n */\n ColorPicker.prototype.toggle = function () {\n if (this.container.parentElement.classList.contains('e-popup-close')) {\n this.splitBtn.toggle();\n }\n else {\n this.closePopup(null);\n }\n };\n /**\n * Get component name.\n *\n * @returns {string} - Module Name\n * @private\n */\n ColorPicker.prototype.getModuleName = function () {\n return 'colorpicker';\n };\n /**\n * Gets the properties to be maintained in the persisted state.\n *\n * @returns {string} - Persist data\n */\n ColorPicker.prototype.getPersistData = function () {\n return this.addOnPersist(['value']);\n };\n ColorPicker.prototype.wireEvents = function () {\n if (this.isPicker()) {\n var dragHandler = this.getDragHandler();\n EventHandler.add(dragHandler, 'keydown', this.pickerKeyDown, this);\n EventHandler.add(this.getHsvContainer(), 'mousedown touchstart', this.handlerDown, this);\n if (this.modeSwitcher || this.showButtons) {\n this.addCtrlSwitchEvent();\n }\n EventHandler.add(select('.' + PREVIOUS, this.container), 'click', this.previewHandler, this);\n }\n else {\n EventHandler.add(this.container, 'click', this.paletteClickHandler, this);\n EventHandler.add(this.container, 'keydown', this.paletteKeyDown, this);\n }\n };\n ColorPicker.prototype.formResetHandler = function () {\n this.value = this.initialInputValue;\n attributes(this.element, { 'value': this.initialInputValue });\n };\n ColorPicker.prototype.addCtrlSwitchEvent = function () {\n var ctrlSwitchBtn = select('.' + CTRLSWITCH, this.container);\n if (ctrlSwitchBtn) {\n EventHandler.add(ctrlSwitchBtn, 'click', this.btnClickHandler, this);\n }\n };\n ColorPicker.prototype.pickerKeyDown = function (e) {\n switch (e.keyCode) {\n case 39:\n this.handlerDragPosition(1, this.enableRtl ? -1 : 1, e);\n break;\n case 37:\n this.handlerDragPosition(1, this.enableRtl ? 1 : -1, e);\n break;\n case 38:\n this.handlerDragPosition(2, 1, e);\n break;\n case 40:\n this.handlerDragPosition(2, -1, e);\n break;\n case 13: {\n e.preventDefault();\n var cValue = this.rgbToHex(this.rgb);\n this.enterKeyHandler(cValue, e);\n }\n }\n };\n ColorPicker.prototype.enterKeyHandler = function (value, e) {\n this.triggerChangeEvent(value);\n if (!this.inline) {\n this.closePopup(e);\n this.splitBtn.element.focus();\n }\n };\n ColorPicker.prototype.closePopup = function (e) {\n var _this = this;\n var beforeCloseArgs = { element: this.container, event: e, cancel: false };\n this.trigger('beforeClose', beforeCloseArgs, function (observedcloseArgs) {\n if (!observedcloseArgs.cancel) {\n _this.splitBtn.toggle();\n _this.onPopupClose();\n }\n });\n };\n ColorPicker.prototype.triggerChangeEvent = function (value) {\n var hex = value.slice(0, 7);\n this.trigger('change', {\n currentValue: { hex: hex, rgba: this.convertToRgbString(this.rgb) },\n previousValue: { hex: this.value.slice(0, 7), rgba: this.convertToRgbString(this.hexToRgb(this.value)) },\n value: this.enableOpacity ? value : hex\n });\n if (this.enableOpacity) {\n this.setProperties({ 'value': value }, true);\n }\n else {\n this.setProperties({ 'value': hex }, true);\n }\n this.element.value = hex ? hex : '#000000';\n };\n ColorPicker.prototype.handlerDragPosition = function (prob, value, e) {\n e.preventDefault();\n this.hsv[prob] += value * (e.ctrlKey ? 1 : 3);\n if (this.hsv[prob] < 0) {\n this.hsv[prob] = 0;\n }\n this.updateHsv();\n this.convertToOtherFormat(true);\n };\n ColorPicker.prototype.handlerDown = function (e) {\n e.preventDefault();\n if (e.type === 'mousedown') {\n this.clientX = Math.abs(e.pageX - pageXOffset);\n this.clientY = Math.abs(e.pageY - pageYOffset);\n this.setTooltipOffset(8);\n }\n else {\n this.clientX = Math.abs(e.changedTouches[0].pageX - pageXOffset);\n this.clientY = Math.abs(e.changedTouches[0].pageY - pageYOffset);\n this.setTooltipOffset(-8);\n }\n this.setHsv(this.clientX, this.clientY);\n this.getDragHandler().style.transition = 'left .4s cubic-bezier(.25, .8, .25, 1), top .4s cubic-bezier(.25, .8, .25, 1)';\n this.updateHsv();\n this.convertToOtherFormat();\n this.getDragHandler().focus();\n EventHandler.add(document, 'mousemove touchmove', this.handlerMove, this);\n EventHandler.add(document, 'mouseup touchend', this.handlerEnd, this);\n };\n ColorPicker.prototype.handlerMove = function (e) {\n if (e.type !== 'touchmove') {\n e.preventDefault();\n }\n var x;\n var y;\n if (e.type === 'mousemove') {\n x = Math.abs(e.pageX - pageXOffset);\n y = Math.abs(e.pageY - pageYOffset);\n }\n else {\n x = Math.abs(e.changedTouches[0].pageX - pageXOffset);\n y = Math.abs(e.changedTouches[0].pageY - pageYOffset);\n }\n this.setHsv(x, y);\n var dragHandler = this.getDragHandler();\n this.updateHsv();\n this.convertToOtherFormat();\n this.getTooltipInst().refresh(dragHandler);\n if (!this.tooltipEle.style.transform) {\n if (Math.abs(this.clientX - x) > 8 || Math.abs(this.clientY - y) > 8) {\n select('.' + HSVAREA, this.container).style.cursor = 'pointer';\n dragHandler.style.transition = 'none';\n if (!this.inline) {\n this.tooltipEle.style.zIndex = (parseInt(this.getPopupEle().style.zIndex, 10) + 1).toString();\n }\n this.tooltipEle.style.transform = 'rotate(45deg)';\n dragHandler.classList.add('e-hide-handler');\n }\n }\n };\n ColorPicker.prototype.setHsv = function (clientX, clientY) {\n var ele = select('.' + HSVAREA, this.container);\n var position = ele.getBoundingClientRect();\n if (this.enableRtl) {\n clientX = clientX > position.right ? 0 : Math.abs(clientX - position.right);\n }\n else {\n clientX = clientX > position.left ? Math.abs(clientX - position.left) : 0;\n }\n clientY = clientY > position.top ? Math.abs(clientY - position.top) : 0;\n this.hsv[2] = Math.round(Number(100 * (ele.offsetHeight -\n Math.max(0, Math.min(ele.offsetHeight, (clientY - ele.offsetTop)))) / ele.offsetHeight) * 10) / 10;\n this.hsv[1] =\n Math.round(Number(100 * (Math.max(0, Math.min(ele.offsetWidth, (clientX - ele.offsetLeft)))) / ele.offsetWidth) * 10) / 10;\n };\n ColorPicker.prototype.handlerEnd = function (e) {\n if (e.type !== 'touchend') {\n e.preventDefault();\n }\n EventHandler.remove(document, 'mousemove touchmove', this.handlerMove);\n EventHandler.remove(document, 'mouseup touchend', this.handlerEnd);\n var dragHandler = this.getDragHandler();\n select('.' + HSVAREA, this.container).style.cursor = '';\n if (this.tooltipEle.style.transform) {\n this.tooltipEle.style.transform = '';\n dragHandler.classList.remove('e-hide-handler');\n }\n if (!this.inline && !this.showButtons) {\n this.closePopup(e);\n }\n };\n ColorPicker.prototype.btnClickHandler = function (e) {\n var target = e.target;\n if (closest(target, '.' + MODESWITCH)) {\n e.stopPropagation();\n this.switchToPalette();\n }\n else {\n if (target.classList.contains(APPLY) || target.classList.contains(CANCEL)) {\n this.ctrlBtnClick(target, e);\n }\n }\n };\n ColorPicker.prototype.switchToPalette = function () {\n this.trigger('beforeModeSwitch', { element: this.container, mode: 'Palette' });\n this.unWireEvents();\n this.destroyOtherComp();\n detach(select('.e-slider-preview', this.container));\n if (!this.getWrapper().classList.contains(HIDEVALUE)) {\n remove(select('.' + INPUTWRAPPER, this.container));\n }\n detach(this.getHsvContainer());\n this.createPalette();\n this.firstPaletteFocus();\n this.createInput();\n this.refreshPopupPos();\n this.wireEvents();\n this.trigger('onModeSwitch', { element: this.container, mode: 'Palette' });\n };\n ColorPicker.prototype.refreshPopupPos = function () {\n if (!this.inline) {\n var popupEle = this.getPopupEle();\n popupEle.style.left = formatUnit(0 + pageXOffset);\n popupEle.style.top = formatUnit(0 + pageYOffset);\n this.getPopupInst().refreshPosition(this.splitBtn.element.parentElement);\n }\n };\n ColorPicker.prototype.formatSwitchHandler = function () {\n if (this.isRgb) {\n this.updateValue(this.hsv, true, 3, [360, 100, 100]);\n this.isRgb = false;\n }\n else {\n this.updateValue(this.rgb, true, 2);\n this.isRgb = true;\n }\n };\n ColorPicker.prototype.updateValue = function (value, format, idx, max) {\n var clsName = ['e-rh-value', 'e-gs-value', 'e-bv-value'];\n var inst;\n for (var i = 0, len = clsName.length; i < len; i++) {\n inst = getInstance(select('.' + clsName[i], this.container), NumericTextBox);\n inst.value = Math.round(value[i]);\n if (format) {\n inst.placeholder = clsName[i].substr(idx, 1).toUpperCase();\n inst.max = max ? max[i] : 255;\n }\n inst.dataBind();\n }\n };\n ColorPicker.prototype.previewHandler = function (e) {\n var target = e.target;\n var pValue = this.rgbToHex(this.rgb);\n this.rgb = this.convertRgbToNumberArray(target.style.backgroundColor);\n if (!this.rgb[3]) {\n this.rgb[3] = 1;\n }\n var cValue = this.rgbToHex(this.rgb);\n var hsv = this.rgbToHsv.apply(this, this.rgb);\n if (hsv[0] !== this.hsv[0]) {\n this.hueSlider.setProperties({ 'value': hsv[0] }, true);\n this.hueSlider.refresh();\n }\n this.setHsvContainerBg(hsv[0]);\n if (this.enableOpacity && hsv[3] !== this.hsv[3]) {\n this.opacitySlider.setProperties({ 'value': hsv[3] * 100 }, true);\n this.opacitySlider.refresh();\n this.updateOpacitySliderBg();\n }\n this.hsv = hsv;\n this.setHandlerPosition();\n this.updateInput(cValue);\n select('.' + PREVIEW + ' .' + CURRENT, this.container).style.backgroundColor = this.convertToRgbString(this.rgb);\n this.triggerEvent(cValue, pValue, this.convertToRgbString(this.rgb));\n };\n ColorPicker.prototype.paletteClickHandler = function (e) {\n e.preventDefault();\n var target = e.target;\n if (target.classList.contains(TILE)) {\n this.removeTileSelection();\n this.addTileSelection(target);\n if (target.classList.contains(NOCOLOR)) {\n this.noColorTile();\n }\n else {\n var cValue = target.getAttribute('aria-label');\n var pValue = this.rgbToHex(this.rgb);\n this.rgb = this.hexToRgb(this.roundValue(cValue));\n this.hsv = this.rgbToHsv.apply(this, this.rgb);\n if (this.getWrapper().classList.contains(SHOWVALUE)) {\n this.updateInput(cValue);\n }\n this.triggerEvent(cValue, pValue, this.convertToRgbString(this.rgb));\n }\n if (!this.inline && !this.showButtons) {\n this.closePopup(e);\n }\n }\n else {\n if (closest(target, '.' + MODESWITCH)) {\n this.switchToPicker();\n }\n else {\n if (target.classList.contains(APPLY) || target.classList.contains(CANCEL)) {\n this.ctrlBtnClick(target, e);\n }\n else {\n if (this.getWrapper().classList.contains(SHOWVALUE) && closest(target, '.' + FORMATSWITCH)) {\n this.formatSwitchHandler();\n }\n }\n }\n }\n };\n ColorPicker.prototype.noColorTile = function (isKey) {\n if (isKey === void 0) { isKey = false; }\n var pValue = this.rgbToHex(this.rgb);\n this.rgb = [];\n this.hsv = [];\n this.triggerEvent('', pValue, '', isKey);\n };\n ColorPicker.prototype.switchToPicker = function () {\n var wrapper = this.getWrapper();\n this.trigger('beforeModeSwitch', { element: this.container, mode: 'Picker' });\n this.unWireEvents();\n ([].slice.call(selectAll('.' + PALETTES, this.container))).forEach(function (ele) {\n detach(ele);\n });\n if (wrapper.classList.contains(SHOWVALUE)) {\n detach(select('.' + INPUTWRAPPER, this.container));\n }\n this.container.style.width = '';\n var grpEle = select('.e-custom-palette', this.container);\n if (this.presetColors) {\n remove(grpEle);\n }\n this.createPicker();\n this.getDragHandler().focus();\n this.createInput();\n this.refreshPopupPos();\n this.wireEvents();\n this.trigger('onModeSwitch', { element: this.container, mode: 'Picker' });\n };\n ColorPicker.prototype.ctrlBtnClick = function (ele, e) {\n if (ele.classList.contains(APPLY)) {\n var cValue = this.rgbToHex(this.rgb);\n this.triggerChangeEvent(cValue);\n }\n if (!this.inline) {\n this.closePopup(e);\n this.splitBtn.element.focus();\n }\n };\n ColorPicker.prototype.paletteKeyDown = function (e) {\n var target = e.target;\n if (!target.classList.contains(PALETTES)) {\n return;\n }\n var selectedEle;\n var idx;\n var tiles = [].slice.call(selectAll('.' + TILE, target));\n var prevSelectedEle = (tiles.filter(function (tile) { return tile.classList.contains('e-selected'); })).pop();\n switch (!e.altKey && e.keyCode) {\n case 39:\n e.preventDefault();\n selectedEle = prevSelectedEle ? tiles[this.tilePosition(tiles, prevSelectedEle, this.enableRtl ? -1 : 1)]\n : tiles[this.enableRtl ? tiles.length - 1 : 0];\n this.keySelectionChanges(selectedEle);\n break;\n case 37:\n e.preventDefault();\n selectedEle = prevSelectedEle ? tiles[this.tilePosition(tiles, prevSelectedEle, this.enableRtl ? 1 : -1)]\n : tiles[this.enableRtl ? 0 : tiles.length - 1];\n this.keySelectionChanges(selectedEle);\n break;\n case 38:\n e.preventDefault();\n idx = prevSelectedEle ? this.tilePosition(tiles, prevSelectedEle, -this.columns) : 0;\n selectedEle = tiles[idx] ? tiles[idx] : tiles[idx - this.columns];\n this.keySelectionChanges(selectedEle);\n break;\n case 40:\n e.preventDefault();\n idx = prevSelectedEle ? this.tilePosition(tiles, prevSelectedEle, this.columns) : tiles.length - 1;\n if (tiles[idx]) {\n selectedEle = tiles[idx];\n }\n else {\n idx %= tiles.length;\n idx += tiles[tiles.length - 1].parentElement.childElementCount;\n selectedEle = tiles[idx];\n }\n this.keySelectionChanges(selectedEle);\n break;\n case 13:\n e.preventDefault();\n if (prevSelectedEle) {\n var cValue = prevSelectedEle.getAttribute('aria-label');\n this.enterKeyHandler(cValue ? cValue : '', e);\n }\n }\n };\n ColorPicker.prototype.keySelectionChanges = function (newEle) {\n this.removeTileSelection();\n this.addTileSelection(newEle);\n if (newEle.classList.contains(NOCOLOR)) {\n this.noColorTile(true);\n }\n else {\n var cValue = newEle.getAttribute('aria-label');\n var pValue = this.rgbToHex(this.rgb);\n this.rgb = this.hexToRgb(cValue);\n this.hsv = this.rgbToHsv.apply(this, this.rgb);\n if (this.getWrapper().classList.contains(SHOWVALUE)) {\n this.updateInput(cValue);\n }\n this.triggerEvent(cValue, pValue, this.convertToRgbString(this.rgb), true);\n }\n };\n ColorPicker.prototype.tilePosition = function (items, element, cIdx) {\n items = Array.prototype.slice.call(items);\n var n = items.length;\n var emptyCount = this.columns - items[n - 1].parentElement.childElementCount;\n var idx = items.indexOf(element);\n idx += cIdx;\n if (idx < 0) {\n idx += n + emptyCount;\n }\n else {\n idx %= n + emptyCount;\n }\n return idx;\n };\n ColorPicker.prototype.inputHandler = function (e) {\n var target = e.target;\n if (!target.value.length) {\n return;\n }\n var hsv;\n var pValue;\n var label = select('.e-float-text', target.parentElement).textContent;\n switch (label) {\n case 'HEX': {\n var value = '';\n if ((target.value[0] === '#' && target.value.length !== 5) || (target.value[0] !== '#' && target.value.length !== 4)) {\n value = this.roundValue(target.value);\n }\n if (value.length === 9) {\n pValue = this.rgbToHex(this.rgb);\n this.rgb = this.hexToRgb(value + value.substr(-2));\n this.inputValueChange(this.rgbToHsv.apply(this, this.rgb), pValue, target.value);\n }\n else {\n return;\n }\n break;\n }\n case 'R':\n if (this.rgb[0] !== Number(target.value)) {\n pValue = this.rgbToHex(this.rgb);\n this.rgb[0] = Number(target.value);\n hsv = this.rgbToHsv.apply(this, this.rgb);\n this.inputValueChange(hsv, pValue);\n }\n break;\n case 'G':\n if (this.rgb[1] !== Number(target.value)) {\n pValue = this.rgbToHex(this.rgb);\n this.rgb[1] = Number(target.value);\n hsv = this.rgbToHsv.apply(this, this.rgb);\n this.inputValueChange(hsv, pValue);\n }\n break;\n case 'B':\n if (this.rgb[2] !== Number(target.value)) {\n pValue = this.rgbToHex(this.rgb);\n this.rgb[2] = Number(target.value);\n hsv = this.rgbToHsv.apply(this, this.rgb);\n this.inputValueChange(hsv, pValue);\n }\n break;\n case 'H':\n this.hueSlider.value = Number(target.value);\n break;\n case 'S':\n if (this.hsv[1] !== Number(target.value)) {\n this.hsv[1] = Number(target.value);\n this.updateHsv();\n this.convertToOtherFormat();\n }\n break;\n case 'V':\n if (this.hsv[2] !== Number(target.value)) {\n this.hsv[2] = Number(target.value);\n this.updateHsv();\n this.convertToOtherFormat();\n }\n break;\n case 'A':\n this.opacitySlider.value = Number(target.value);\n break;\n }\n };\n ColorPicker.prototype.inputValueChange = function (hsv, pValue, value) {\n if (hsv[0] !== this.hsv[0]) {\n this.hueSlider.setProperties({ 'value': hsv[0] }, true);\n this.hueSlider.refresh();\n this.setHsvContainerBg(hsv[0]);\n }\n this.hsv = hsv;\n var cValue = this.rgbToHex(this.rgb);\n this.setHandlerPosition();\n this.updateInput(value ? value : cValue);\n var rgba = this.convertToRgbString(this.rgb);\n this.updatePreview(rgba);\n this.triggerEvent(cValue, pValue, rgba);\n };\n ColorPicker.prototype.triggerEvent = function (cValue, pValue, rgba, isKey) {\n if (isKey === void 0) { isKey = false; }\n var hex = cValue.slice(0, 7);\n if (!this.showButtons && !isKey) {\n this.trigger('change', { currentValue: { hex: hex, rgba: rgba },\n previousValue: { hex: this.value.slice(0, 7), rgba: this.convertToRgbString(this.hexToRgb(this.value)) }, value: cValue });\n if (this.enableOpacity) {\n this.setProperties({ 'value': cValue }, true);\n }\n else {\n this.setProperties({ 'value': hex }, true);\n }\n this.element.value = hex ? hex : '#000000';\n }\n else {\n this.trigger('select', {\n currentValue: { hex: hex, rgba: rgba },\n previousValue: { hex: pValue.slice(0, 7), rgba: this.convertToRgbString(this.hexToRgb(pValue)) }\n });\n }\n };\n /**\n * Removes the component from the DOM and detaches all its related event handlers.\n * Also it maintains the initial input element from the DOM.\n *\n * @method destroy\n * @returns {void}\n */\n ColorPicker.prototype.destroy = function () {\n var _this = this;\n var wrapper = this.getWrapper();\n _super.prototype.destroy.call(this);\n ['tabindex', 'spellcheck'].forEach(function (attr) { _this.element.removeAttribute(attr); });\n if (this.inline) {\n this.unWireEvents();\n this.destroyOtherComp();\n }\n else {\n if (this.isPopupOpen()) {\n this.unWireEvents();\n this.destroyOtherComp();\n }\n this.splitBtn.destroy();\n this.splitBtn = null;\n }\n this.tileRipple();\n this.tileRipple = null;\n this.ctrlBtnRipple();\n this.ctrlBtnRipple = null;\n if (this.element.nextElementSibling) {\n detach(this.element.nextElementSibling);\n }\n if (wrapper) {\n wrapper.parentElement.insertBefore(this.element, wrapper);\n detach(wrapper);\n }\n this.container = null;\n if (this.formElement) {\n EventHandler.remove(this.formElement, 'reset', this.formResetHandler);\n }\n };\n ColorPicker.prototype.destroyOtherComp = function () {\n if (this.isPicker()) {\n this.hueSlider.destroy();\n if (this.enableOpacity) {\n this.opacitySlider.destroy();\n this.opacitySlider = null;\n }\n this.hueSlider = null;\n var tooltipInst = this.getTooltipInst();\n tooltipInst.close();\n tooltipInst.destroy();\n this.tooltipEle = null;\n }\n };\n ColorPicker.prototype.isPopupOpen = function () {\n return this.getPopupEle().classList.contains('e-popup-open');\n };\n ColorPicker.prototype.unWireEvents = function () {\n if (this.isPicker()) {\n var dragHandler = this.getDragHandler();\n EventHandler.remove(dragHandler, 'keydown', this.pickerKeyDown);\n EventHandler.remove(this.getHsvContainer(), 'mousedown touchstart', this.handlerDown);\n if (this.modeSwitcher || this.showButtons) {\n EventHandler.remove(select('.' + CTRLSWITCH, this.container), 'click', this.btnClickHandler);\n }\n EventHandler.remove(select('.' + PREVIOUS, this.container), 'click', this.previewHandler);\n }\n else {\n EventHandler.remove(this.container, 'click', this.paletteClickHandler);\n EventHandler.remove(this.container, 'keydown', this.paletteKeyDown);\n }\n };\n ColorPicker.prototype.roundValue = function (value) {\n if (!value) {\n return '';\n }\n if (value[0] !== '#') {\n value = '#' + value;\n }\n var len = value.length;\n if (len === 4) {\n value += 'f';\n len = 5;\n }\n if (len === 5) {\n var tempValue = '';\n for (var i = 1, len_1 = value.length; i < len_1; i++) {\n tempValue += (value.charAt(i) + value.charAt(i));\n }\n value = '#' + tempValue;\n len = 9;\n }\n if (len === 7) {\n value += 'ff';\n }\n return value;\n };\n ColorPicker.prototype.hexToRgb = function (hex) {\n if (!hex) {\n return [];\n }\n hex = hex.trim();\n if (hex.length !== 9) {\n hex = this.roundValue(hex);\n }\n var opacity = Number((parseInt(hex.slice(-2), 16) / 255).toFixed(2));\n hex = hex.slice(1, 7);\n var bigInt = parseInt(hex, 16);\n var h = [];\n h.push((bigInt >> 16) & 255);\n h.push((bigInt >> 8) & 255);\n h.push(bigInt & 255);\n h.push(opacity);\n return h;\n };\n ColorPicker.prototype.rgbToHsv = function (r, g, b, opacity) {\n if (this.rgb && !this.rgb.length) {\n return [];\n }\n r /= 255;\n g /= 255;\n b /= 255;\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h;\n var v = max;\n var d = max - min;\n var s = max === 0 ? 0 : d / max;\n if (max === min) {\n h = 0;\n }\n else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n var hsv = [Math.round(h * 360), Math.round(s * 1000) / 10, Math.round(v * 1000) / 10];\n if (!isNullOrUndefined(opacity)) {\n hsv.push(opacity);\n }\n return hsv;\n };\n ColorPicker.prototype.hsvToRgb = function (h, s, v, opacity) {\n var r;\n var g;\n var b;\n s /= 100;\n v /= 100;\n if (s === 0) {\n r = g = b = v;\n return [Math.round(r * 255), Math.round(g * 255), Math.round(b * 255), opacity];\n }\n h /= 60;\n var i = Math.floor(h);\n var f = h - i;\n var p = v * (1 - s);\n var q = v * (1 - s * f);\n var t = v * (1 - s * (1 - f));\n switch (i) {\n case 0:\n r = v;\n g = t;\n b = p;\n break;\n case 1:\n r = q;\n g = v;\n b = p;\n break;\n case 2:\n r = p;\n g = v;\n b = t;\n break;\n case 3:\n r = p;\n g = q;\n b = v;\n break;\n case 4:\n r = t;\n g = p;\n b = v;\n break;\n default:\n r = v;\n g = p;\n b = q;\n }\n var rgb = [Math.round(r * 255), Math.round(g * 255), Math.round(b * 255)];\n if (!isNullOrUndefined(opacity)) {\n rgb.push(opacity);\n }\n return rgb;\n };\n ColorPicker.prototype.rgbToHex = function (rgb) {\n return rgb.length ? ('#' + this.hex(rgb[0]) + this.hex(rgb[1]) + this.hex(rgb[2]) +\n (!isNullOrUndefined(rgb[3]) ? (rgb[3] !== 0 ? (Math.round(rgb[3] * 255) + 0x10000).toString(16).substr(-2) : '00') : '')) : '';\n };\n ColorPicker.prototype.hex = function (x) {\n return ('0' + x.toString(16)).slice(-2);\n };\n ColorPicker.prototype.changeModeSwitcherProp = function (prop) {\n var ctrlSwitchWrapper = select('.' + CTRLSWITCH, this.container);\n if (prop) {\n if (ctrlSwitchWrapper) {\n this.appendModeSwitchBtn();\n }\n else {\n this.createCtrlBtn();\n if (this.isPicker() && !this.disabled) {\n this.addCtrlSwitchEvent();\n }\n }\n }\n else {\n if (ctrlSwitchWrapper) {\n if (this.showButtons) {\n detach(select('.' + MODESWITCH, ctrlSwitchWrapper));\n }\n else {\n remove(ctrlSwitchWrapper);\n }\n }\n }\n };\n ColorPicker.prototype.changeShowBtnProps = function (prop) {\n var ctrlBtnWrapper = select('.' + CTRLSWITCH, this.container);\n if (prop) {\n if (ctrlBtnWrapper) {\n remove(ctrlBtnWrapper);\n }\n this.createCtrlBtn();\n if (this.isPicker() && !this.disabled) {\n this.addCtrlSwitchEvent();\n }\n }\n else {\n if (this.modeSwitcher) {\n detach(select('.' + CTRLBTN, ctrlBtnWrapper));\n }\n else {\n remove(ctrlBtnWrapper);\n }\n }\n };\n ColorPicker.prototype.changeValueProp = function (newProp) {\n if (this.isPicker()) {\n this.rgb = this.hexToRgb(newProp);\n this.hsv = this.rgbToHsv.apply(this, this.rgb);\n this.setHandlerPosition();\n detach(closest(this.hueSlider.element, '.e-slider-preview'));\n this.createSlider();\n this.setHsvContainerBg();\n this.updateInput(newProp);\n if (this.rgb.length === 4) {\n this.updateOpacityInput(this.rgb[3] * 100);\n }\n }\n else {\n this.removeTileSelection();\n var ele = this.container.querySelector('span[aria-label=\"' + this.roundValue(newProp) + '\"]');\n if (ele) {\n this.addTileSelection(ele);\n }\n }\n };\n ColorPicker.prototype.setInputEleProps = function () {\n remove(select('.' + INPUTWRAPPER, this.container));\n this.createInput();\n };\n ColorPicker.prototype.changeDisabledProp = function (newProp) {\n if (this.isPicker()) {\n this.hueSlider.enabled = !newProp;\n this.opacitySlider.enabled = !newProp;\n this.setInputEleProps();\n }\n if (newProp) {\n this.toggleDisabled(true);\n this.unWireEvents();\n }\n else {\n this.toggleDisabled(false);\n this.wireEvents();\n }\n };\n ColorPicker.prototype.changeCssClassProps = function (newProp, oldProp) {\n var wrapper = this.getWrapper();\n var popupWrapper = this.getPopupEle();\n if (oldProp) {\n removeClass([wrapper, popupWrapper], oldProp.split(' '));\n }\n if (newProp) {\n addClass([wrapper, popupWrapper], newProp.split(' '));\n }\n };\n ColorPicker.prototype.changeRtlProps = function (newProp) {\n if (newProp) {\n addClass([this.getWrapper()], 'e-rtl');\n }\n else {\n removeClass([this.getWrapper()], 'e-rtl');\n }\n };\n ColorPicker.prototype.changePaletteProps = function () {\n detach(this.container.children[0]);\n this.container.style.width = '';\n this.createPalette();\n };\n ColorPicker.prototype.changeOpacityProps = function (newProp) {\n var wrapper = this.getWrapper();\n if (newProp) {\n removeClass([this.container.parentElement], HIDEOPACITY);\n this.createOpacitySlider(select('.e-colorpicker-slider', this.container).appendChild(this.createElement('div', { className: 'e-opacity-slider' })));\n if (!wrapper.classList.contains(HIDEVALUE) && !wrapper.classList.contains(HIDERGBA)) {\n this.appendOpacityValue(select('.e-input-container', this.container));\n }\n }\n else {\n addClass([this.container.parentElement], HIDEOPACITY);\n this.opacitySlider.destroy();\n remove(this.opacitySlider.element);\n this.opacitySlider = null;\n if (!wrapper.classList.contains(HIDEVALUE) && !wrapper.classList.contains(HIDERGBA)) {\n remove(select('.' + OPACITY, this.container).parentElement);\n }\n }\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {ColorPickerModel} newProp - Specifies new properties\n * @param {ColorPickerModel} oldProp - Specifies old properties\n * @returns {void}\n * @private\n */\n ColorPicker.prototype.onPropertyChanged = function (newProp, oldProp) {\n var _this = this;\n if (!isNullOrUndefined(newProp.value)) {\n var value = this.roundValue(newProp.value);\n if (value.length === 9) {\n this.element.value = this.roundValue(value).slice(0, 7);\n var preview = this.splitBtn && select('.' + SPLITPREVIEW, this.splitBtn.element);\n if (preview) {\n preview.style.backgroundColor = this.convertToRgbString(this.hexToRgb(newProp.value));\n }\n }\n else {\n this.value = oldProp.value;\n }\n }\n if (!this.inline && isNullOrUndefined(newProp.inline)) {\n var otherCompModel = ['disabled', 'enableRtl'];\n this.splitBtn.setProperties(getModel(newProp, otherCompModel));\n if (!this.isPopupOpen()) {\n this.changeCssClassProps(newProp.cssClass, oldProp.cssClass);\n this.changeRtlProps(newProp.enableRtl);\n return;\n }\n }\n var _loop_1 = function (prop) {\n switch (prop) {\n case 'inline':\n if (newProp.inline) {\n this_1.getWrapper().appendChild(this_1.container);\n this_1.splitBtn.destroy();\n detach(this_1.element.nextElementSibling);\n if (!this_1.container.children.length) {\n this_1.createWidget();\n }\n }\n else {\n this_1.destroyOtherComp();\n this_1.unWireEvents();\n this_1.container.innerHTML = '';\n this_1.createSplitBtn();\n }\n break;\n case 'cssClass': {\n this_1.changeCssClassProps(newProp.cssClass, oldProp.cssClass);\n var props = newProp.cssClass.split(' ').concat(oldProp.cssClass.split(' '));\n props = props.reduce(function (a, b) { if (a.indexOf(b) < 0) {\n a.push(b);\n } return a; }, []);\n var count_1 = 0;\n props.forEach(function (cls) {\n if (count_1 === 0 &&\n (cls === HIDEVALUE || cls === HIDEVALUESWITCH || cls === SHOWVALUE || cls === HIDEHEX || cls === HIDERGBA)) {\n var inputWrap = select('.' + INPUTWRAPPER, _this.container);\n if (inputWrap) {\n remove(select('.' + INPUTWRAPPER, _this.container));\n }\n _this.createInput();\n count_1++;\n }\n });\n break;\n }\n case 'enableRtl':\n if (this_1.isPicker()) {\n this_1.hueSlider.enableRtl = newProp.enableRtl;\n if (this_1.enableOpacity) {\n this_1.opacitySlider.enableRtl = newProp.enableRtl;\n }\n this_1.setInputEleProps();\n }\n this_1.changeRtlProps(newProp.enableRtl);\n break;\n case 'disabled':\n this_1.changeDisabledProp(newProp.disabled);\n break;\n case 'value':\n if (this_1.value !== oldProp.value) {\n this_1.changeValueProp(newProp.value);\n }\n break;\n case 'showButtons':\n this_1.changeShowBtnProps(newProp.showButtons);\n break;\n case 'mode':\n if (newProp.mode === 'Picker') {\n this_1.switchToPicker();\n }\n else {\n this_1.switchToPalette();\n }\n break;\n case 'modeSwitcher':\n this_1.changeModeSwitcherProp(newProp.modeSwitcher);\n break;\n case 'columns':\n case 'presetColors':\n if (!this_1.isPicker()) {\n this_1.changePaletteProps();\n }\n break;\n case 'noColor':\n if (newProp.noColor) {\n if (this_1.mode === 'Palette' && !this_1.modeSwitcher) {\n this_1.setNoColor();\n }\n }\n else {\n this_1.changePaletteProps();\n }\n break;\n case 'enableOpacity':\n this_1.changeOpacityProps(newProp.enableOpacity);\n break;\n }\n };\n var this_1 = this;\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n _loop_1(prop);\n }\n };\n /**\n * Sets the focus to Colorpicker\n * its native method\n *\n * @public\n * @returns {void}\n */\n ColorPicker.prototype.focusIn = function () {\n this.element.parentElement.focus();\n };\n __decorate([\n Property('#008000ff')\n ], ColorPicker.prototype, \"value\", void 0);\n __decorate([\n Property('')\n ], ColorPicker.prototype, \"cssClass\", void 0);\n __decorate([\n Property(false)\n ], ColorPicker.prototype, \"disabled\", void 0);\n __decorate([\n Property('Picker')\n ], ColorPicker.prototype, \"mode\", void 0);\n __decorate([\n Property(true)\n ], ColorPicker.prototype, \"modeSwitcher\", void 0);\n __decorate([\n Property(null)\n ], ColorPicker.prototype, \"presetColors\", void 0);\n __decorate([\n Property(true)\n ], ColorPicker.prototype, \"showButtons\", void 0);\n __decorate([\n Property(10)\n ], ColorPicker.prototype, \"columns\", void 0);\n __decorate([\n Property(false)\n ], ColorPicker.prototype, \"inline\", void 0);\n __decorate([\n Property(false)\n ], ColorPicker.prototype, \"noColor\", void 0);\n __decorate([\n Property(false)\n ], ColorPicker.prototype, \"enablePersistence\", void 0);\n __decorate([\n Property(true)\n ], ColorPicker.prototype, \"enableOpacity\", void 0);\n __decorate([\n Property(false)\n ], ColorPicker.prototype, \"createPopupOnClick\", void 0);\n __decorate([\n Event()\n ], ColorPicker.prototype, \"select\", void 0);\n __decorate([\n Event()\n ], ColorPicker.prototype, \"change\", void 0);\n __decorate([\n Event()\n ], ColorPicker.prototype, \"beforeTileRender\", void 0);\n __decorate([\n Event()\n ], ColorPicker.prototype, \"beforeOpen\", void 0);\n __decorate([\n Event()\n ], ColorPicker.prototype, \"open\", void 0);\n __decorate([\n Event()\n ], ColorPicker.prototype, \"beforeClose\", void 0);\n __decorate([\n Event()\n ], ColorPicker.prototype, \"beforeModeSwitch\", void 0);\n __decorate([\n Event()\n ], ColorPicker.prototype, \"onModeSwitch\", void 0);\n __decorate([\n Event()\n ], ColorPicker.prototype, \"created\", void 0);\n ColorPicker = __decorate([\n NotifyPropertyChanges\n ], ColorPicker);\n return ColorPicker;\n}(Component));\nexport { ColorPicker };\n","/* eslint-disable */\nimport { createElement, Browser, isBlazor, isNullOrUndefined, closest } from '@syncfusion/ej2-base';\nimport { Toolbar as Tool, Menu } from '@syncfusion/ej2-navigations';\n// eslint-disable-next-line max-len\nimport { DropDownButton } from '@syncfusion/ej2-splitbuttons';\nimport { ColorPicker, Slider } from '@syncfusion/ej2-inputs';\nimport { cloneObject } from '../drawing/drawing-util';\nimport { ComboBox } from '@syncfusion/ej2-dropdowns';\nimport { Query } from '@syncfusion/ej2-data';\nimport { DynamicStampItem, SignStampItem, StandardBusinessStampItem } from '../base/types';\n/**\n * @hidden\n */\nvar AnnotationToolbar = /** @class */ (function () {\n function AnnotationToolbar(viewer, viewerBase, toolbar) {\n var _this = this;\n this.toolbarBorderHeight = 1;\n /**\n * @private\n */\n this.isToolbarHidden = false;\n /**\n * @private\n */\n this.isMobileAnnotEnabled = false;\n this.isHighlightEnabled = false;\n this.isUnderlineEnabled = false;\n this.isStrikethroughEnabled = false;\n this.isHighlightBtnVisible = true;\n this.isCommentBtnVisible = true;\n this.isUnderlineBtnVisible = true;\n this.isStrikethroughBtnVisible = true;\n this.isColorToolVisible = true;\n this.isOpacityToolVisible = true;\n this.isDeleteAnnotationToolVisible = true;\n this.isCurrentAnnotationOpacitySet = false;\n this.isStampBtnVisible = false;\n this.isShapeBtnVisible = false;\n this.isSignatureBtnVisible = false;\n this.isInkBtnVisible = false;\n this.isFontFamilyToolVisible = false;\n this.isFontSizeToolVisible = false;\n this.isFontAlignToolVisible = false;\n this.isFontColorToolVisible = false;\n this.isFontStylesToolVisible = false;\n this.isCommentPanelBtnVisible = false;\n this.isFreeTextBtnVisible = false;\n this.isCalibrateBtnVisible = false;\n this.isStrokeColorToolVisible = false;\n this.isThicknessToolVisible = false;\n this.stampMenu = [];\n this.stampParentID = '';\n /**\n * @private\n */\n this.inkAnnotationSelected = false;\n /**\n * @private\n */\n this.openSignaturePopup = false;\n this.isSavedSignatureClicked = false;\n this.saveSignatureCount = 0;\n this.saveInitialCount = 0;\n /**\n * @private\n */\n this.isToolbarCreated = false;\n // eslint-disable-next-line\n this.addStampImage = function (args) {\n // eslint-disable-next-line\n var proxy = _this;\n // eslint-disable-next-line\n var upoadedFiles = args.target.files;\n if (args.target.files[0] !== null) {\n var uploadedFile = upoadedFiles[0];\n _this.pdfViewer.annotationModule.stampAnnotationModule.customStampName = uploadedFile.name.split('.')[0];\n if (uploadedFile.type.split('/')[0] === 'image') {\n var reader = new FileReader();\n // eslint-disable-next-line\n reader.onload = function (e) {\n var uploadedFileUrl = e.currentTarget.result;\n proxy.pdfViewer.annotation.stampAnnotationModule.isStampAddMode = true;\n proxy.pdfViewer.annotationModule.stampAnnotationModule.isStampAnnotSelected = true;\n proxy.pdfViewerBase.stampAdded = true;\n _this.pdfViewer.annotationModule.stampAnnotationModule.createCustomStampAnnotation(uploadedFileUrl);\n proxy.pdfViewerBase.stampAdded = false;\n };\n reader.readAsDataURL(uploadedFile);\n }\n }\n args.target.value = '';\n args.currentTarget.value = '';\n };\n this.popupPosition = function (colorElement, buttonElement) {\n if (colorElement && colorElement.element) {\n var buttonBounds = buttonElement.getBoundingClientRect();\n var elements = colorElement.element.getElementsByClassName(\"e-container e-color-palette\")[0].getElementsByClassName(\"e-palette\")[0].getBoundingClientRect();\n var mainContainerBounds = this.pdfViewerBase.mainContainer.getBoundingClientRect();\n if (elements.left + elements.width > mainContainerBounds.width) {\n colorElement.element.parentElement.style.left = (elements.left - elements.width) + buttonBounds.width + 'px';\n }\n }\n };\n this.onShapeToolbarClicked = function (args) {\n var elementId = _this.pdfViewer.element.id;\n var shapeAnnotationModule = _this.pdfViewer.annotation.shapeAnnotationModule;\n if (!Browser.isDevice) {\n _this.deselectAllItems();\n _this.resetFreeTextAnnot();\n }\n else {\n // eslint:disable-next-line\n var element = args.originalEvent.target;\n _this.pdfViewer.toolbarModule.selectItem(element.parentElement);\n }\n switch (args.originalEvent.target.id) {\n case elementId + '_shape_line':\n case elementId + '_shape_lineIcon':\n shapeAnnotationModule.setAnnotationType('Line');\n _this.onShapeDrawSelection(true);\n _this.updateColorInIcon(_this.colorDropDownElement, shapeAnnotationModule.lineFillColor);\n _this.updateColorInIcon(_this.strokeDropDownElement, shapeAnnotationModule.lineStrokeColor);\n _this.handleShapeTool(elementId + '_shape_line');\n break;\n case elementId + '_shape_arrow':\n case elementId + '_shape_arrowIcon':\n shapeAnnotationModule.setAnnotationType('Arrow');\n _this.onShapeDrawSelection(true);\n _this.updateColorInIcon(_this.colorDropDownElement, shapeAnnotationModule.arrowFillColor);\n _this.updateColorInIcon(_this.strokeDropDownElement, shapeAnnotationModule.arrowStrokeColor);\n _this.handleShapeTool(elementId + '_shape_arrow');\n break;\n case elementId + '_shape_rectangle':\n case elementId + '_shape_rectangleIcon':\n shapeAnnotationModule.setAnnotationType('Rectangle');\n _this.onShapeDrawSelection(true);\n _this.updateColorInIcon(_this.colorDropDownElement, shapeAnnotationModule.rectangleFillColor);\n _this.updateColorInIcon(_this.strokeDropDownElement, shapeAnnotationModule.rectangleStrokeColor);\n _this.handleShapeTool(elementId + '_shape_rectangle');\n break;\n case elementId + '_shape_circle':\n case elementId + '_shape_circleIcon':\n shapeAnnotationModule.setAnnotationType('Circle');\n _this.onShapeDrawSelection(true);\n _this.updateColorInIcon(_this.colorDropDownElement, shapeAnnotationModule.circleFillColor);\n _this.updateColorInIcon(_this.strokeDropDownElement, shapeAnnotationModule.circleStrokeColor);\n _this.handleShapeTool(elementId + '_shape_circle');\n break;\n case elementId + '_shape_pentagon':\n case elementId + '_shape_pentagonIcon':\n shapeAnnotationModule.setAnnotationType('Polygon');\n _this.onShapeDrawSelection(true);\n _this.updateColorInIcon(_this.colorDropDownElement, shapeAnnotationModule.polygonFillColor);\n _this.updateColorInIcon(_this.strokeDropDownElement, shapeAnnotationModule.polygonStrokeColor);\n _this.handleShapeTool(elementId + '_shape_pentagon');\n break;\n }\n // this.pdfViewer.clearSelection();\n };\n this.pdfViewer = viewer;\n this.pdfViewerBase = viewerBase;\n this.primaryToolbar = toolbar;\n }\n /**\n * @private\n */\n AnnotationToolbar.prototype.initializeAnnotationToolbar = function () {\n var _this = this;\n // eslint-disable-next-line max-len\n this.toolbarElement = createElement('div', { id: this.pdfViewer.element.id + '_annotation_toolbar', className: 'e-pv-annotation-toolbar' });\n this.pdfViewerBase.viewerMainContainer.appendChild(this.toolbarElement);\n this.toolbar = new Tool({\n width: '', height: '', overflowMode: 'Popup', cssClass: 'e-pv-toolbar-scroll',\n items: this.createToolbarItems(), clicked: this.onToolbarClicked.bind(this),\n created: function () {\n _this.createDropDowns();\n }\n });\n this.toolbar.isStringTemplate = true;\n if (this.pdfViewer.enableRtl) {\n this.toolbar.enableRtl = true;\n }\n this.toolbar.appendTo(this.toolbarElement);\n this.afterToolbarCreation();\n this.createStampContainer();\n this.createSignContainer();\n this.applyAnnotationToolbarSettings();\n this.updateToolbarItems();\n this.showAnnotationToolbar(null, true);\n this.toolbarElement.setAttribute('aria-label', \"Annotation Toolbar\");\n };\n AnnotationToolbar.prototype.createMobileAnnotationToolbar = function (isEnable, isPath) {\n var _this = this;\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n if (this.toolbarElement == null && isEnable) {\n this.isMobileAnnotEnabled = true;\n // eslint-disable-next-line max-len\n this.toolbarElement = createElement('div', { id: this.pdfViewer.element.id + '_annotation_toolbar', className: 'e-pv-annotation-toolbar' });\n this.pdfViewerBase.viewerMainContainer.insertBefore(this.toolbarElement, this.pdfViewerBase.viewerContainer);\n this.toolbar = new Tool({\n width: '', height: '', overflowMode: 'Popup',\n items: this.createMobileToolbarItems(isPath), clicked: this.onToolbarClicked.bind(this),\n created: function () {\n _this.createDropDowns(isPath);\n }\n });\n this.toolbar.isStringTemplate = true;\n if (this.pdfViewer.enableRtl) {\n this.toolbar.enableRtl = true;\n }\n this.pdfViewerBase.navigationPane.goBackToToolbar();\n this.pdfViewer.toolbarModule.showToolbar(false);\n this.toolbar.appendTo(this.toolbarElement);\n this.deleteItem = this.pdfViewerBase.getElement('_annotation_delete');\n this.deleteItem.firstElementChild.id = this.pdfViewer.element.id + '_annotation_delete';\n }\n else if (this.toolbarElement != null) {\n if (isEnable) {\n this.isMobileAnnotEnabled = true;\n this.pdfViewerBase.navigationPane.goBackToToolbar();\n this.pdfViewer.toolbarModule.showToolbar(false);\n this.toolbarElement.style.display = 'block';\n }\n else if (!isEnable) {\n this.isMobileAnnotEnabled = false;\n this.pdfViewer.toolbarModule.showToolbar(true);\n this.hideMobileAnnotationToolbar();\n }\n }\n }\n else {\n this.isMobileAnnotEnabled = true;\n }\n };\n AnnotationToolbar.prototype.hideMobileAnnotationToolbar = function () {\n if (this.toolbarElement != null) {\n if (this.pdfViewer.selectedItems.annotations.length > 0 || this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation) {\n if (this.propertyToolbar && this.propertyToolbar.element.children.length > 0) {\n this.propertyToolbar.element.style.display = 'block';\n this.toolbarCreated = true;\n }\n }\n else {\n if (this.toolbar.element.children.length > 0) {\n this.toolbarCreated = true;\n }\n else {\n this.toolbarCreated = false;\n }\n if (this.propertyToolbar && this.propertyToolbar.element.style.display !== 'none') {\n this.propertyToolbar.element.style.display = 'none';\n if (!this.toolbarCreated) {\n var editIcon = document.getElementById(this.pdfViewer.element.id + '_annotationIcon');\n if (editIcon && editIcon.parentElement.classList.contains('e-pv-select')) {\n this.createAnnotationToolbarForMobile();\n }\n }\n }\n }\n if (this.toolbarElement.children.length > 0) {\n this.toolbarElement.style.display = 'block';\n }\n this.adjustMobileViewer();\n }\n else if (this.toolbarCreated && this.propertyToolbar && this.propertyToolbar.element.children.length > 0) {\n this.propertyToolbar.element.style.display = 'none';\n this.adjustMobileViewer();\n this.toolbarCreated = false;\n }\n };\n AnnotationToolbar.prototype.FreeTextForMobile = function () {\n var _this = this;\n this.hideExistingTool();\n // eslint-disable-next-line max-len\n this.freetextToolbarElement = createElement('div', { id: this.pdfViewer.element.id + '_freeTextToolbar', className: 'e-pv-mobile-annotation-toolbar', styles: 'bottom: 0px; position: absolute; width: 100%; float: left' });\n this.pdfViewerBase.viewerMainContainer.appendChild(this.freetextToolbarElement);\n // eslint-disable-next-line max-len\n var colorTemplate = this.pdfViewer.toolbarModule.annotationToolbarModule.getTemplate('span', '_annotation_color', 'e-pv-annotation-color-container');\n // eslint-disable-next-line max-len\n var strokeTemplate = this.pdfViewer.toolbarModule.annotationToolbarModule.getTemplate('span', '_annotation_stroke', 'e-pv-annotation-stroke-container');\n var thicknessTemplate = this.getTemplate('span', '_annotation_thickness', 'e-pv-annotation-thickness-container');\n var opacityTemplate = this.getTemplate('span', '_annotation_opacity', 'e-pv-annotation-opacity-container');\n var fontFamilyTemplate = this.getTemplate('input', '_annotation_fontname', 'e-pv-annotation-fontname-container');\n var fontSizeTemplate = this.getTemplate('input', '_annotation_fontsize', 'e-pv-annotation-fontsize-container');\n var textColorTemplate = this.getTemplate('span', '_annotation_textcolor', 'e-pv-annotation-textcolor-container');\n var alignmentTemplate = this.getTemplate('span', '_annotation_textalign', 'e-pv-annotation-textalign-container');\n // eslint-disable-next-line max-len\n var textPropertiesTemplate = this.getTemplate('span', '_annotation_textproperties', 'e-pv-annotation-textprop-container');\n // eslint:disable-next-line\n var items;\n items = [\n // eslint-disable-next-line max-len\n { prefixIcon: 'e-pv-backward-icon e-pv-icon', tooltipText: this.pdfViewer.localeObj.getConstant('Go Back'), id: this.pdfViewer.element.id + '_backward', click: this.goBackToToolbar.bind(this) },\n { type: 'Separator', align: 'Left', cssClass: 'e-pv-hightlight-separator-container' },\n { template: fontFamilyTemplate },\n { template: fontSizeTemplate },\n { template: textColorTemplate },\n { template: alignmentTemplate },\n { template: textPropertiesTemplate },\n { template: colorTemplate },\n { template: strokeTemplate },\n { template: thicknessTemplate },\n { template: opacityTemplate },\n ];\n this.toolbar = new Tool({\n items: items, width: '', height: '', overflowMode: 'Scrollable', created: function () {\n // eslint-disable-next-line max-len\n _this.pdfViewer.toolbarModule.annotationToolbarModule.mobileColorpicker(_this.pdfViewer.element.id + '_annotation_freeTextEdit');\n }\n });\n this.toolbar.appendTo(this.freetextToolbarElement);\n this.showFreeTextPropertiesTool();\n };\n /**\n * @private\n */\n AnnotationToolbar.prototype.createPropertyTools = function (shapeType) {\n var _this = this;\n if (shapeType !== \"\") {\n if (this.propertyToolbar) {\n this.propertyToolbar.destroy();\n }\n if (this.toolbar) {\n this.toolbar.destroy();\n }\n // eslint-disable-next-line max-len\n var shapeToolbarElement = void 0;\n shapeToolbarElement = document.getElementById(this.pdfViewer.element.id + '_propertyToolbar');\n if (shapeToolbarElement) {\n shapeToolbarElement.parentElement.removeChild(shapeToolbarElement);\n }\n // eslint-disable-next-line max-len\n shapeToolbarElement = createElement('div', { id: this.pdfViewer.element.id + '_propertyToolbar', className: 'e-pv-mobile-annotation-toolbar', styles: 'bottom: 0px; position: absolute; width: 100%; float: left' });\n this.pdfViewerBase.viewerMainContainer.appendChild(shapeToolbarElement);\n var id_1;\n var propertyToolbar = new Tool({\n // eslint-disable-next-line max-len\n items: this.createPropertyToolbarForMobile(shapeType), width: '', height: '', overflowMode: 'Scrollable',\n created: function () {\n if (_this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation) {\n id_1 = _this.pdfViewer.element.id + '_underlineIcon';\n }\n else if (_this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'FreeText') {\n id_1 = _this.pdfViewer.element.id + '_annotation_freeTextEdit';\n // eslint-disable-next-line max-len\n }\n else if (_this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Stamp' || _this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'StickyNotes' || _this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Image') {\n id_1 = _this.pdfViewer.element.id + '_annotation_stamp';\n // eslint-disable-next-line max-len\n }\n else if (_this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'HandWrittenSignature' || _this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'SignatureText') {\n id_1 = _this.pdfViewer.element.id + '_annotation_handwrittenSign';\n }\n else if (_this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'SignatureImage') {\n id_1 = _this.pdfViewer.element.id + '_annotation_handwrittenImage';\n }\n else if (_this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Ink' || _this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Path') {\n id_1 = _this.pdfViewer.element.id + '_annotation_inkIcon';\n }\n else if (shapeType === 'Highlight' || shapeType === 'Underline' || shapeType === 'Strikethrough') {\n id_1 = _this.pdfViewer.element.id + '_highlightIcon';\n }\n else {\n id_1 = _this.pdfViewer.element.id + '_annotation_shapesIcon';\n }\n _this.pdfViewer.toolbarModule.annotationToolbarModule.mobileColorpicker(id_1);\n }\n });\n propertyToolbar.isStringTemplate = true;\n propertyToolbar.appendTo(shapeToolbarElement);\n if (!this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation) {\n if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Line') {\n this.toolbar.enableItems(this.colorDropDownElement.parentElement, false);\n }\n if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'HandWrittenSignature') {\n var commentIcon = document.getElementById(this.pdfViewer.element.id + '_annotation_commentPanel');\n this.toolbar.enableItems(commentIcon.parentElement, false);\n }\n }\n this.showPropertyTool(propertyToolbar, id_1);\n }\n };\n AnnotationToolbar.prototype.showPropertyTool = function (existingTool, id) {\n if (this.toolbar) {\n this.toolbar.destroy();\n }\n this.propertyToolbar = existingTool;\n this.applyProperiesToolSettings(id);\n //this.propertyToolbar.element.style.display = 'block';\n if (this.pdfViewer.selectedItems.annotations[0]) {\n // eslint:disable-next-line\n var selectedAnnotation = this.pdfViewer.selectedItems.annotations[0];\n // eslint-disable-next-line max-len\n if (selectedAnnotation.shapeAnnotationType !== 'SignatureText' && selectedAnnotation.shapeAnnotationType !== 'HandWrittenSignature' && selectedAnnotation.shapeAnnotationType !== 'Stamp' && selectedAnnotation.shapeAnnotationType !== 'Image' && selectedAnnotation.shapeAnnotationType !== 'Ink' && selectedAnnotation.shapeAnnotationType !== 'Path' && selectedAnnotation.shapeAnnotationType !== 'StickyNotes') {\n this.updateColorInIcon(this.colorDropDownElement, this.pdfViewer.selectedItems.annotations[0].fillColor);\n this.updateColorInIcon(this.strokeDropDownElement, this.pdfViewer.selectedItems.annotations[0].strokeColor);\n if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'FreeText') {\n // eslint:disable-next-line\n var fontFamily = this.fontFamilyElement;\n fontFamily.ej2_instances[0].value = this.pdfViewer.selectedItems.annotations[0].fontFamily;\n // eslint:disable-next-line\n var fontColor = this.fontColorElement;\n fontColor.children[0].style.borderBottomColor = this.pdfViewer.selectedItems.annotations[0].fontColor;\n this.pdfViewer.annotation.modifyTextAlignment(this.pdfViewer.selectedItems.annotations[0].textAlign);\n this.updateTextAlignInIcon(this.pdfViewer.selectedItems.annotations[0].textAlign);\n }\n }\n else {\n if (this.strokeDropDownElement) {\n this.updateColorInIcon(this.strokeDropDownElement, this.pdfViewer.selectedItems.annotations[0].strokeColor);\n }\n }\n }\n this.toolbarCreated = true;\n this.adjustMobileViewer();\n };\n AnnotationToolbar.prototype.stampToolMobileForMobile = function (args) {\n var _this = this;\n this.hideExistingTool();\n if (this.stampToolbarElement) {\n this.stampToolbarElement.parentElement.removeChild(this.stampToolbarElement);\n }\n // eslint-disable-next-line max-len\n this.stampToolbarElement = createElement('div', { id: this.pdfViewer.element.id + '_stampToolbar', className: 'e-pv-mobile-annotation-toolbar', styles: 'bottom: 0px; position: absolute; width: 100%; float: left' });\n this.pdfViewerBase.viewerMainContainer.appendChild(this.stampToolbarElement);\n // eslint-disable-next-line max-len\n this.toolbar = new Tool({\n items: this.createStampToolbarItemsForMobile(), width: '', height: '', overflowMode: 'Scrollable', clicked: this.onShapeToolbarClicked.bind(this),\n created: function () {\n _this.pdfViewer.toolbarModule.annotationToolbarModule.mobileColorpicker(args);\n }\n });\n this.toolbar.isStringTemplate = true;\n this.toolbar.appendTo(this.stampToolbarElement);\n this.showStampPropertiesTool();\n //this.afterShapeToolbarCreationForMobile();\n };\n AnnotationToolbar.prototype.shapeToolMobile = function (args) {\n var _this = this;\n this.hideExistingTool();\n if (this.shapeToolbarElement) {\n this.shapeToolbarElement.parentElement.removeChild(this.shapeToolbarElement);\n }\n // eslint-disable-next-line max-len\n this.shapeToolbarElement = createElement('div', { id: this.pdfViewer.element.id + '_shapeToolbar', className: 'e-pv-mobile-annotation-toolbar', styles: 'bottom: 0px; position: absolute; width: 100%; float: left' });\n this.pdfViewerBase.viewerMainContainer.appendChild(this.shapeToolbarElement);\n // eslint-disable-next-line max-len\n this.toolbar = new Tool({\n items: this.createShapeToolbarItemsForMobile(), width: '', height: '', overflowMode: 'Scrollable', clicked: this.onShapeToolbarClicked.bind(this),\n created: function () {\n _this.pdfViewer.toolbarModule.annotationToolbarModule.mobileColorpicker(args.originalEvent.target.id);\n }\n });\n this.toolbar.isStringTemplate = true;\n this.toolbar.appendTo(this.shapeToolbarElement);\n this.afterShapeToolbarCreationForMobile();\n this.showShapeTool();\n };\n AnnotationToolbar.prototype.calibrateToolMobile = function (args) {\n var _this = this;\n this.hideExistingTool();\n if (this.calibrateToolbarElement) {\n this.calibrateToolbarElement.parentElement.removeChild(this.calibrateToolbarElement);\n }\n // eslint-disable-next-line max-len\n this.calibrateToolbarElement = createElement('div', { id: this.pdfViewer.element.id + '_calibrateToolbar', className: 'e-pv-mobile-annotation-toolbar', styles: 'bottom: 0px; position: absolute; width: 100%; float: left' });\n this.pdfViewerBase.viewerMainContainer.appendChild(this.calibrateToolbarElement);\n // eslint-disable-next-line max-len\n this.toolbar = new Tool({\n items: this.createCalibrateToolbarItemsForMobile(), width: '', height: '', overflowMode: 'Scrollable', clicked: this.onCalibrateToolbarClicked.bind(this),\n created: function () {\n _this.pdfViewer.toolbarModule.annotationToolbarModule.mobileColorpicker(args.originalEvent.target.id);\n }\n });\n this.toolbar.isStringTemplate = true;\n this.toolbar.appendTo(this.calibrateToolbarElement);\n this.afterCalibrateToolbarCreationForMobile();\n this.showShapeTool();\n };\n AnnotationToolbar.prototype.textMarkupForMobile = function (args) {\n var _this = this;\n this.hideExistingTool();\n if (this.textMarkupToolbarElement) {\n this.textMarkupToolbarElement.parentElement.removeChild(this.textMarkupToolbarElement);\n }\n // eslint-disable-next-line max-len\n this.textMarkupToolbarElement = createElement('div', { id: this.pdfViewer.element.id + '_mobileAnnotationToolbar', className: 'e-pv-mobile-annotation-toolbar', styles: 'bottom: 0px; position: absolute; width: 100%; float: left' });\n this.pdfViewerBase.viewerMainContainer.appendChild(this.textMarkupToolbarElement);\n // eslint-disable-next-line max-len\n var colorTemplate = this.pdfViewer.toolbarModule.annotationToolbarModule.getTemplate('span', '_annotation_color', 'e-pv-annotation-color-container');\n var opacityTemplate = this.getTemplate('span', '_annotation_opacity', 'e-pv-annotation-opacity-container');\n // eslint:disable-next-line\n var items;\n items = [\n // eslint-disable-next-line max-len\n { prefixIcon: 'e-pv-backward-icon e-pv-icon', tooltipText: this.pdfViewer.localeObj.getConstant('Go Back'), id: this.pdfViewer.element.id + '_backward', click: this.goBackToToolbar.bind(this) },\n { type: 'Separator', align: 'Left', cssClass: 'e-pv-hightlight-separator-container' },\n { template: colorTemplate, align: 'left' },\n { template: opacityTemplate, align: 'left' }\n ];\n this.propertyToolbar = new Tool({\n items: items, width: '', height: '', overflowMode: 'Scrollable',\n created: function () {\n _this.pdfViewer.toolbarModule.annotationToolbarModule.mobileColorpicker(args.originalEvent.target.id);\n }\n });\n this.propertyToolbar.isStringTemplate = true;\n this.propertyToolbar.appendTo(this.textMarkupToolbarElement);\n this.showTextMarkupPropertiesTool();\n };\n AnnotationToolbar.prototype.showShapeTool = function () {\n // eslint-disable-next-line\n var annotationToolbarItems = this.pdfViewer.toolbarSettings.annotationToolbarItems;\n if (annotationToolbarItems) {\n if (annotationToolbarItems.indexOf('ColorEditTool') !== -1) {\n this.showColorEditTool(true, 7, 7);\n }\n else {\n this.showColorEditTool(false, 7, 7);\n }\n if (annotationToolbarItems.indexOf('StrokeColorEditTool') !== -1) {\n this.showStrokeColorEditTool(true, 8, 8);\n }\n else {\n this.showStrokeColorEditTool(false, 8, 8);\n }\n if (annotationToolbarItems.indexOf('ThicknessEditTool') !== -1) {\n this.showThicknessEditTool(true, 9, 9);\n }\n else {\n this.showThicknessEditTool(false, 9, 9);\n }\n if (annotationToolbarItems.indexOf('OpacityEditTool') !== -1) {\n this.showOpacityEditTool(true, 10, 10);\n }\n else {\n this.showOpacityEditTool(false, 10, 10);\n }\n }\n };\n AnnotationToolbar.prototype.signatureInkForMobile = function () {\n var _this = this;\n this.hideExistingTool();\n if (this.signatureInkToolbarElement) {\n this.signatureInkToolbarElement.parentElement.removeChild(this.signatureInkToolbarElement);\n }\n // eslint-disable-next-line max-len\n this.signatureInkToolbarElement = createElement('div', { id: this.pdfViewer.element.id + '_mobileAnnotationToolbar', className: 'e-pv-mobile-annotation-toolbar', styles: 'bottom: 0px; position: absolute; width: 100%; float: left' });\n this.pdfViewerBase.viewerMainContainer.appendChild(this.signatureInkToolbarElement);\n var opacityTemplate = this.getTemplate('span', '_annotation_opacity', 'e-pv-annotation-opacity-container');\n // eslint-disable-next-line max-len\n var strokeTemplate = this.pdfViewer.toolbarModule.annotationToolbarModule.getTemplate('span', '_annotation_stroke', 'e-pv-annotation-stroke-container');\n var thicknessTemplate = this.getTemplate('span', '_annotation_thickness', 'e-pv-annotation-thickness-container');\n // eslint:disable-next-line\n var items;\n items = [\n // eslint-disable-next-line max-len\n { prefixIcon: 'e-pv-backward-icon e-pv-icon', tooltipText: this.pdfViewer.localeObj.getConstant('Go Back'), id: this.pdfViewer.element.id + '_backward', click: this.goBackToToolbar.bind(this) },\n { template: opacityTemplate, align: 'left' },\n { template: strokeTemplate, aign: 'left' },\n { template: thicknessTemplate, align: 'left' }\n ];\n this.toolbar = new Tool({\n items: items, width: '', height: '', overflowMode: 'Scrollable',\n created: function () {\n _this.pdfViewer.toolbarModule.annotationToolbarModule.mobileColorpicker(_this.pdfViewer.element.id + '_annotation_inkIcon');\n }\n });\n this.toolbar.isStringTemplate = true;\n this.toolbar.appendTo(this.signatureInkToolbarElement);\n };\n AnnotationToolbar.prototype.hideExistingTool = function () {\n if (this.toolbar && !this.pdfViewer.enableDesktopMode) {\n this.toolbar.destroy();\n }\n if (this.propertyToolbar && !this.pdfViewer.enableDesktopMode) {\n this.propertyToolbar.destroy();\n }\n var mobileAnnotationToolbar = document.getElementById(this.pdfViewer.element.id + '_mobileAnnotationToolbar');\n if (mobileAnnotationToolbar) {\n mobileAnnotationToolbar.style.display = 'none';\n }\n };\n AnnotationToolbar.prototype.applyProperiesToolSettings = function (type) {\n switch (type) {\n case this.pdfViewer.element.id + '_underlineIcon':\n case this.pdfViewer.element.id + '_highlightIcon':\n this.showTextMarkupPropertiesTool();\n break;\n case this.pdfViewer.element.id + '_annotation_freeTextEdit':\n this.showFreeTextPropertiesTool();\n break;\n case this.pdfViewer.element.id + '_annotation_shapesIcon':\n this.shapePropertiesTool();\n break;\n case 'stampTool':\n case this.pdfViewer.element.id + '_annotation_stamp':\n this.showStampPropertiesTool();\n break;\n case this.pdfViewer.element.id + '_annotation_handwrittenSign':\n case this.pdfViewer.element.id + '_annotation_inkIcon':\n this.showInkPropertiesTool();\n break;\n case this.pdfViewer.element.id + '_annotation_handwrittenImage':\n this.showImagePropertyTool();\n break;\n }\n };\n AnnotationToolbar.prototype.showImagePropertyTool = function () {\n // eslint-disable-next-line\n var annotationToolbarItems = this.pdfViewer.toolbarSettings.annotationToolbarItems;\n if (annotationToolbarItems) {\n if (annotationToolbarItems.indexOf('OpacityEditTool') !== -1) {\n this.showOpacityEditTool(true, 0, 0);\n }\n else {\n this.showOpacityEditTool(false, 0, 0);\n }\n if (annotationToolbarItems.indexOf('CommentPanelTool') !== -1) {\n this.showCommentPanelTool(true, 1, 1);\n }\n else {\n this.showCommentPanelTool(false, 1, 1);\n }\n if (annotationToolbarItems.indexOf('AnnotationDeleteTool') !== -1) {\n this.showAnnotationDeleteTool(true, 2, 2);\n }\n else {\n this.showAnnotationDeleteTool(false, 2, 2);\n }\n }\n };\n AnnotationToolbar.prototype.showFreeTextPropertiesTool = function () {\n // eslint-disable-next-line\n var annotationToolbarItems = this.pdfViewer.toolbarSettings.annotationToolbarItems;\n if (annotationToolbarItems) {\n if (annotationToolbarItems.indexOf('FontFamilyAnnotationTool') !== -1) {\n this.showFontFamilyAnnotationTool(true, 2, 2);\n }\n else {\n this.showFontFamilyAnnotationTool(false, 2, 2);\n }\n if (annotationToolbarItems.indexOf('FontSizeAnnotationTool') !== -1) {\n this.showFontSizeAnnotationTool(true, 3, 3);\n }\n else {\n this.showFontSizeAnnotationTool(false, 3, 3);\n }\n if (annotationToolbarItems.indexOf('FontColorAnnotationTool') !== -1) {\n this.showFontColorAnnotationTool(true, 4, 4);\n }\n else {\n this.showFontColorAnnotationTool(false, 4, 4);\n }\n if (annotationToolbarItems.indexOf('FontAlignAnnotationTool') !== -1) {\n this.showFontAlignAnnotationTool(true, 5, 5);\n }\n else {\n this.showFontAlignAnnotationTool(false, 5, 5);\n }\n if (annotationToolbarItems.indexOf('FontStylesAnnotationTool') !== -1) {\n this.showFontStylesAnnotationTool(true, 6, 6);\n }\n else {\n this.showFontStylesAnnotationTool(false, 6, 6);\n }\n if (annotationToolbarItems.indexOf('ColorEditTool') !== -1) {\n this.showColorEditTool(true, 7, 7);\n }\n else {\n this.showColorEditTool(false, 7, 7);\n }\n if (annotationToolbarItems.indexOf('StrokeColorEditTool') !== -1) {\n this.showStrokeColorEditTool(true, 8, 8);\n }\n else {\n this.showStrokeColorEditTool(false, 8, 8);\n }\n if (annotationToolbarItems.indexOf('ThicknessEditTool') !== -1) {\n this.showThicknessEditTool(true, 9, 9);\n }\n else {\n this.showThicknessEditTool(false, 9, 9);\n }\n if (annotationToolbarItems.indexOf('OpacityEditTool') !== -1) {\n this.showOpacityEditTool(true, 10, 10);\n }\n else {\n this.showOpacityEditTool(false, 10, 10);\n }\n if (annotationToolbarItems.indexOf('CommentPanelTool') !== -1) {\n this.showCommentPanelTool(true, 11, 11);\n }\n else {\n this.showCommentPanelTool(false, 11, 11);\n }\n if (annotationToolbarItems.indexOf('AnnotationDeleteTool') !== -1) {\n this.showAnnotationDeleteTool(true, 12, 12);\n }\n else {\n this.showAnnotationDeleteTool(false, 12, 12);\n }\n if (annotationToolbarItems.indexOf('FreeTextAnnotationTool') !== -1) {\n this.showFreeTextAnnotationTool(true, 0, 0);\n }\n else {\n this.showFreeTextAnnotationTool(false, 0, 0);\n this.applyHideToToolbar(false, 1, 1);\n }\n }\n };\n AnnotationToolbar.prototype.shapePropertiesTool = function () {\n // eslint-disable-next-line\n var annotationToolbarItems = this.pdfViewer.toolbarSettings.annotationToolbarItems;\n if (annotationToolbarItems) {\n if (annotationToolbarItems.indexOf('ColorEditTool') !== -1) {\n this.showColorEditTool(true, 2, 2);\n }\n else {\n this.showColorEditTool(false, 2, 2);\n }\n if (annotationToolbarItems.indexOf('StrokeColorEditTool') !== -1) {\n this.showStrokeColorEditTool(true, 3, 3);\n }\n else {\n this.showStrokeColorEditTool(false, 3, 3);\n }\n if (annotationToolbarItems.indexOf('ThicknessEditTool') !== -1) {\n this.showThicknessEditTool(true, 4, 4);\n }\n else {\n this.showThicknessEditTool(false, 4, 4);\n }\n if (annotationToolbarItems.indexOf('OpacityEditTool') !== -1) {\n this.showOpacityEditTool(true, 5, 5);\n }\n else {\n this.showOpacityEditTool(false, 5, 5);\n }\n if (annotationToolbarItems.indexOf('CommentPanelTool') !== -1) {\n this.showCommentPanelTool(true, 6, 6);\n }\n else {\n this.showCommentPanelTool(false, 6, 6);\n }\n if (annotationToolbarItems.indexOf('AnnotationDeleteTool') !== -1) {\n this.showAnnotationDeleteTool(true, 7, 7);\n }\n else {\n this.showAnnotationDeleteTool(false, 7, 7);\n }\n if (annotationToolbarItems.indexOf('ShapeTool') !== -1) {\n this.showShapeAnnotationTool(true, 0, 0);\n }\n else {\n this.showShapeAnnotationTool(false, 0, 0);\n this.applyHideToToolbar(false, 1, 1);\n }\n }\n };\n AnnotationToolbar.prototype.showStampPropertiesTool = function () {\n // eslint-disable-next-line\n var annotationToolbarItems = this.pdfViewer.toolbarSettings.annotationToolbarItems;\n if (annotationToolbarItems) {\n if (annotationToolbarItems.indexOf('OpacityEditTool') !== -1) {\n this.showOpacityEditTool(true, 2, 2);\n }\n else {\n this.showOpacityEditTool(false, 2, 2);\n }\n if (annotationToolbarItems.indexOf('CommentPanelTool') !== -1) {\n this.showCommentPanelTool(true, 3, 3);\n }\n else {\n this.showCommentPanelTool(false, 3, 3);\n }\n if (annotationToolbarItems.indexOf('AnnotationDeleteTool') !== -1) {\n this.showAnnotationDeleteTool(true, 4, 4);\n }\n else {\n this.showAnnotationDeleteTool(false, 4, 4);\n }\n if (annotationToolbarItems.indexOf('StampAnnotationTool') !== -1) {\n this.showStampAnnotationTool(true, 0, 0);\n }\n else {\n this.showStampAnnotationTool(false, 0, 0);\n this.applyHideToToolbar(false, 1, 1);\n }\n }\n };\n AnnotationToolbar.prototype.showTextMarkupPropertiesTool = function () {\n // eslint-disable-next-line\n var annotationToolbarItems = this.pdfViewer.toolbarSettings.annotationToolbarItems;\n if (annotationToolbarItems) {\n if (annotationToolbarItems.indexOf('ColorEditTool') !== -1) {\n this.showColorEditTool(true, 2, 2);\n }\n else {\n this.showColorEditTool(false, 2, 2);\n }\n if (annotationToolbarItems.indexOf('OpacityEditTool') !== -1) {\n this.showOpacityEditTool(true, 3, 3);\n }\n else {\n this.showOpacityEditTool(false, 3, 3);\n }\n if (annotationToolbarItems.indexOf('CommentPanelTool') !== -1) {\n this.showCommentPanelTool(true, 4, 4);\n }\n else {\n this.showCommentPanelTool(false, 4, 4);\n }\n if (annotationToolbarItems.indexOf('AnnotationDeleteTool') !== -1) {\n this.showAnnotationDeleteTool(true, 5, 5);\n }\n else {\n this.showAnnotationDeleteTool(false, 5, 5);\n }\n if (annotationToolbarItems.includes(\"HighlightTool\") || annotationToolbarItems.includes(\"UnderlineTool\") || annotationToolbarItems.includes(\"StrikethroughTool\")) {\n this.applyHideToToolbar(true, 0, 0);\n }\n else {\n this.applyHideToToolbar(false, 0, 0);\n this.applyHideToToolbar(false, 1, 1);\n }\n }\n };\n AnnotationToolbar.prototype.showInkPropertiesTool = function () {\n // eslint-disable-next-line\n var annotationToolbarItems = this.pdfViewer.toolbarSettings.annotationToolbarItems;\n if (annotationToolbarItems) {\n if (annotationToolbarItems.indexOf('StrokeColorEditTool') !== -1) {\n this.showStrokeColorEditTool(true, 2, 2);\n }\n else {\n this.showStrokeColorEditTool(false, 2, 2);\n }\n if (annotationToolbarItems.indexOf('ThicknessEditTool') !== -1) {\n this.showThicknessEditTool(true, 3, 3);\n }\n else {\n this.showThicknessEditTool(false, 3, 3);\n }\n if (annotationToolbarItems.indexOf('OpacityEditTool') !== -1) {\n this.showOpacityEditTool(true, 4, 4);\n }\n else {\n this.showOpacityEditTool(false, 4, 4);\n }\n if (annotationToolbarItems.indexOf('CommentPanelTool') !== -1) {\n this.showCommentPanelTool(true, 5, 5);\n }\n else {\n this.showCommentPanelTool(false, 5, 5);\n }\n if (annotationToolbarItems.indexOf('AnnotationDeleteTool') !== -1) {\n this.showAnnotationDeleteTool(true, 6, 6);\n }\n else {\n this.showAnnotationDeleteTool(false, 6, 6);\n }\n if (annotationToolbarItems.indexOf('HandWrittenSignatureTool') !== -1) {\n this.showSignatureTool(true, 0, 0);\n }\n else {\n this.showSignatureTool(false, 0, 0);\n this.applyHideToToolbar(false, 1, 1);\n }\n }\n };\n /**\n * @private\n */\n // eslint:disable-next-line\n AnnotationToolbar.prototype.createAnnotationToolbarForMobile = function (id) {\n var hideToolbar;\n if (id) {\n var editIcon = document.getElementById(id);\n if (editIcon.parentElement.classList.contains('e-pv-select')) {\n hideToolbar = true;\n editIcon.parentElement.classList.remove('e-pv-select');\n }\n else {\n hideToolbar = false;\n this.pdfViewer.toolbarModule.selectItem(editIcon.parentElement);\n }\n }\n if (hideToolbar) {\n this.toolbarCreated = false;\n this.adjustMobileViewer();\n if (this.toolbar) {\n this.toolbar.destroy();\n }\n if (this.propertyToolbar) {\n this.propertyToolbar.destroy();\n }\n var mobileAnnotationToolbar = document.getElementById(this.pdfViewer.element.id + '_mobileAnnotationToolbar');\n if (mobileAnnotationToolbar) {\n mobileAnnotationToolbar.style.display = 'none';\n }\n return [];\n }\n else {\n this.isToolbarCreated = true;\n if (this.propertyToolbar) {\n this.propertyToolbar.destroy();\n }\n if (this.toolbarElement) {\n this.toolbarElement.parentElement.removeChild(this.toolbarElement);\n }\n // eslint-disable-next-line max-len\n this.toolbarElement = createElement('div', { id: this.pdfViewer.element.id + '_mobileAnnotationToolbar', className: 'e-pv-mobile-annotation-toolbar', styles: 'bottom: 0px; position: absolute; width: 100%; float: left;' });\n //this.toolbarElement.append(this.pdfViewerBase.viewerContainer);\n this.pdfViewerBase.viewerMainContainer.appendChild(this.toolbarElement);\n var stampTemplate = this.getTemplate('span', '_annotation_stamp', 'e-pv-annotation-stamp-container');\n var signTemplate = this.getTemplate('span', '_annotation_signature', 'e-pv-annotation-handwritten-container');\n // eslint:disable-next-line\n var items = void 0;\n items = [\n // eslint-disable-next-line max-len\n { prefixIcon: 'e-pv-comment-icon e-pv-icon', className: 'e-pv-comment-container', id: this.pdfViewer.element.id + '_comment' },\n { type: 'Separator', align: 'Left' },\n // eslint-disable-next-line max-len\n { prefixIcon: 'e-pv-highlight-icon e-pv-icon', className: 'e-pv-highlight-container', id: this.pdfViewer.element.id + '_highlight' },\n // eslint-disable-next-line max-len\n { prefixIcon: 'e-pv-underline-icon e-pv-icon', className: 'e-pv-underline-container', id: this.pdfViewer.element.id + '_underline' },\n // eslint-disable-next-line max-len\n { prefixIcon: 'e-pv-strikethrough-icon e-pv-icon', className: 'e-pv-strikethrough-container', id: this.pdfViewer.element.id + '_strikethrough' },\n { type: 'Separator', align: 'Left' },\n // eslint-disable-next-line max-len\n { prefixIcon: 'e-pv-annotation-shape-icon e-pv-icon', className: 'e-pv-annotation-shapes-container', id: this.pdfViewer.element.id + '_annotation_shapes' },\n { type: 'Separator', align: 'Left' },\n // eslint-disable-next-line max-len\n { prefixIcon: 'e-pv-annotation-calibrate-icon e-pv-icon', className: 'e-pv-annotation-calibrate-container', id: this.pdfViewer.element.id + '_annotation_calibrate' },\n { type: 'Separator', align: 'Left' },\n // eslint-disable-next-line max-len\n { prefixIcon: 'e-pv-freetext-icon e-pv-icon', className: 'e-pv-annotation-freetextedit-container', id: this.pdfViewer.element.id + '_annotation_freeTextEdit' },\n { type: 'Separator', align: 'Left' },\n { template: stampTemplate },\n { type: 'Separator', align: 'Left' },\n { template: signTemplate, align: 'Left', },\n { type: 'Separator', align: 'Left' },\n // eslint-disable-next-line max-len\n { prefixIcon: 'e-pv-inkannotation-icon e-pv-icon', className: 'e-pv-annotation-ink-container', id: this.pdfViewer.element.id + '_annotation_ink', align: 'Left', },\n { type: 'Separator', align: 'Left' },\n // eslint-disable-next-line max-len\n { prefixIcon: 'e-pv-comment-panel-icon e-pv-icon', className: 'e-pv-comment-panel-icon-container', id: this.pdfViewer.element.id + '_annotation_commentPanel', align: 'Right' }\n ];\n if (this.toolbarCreated && this.toolbar) {\n this.toolbar.destroy();\n this.toolbarCreated = false;\n this.adjustMobileViewer();\n }\n else {\n // eslint-disable-next-line max-len\n this.toolbar = new Tool({ items: items, width: '', height: '', overflowMode: 'Scrollable', clicked: this.onToolbarClicked.bind(this) });\n if (this.pdfViewer.enableRtl) {\n this.toolbar.enableRtl = true;\n }\n this.toolbar.isStringTemplate = true;\n this.toolbar.appendTo(this.toolbarElement);\n this.afterMobileToolbarCreation();\n this.createStampContainer();\n this.createSignContainer();\n this.applyMobileAnnotationToolbarSettings();\n this.toolbarCreated = true;\n this.adjustMobileViewer();\n }\n return items;\n }\n };\n /**\n * @private\n */\n AnnotationToolbar.prototype.adjustMobileViewer = function () {\n var toolbarHeight;\n if (this.toolbarElement) {\n toolbarHeight = this.toolbarElement.clientHeight;\n }\n var isPrimaryTool = false;\n if (this.toolbarElement && this.toolbarElement.children.length === 0 && this.propertyToolbar && this.propertyToolbar.element.children.length > 0) {\n toolbarHeight = this.propertyToolbar.element.clientHeight;\n if (this.pdfViewer.toolbarModule.toolbarElement.style.display === 'none') {\n this.pdfViewer.toolbarModule.toolbarElement.style.display = 'block';\n }\n }\n else if (this.freetextToolbarElement && this.freetextToolbarElement.children.length > 0) {\n toolbarHeight = this.freetextToolbarElement.clientHeight;\n }\n else if (toolbarHeight === 0 && this.pdfViewer.toolbarModule.toolbar) {\n toolbarHeight = this.pdfViewer.toolbarModule.toolbarElement.clientHeight;\n isPrimaryTool = true;\n }\n else if (!toolbarHeight && this.propertyToolbar && this.propertyToolbar.element.children.length > 0) {\n toolbarHeight = this.propertyToolbar.element.clientHeight;\n }\n if (this.pdfViewer.enableToolbar && this.toolbarCreated) {\n // eslint-disable-next-line max-len\n this.pdfViewerBase.viewerContainer.style.height = this.updateViewerHeight(this.getElementHeight(this.pdfViewerBase.viewerContainer), (toolbarHeight + toolbarHeight)) + 'px';\n }\n else {\n if (!isPrimaryTool) {\n if (this.pdfViewerBase.viewerContainer.style.height.split('%').length > 1) {\n this.pdfViewerBase.viewerContainer.style.height = this.resetViewerHeight(this.getElementHeight(this.pdfViewerBase.viewerContainer), (-toolbarHeight)) + 'px';\n }\n else {\n this.pdfViewerBase.viewerContainer.style.height = this.resetViewerHeight(this.getElementHeight(this.pdfViewerBase.viewerContainer), (toolbarHeight)) + 'px';\n }\n }\n }\n };\n /**\n * Shows /hides the toolbar in the PdfViewer\n * @param {boolean} enableToolbar - If set true , its show the Toolbar\n * @returns void\n */\n AnnotationToolbar.prototype.showToolbar = function (enable) {\n var toolbar = this.toolbarElement;\n if (enable) {\n toolbar.style.display = 'block';\n if (Browser.isDevice && this.pdfViewer.toolbarModule && this.pdfViewer.toolbarModule.annotationToolbarModule) {\n this.pdfViewer.toolbarModule.annotationToolbarModule.hideMobileAnnotationToolbar();\n }\n }\n else {\n toolbar.style.display = 'none';\n }\n };\n // eslint-disable-next-line\n AnnotationToolbar.prototype.createMobileToolbarItems = function (isPath) {\n var colorTemplate = this.getTemplate('span', '_annotation_color', 'e-pv-annotation-color-container');\n var opacityTemplate = this.getTemplate('span', '_annotation_opacity', 'e-pv-annotation-opacity-container');\n // eslint-disable-next-line\n var items = [];\n items.push({ prefixIcon: 'e-pv-backward-icon e-pv-icon', tooltipText: this.pdfViewer.localeObj.getConstant('Go Back'), id: this.pdfViewer.element.id + '_backward', click: this.goBackToToolbar.bind(this) });\n // eslint-disable-next-line max-len\n if (!isPath) {\n items.push({ template: colorTemplate, align: 'right' });\n items.push({ template: opacityTemplate, align: 'right' });\n items.push({ type: 'Separator', align: 'right' });\n }\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-annotation-delete-icon e-pv-icon', className: 'e-pv-annotation-delete-container', id: this.pdfViewer.element.id + '_annotation_delete', align: 'right' });\n return items;\n };\n AnnotationToolbar.prototype.goBackToToolbar = function () {\n this.isMobileAnnotEnabled = false;\n if (this.toolbarElement.children.length > 0) {\n this.toolbarElement.style.display = 'block';\n }\n else {\n this.toolbarCreated = false;\n this.toolbar.destroy();\n this.createAnnotationToolbarForMobile();\n }\n var page = this.pdfViewerBase.getSelectTextMarkupCurrentPage();\n if (page) {\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.selectTextMarkupCurrentPage = null;\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.clearAnnotationSelection(page);\n }\n };\n // eslint-disable-next-line\n AnnotationToolbar.prototype.createToolbarItems = function () {\n var colorTemplate = this.getTemplate('button', '_annotation_color', 'e-pv-annotation-color-container');\n var strokeTemplate = this.getTemplate('button', '_annotation_stroke', 'e-pv-annotation-stroke-container');\n var thicknessTemplate = this.getTemplate('button', '_annotation_thickness', 'e-pv-annotation-thickness-container');\n var opacityTemplate = this.getTemplate('button', '_annotation_opacity', 'e-pv-annotation-opacity-container');\n var shapesTemplate = this.getTemplate('button', '_annotation_shapes', 'e-pv-annotation-shapes-container');\n var calibrateTemplate = this.getTemplate('button', '_annotation_calibrate', 'e-pv-annotation-calibrate-container');\n var stampTemplate = this.getTemplate('span', '_annotation_stamp', 'e-pv-annotation-stamp-container');\n var fontFamilyTemplate = this.getTemplate('button', '_annotation_fontname', 'e-pv-annotation-fontname-container');\n var fontSizeTemplate = this.getTemplate('button', '_annotation_fontsize', 'e-pv-annotation-fontsize-container');\n var textColorTemplate = this.getTemplate('button', '_annotation_textcolor', 'e-pv-annotation-textcolor-container');\n var alignmentTemplate = this.getTemplate('button', '_annotation_textalign', 'e-pv-annotation-textalign-container');\n var textPropertiesTemplate = this.getTemplate('button', '_annotation_textproperties', 'e-pv-annotation-textprop-container');\n var signTemplate = this.getTemplate('button', '_annotation_signature', 'e-pv-annotation-handwritten-container');\n // eslint-disable-next-line\n var items = [];\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-highlight-icon e-pv-icon', className: 'e-pv-highlight-container', id: this.pdfViewer.element.id + '_highlight', align: 'Left' });\n items.push({ prefixIcon: 'e-pv-underline-icon e-pv-icon', className: 'e-pv-underline-container', id: this.pdfViewer.element.id + '_underline', align: 'Left' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-strikethrough-icon e-pv-icon', className: 'e-pv-strikethrough-container', id: this.pdfViewer.element.id + '_strikethrough', align: 'Left' });\n items.push({ type: 'Separator', align: 'Left', cssClass: 'e-pv-hightlight-separator-container' });\n items.push({ template: shapesTemplate, align: 'Left', cssClass: 'e-pv-shape-template-container' });\n items.push({ type: 'Separator', align: 'Left', cssClass: 'e-pv-shape-separator-container' });\n items.push({ template: calibrateTemplate, align: 'Left', cssClass: 'e-pv-calibrate-template-container' });\n items.push({ type: 'Separator', align: 'Left', cssClass: 'e-pv-calibrate-separator-container' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-freetext-icon e-pv-icon', className: 'e-pv-annotation-freetextedit-container', id: this.pdfViewer.element.id + '_annotation_freeTextEdit', align: 'Left' });\n items.push({ type: 'Separator', align: 'Left', cssClass: 'e-pv-freetext-separator-container' });\n items.push({ template: stampTemplate, align: 'Left', cssClass: 'e-pv-stamp-template-container' });\n items.push({ type: 'Separator', align: 'Left', cssClass: 'e-pv-stamp-separator-container' });\n // eslint-disable-next-line max-len\n items.push({ template: signTemplate, align: 'Left', cssClass: 'e-pv-sign-template-container' });\n items.push({ type: 'Separator', align: 'Left', cssClass: 'e-pv-sign-separator-container' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-inkannotation-icon e-pv-icon', className: 'e-pv-annotation-ink-container', id: this.pdfViewer.element.id + '_annotation_ink', align: 'Left' });\n items.push({ type: 'Separator', align: 'Left', cssClass: 'e-pv-ink-separator-container' });\n items.push({ template: fontFamilyTemplate, align: 'Left', cssClass: 'e-pv-fontfamily-container' });\n items.push({ template: fontSizeTemplate, align: 'Left', cssClass: 'e-pv-fontsize-container' });\n items.push({ template: textColorTemplate, align: 'Left', cssClass: 'e-pv-text-color-container' });\n items.push({ template: alignmentTemplate, align: 'Left', cssClass: 'e-pv-alignment-container' });\n items.push({ template: textPropertiesTemplate, align: 'Left', cssClass: 'e-pv-text-properties-container' });\n items.push({ type: 'Separator', align: 'Left', cssClass: 'e-pv-text-separator-container' });\n items.push({ template: colorTemplate, align: 'Left', cssClass: 'e-pv-color-template-container' });\n items.push({ template: strokeTemplate, align: 'Left', cssClass: 'e-pv-stroke-template-container' });\n items.push({ template: thicknessTemplate, align: 'Left', cssClass: 'e-pv-thickness-template-container' });\n items.push({ template: opacityTemplate, align: 'Left', cssClass: 'e-pv-opacity-template-container' });\n items.push({ type: 'Separator', align: 'Left', cssClass: 'e-pv-opacity-separator-container' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-annotation-delete-icon e-pv-icon', className: 'e-pv-annotation-delete-container', id: this.pdfViewer.element.id + '_annotation_delete', align: 'Left' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-comment-panel-icon e-pv-icon', className: 'e-pv-comment-panel-icon-container', id: this.pdfViewer.element.id + '_annotation_commentPanel', align: 'Right' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-annotation-tools-close-icon e-pv-icon', className: 'e-pv-annotation-tools-close-container', id: this.pdfViewer.element.id + '_annotation_close', align: 'Right' });\n return items;\n };\n AnnotationToolbar.prototype.createSignContainer = function () {\n var _this = this;\n this.handWrittenSignatureItem = this.pdfViewerBase.getElement('_annotation_signature');\n // eslint-disable-next-line max-len\n this.primaryToolbar.createTooltip(this.pdfViewerBase.getElement('_annotation_signature'), this.pdfViewer.localeObj.getConstant('SignatureFieldDialogHeaderText'));\n // eslint-disable-next-line\n var proxy = this;\n var items = [];\n if (this.pdfViewer.handWrittenSignatureSettings.signatureItem.length === 0 || this.pdfViewer.handWrittenSignatureSettings.signatureItem.length == 2) {\n items = [\n {\n text: 'ADD SIGNATURE'\n },\n {\n separator: true\n },\n {\n text: 'ADD INITIAL'\n }\n ];\n }\n else {\n if (this.pdfViewer.handWrittenSignatureSettings.signatureItem[0] === 'Signature') {\n items = [\n {\n text: 'ADD SIGNATURE'\n }\n ];\n }\n else {\n items = [\n {\n text: 'ADD INITIAL'\n }\n ];\n }\n }\n var saveOptions = {\n items: items,\n iconCss: 'e-pv-handwritten-icon e-pv-icon',\n cssClass: 'e-pv-handwritten-popup',\n open: function (args) {\n proxy.openSignature();\n },\n beforeItemRender: function (args) {\n _this.pdfViewer.clearSelection(_this.pdfViewerBase.currentPageNumber - 1);\n if (args.element && args.element.className.indexOf(\"e-separator\") !== -1) {\n args.element.style.margin = \"8px 0\";\n args.element.setAttribute('role', 'menuitem');\n args.element.setAttribute('aria-label', 'separator');\n }\n if (args.item.text === 'ADD SIGNATURE') {\n args.element.innerHTML = '';\n _this.saveSignatureCount = 0;\n for (var collection = _this.pdfViewerBase.signatureModule.signaturecollection.length; collection > 0; collection--) {\n if (_this.saveSignatureCount < _this.pdfViewerBase.signatureModule.getSaveLimit(_this.pdfViewer.handWrittenSignatureSettings.saveSignatureLimit)) {\n args.element.style.display = 'block';\n // eslint-disable-next-line\n var signatureCollection = _this.pdfViewerBase.signatureModule.signaturecollection[collection - 1];\n // eslint-disable-next-line\n var collectionKey = signatureCollection.image[0].imageData;\n var signatureID = signatureCollection.image[0].id.split('_')[1];\n if (!signatureCollection.isInitial && collectionKey !== '') {\n // eslint-disable-next-line max-len\n var signatureContainer = createElement('div');\n signatureContainer.id = 's' + signatureID;\n signatureContainer.style.display = 'block';\n signatureContainer.style.paddingBottom = '10px';\n var signatureSpan = createElement('span');\n signatureSpan.id = 'sign_border_' + signatureID;\n signatureSpan.classList.add('e-pv-align-border');\n var signatureImage = void 0;\n if (signatureCollection.image[0].signatureType === 'SignatureText') {\n signatureImage = createElement('div');\n signatureImage.classList.add('e-pv-align-border-div');\n signatureImage.innerText = collectionKey;\n signatureImage.style.fontFamily = signatureCollection.image[0].fontFamily;\n signatureImage.style.fontSize = '15px';\n signatureImage.style.display = 'inline-flex';\n signatureImage.style.alignItems = 'center';\n signatureImage.style.position = 'relative';\n signatureImage.id = 'sign_' + signatureID;\n signatureImage.style.width = '80px';\n signatureImage.style.height = '53px';\n signatureImage.style.overflow = 'hidden';\n signatureImage.style.textOverflow = 'ellipsis';\n signatureImage.style.paddingLeft = '11px';\n }\n else {\n signatureImage = createElement('img');\n signatureImage.id = 'sign_' + signatureID;\n signatureImage.src = collectionKey;\n signatureImage.width = 80;\n signatureImage.height = 32;\n signatureImage.classList.add('e-pv-signatureimage');\n signatureImage.style.paddingLeft = '20px';\n signatureImage.style.paddingRight = '18px';\n signatureImage.style.paddingTop = '12px';\n signatureImage.style.paddingBottom = '12px';\n signatureImage.style.boxSizing = 'content-box';\n signatureImage.setAttribute('alt', 'Saved Signature');\n }\n signatureImage.addEventListener('mouseover', _this.hoverSignatureImage.bind(_this));\n signatureImage.addEventListener('mouseleave', _this.leaveSignatureImage.bind(_this));\n var signatureDeleteSpan = createElement('span');\n signatureDeleteSpan.id = 'delete_' + signatureID;\n signatureDeleteSpan.classList.add('e-pv-delete');\n signatureDeleteSpan.classList.add('e-pv-align');\n signatureSpan.append(signatureImage);\n signatureSpan.append(signatureDeleteSpan);\n signatureContainer.append(signatureSpan);\n args.element.appendChild(signatureContainer);\n args.element.style.pointerEvents = 'auto';\n args.element.style.background = 'none';\n _this.pdfViewerBase.getElement('_annotation_signature-popup').style.width = '206px';\n _this.saveSignatureCount++;\n }\n }\n }\n var addInitialSpan = createElement('button');\n addInitialSpan.classList.add(\"e-control\", \"e-btn\", \"e-lib\", \"e-outline\", \"e-primary\");\n addInitialSpan.textContent = _this.pdfViewer.localeObj.getConstant('HandwrittenSignatureDialogHeaderText');\n _this.pdfViewer.locale === 'en-US' ? addInitialSpan.style.width = \"130px\" : addInitialSpan.style.width = \"auto\";\n addInitialSpan.style.height = \"36px\";\n addInitialSpan.addEventListener('click', _this.clickSignature.bind(_this));\n args.element.appendChild(addInitialSpan);\n args.element.addEventListener('mouseover', _this.hoverInitialBtn.bind(_this));\n args.element.style.width = '206px';\n args.element.style.display = 'flex';\n args.element.style.flexDirection = 'column';\n args.element.style.height = 'auto';\n args.element.style.alignItems = 'center';\n args.element.setAttribute('role', 'menuitem');\n }\n if (args.item.text === 'ADD INITIAL') {\n _this.saveInitialCount = 0;\n args.element.innerHTML = '';\n for (var collection = _this.pdfViewerBase.signatureModule.signaturecollection.length; collection > 0; collection--) {\n if (_this.saveInitialCount < _this.pdfViewerBase.signatureModule.getSaveLimit(_this.pdfViewer.handWrittenSignatureSettings.saveInitialLimit)) {\n // eslint-disable-next-line\n var signatureCollection = _this.pdfViewerBase.signatureModule.signaturecollection[collection - 1];\n // eslint-disable-next-line\n var collectionKey = signatureCollection.image[0].imageData;\n var signatureID = signatureCollection.image[0].id.split('_')[1];\n if (signatureCollection.isInitial && collectionKey !== '') {\n var signatureContainer = createElement('div');\n signatureContainer.id = 's' + signatureID;\n signatureContainer.style.display = 'block';\n signatureContainer.style.paddingBottom = '10px';\n var signatureSpan = createElement('span');\n signatureSpan.id = 'sign_border_' + signatureID;\n signatureSpan.classList.add('e-pv-align-border');\n var signatureImage = void 0;\n if (signatureCollection.image[0].signatureType === 'SignatureText') {\n signatureImage = createElement('div');\n signatureImage.classList.add('e-pv-align-border-div');\n signatureImage.innerText = collectionKey;\n signatureImage.style.fontFamily = signatureCollection.image[0].fontFamily;\n signatureImage.style.fontSize = '15px';\n signatureImage.style.display = 'inline-flex';\n signatureImage.style.alignItems = 'center';\n signatureImage.style.position = 'relative';\n signatureImage.id = 'sign_' + signatureID;\n signatureImage.style.width = '80px';\n signatureImage.style.height = '53px';\n signatureImage.style.overflow = 'hidden';\n signatureImage.style.textOverflow = 'ellipsis';\n signatureImage.style.paddingLeft = '11px';\n }\n else {\n signatureImage = createElement('img');\n signatureImage.id = 'sign_' + signatureID;\n signatureImage.src = collectionKey;\n signatureImage.width = 80;\n signatureImage.height = 32;\n signatureImage.classList.add('e-pv-signatureimage');\n signatureImage.style.paddingLeft = '20px';\n signatureImage.style.paddingRight = '18px';\n signatureImage.style.paddingTop = '12px';\n signatureImage.style.paddingBottom = '12px';\n signatureImage.style.boxSizing = 'content-box';\n signatureImage.setAttribute('alt', 'Saved Initial');\n }\n signatureImage.addEventListener('mouseover', _this.hoverSignatureImage.bind(_this));\n signatureImage.addEventListener('mouseleave', _this.leaveSignatureImage.bind(_this));\n signatureImage.width = 80;\n signatureImage.height = 32;\n var signatureDeleteSpan = createElement('span');\n signatureDeleteSpan.id = 'delete_' + signatureID;\n signatureDeleteSpan.classList.add('e-pv-delete');\n signatureDeleteSpan.classList.add('e-pv-align');\n signatureSpan.append(signatureImage);\n signatureSpan.append(signatureDeleteSpan);\n signatureContainer.append(signatureSpan);\n args.element.appendChild(signatureContainer);\n // eslint-disable-next-line max-len\n args.element.style.pointerEvents = 'auto';\n args.element.style.background = 'none';\n _this.pdfViewerBase.getElement('_annotation_signature-popup').style.width = '206px';\n _this.saveInitialCount++;\n }\n }\n }\n _this.isSignatureIteam = false;\n var addInitialSpan = createElement('button');\n addInitialSpan.classList.add(\"e-control\", \"e-btn\", \"e-lib\", \"e-outline\", \"e-primary\");\n addInitialSpan.textContent = _this.pdfViewer.localeObj.getConstant('HandwrittenInitialDialogHeaderText');\n _this.pdfViewer.locale === 'en-US' ? addInitialSpan.style.width = \"130px\" : addInitialSpan.style.width = \"auto\";\n addInitialSpan.style.height = \"36px\";\n addInitialSpan.addEventListener('click', _this.clickInitial.bind(_this));\n args.element.appendChild(addInitialSpan);\n args.element.addEventListener('mouseover', _this.hoverInitialBtn.bind(_this));\n args.element.style.width = '206px';\n args.element.style.display = 'flex';\n args.element.style.flexDirection = 'column';\n args.element.style.height = 'auto';\n args.element.style.alignItems = 'center';\n args.element.setAttribute('role', 'menuitem');\n }\n },\n select: function (args) {\n _this.pdfViewer.clearSelection(_this.pdfViewerBase.currentPageNumber - 1);\n }\n };\n var drpDownBtn = new DropDownButton(saveOptions);\n if (this.pdfViewer.enableRtl) {\n drpDownBtn.enableRtl = this.pdfViewer.enableRtl;\n }\n drpDownBtn.appendTo(this.handWrittenSignatureItem);\n };\n AnnotationToolbar.prototype.updateSignatureCount = function () {\n var count = 0;\n this.openSignaturePopup = false;\n // eslint-disable-next-line\n var signatureCollection = this.pdfViewerBase.signatureModule.signaturecollection;\n for (var collection = 0; collection < signatureCollection.length; collection++) {\n // eslint-disable-next-line\n var colletionList = signatureCollection[collection];\n if (colletionList.image[0].imageData === '') {\n count++;\n }\n }\n };\n AnnotationToolbar.prototype.openSignature = function () {\n this.saveInitialCount = 0;\n this.saveSignatureCount = 0;\n for (var collection = this.pdfViewerBase.signatureModule.signaturecollection.length; collection > 0; collection--) {\n if (this.saveSignatureCount < this.pdfViewerBase.signatureModule.getSaveLimit(this.pdfViewer.handWrittenSignatureSettings.saveSignatureLimit)) {\n // eslint-disable-next-line\n var signatureCollection = this.pdfViewerBase.signatureModule.signaturecollection[collection - 1];\n if (signatureCollection.image[0].imageData !== '') {\n if (!signatureCollection.isInitial) {\n this.saveSignatureCount++;\n // eslint-disable-next-line\n var addedSignature = document.getElementById('sign_border_' + signatureCollection.image[0].id.split('_')[1] + '');\n // eslint-disable-next-line\n var deleteSignature = document.getElementById('delete_' + signatureCollection.image[0].id.split('_')[1] + '');\n deleteSignature.style.backgroundClip = 'content-box';\n addedSignature.addEventListener('click', this.renderAddedSignature.bind(this));\n deleteSignature.addEventListener('click', this.deleteSavedSign.bind(this));\n deleteSignature.addEventListener('mouseover', this.hoverSignatureDelete.bind(this));\n deleteSignature.addEventListener('mouseleave', this.leaveSignatureDelete.bind(this));\n addedSignature.addEventListener('mouseover', this.hoverSignatureDelete.bind(this));\n addedSignature.addEventListener('mouseleave', this.leaveSignatureDelete.bind(this));\n }\n }\n }\n }\n for (var collection = this.pdfViewerBase.signatureModule.signaturecollection.length; collection > 0; collection--) {\n if (this.saveInitialCount < this.pdfViewerBase.signatureModule.getSaveLimit(this.pdfViewer.handWrittenSignatureSettings.saveInitialLimit)) {\n // eslint-disable-next-line\n var signatureCollection = this.pdfViewerBase.signatureModule.signaturecollection[collection - 1];\n if (signatureCollection.image[0].imageData !== '') {\n if (signatureCollection.isInitial) {\n this.saveInitialCount++;\n // eslint-disable-next-line\n var addedSignature = document.getElementById('sign_border_' + signatureCollection.image[0].id.split('_')[1] + '');\n // eslint-disable-next-line\n var deleteSignature = document.getElementById('delete_' + signatureCollection.image[0].id.split('_')[1] + '');\n deleteSignature.style.backgroundClip = 'content-box';\n addedSignature.addEventListener('click', this.renderAddedSignature.bind(this));\n deleteSignature.addEventListener('click', this.deleteSavedSign.bind(this));\n deleteSignature.addEventListener('mouseover', this.hoverSignatureDelete.bind(this));\n deleteSignature.addEventListener('mouseleave', this.leaveSignatureDelete.bind(this));\n addedSignature.addEventListener('mouseover', this.hoverSignatureDelete.bind(this));\n addedSignature.addEventListener('mouseleave', this.leaveSignatureDelete.bind(this));\n }\n }\n }\n }\n };\n AnnotationToolbar.prototype.hoverSignatureDelete = function () {\n var eventTarget = event.target;\n if (eventTarget.id === 'sign_' + eventTarget.id.split('_')[1] || eventTarget.classList.contains('e-pv-delete')) {\n eventTarget.classList.add('e-pv-signaturehover');\n eventTarget.style.cursor = 'pointer';\n }\n };\n AnnotationToolbar.prototype.hoverInitialBtn = function (event) {\n var eventTarget = event.target;\n var currentFieldID = '';\n if (navigator.userAgent.indexOf('MSIE') !== -1 || navigator.userAgent.indexOf('Trident') !== -1) {\n currentFieldID = eventTarget.id;\n }\n else {\n currentFieldID = isNullOrUndefined(event.path) ? event.composedPath()[0].id : event.path[0].id;\n }\n if (currentFieldID !== 'sign_' + currentFieldID.split(\"_\")[1] && currentFieldID !== 'delete_' + currentFieldID.split(\"_\")[1]) {\n var liElement = document.getElementById(eventTarget.id);\n if (isNullOrUndefined(liElement)) {\n liElement = document.getElementById(eventTarget.parentElement.id);\n }\n if (liElement != null && (eventTarget.id !== 'sign_' + eventTarget.id.split('_')[1] || eventTarget.id !== 'sign_border_' + eventTarget.id.split('_')[2])) {\n liElement.style.background = 'transparent';\n liElement.style.cursor = 'default';\n }\n else if (liElement.parentElement != null && (eventTarget.id !== 'sign_' + eventTarget.id.split('_')[1] || eventTarget.id !== 'sign_border_' + eventTarget.id.split('_')[2])) {\n liElement.parentElement.style.background = 'transparent';\n liElement.parentElement.style.cursor = 'default';\n }\n }\n };\n AnnotationToolbar.prototype.hoverSignatureImage = function () {\n var eventTarget = event.target;\n if (eventTarget.id === 'sign_' + eventTarget.id.split('_')[1] || eventTarget.classList.contains('e-pv-delete')) {\n eventTarget.classList.add('e-pv-signaturehover');\n eventTarget.classList.remove('e-pv-signatureimage');\n eventTarget.style.cursor = 'pointer';\n }\n };\n AnnotationToolbar.prototype.leaveSignatureDelete = function () {\n var eventTarget = event.target;\n if (eventTarget.id === 'sign_' + eventTarget.id.split('_')[1] || eventTarget.classList.contains('e-pv-delete')) {\n eventTarget.classList.remove('e-pv-signaturehover');\n if (eventTarget.children[0] && eventTarget.children[0].tagName === 'IMG') {\n eventTarget.children[0].classList.remove('e-pv-signaturehover');\n }\n eventTarget.style.cursor = 'default';\n }\n };\n AnnotationToolbar.prototype.clickSignature = function () {\n this.pdfViewerBase.isInitialField = false;\n this.addSignature();\n };\n AnnotationToolbar.prototype.clickInitial = function () {\n this.pdfViewerBase.isInitialField = true;\n this.addSignature();\n };\n AnnotationToolbar.prototype.leaveSignatureImage = function () {\n var eventTarget = event.target;\n if (eventTarget.id === 'sign_' + eventTarget.id.split('_')[1] || eventTarget.classList.contains('e-pv-delete')) {\n eventTarget.classList.remove('e-pv-signaturehover');\n if (eventTarget.tagName === 'IMG')\n eventTarget.classList.add('e-pv-signatureimage');\n if (eventTarget.children[0] && eventTarget.children[0].tagName === 'IMG') {\n eventTarget.children[0].classList.remove('e-pv-signaturehover');\n eventTarget.children[0].classList.add('e-pv-signatureimage');\n }\n eventTarget.style.cursor = 'default';\n }\n };\n AnnotationToolbar.prototype.addSignature = function () {\n this.deselectAllItems();\n this.showSignaturepanel();\n };\n AnnotationToolbar.prototype.renderAddedSignature = function () {\n this.pdfViewerBase.isAddedSignClicked = true;\n this.isSavedSignatureClicked = true;\n this.pdfViewerBase.signatureModule.RenderSavedSignature();\n };\n // eslint-disable-next-line\n AnnotationToolbar.prototype.deleteSavedSign = function (event) {\n event.stopPropagation();\n // eslint-disable-next-line\n var signaturecollection = this.pdfViewerBase.signatureModule.signaturecollection;\n for (var collection = signaturecollection.length; collection > 0; collection--) {\n if (event.target.parentElement.children[0].id === 'sign_' + signaturecollection[collection - 1].image[0].id.split('_')[1]) {\n // eslint-disable-next-line\n var RemoveSignature = signaturecollection[collection - 1];\n RemoveSignature.image[0].imageData = '';\n this.pdfViewerBase.signatureModule.signaturecollection.splice(collection - 1, 1);\n break;\n }\n }\n event.target.parentElement.remove();\n };\n AnnotationToolbar.prototype.getTemplate = function (elementName, id, className) {\n var element = createElement(elementName, { id: this.pdfViewer.element.id + id });\n if (className) {\n element.className = className;\n }\n return element.outerHTML;\n };\n // eslint-disable-next-line\n AnnotationToolbar.prototype.createStampContainer = function () {\n var _this = this;\n this.stampElement = this.pdfViewerBase.getElement('_annotation_stamp');\n // eslint-disable-next-line max-len\n this.primaryToolbar.createTooltip(this.pdfViewerBase.getElement('_annotation_stamp'), this.pdfViewer.localeObj.getConstant('Add Stamp'));\n var contextMenuElement = createElement('ul', { id: this.pdfViewer.element.id + 'contextMenuElement' });\n this.pdfViewerBase.getElement('_annotation_stamp').appendChild(contextMenuElement);\n var items = [];\n if (this.pdfViewer.stampSettings.dynamicStamps && this.pdfViewer.stampSettings.dynamicStamps.length > 0) {\n var dynamicStamps_1 = [];\n items.push({ text: this.pdfViewer.localeObj.getConstant('Dynamic'), label: 'Dynamic', items: dynamicStamps_1 });\n this.pdfViewer.stampSettings.dynamicStamps.forEach(function (stampItem, index) {\n var name = DynamicStampItem[stampItem];\n switch (name) {\n case 'NotApproved':\n name = 'Not Approved';\n break;\n }\n dynamicStamps_1.push({ text: _this.pdfViewer.localeObj.getConstant(name), label: name });\n });\n }\n if (this.pdfViewer.stampSettings.signStamps && this.pdfViewer.stampSettings.signStamps.length > 0) {\n var signStamps_1 = [];\n items.push({ text: this.pdfViewer.localeObj.getConstant('Sign Here'), label: 'Sign Here', items: signStamps_1 });\n this.pdfViewer.stampSettings.signStamps.forEach(function (stampItem, index) {\n var name = SignStampItem[stampItem];\n switch (name) {\n case 'InitialHere':\n name = 'Initial Here';\n break;\n case 'SignHere':\n name = 'Sign Here';\n break;\n }\n signStamps_1.push({ text: _this.pdfViewer.localeObj.getConstant(name), label: name });\n });\n }\n if (this.pdfViewer.stampSettings.standardBusinessStamps && this.pdfViewer.stampSettings.standardBusinessStamps.length > 0) {\n var standardsBusinessStamps_1 = [];\n items.push({ text: this.pdfViewer.localeObj.getConstant('Standard Business'), label: 'Standard Business', items: standardsBusinessStamps_1 });\n this.pdfViewer.stampSettings.standardBusinessStamps.forEach(function (stampItem, index) {\n var name = StandardBusinessStampItem[stampItem];\n switch (name) {\n case 'NotApproved':\n name = 'Not Approved';\n break;\n case 'ForPublicRelease':\n name = 'For Public Release';\n break;\n case 'NotForPublicRelease':\n name = 'Not For Public Release';\n break;\n case 'ForComment':\n name = 'For Comment';\n break;\n case 'PreliminaryResults':\n name = 'Preliminary Results';\n break;\n case 'InformationOnly':\n name = 'Information Only';\n break;\n }\n standardsBusinessStamps_1.push({ text: _this.pdfViewer.localeObj.getConstant(name), label: name });\n });\n }\n if (this.pdfViewer.customStampSettings.enableCustomStamp && !Browser.isDevice) {\n if (items.length > 0) {\n items.push({ separator: true });\n }\n items.push({ text: this.pdfViewer.localeObj.getConstant('Custom Stamp'), label: 'Custom Stamp', items: [] });\n }\n this.stampMenu = [\n {\n iconCss: 'e-pv-stamp-icon e-pv-icon',\n items: items\n }\n ];\n var menuOptions = {\n items: this.stampMenu,\n cssClass: 'e-custom-scroll',\n showItemOnClick: true,\n enableScrolling: true,\n beforeOpen: function (args) {\n _this.resetFreeTextAnnot();\n if (args.parentItem.text === '' && _this.pdfViewer.customStampSettings.isAddToMenu && args.items.length > 0) {\n // eslint-disable-next-line\n var currentElements = null;\n for (var i = 0; i < args.items.length; i++) {\n if (args.items[i].text === _this.pdfViewer.localeObj.getConstant('Custom Stamp')) {\n args.items[i].items = [];\n currentElements = args.items[i];\n break;\n }\n }\n // eslint-disable-next-line\n var elements = _this.pdfViewerBase.customStampCollection;\n // eslint-disable-next-line\n var stampElements = _this.pdfViewer.customStampSettings.customStamps;\n if (elements.length === 0 && stampElements && stampElements.length > 0) {\n for (var n = 0; n < stampElements.length; n++) {\n // eslint-disable-next-line max-len\n elements.push({ customStampName: stampElements[n].customStampName, customStampImageSource: stampElements[n].customStampImageSource });\n }\n }\n for (var m = 0; m < elements.length; m++) {\n if (currentElements != null) {\n currentElements.items.push({ text: elements[m].customStampName });\n for (var i = 0; i < args.items.length; i++) {\n if (args.items[i].text === _this.pdfViewer.localeObj.getConstant('Custom Stamp')) {\n var liElem = args.element.children[i];\n if (liElem && !liElem.childElementCount) {\n var span = document.createElement('span');\n span.className = 'e-icons e-caret e-menu-caret-icon';\n liElem.appendChild(span);\n liElem.setAttribute('aria-haspopup', 'true');\n liElem.setAttribute('aria-expanded', 'false');\n }\n }\n }\n }\n }\n }\n if (args.parentItem.text === _this.pdfViewer.localeObj.getConstant('Custom Stamp')) {\n // eslint-disable-next-line\n var stampElements = _this.pdfViewer.customStampSettings.customStamps;\n if (stampElements && stampElements.length > 10) {\n closest(args.element, '.e-menu-wrapper').style.height = '350px';\n }\n }\n _this.stampParentID = args.parentItem.text;\n _this.menuItems.showItemOnClick = false;\n },\n beforeClose: function (args) {\n // eslint-disable-next-line max-len\n if ((args.parentItem && args.parentItem.text !== _this.pdfViewer.localeObj.getConstant('Custom Stamp') && args.parentItem.text !== 'Standard Business' && args.parentItem.text !== 'Dynamic' && args.parentItem.text !== 'Sign Here') || !args.parentItem) {\n _this.menuItems.showItemOnClick = true;\n }\n },\n select: function (args) {\n _this.pdfViewerBase.isAlreadyAdded = false;\n if (args.item.text === _this.pdfViewer.localeObj.getConstant('Custom Stamp')) {\n _this.updateInteractionTools();\n _this.checkStampAnnotations();\n _this.pdfViewer.annotation.stampAnnotationModule.isStampAddMode = true;\n // eslint-disable-next-line\n var stampImage = document.getElementById(_this.pdfViewer.element.id + '_stampElement');\n if (stampImage) {\n stampImage.click();\n }\n _this.pdfViewer.annotation.triggerAnnotationUnselectEvent();\n // eslint-disable-next-line max-len\n }\n else if (_this.stampParentID === _this.pdfViewer.localeObj.getConstant('Custom Stamp') && args.item.text !== '') {\n // eslint-disable-next-line\n var elements = _this.pdfViewerBase.customStampCollection;\n for (var n = 0; n < elements.length; n++) {\n if (elements[n].customStampName === args.item.text) {\n _this.pdfViewer.annotationModule.stampAnnotationModule.customStampName = args.item.text;\n _this.checkStampAnnotations();\n _this.pdfViewer.annotation.stampAnnotationModule.isStampAddMode = true;\n _this.pdfViewer.annotationModule.stampAnnotationModule.isStampAnnotSelected = true;\n _this.pdfViewerBase.stampAdded = true;\n _this.pdfViewerBase.isAlreadyAdded = true;\n // eslint-disable-next-line max-len\n _this.pdfViewer.annotationModule.stampAnnotationModule.createCustomStampAnnotation(elements[n].customStampImageSource);\n _this.pdfViewerBase.stampAdded = false;\n }\n }\n // eslint-disable-next-line max-len\n }\n else if (args.item.text !== _this.pdfViewer.localeObj.getConstant('Dynamic') && args.item.text !== '' && args.item.text !== 'Standard Business' && (_this.stampParentID === 'Sign Here' || args.item.text !== 'Sign Here')) {\n _this.updateInteractionTools();\n _this.checkStampAnnotations();\n _this.pdfViewer.annotation.stampAnnotationModule.isStampAddMode = true;\n _this.pdfViewer.annotationModule.stampAnnotationModule.isStampAnnotSelected = true;\n _this.pdfViewerBase.stampAdded = true;\n _this.pdfViewer.annotation.triggerAnnotationUnselectEvent();\n if (_this.stampParentID === _this.pdfViewer.localeObj.getConstant('Dynamic')) {\n _this.pdfViewerBase.isDynamicStamp = true;\n _this.pdfViewer.annotationModule.stampAnnotationModule.retrieveDynamicStampAnnotation(args.item.label);\n }\n else {\n _this.pdfViewerBase.isDynamicStamp = false;\n _this.pdfViewer.annotationModule.stampAnnotationModule.retrievestampAnnotation(args.item.label);\n }\n if (Browser.isDevice) {\n _this.stampToolMobileForMobile(_this.pdfViewer.element.id + '_annotation_stamp');\n }\n }\n }\n };\n this.menuItems = new Menu(menuOptions, '#' + this.pdfViewer.element.id + 'contextMenuElement');\n contextMenuElement.parentElement.classList.add('e-pv-stamp');\n if (this.pdfViewer.enableRtl) {\n this.menuItems.enableRtl = true;\n }\n return contextMenuElement;\n };\n /**\n * @private\n */\n AnnotationToolbar.prototype.createCustomStampElement = function () {\n // eslint-disable-next-line\n var stampImage = createElement('input', { id: this.pdfViewer.element.id + '_stampElement', attrs: { 'type': 'file' } });\n stampImage.setAttribute('accept', '.jpg,.jpeg,.png');\n stampImage.style.position = 'absolute';\n stampImage.style.left = '0px';\n stampImage.style.top = '0px';\n stampImage.style.visibility = 'hidden';\n document.body.appendChild(stampImage);\n stampImage.addEventListener('change', this.addStampImage);\n };\n AnnotationToolbar.prototype.checkStampAnnotations = function () {\n // eslint-disable-next-line max-len\n if (this.pdfViewer.annotation.stampAnnotationModule.isStampAddMode && this.pdfViewer.selectedItems && this.pdfViewer.selectedItems.annotations) {\n for (var i = 0; i < this.pdfViewer.selectedItems.annotations.length; i++) {\n // eslint-disable-next-line\n var annotation = this.pdfViewer.selectedItems.annotations[i];\n // eslint-disable-next-line\n if (annotation && !annotation.annotName && !annotation.author && (annotation.shapeAnnotationType !== 'Shape' || annotation.shapeAnnotationType !== 'Image')) {\n this.pdfViewer.remove(annotation);\n this.pdfViewer.annotation.renderAnnotations(annotation.pageIndex, null, null, null);\n this.pdfViewer.clearSelection(annotation.pageIndex);\n }\n }\n }\n };\n AnnotationToolbar.prototype.createDropDowns = function (isPath) {\n var _this = this;\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n this.shapeElement = this.pdfViewerBase.getElement('_annotation_shapes');\n var shapeToolbar = this.createShapeOptions(this.shapeElement.id, true);\n // eslint-disable-next-line max-len\n this.shapeDropDown = this.createDropDownButton(this.shapeElement, 'e-pv-annotation-shape-icon', shapeToolbar.element, this.pdfViewer.localeObj.getConstant('Add Shapes'));\n this.calibrateElement = this.pdfViewerBase.getElement('_annotation_calibrate');\n var calibrateToolbar = this.createShapeOptions(this.calibrateElement.id, false);\n // eslint-disable-next-line max-len\n this.calibrateDropDown = this.createDropDownButton(this.calibrateElement, 'e-pv-annotation-calibrate-icon', calibrateToolbar.element, this.pdfViewer.localeObj.getConstant('Calibrate'));\n }\n if (!isPath) {\n this.colorDropDownElement = this.pdfViewerBase.getElement('_annotation_color');\n this.colorPalette = this.createColorPicker(this.colorDropDownElement.id);\n this.colorPalette.change = this.onColorPickerChange.bind(this);\n // eslint-disable-next-line max-len\n this.colorDropDown = this.createDropDownButton(this.colorDropDownElement, 'e-pv-annotation-color-icon', this.colorPalette.element.parentElement, this.pdfViewer.localeObj.getConstant('Color edit'));\n this.colorDropDown.beforeOpen = this.colorDropDownBeforeOpen.bind(this);\n this.colorDropDown.open = this.colorDropDownOpen.bind(this);\n this.pdfViewerBase.getElement('_annotation_color-popup').addEventListener('click', this.onColorPickerCancelClick.bind(this));\n }\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n this.strokeDropDownElement = this.pdfViewerBase.getElement('_annotation_stroke');\n this.strokeColorPicker = this.createColorPicker(this.strokeDropDownElement.id);\n this.strokeColorPicker.change = this.onStrokePickerChange.bind(this);\n // eslint-disable-next-line max-len\n this.strokeDropDown = this.createDropDownButton(this.strokeDropDownElement, 'e-pv-annotation-stroke-icon', this.strokeColorPicker.element.parentElement, this.pdfViewer.localeObj.getConstant('Stroke edit'));\n this.strokeDropDown.beforeOpen = this.strokeDropDownBeforeOpen.bind(this);\n this.strokeDropDown.open = this.strokeDropDownOpen.bind(this);\n this.pdfViewerBase.getElement('_annotation_stroke-popup').addEventListener('click', this.onStrokePickerCancelClick.bind(this));\n this.thicknessElement = this.pdfViewerBase.getElement('_annotation_thickness');\n var thicknessContainer = this.createThicknessSlider(this.thicknessElement.id);\n // eslint-disable-next-line max-len\n this.thicknessDropDown = this.createDropDownButton(this.thicknessElement, 'e-pv-annotation-thickness-icon', thicknessContainer, this.pdfViewer.localeObj.getConstant('Change thickness'));\n this.thicknessDropDown.beforeOpen = this.thicknessDropDownBeforeOpen.bind(this);\n this.thicknessSlider.change = this.thicknessChange.bind(this);\n this.thicknessSlider.changed = this.thicknessChange.bind(this);\n this.thicknessDropDown.open = this.thicknessDropDownOpen.bind(this);\n }\n if (!isPath) {\n this.opacityDropDownElement = this.pdfViewerBase.getElement('_annotation_opacity');\n var sliderContainer = this.createSlider(this.opacityDropDownElement.id);\n // eslint-disable-next-line max-len\n this.opacityDropDown = this.createDropDownButton(this.opacityDropDownElement, 'e-pv-annotation-opacity-icon', sliderContainer, this.pdfViewer.localeObj.getConstant('Opacity edit'));\n this.opacityDropDown.beforeOpen = this.opacityDropDownBeforeOpen.bind(this);\n this.opacitySlider.change = this.opacityChange.bind(this);\n this.opacitySlider.changed = this.opacityChange.bind(this);\n this.opacityDropDown.open = this.opacityDropDownOpen.bind(this);\n }\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n this.fontFamilyElement = this.pdfViewerBase.getElement('_annotation_fontname');\n this.createDropDownListForFamily(this.fontFamilyElement);\n //this.fontFamilyElement.style.textAlign = 'left';\n this.fontFamilyElement.addEventListener('change', function () {\n _this.onFontFamilyChange.bind(_this);\n });\n this.fontSizeElement = this.pdfViewerBase.getElement('_annotation_fontsize');\n this.createDropDownListForSize(this.fontSizeElement);\n this.fontColorElement = this.pdfViewerBase.getElement('_annotation_textcolor');\n this.fontColorPalette = this.createColorPicker(this.fontColorElement.id);\n this.fontColorPalette.change = this.onFontColorChange.bind(this);\n // eslint-disable-next-line max-len\n this.fontColorDropDown = this.createDropDownButton(this.fontColorElement, 'e-pv-annotation-textcolor-icon', this.fontColorPalette.element.parentElement, this.pdfViewer.localeObj.getConstant('Font color'));\n this.textAlignElement = this.pdfViewerBase.getElement('_annotation_textalign');\n this.alignmentToolbar = this.createShapeOptions(this.textAlignElement.id, undefined, true);\n // eslint-disable-next-line max-len\n this.textAlignDropDown = this.createDropDownButton(this.textAlignElement, 'e-pv-annotation-textalign-icon', this.alignmentToolbar.element, this.pdfViewer.localeObj.getConstant('Text Align'));\n this.textAlignDropDown.beforeOpen = this.textAlignDropDownBeforeOpen.bind(this);\n this.textPropElement = this.pdfViewerBase.getElement('_annotation_textproperties');\n this.propertiesToolbar = this.createShapeOptions(this.textPropElement.id, undefined, false, true);\n // eslint-disable-next-line max-len\n this.textPropertiesDropDown = this.createPropDropDownButton(this.textPropElement, 'e-pv-annotation-textprop-icon', this.propertiesToolbar.element, this.pdfViewer.localeObj.getConstant('Text Properties'));\n this.textPropertiesDropDown.beforeOpen = this.textPropertiesDropDownBeforeOpen.bind(this);\n }\n };\n AnnotationToolbar.prototype.mobileColorpicker = function (id) {\n var _this = this;\n this.opacityDropDownElement = this.pdfViewerBase.getElement('_annotation_opacity');\n var sliderContainer = this.createSlider(this.opacityDropDownElement.id);\n // eslint-disable-next-line max-len\n this.opacityDropDown = this.createDropDownButton(this.opacityDropDownElement, 'e-pv-annotation-opacity-icon', sliderContainer, this.pdfViewer.localeObj.getConstant('Opacity edit'));\n this.opacityDropDown.beforeOpen = this.opacityDropDownBeforeOpen.bind(this);\n this.opacitySlider.change = this.opacityChange.bind(this);\n this.opacitySlider.changed = this.opacityChange.bind(this);\n this.opacityDropDown.open = this.opacityDropDownOpen.bind(this);\n if (id === this.pdfViewer.element.id + '_annotation_shapes') {\n id = this.pdfViewer.element.id + '_annotation_shapesIcon';\n }\n else if (id === this.pdfViewer.element.id + '_annotation_calibrate') {\n id = this.pdfViewer.element.id + '_annotation_calibrateIcon';\n }\n else if (id === this.pdfViewer.element.id + '_highlight') {\n id = this.pdfViewer.element.id + '_highlightIcon';\n }\n else if (id === this.pdfViewer.element.id + '_underline') {\n id = this.pdfViewer.element.id + '_underlineIcon';\n }\n else if (id === this.pdfViewer.element.id + '_strikethrough') {\n id = this.pdfViewer.element.id + '_strikethroughIcon';\n }\n // eslint-disable-next-line max-len\n if (id === this.pdfViewer.element.id + '_annotation_shapesIcon' || id === this.pdfViewer.element.id + '_annotation_calibrateIcon' || id === this.pdfViewer.element.id + '_annotation_freeTextEdit' ||\n // eslint-disable-next-line max-len\n id === this.pdfViewer.element.id + '_highlightIcon' || id === this.pdfViewer.element.id + '_underlineIcon' || id === this.pdfViewer.element.id + '_strikethroughIcon' || id === this.pdfViewer.element.id + '_annotation_inkIcon' || id === this.pdfViewer.element.id + '_annotation_handwrittenSign') {\n if (id !== this.pdfViewer.element.id + '_annotation_handwrittenSign' && id !== this.pdfViewer.element.id + '_annotation_inkIcon') {\n this.colorDropDownElement = this.pdfViewerBase.getElement('_annotation_color');\n this.colorPalette = this.createColorPicker(this.colorDropDownElement.id);\n this.colorPalette.change = this.onColorPickerChange.bind(this);\n // eslint-disable-next-line max-len\n this.colorDropDown = this.createDropDownButton(this.colorDropDownElement, 'e-pv-annotation-color-icon', this.colorPalette.element.parentElement, this.pdfViewer.localeObj.getConstant('Color edit'));\n this.colorDropDown.beforeOpen = this.colorDropDownBeforeOpen.bind(this);\n this.colorDropDown.open = this.colorDropDownOpen.bind(this);\n // eslint-disable-next-line max-len\n this.pdfViewerBase.getElement('_annotation_color-popup').addEventListener('click', this.onColorPickerCancelClick.bind(this));\n }\n if (id === this.pdfViewer.element.id + '_annotation_freeTextEdit') {\n this.fontFamilyElement = this.pdfViewerBase.getElement('_annotation_fontname');\n this.createDropDownListForFamily(this.fontFamilyElement);\n this.fontFamilyElement.style.textAlign = 'left';\n this.fontFamilyElement.addEventListener('change', function () { _this.onFontFamilyChange.bind(_this); });\n this.fontSizeElement = this.pdfViewerBase.getElement('_annotation_fontsize');\n this.createDropDownListForSize(this.fontSizeElement);\n this.fontColorElement = this.pdfViewerBase.getElement('_annotation_textcolor');\n this.fontColorPalette = this.createColorPicker(this.fontColorElement.id);\n this.fontColorPalette.change = this.onFontColorChange.bind(this);\n // eslint-disable-next-line max-len\n this.fontColorDropDown = this.createDropDownButton(this.fontColorElement, 'e-pv-annotation-textcolor-icon', this.fontColorPalette.element.parentElement, this.pdfViewer.localeObj.getConstant('Font color'));\n this.textAlignElement = this.pdfViewerBase.getElement('_annotation_textalign');\n this.alignmentToolbar = this.createShapeOptions(this.textAlignElement.id, undefined, true);\n // eslint-disable-next-line max-len\n this.textAlignDropDown = this.createDropDownButton(this.textAlignElement, 'e-pv-annotation-textalign-icon', this.alignmentToolbar.element, this.pdfViewer.localeObj.getConstant('Text Align'));\n this.textAlignDropDown.beforeOpen = this.textAlignDropDownBeforeOpen.bind(this);\n this.textPropElement = this.pdfViewerBase.getElement('_annotation_textproperties');\n this.propertiesToolbar = this.createShapeOptions(this.textPropElement.id, undefined, false, true);\n // eslint-disable-next-line max-len\n this.textPropertiesDropDown = this.createPropDropDownButton(this.textPropElement, 'e-pv-annotation-textprop-icon', this.propertiesToolbar.element, this.pdfViewer.localeObj.getConstant('Text Properties'));\n this.textPropertiesDropDown.beforeOpen = this.textPropertiesDropDownBeforeOpen.bind(this);\n }\n // eslint-disable-next-line max-len\n if (id === this.pdfViewer.element.id + '_annotation_shapesIcon' || id === this.pdfViewer.element.id + '_annotation_calibrateIcon' || id === this.pdfViewer.element.id + '_annotation_freeTextEdit' ||\n id === this.pdfViewer.element.id + '_annotation_inkIcon' || id === this.pdfViewer.element.id + '_annotation_handwrittenSign') {\n this.thicknessElement = this.pdfViewerBase.getElement('_annotation_thickness');\n var thicknessContainer = this.createThicknessSlider(this.thicknessElement.id);\n // eslint-disable-next-line max-len\n this.thicknessDropDown = this.createDropDownButton(this.thicknessElement, 'e-pv-annotation-thickness-icon', thicknessContainer, this.pdfViewer.localeObj.getConstant('Change thickness'));\n this.thicknessDropDown.beforeOpen = this.thicknessDropDownBeforeOpen.bind(this);\n this.thicknessSlider.change = this.thicknessChange.bind(this);\n this.thicknessSlider.changed = this.thicknessChange.bind(this);\n this.thicknessDropDown.open = this.thicknessDropDownOpen.bind(this);\n this.strokeDropDownElement = this.pdfViewerBase.getElement('_annotation_stroke');\n this.strokeColorPicker = this.createColorPicker(this.strokeDropDownElement.id);\n this.strokeColorPicker.change = this.onStrokePickerChange.bind(this);\n // eslint-disable-next-line max-len\n this.strokeDropDown = this.createDropDownButton(this.strokeDropDownElement, 'e-pv-annotation-stroke-icon', this.strokeColorPicker.element.parentElement, this.pdfViewer.localeObj.getConstant('Stroke edit'));\n this.strokeDropDown.beforeOpen = this.strokeDropDownBeforeOpen.bind(this);\n this.strokeDropDown.open = this.strokeDropDownOpen.bind(this);\n // eslint-disable-next-line max-len\n this.pdfViewerBase.getElement('_annotation_stroke-popup').addEventListener('click', this.onStrokePickerCancelClick.bind(this));\n }\n }\n };\n AnnotationToolbar.prototype.opacityDropDownOpen = function (args) {\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n args.element.parentElement.style.left = '0px';\n args.element.parentElement.style.top = (this.pdfViewerBase.viewerContainer.clientHeight) + 'px';\n }\n else {\n this.calculateToolbarPosition(args);\n }\n };\n AnnotationToolbar.prototype.onColorPickerCancelClick = function (event) {\n if (event.target.classList.contains('e-cancel')) {\n this.colorDropDown.toggle();\n }\n };\n AnnotationToolbar.prototype.onStrokePickerCancelClick = function (event) {\n if (event.target.classList.contains('e-cancel')) {\n this.strokeDropDown.toggle();\n }\n };\n AnnotationToolbar.prototype.colorDropDownBeforeOpen = function (args) {\n this.colorPalette.noColor = false;\n if (this.pdfViewer.annotationModule.textMarkupAnnotationModule) {\n if (this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation) {\n this.colorPalette.value = this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation.color;\n }\n else {\n this.setCurrentColorInPicker();\n }\n }\n if (this.pdfViewer.selectedItems.annotations.length === 1) {\n this.colorPalette.value = this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.fill;\n this.colorPalette.noColor = true;\n }\n else {\n this.setCurrentColorInPicker();\n }\n this.colorPalette.refresh();\n this.updateColorInIcon(this.colorDropDownElement, this.colorPalette.value);\n };\n /**\n * @private\n */\n AnnotationToolbar.prototype.setCurrentColorInPicker = function () {\n if (!isBlazor()) {\n if (this.pdfViewer.annotationModule.textMarkupAnnotationModule) {\n switch (this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAddMode) {\n case 'Highlight':\n // eslint-disable-next-line max-len\n this.setColorInPicker(this.colorPalette, this.pdfViewer.annotationModule.textMarkupAnnotationModule.highlightColor);\n break;\n case 'Underline':\n // eslint-disable-next-line max-len\n this.setColorInPicker(this.colorPalette, this.pdfViewer.annotationModule.textMarkupAnnotationModule.underlineColor);\n break;\n case 'Strikethrough':\n // eslint-disable-next-line max-len\n this.setColorInPicker(this.colorPalette, this.pdfViewer.annotationModule.textMarkupAnnotationModule.strikethroughColor);\n break;\n }\n }\n if (this.pdfViewer.annotation.shapeAnnotationModule) {\n switch (this.pdfViewer.annotationModule.shapeAnnotationModule.currentAnnotationMode) {\n case 'Line':\n // eslint-disable-next-line max-len\n this.setColorInPicker(this.colorPalette, this.pdfViewer.annotationModule.shapeAnnotationModule.lineFillColor);\n break;\n case 'Arrow':\n // eslint-disable-next-line max-len\n this.setColorInPicker(this.colorPalette, this.pdfViewer.annotationModule.shapeAnnotationModule.arrowFillColor);\n break;\n case 'Rectangle':\n // eslint-disable-next-line max-len\n this.setColorInPicker(this.colorPalette, this.pdfViewer.annotationModule.shapeAnnotationModule.rectangleFillColor);\n break;\n case 'Circle':\n // eslint-disable-next-line max-len\n this.setColorInPicker(this.colorPalette, this.pdfViewer.annotationModule.shapeAnnotationModule.circleFillColor);\n break;\n case 'Polygon':\n // eslint-disable-next-line max-len\n this.setColorInPicker(this.colorPalette, this.pdfViewer.annotationModule.shapeAnnotationModule.polygonFillColor);\n break;\n }\n }\n if (this.colorDropDownElement) {\n this.updateColorInIcon(this.colorDropDownElement, this.colorPalette.value);\n }\n }\n };\n AnnotationToolbar.prototype.colorDropDownOpen = function (args) {\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n // eslint-disable-next-line max-len\n args.element.parentElement.style.top = (this.pdfViewerBase.viewerContainer.clientHeight / 2) + 'px';\n }\n this.popupPosition(args, this.colorDropDownElement);\n this.colorPalette.refresh();\n };\n AnnotationToolbar.prototype.strokeDropDownBeforeOpen = function (args) {\n if (this.pdfViewer.selectedItems.annotations.length === 1) {\n this.strokeColorPicker.value = this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.strokeColor;\n }\n else {\n this.setCurrentStrokeColorInPicker();\n }\n this.strokeColorPicker.refresh();\n this.updateColorInIcon(this.strokeDropDownElement, this.strokeColorPicker.value);\n this.updateInkannotationItems();\n };\n AnnotationToolbar.prototype.setCurrentStrokeColorInPicker = function () {\n if (!isBlazor()) {\n if (this.pdfViewer.annotation.shapeAnnotationModule) {\n switch (this.pdfViewer.annotationModule.shapeAnnotationModule.currentAnnotationMode) {\n case 'Line':\n // eslint-disable-next-line max-len\n this.setColorInPicker(this.strokeColorPicker, this.pdfViewer.annotationModule.shapeAnnotationModule.lineStrokeColor);\n break;\n case 'Arrow':\n // eslint-disable-next-line max-len\n this.setColorInPicker(this.strokeColorPicker, this.pdfViewer.annotationModule.shapeAnnotationModule.arrowStrokeColor);\n break;\n case 'Rectangle':\n // eslint-disable-next-line max-len\n this.setColorInPicker(this.strokeColorPicker, this.pdfViewer.annotationModule.shapeAnnotationModule.rectangleStrokeColor);\n break;\n case 'Circle':\n // eslint-disable-next-line max-len\n this.setColorInPicker(this.strokeColorPicker, this.pdfViewer.annotationModule.shapeAnnotationModule.circleStrokeColor);\n break;\n case 'Polygon':\n // eslint-disable-next-line max-len\n this.setColorInPicker(this.strokeColorPicker, this.pdfViewer.annotationModule.shapeAnnotationModule.polygonStrokeColor);\n break;\n }\n }\n }\n };\n AnnotationToolbar.prototype.strokeDropDownOpen = function (args) {\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n args.element.parentElement.style.top = (this.pdfViewerBase.viewerContainer.clientHeight / 2) + 'px';\n }\n this.popupPosition(args, this.strokeDropDownElement);\n this.strokeColorPicker.refresh();\n };\n // eslint-disable-next-line\n AnnotationToolbar.prototype.onFontColorChange = function (args) {\n // eslint-disable-next-line\n var currentColor;\n if (!isBlazor()) {\n currentColor = (args.currentValue.hex === '') ? '#ffffff00' : args.currentValue.hex;\n }\n else {\n currentColor = args[0];\n }\n if (this.pdfViewer.selectedItems.annotations.length === 1) {\n this.pdfViewer.annotation.modifyFontColor(currentColor);\n }\n else {\n this.pdfViewer.freeTextSettings.fontColor = currentColor;\n this.pdfViewer.annotationModule.freeTextAnnotationModule.updateTextProperties();\n }\n if (isBlazor()) {\n this.fontColorElementInBlazor = this.pdfViewer.element.querySelector('.e-pv-annotation-textcolor-container');\n this.updateColorInIcon(this.fontColorElementInBlazor, currentColor);\n }\n else {\n this.updateColorInIcon(this.fontColorElement, currentColor);\n this.fontColorDropDown.toggle();\n }\n };\n // eslint-disable-next-line\n AnnotationToolbar.prototype.onFontFamilyChange = function (args) {\n var currentValue;\n if (!isBlazor()) {\n currentValue = (args && args.fontFamily && args.fontFamily.value) ? args.fontFamily.value : '';\n }\n else {\n currentValue = args;\n }\n if (this.pdfViewer.selectedItems.annotations.length === 1 && currentValue) {\n this.pdfViewer.annotation.modifyFontFamily(currentValue);\n }\n else {\n this.pdfViewer.freeTextSettings.fontFamily = currentValue;\n this.pdfViewer.annotationModule.freeTextAnnotationModule.updateTextProperties();\n }\n };\n // eslint-disable-next-line\n AnnotationToolbar.prototype.onFontSizeChange = function (args, isInteracted) {\n var currentValue;\n if (!isBlazor()) {\n currentValue = (args && args.fontSize && args.fontSize.value) ? args.fontSize.value : '';\n }\n else {\n currentValue = args;\n }\n var fontSize = parseFloat(currentValue);\n if (this.pdfViewer.selectedItems.annotations.length === 1 && currentValue) {\n this.pdfViewer.annotation.modifyFontSize(fontSize, isInteracted);\n }\n else {\n this.pdfViewer.freeTextSettings.fontSize = fontSize;\n this.pdfViewer.annotationModule.freeTextAnnotationModule.updateTextProperties();\n }\n };\n AnnotationToolbar.prototype.textAlignDropDownBeforeOpen = function (args) {\n if (this.pdfViewer.selectedItems.annotations.length === 1) {\n if (args.element.getElementsByTagName('button') && args.element.getElementsByTagName('button').length > 0) {\n // eslint-disable-next-line\n var dropDownOptions = args.element.getElementsByTagName('button');\n // eslint-disable-next-line\n var selectedAnnotation = this.pdfViewer.selectedItems.annotations[0];\n for (var n = 0; n < dropDownOptions.length; n++) {\n if (dropDownOptions[n]) {\n dropDownOptions[n].classList.remove('textprop-option-active');\n // eslint-disable-next-line max-len\n if (dropDownOptions[n].id === (this.pdfViewer.element.id + '_left_align') && selectedAnnotation.textAlign === 'Left') {\n dropDownOptions[n].classList.add('textprop-option-active');\n }\n // eslint-disable-next-line max-len\n if (dropDownOptions[n].id === (this.pdfViewer.element.id + '_right_align') && selectedAnnotation.textAlign === 'Right') {\n dropDownOptions[n].classList.add('textprop-option-active');\n }\n // eslint-disable-next-line max-len\n if (dropDownOptions[n].id === (this.pdfViewer.element.id + '_center_align') && selectedAnnotation.textAlign === 'Center') {\n dropDownOptions[n].classList.add('textprop-option-active');\n }\n // eslint-disable-next-line max-len\n if (dropDownOptions[n].id === (this.pdfViewer.element.id + '_justify_align') && selectedAnnotation.textAlign === 'Justify') {\n dropDownOptions[n].classList.add('textprop-option-active');\n }\n }\n }\n }\n }\n };\n AnnotationToolbar.prototype.textPropertiesDropDownBeforeOpen = function (args) {\n if (this.pdfViewer.selectedItems.annotations.length === 1) {\n if (args.element.getElementsByTagName('button') && args.element.getElementsByTagName('button').length > 0) {\n // eslint-disable-next-line\n var dropDownOptions = args.element.getElementsByTagName('button');\n // eslint-disable-next-line\n var selectedAnnotation = this.pdfViewer.selectedItems.annotations[0];\n for (var n = 0; n < dropDownOptions.length; n++) {\n if (dropDownOptions[n]) {\n dropDownOptions[n].classList.remove('textprop-option-active');\n if (dropDownOptions[n].id === (this.pdfViewer.element.id + '_bold') && selectedAnnotation.font.isBold) {\n dropDownOptions[n].classList.add('textprop-option-active');\n }\n if (dropDownOptions[n].id === (this.pdfViewer.element.id + '_italic') && selectedAnnotation.font.isItalic) {\n dropDownOptions[n].classList.add('textprop-option-active');\n }\n if (dropDownOptions[n].id === (this.pdfViewer.element.id + '_strikeout') && selectedAnnotation.font.isStrikeout) {\n dropDownOptions[n].classList.add('textprop-option-active');\n }\n // eslint-disable-next-line max-len\n if (dropDownOptions[n].id === (this.pdfViewer.element.id + '_underline_textinput') && selectedAnnotation.font.isUnderline) {\n dropDownOptions[n].classList.add('textprop-option-active');\n }\n }\n }\n }\n }\n };\n // eslint-disable-next-line\n AnnotationToolbar.prototype.onClickTextAlignment = function (args) {\n var currentValue;\n if (isBlazor()) {\n currentValue = args[0];\n }\n else {\n currentValue = (args && args.item && args.item.value) ? args.item.value : '';\n }\n if (this.pdfViewer.selectedItems.annotations.length === 1 && currentValue) {\n this.pdfViewer.annotation.modifyTextAlignment(currentValue);\n }\n else {\n this.pdfViewer.freeTextSettings.textAlignment = args.item.value;\n this.pdfViewer.annotationModule.freeTextAnnotationModule.updateTextProperties();\n }\n this.updateTextAlignInIcon(currentValue);\n };\n // eslint-disable-next-line\n AnnotationToolbar.prototype.onClickTextProperties = function (args) {\n var currentValue;\n if (isBlazor()) {\n currentValue = args[0];\n }\n else {\n currentValue = (args && args.item && args.item.value) ? args.item.value : '';\n }\n if (this.pdfViewer.selectedItems.annotations.length === 1 && currentValue) {\n var fontInfo = { isBold: undefined, isItalic: undefined, isStrikeout: undefined, isUnderline: undefined };\n if (currentValue === 'bold') {\n fontInfo.isBold = !(this.pdfViewer.selectedItems.annotations[0].font.isBold);\n }\n else if (currentValue === 'italic') {\n fontInfo.isItalic = !(this.pdfViewer.selectedItems.annotations[0].font.isItalic);\n }\n else if (currentValue === 'underline') {\n fontInfo.isUnderline = !(this.pdfViewer.selectedItems.annotations[0].font.isUnderline);\n }\n else if (currentValue === 'strikeout') {\n fontInfo.isStrikeout = !(this.pdfViewer.selectedItems.annotations[0].font.isStrikeout);\n }\n this.pdfViewer.annotation.modifyTextProperties(fontInfo, currentValue);\n }\n else {\n if (currentValue === 'bold') {\n if (this.pdfViewer.annotationModule.freeTextAnnotationModule.isBold) {\n this.pdfViewer.annotationModule.freeTextAnnotationModule.isBold = false;\n }\n else {\n this.pdfViewer.freeTextSettings.fontStyle = 1;\n this.pdfViewer.annotationModule.freeTextAnnotationModule.updateTextProperties();\n }\n }\n else if (currentValue === 'italic') {\n if (this.pdfViewer.annotationModule.freeTextAnnotationModule.isItalic) {\n this.pdfViewer.annotationModule.freeTextAnnotationModule.isItalic = false;\n }\n else {\n this.pdfViewer.freeTextSettings.fontStyle = 2;\n this.pdfViewer.annotationModule.freeTextAnnotationModule.updateTextProperties();\n }\n }\n else if (currentValue === 'underline') {\n if (this.pdfViewer.annotationModule.freeTextAnnotationModule.isUnderline) {\n this.pdfViewer.annotationModule.freeTextAnnotationModule.isUnderline = false;\n }\n else {\n this.pdfViewer.freeTextSettings.fontStyle = 4;\n this.pdfViewer.annotationModule.freeTextAnnotationModule.isStrikethrough = false;\n this.pdfViewer.annotationModule.freeTextAnnotationModule.updateTextProperties();\n }\n }\n else if (currentValue === 'strikeout') {\n if (this.pdfViewer.annotationModule.freeTextAnnotationModule.isStrikethrough) {\n this.pdfViewer.annotationModule.freeTextAnnotationModule.isStrikethrough = false;\n }\n else {\n this.pdfViewer.freeTextSettings.fontStyle = 8;\n this.pdfViewer.annotationModule.freeTextAnnotationModule.isUnderline = false;\n this.pdfViewer.annotationModule.freeTextAnnotationModule.updateTextProperties();\n }\n }\n }\n this.updateTextPropertySelection(currentValue);\n };\n // eslint-disable-next-line\n AnnotationToolbar.prototype.opacityChange = function (args) {\n var opacityValue = 1;\n if (args && args.length === 1) {\n opacityValue = args[0];\n }\n else {\n opacityValue = args.value;\n }\n if (this.pdfViewer.annotationModule.textMarkupAnnotationModule) {\n if (this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation) {\n if (!isBlazor()) {\n if (this.isCurrentAnnotationOpacitySet && args.name === 'changed') {\n this.isCurrentAnnotationOpacitySet = false;\n }\n else {\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.modifyOpacityProperty(args);\n }\n }\n else {\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.modifyOpacityProperty(null, opacityValue);\n }\n }\n else {\n switch (this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAddMode) {\n case 'Highlight':\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.highlightOpacity = opacityValue / 100;\n break;\n case 'Underline':\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.underlineOpacity = opacityValue / 100;\n break;\n case 'Strikethrough':\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.strikethroughOpacity = opacityValue / 100;\n break;\n }\n }\n }\n if (this.pdfViewer.selectedItems.annotations.length === 1) {\n // eslint-disable-next-line\n var currentAnnotations = this.pdfViewer.selectedItems.annotations[0];\n // eslint-disable-next-line max-len\n if (currentAnnotations != null && (currentAnnotations.shapeAnnotationType === 'Stamp' || currentAnnotations.shapeAnnotationType === 'Image')) {\n var clonedObject = cloneObject(currentAnnotations);\n var redoClonedObject = cloneObject(currentAnnotations);\n redoClonedObject.opacity = opacityValue / 100;\n this.pdfViewer.nodePropertyChange(currentAnnotations, { opacity: opacityValue / 100 });\n this.pdfViewer.annotation.triggerAnnotationPropChange(currentAnnotations, false, false, false, true);\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.addAction(this.pdfViewer.selectedItems.annotations[0].pageIndex, null, this.pdfViewer.selectedItems.annotations[0], 'stampOpacity', '', clonedObject, redoClonedObject);\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.stampAnnotationModule.updateSessionStorage(this.pdfViewer.selectedItems.annotations[0], null, 'opacity');\n }\n else {\n if (isBlazor()) {\n this.pdfViewer.annotation.modifyOpacity(opacityValue, true);\n }\n else {\n if (args.name === 'changed') {\n if (args.value !== args.previousValue) {\n this.pdfViewer.annotation.modifyOpacity(args);\n }\n }\n }\n }\n }\n else {\n if (this.pdfViewer.annotation.shapeAnnotationModule) {\n switch (this.pdfViewer.annotation.shapeAnnotationModule.currentAnnotationMode) {\n case 'Line':\n this.pdfViewer.annotation.shapeAnnotationModule.lineOpacity = opacityValue / 100;\n break;\n case 'Arrow':\n this.pdfViewer.annotation.shapeAnnotationModule.arrowOpacity = opacityValue / 100;\n break;\n case 'Rectangle':\n this.pdfViewer.annotation.shapeAnnotationModule.rectangleOpacity = opacityValue / 100;\n break;\n case 'Circle':\n this.pdfViewer.annotation.shapeAnnotationModule.circleOpacity = opacityValue / 100;\n break;\n case 'Polygon':\n this.pdfViewer.annotation.shapeAnnotationModule.polygonOpacity = opacityValue / 100;\n break;\n }\n }\n // eslint-disable-next-line\n var annotationModule = this.pdfViewer.annotation;\n if (annotationModule && annotationModule.inkAnnotationModule) {\n this.pdfViewer.inkAnnotationSettings.opacity = opacityValue / 100;\n }\n if (this.pdfViewer.drawingObject) {\n this.pdfViewer.drawingObject.opacity = opacityValue / 100;\n if (this.pdfViewer.drawingObject.shapeAnnotationType === 'FreeText') {\n this.pdfViewer.freeTextSettings.opacity = opacityValue / 100;\n this.pdfViewer.annotationModule.freeTextAnnotationModule.updateTextProperties();\n }\n }\n }\n if (!isBlazor()) {\n this.updateOpacityIndicator();\n }\n };\n AnnotationToolbar.prototype.opacityDropDownBeforeOpen = function (args) {\n if (this.pdfViewer.annotationModule.textMarkupAnnotationModule) {\n if (this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation) {\n this.isCurrentAnnotationOpacitySet = true;\n // eslint-disable-next-line max-len\n this.opacitySlider.value = this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation.opacity * 100;\n }\n else {\n switch (this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAddMode) {\n case 'Highlight':\n this.opacitySlider.value = this.pdfViewer.annotationModule.textMarkupAnnotationModule.highlightOpacity * 100;\n break;\n case 'Underline':\n this.opacitySlider.value = this.pdfViewer.annotationModule.textMarkupAnnotationModule.underlineOpacity * 100;\n break;\n case 'Strikethrough':\n this.opacitySlider.value = this.pdfViewer.annotationModule.textMarkupAnnotationModule.strikethroughOpacity * 100;\n break;\n }\n }\n }\n if (this.pdfViewer.selectedItems.annotations.length === 1) {\n this.opacitySlider.value = this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.opacity * 100;\n }\n else {\n if (this.pdfViewer.annotation.shapeAnnotationModule) {\n switch (this.pdfViewer.annotation.shapeAnnotationModule.currentAnnotationMode) {\n case 'Line':\n this.opacitySlider.value = this.pdfViewer.annotation.shapeAnnotationModule.lineOpacity * 100;\n break;\n case 'Arrow':\n this.opacitySlider.value = this.pdfViewer.annotation.shapeAnnotationModule.arrowOpacity * 100;\n break;\n case 'Rectangle':\n this.opacitySlider.value = this.pdfViewer.annotation.shapeAnnotationModule.rectangleOpacity * 100;\n break;\n case 'Circle':\n this.opacitySlider.value = this.pdfViewer.annotation.shapeAnnotationModule.circleOpacity * 100;\n break;\n case 'Polygon':\n this.opacitySlider.value = this.pdfViewer.annotation.shapeAnnotationModule.polygonOpacity * 100;\n break;\n }\n }\n }\n this.updateOpacityIndicator();\n this.updateInkannotationItems();\n };\n AnnotationToolbar.prototype.thicknessDropDownBeforeOpen = function () {\n if (this.pdfViewer.selectedItems.annotations.length === 1) {\n this.thicknessSlider.value = this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.strokeWidth;\n }\n else {\n if (this.pdfViewer.annotation.shapeAnnotationModule) {\n switch (this.pdfViewer.annotation.shapeAnnotationModule.currentAnnotationMode) {\n case 'Line':\n this.thicknessSlider.value = this.pdfViewer.annotation.shapeAnnotationModule.lineThickness;\n break;\n case 'Arrow':\n this.thicknessSlider.value = this.pdfViewer.annotation.shapeAnnotationModule.arrowThickness;\n break;\n case 'Rectangle':\n this.thicknessSlider.value = this.pdfViewer.annotation.shapeAnnotationModule.rectangleThickness;\n break;\n case 'Circle':\n this.thicknessSlider.value = this.pdfViewer.annotation.shapeAnnotationModule.circleThickness;\n break;\n case 'Polygon':\n this.thicknessSlider.value = this.pdfViewer.annotation.shapeAnnotationModule.polygonThickness;\n break;\n }\n }\n }\n this.updateThicknessIndicator();\n this.updateInkannotationItems();\n };\n // eslint-disable-next-line\n AnnotationToolbar.prototype.thicknessDropDownOpen = function (args) {\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n args.element.parentElement.style.left = '0px';\n args.element.parentElement.style.top = (this.pdfViewerBase.viewerContainer.clientHeight) + 'px';\n }\n else {\n this.calculateToolbarPosition(args);\n }\n };\n AnnotationToolbar.prototype.calculateToolbarPosition = function (args) {\n if (args.element && args.element.parentElement) {\n var leftValue = parseFloat(args.element.parentElement.style.left);\n var width = args.element.parentElement.offsetWidth;\n if ((leftValue + width) < (this.pdfViewer.element.offsetWidth + 10)) {\n args.element.parentElement.style.left = (leftValue - width) + 'px';\n }\n }\n };\n // eslint-disable-next-line\n AnnotationToolbar.prototype.thicknessChangeInBlazor = function (args) {\n if (this.pdfViewer.selectedItems.annotations.length === 1) {\n this.pdfViewer.annotation.modifyThickness(args[0]);\n }\n else {\n this.ShapeThickness(args[0]);\n }\n };\n AnnotationToolbar.prototype.thicknessChange = function (args) {\n if (this.pdfViewer.selectedItems.annotations.length === 1) {\n if (args.name === 'changed') {\n this.pdfViewer.annotation.modifyThickness(args.value);\n if (!isBlazor()) {\n this.updateThicknessIndicator();\n }\n var annotationModule = this.pdfViewer.annotation;\n var selectedItems = this.pdfViewer.selectedItems.annotations[0];\n if (annotationModule && annotationModule.inkAnnotationModule && selectedItems && selectedItems.shapeAnnotationType === \"Ink\") {\n this.pdfViewer.inkAnnotationSettings.thickness = args.value;\n }\n }\n }\n else {\n this.ShapeThickness(args.value);\n }\n };\n // eslint-disable-next-line\n AnnotationToolbar.prototype.ShapeThickness = function (args) {\n if (this.pdfViewer.annotation.shapeAnnotationModule) {\n switch (this.pdfViewer.annotation.shapeAnnotationModule.currentAnnotationMode) {\n case 'Line':\n this.pdfViewer.annotation.shapeAnnotationModule.lineThickness = args;\n break;\n case 'Arrow':\n this.pdfViewer.annotation.shapeAnnotationModule.arrowThickness = args;\n break;\n case 'Rectangle':\n this.pdfViewer.annotation.shapeAnnotationModule.rectangleThickness = args;\n break;\n case 'Circle':\n this.pdfViewer.annotation.shapeAnnotationModule.circleThickness = args;\n break;\n case 'Polygon':\n this.pdfViewer.annotation.shapeAnnotationModule.polygonThickness = args;\n break;\n }\n // eslint-disable-next-line\n var annotationModule_1 = this.pdfViewer.annotation;\n if (annotationModule_1 && annotationModule_1.inkAnnotationModule) {\n this.pdfViewer.inkAnnotationSettings.thickness = args.value;\n }\n if (this.pdfViewer.drawingObject) {\n this.pdfViewer.drawingObject.thickness = args.value;\n }\n if (this.pdfViewer.drawingObject && this.pdfViewer.drawingObject.shapeAnnotationType === 'FreeText') {\n this.pdfViewer.freeTextSettings.borderWidth = args.value;\n this.pdfViewer.annotationModule.freeTextAnnotationModule.updateTextProperties();\n }\n }\n // eslint-disable-next-line\n var annotationModule = this.pdfViewer.annotation;\n if (annotationModule && annotationModule.inkAnnotationModule) {\n this.pdfViewer.inkAnnotationSettings.thickness = args;\n }\n if (this.pdfViewer.drawingObject) {\n this.pdfViewer.drawingObject.thickness = args;\n }\n if (this.pdfViewer.drawingObject && this.pdfViewer.drawingObject.shapeAnnotationType === 'FreeText') {\n this.pdfViewer.freeTextSettings.borderWidth = args;\n this.pdfViewer.annotationModule.freeTextAnnotationModule.updateTextProperties();\n }\n if (!isBlazor()) {\n this.updateThicknessIndicator();\n }\n };\n AnnotationToolbar.prototype.createDropDownButton = function (element, iconClass, target, tooltipText) {\n // eslint-disable-next-line max-len\n var dropDownButton = new DropDownButton({ iconCss: iconClass + ' e-pv-icon', target: target });\n if (this.pdfViewer.enableRtl) {\n dropDownButton.enableRtl = true;\n }\n dropDownButton.appendTo(element);\n this.primaryToolbar.createTooltip(element, tooltipText);\n return dropDownButton;\n };\n AnnotationToolbar.prototype.createShapeOptions = function (idString, isShape, isAlign, isTextProp) {\n var toolbarElement = createElement('div', { id: idString + '_target', className: 'e-pv-shapes-toolbar' });\n document.body.appendChild(toolbarElement);\n var toolbar;\n if (isAlign) {\n toolbar = new Tool({ items: this.textAlignmentToolbarItems(), overflowMode: 'MultiRow' }, toolbarElement);\n toolbar.isStringTemplate = true;\n this.afterAlignmentToolbarCreation();\n }\n else if (isTextProp) {\n toolbar = new Tool({ items: this.textPropertiesToolbarItems(), overflowMode: 'MultiRow' }, toolbarElement);\n toolbar.isStringTemplate = true;\n this.afterPropertiesToolbarCreation();\n }\n else {\n if (isShape) {\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n // eslint-disable-next-line max-len\n toolbar = new Tool({ items: this.createShapeToolbarItems(), overflowMode: 'MultiRow', clicked: this.onShapeToolbarClicked.bind(this) }, toolbarElement);\n toolbar.isStringTemplate = true;\n this.afterShapeToolbarCreation();\n }\n else {\n // eslint-disable-next-line max-len\n this.toolbarElement = createElement('div', { id: idString + '_target', className: 'e-pv-mobile-annotation-toolbar', styles: 'bottom: 0px; position: absolute; width: 100%; float: left' });\n this.pdfViewerBase.viewerMainContainer.appendChild(this.toolbarElement);\n // eslint-disable-next-line max-len\n toolbar = new Tool({ items: this.createShapeToolbarItemsForMobile(), overflowMode: 'Scrollable', clicked: this.onShapeToolbarClicked.bind(this) }, this.toolbarElement);\n toolbar.isStringTemplate = true;\n this.afterShapeToolbarCreationForMobile();\n }\n }\n else {\n // eslint-disable-next-line max-len\n toolbar = new Tool({ items: this.createCalibrateToolbarItems(), overflowMode: 'MultiRow', clicked: this.onCalibrateToolbarClicked.bind(this) }, toolbarElement);\n toolbar.isStringTemplate = true;\n this.afterCalibrateToolbarCreation();\n }\n }\n return toolbar;\n };\n // eslint:disable-next-line\n AnnotationToolbar.prototype.createPropertyToolbarForMobile = function (shapeType) {\n var _this = this;\n var colorTemplate = this.pdfViewer.toolbarModule.annotationToolbarModule.getTemplate('span', '_annotation_color', 'e-pv-annotation-color-container');\n // eslint-disable-next-line max-len\n var strokeTemplate = this.pdfViewer.toolbarModule.annotationToolbarModule.getTemplate('span', '_annotation_stroke', 'e-pv-annotation-stroke-container');\n var thicknessTemplate = this.getTemplate('span', '_annotation_thickness', 'e-pv-annotation-thickness-container');\n var opacityTemplate = this.getTemplate('span', '_annotation_opacity', 'e-pv-annotation-opacity-container');\n var fontFamilyTemplate = this.getTemplate('input', '_annotation_fontname', 'e-pv-annotation-fontname-container');\n var fontSizeTemplate = this.getTemplate('input', '_annotation_fontsize', 'e-pv-annotation-fontsize-container');\n var textColorTemplate = this.getTemplate('span', '_annotation_textcolor', 'e-pv-annotation-textcolor-container');\n var alignmentTemplate = this.getTemplate('span', '_annotation_textalign', 'e-pv-annotation-textalign-container');\n // eslint-disable-next-line max-len\n var textPropertiesTemplate = this.getTemplate('span', '_annotation_textproperties', 'e-pv-annotation-textprop-container');\n // eslint:disable-next-line\n var items = [];\n // eslint-disable-next-line max-len\n if (shapeType === 'Polygon' || shapeType === 'Rectangle' || shapeType === 'Ellipse' || shapeType === 'Line' || shapeType === 'LineWidthArrowHead' || shapeType === 'Distance' || shapeType === 'Perimeter' || shapeType === 'Radius' || shapeType === 'FreeText') {\n if (shapeType === 'FreeText') {\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-freetext-icon e-pv-icon', className: 'e-pv-annotation-freetextedit-container' });\n items.push({ type: 'Separator', align: 'Left' });\n items.push({ template: fontFamilyTemplate });\n items.push({ template: fontSizeTemplate });\n items.push({ template: textColorTemplate });\n items.push({ template: alignmentTemplate });\n items.push({ template: textPropertiesTemplate });\n }\n if (shapeType === 'Polygon') {\n if (this.pdfViewer.selectedItems.annotations[0].measureType === 'Area') {\n items.push({ prefixIcon: 'e-pv-calibrate-area-icon e-pv-icon' });\n items.push({ type: 'Separator', align: 'Left' });\n }\n else if (this.pdfViewer.selectedItems.annotations[0].measureType === 'Volume') {\n items.push({ prefixIcon: 'e-pv-calibrate-volume-icon e-pv-icon' });\n items.push({ type: 'Separator', align: 'Left' });\n }\n else {\n items.push({ prefixIcon: 'e-pv-shape-pentagon-icon e-pv-icon' });\n items.push({ type: 'Separator', align: 'Left' });\n }\n }\n else if (shapeType === 'Rectangle') {\n items.push({ prefixIcon: 'e-pv-shape-rectangle-icon e-pv-icon' });\n items.push({ type: 'Separator', align: 'Left' });\n }\n else if (shapeType === 'Ellipse') {\n items.push({ prefixIcon: 'e-pv-shape-circle-icon e-pv-icon' });\n items.push({ type: 'Separator', align: 'Left' });\n }\n else if (shapeType === 'Line') {\n if (this.pdfViewer.selectedItems.annotations[0].measureType === 'Perimeter') {\n items.push({ prefixIcon: 'e-pv-calibrate-perimeter-icon e-pv-icon' });\n items.push({ type: 'Separator', align: 'Left' });\n }\n else {\n items.push({ prefixIcon: 'e-pv-shape-line-icon e-pv-icon' });\n items.push({ type: 'Separator', align: 'Left' });\n }\n }\n else if (shapeType === 'LineWidthArrowHead') {\n items.push({ prefixIcon: 'e-pv-shape-arrow-icon e-pv-icon' });\n items.push({ type: 'Separator', align: 'Left' });\n }\n else if (shapeType === 'Distance') {\n items.push({ prefixIcon: 'e-pv-calibrate-distance-icon e-pv-icon' });\n items.push({ type: 'Separator', align: 'Left' });\n }\n else if (shapeType === 'Perimeter') {\n items.push({ prefixIcon: 'e-pv-calibrate-perimeter-icon e-pv-icon' });\n items.push({ type: 'Separator', align: 'Left' });\n }\n else if (shapeType === 'Radius') {\n items.push({ prefixIcon: 'e-pv-calibrate-radius-icon e-pv-icon' });\n items.push({ type: 'Separator', align: 'Left' });\n }\n items.push({ template: colorTemplate });\n items.push({ template: strokeTemplate });\n items.push({ template: thicknessTemplate });\n }\n else if (shapeType === 'Path' || shapeType === 'Ink' || shapeType === 'HandWrittenSignature' || shapeType === 'SignatureText') {\n if (shapeType === 'Path' || shapeType === 'Ink') {\n items.push({ prefixIcon: 'e-pv-inkannotation-icon e-pv-icon' });\n items.push({ type: 'Separator', align: 'Left' });\n }\n else if (shapeType === 'HandWrittenSignature' || shapeType === 'SignatureText') {\n items.push({ prefixIcon: 'e-pv-handwritten-icon e-pv-icon' });\n items.push({ type: 'Separator', align: 'Left' });\n }\n items.push({ template: strokeTemplate });\n items.push({ template: thicknessTemplate });\n }\n else if (shapeType === 'Underline' || shapeType === 'Highlight' || shapeType === 'Strikethrough') {\n if (shapeType === 'Highlight') {\n items.push({ prefixIcon: 'e-pv-highlight-icon e-pv-icon' });\n items.push({ type: 'Separator', align: 'Left' });\n }\n else if (shapeType === 'Underline') {\n items.push({ prefixIcon: 'e-pv-underline-icon e-pv-icon' });\n items.push({ type: 'Separator', align: 'Left' });\n }\n else if (shapeType === 'Strikethrough') {\n items.push({ prefixIcon: 'e-pv-strikethrough-icon e-pv-icon' });\n items.push({ type: 'Separator', align: 'Left' });\n }\n items.push({ template: colorTemplate });\n }\n else if (shapeType === 'Stamp' || shapeType === 'Image') {\n items.push({ prefixIcon: 'e-pv-stamp-icon e-pv-icon' });\n items.push({ type: 'Separator', align: 'Left' });\n }\n else if (shapeType === 'StickyNotes') {\n items.push({ prefixIcon: 'e-pv-comment-icon e-pv-icon' });\n items.push({ type: 'Separator', align: 'Left' });\n }\n items.push({ template: opacityTemplate });\n // eslint-disable-next-line max-len\n items.push({\n prefixIcon: 'e-pv-comment-panel-icon e-pv-icon', className: 'e-pv-comment-panel-icon-container', id: this.pdfViewer.element.id + '_annotation_commentPanel', align: 'Right', click: function (args) {\n _this.pdfViewer.annotationModule.showCommentsPanel();\n }\n });\n // eslint-disable-next-line max-len\n items.push({\n prefixIcon: 'e-pv-annotation-delete-icon e-pv-icon', className: 'e-pv-annotation-delete-container', id: this.pdfViewer.element.id + '_annotation_delete', align: 'Right', click: function (args) {\n _this.pdfViewer.annotationModule.deleteAnnotation();\n _this.propertyToolbar.destroy();\n _this.toolbarCreated = false;\n _this.createAnnotationToolbarForMobile();\n _this.adjustMobileViewer();\n }\n });\n return items;\n };\n // eslint:disable-next-line\n AnnotationToolbar.prototype.createStampToolbarItemsForMobile = function () {\n var opacityTemplate = this.getTemplate('span', '_annotation_opacity', 'e-pv-annotation-opacity-container');\n // eslint:disable-next-line\n var items = [];\n items.push({ prefixIcon: 'e-pv-backward-icon e-pv-icon', tooltipText: this.pdfViewer.localeObj.getConstant('Go Back'), id: this.pdfViewer.element.id + '_backward', click: this.goBackToToolbar.bind(this) });\n items.push({ type: 'Separator', align: 'Left' });\n items.push({ template: opacityTemplate });\n return items;\n };\n // eslint:disable-next-line\n AnnotationToolbar.prototype.createShapeToolbarItemsForMobile = function () {\n var colorTemplate = this.pdfViewer.toolbarModule.annotationToolbarModule.getTemplate('span', '_annotation_color', 'e-pv-annotation-color-container');\n // eslint-disable-next-line max-len\n var strokeTemplate = this.pdfViewer.toolbarModule.annotationToolbarModule.getTemplate('span', '_annotation_stroke', 'e-pv-annotation-stroke-container');\n var thicknessTemplate = this.getTemplate('span', '_annotation_thickness', 'e-pv-annotation-thickness-container');\n var opacityTemplate = this.getTemplate('span', '_annotation_opacity', 'e-pv-annotation-opacity-container');\n // eslint:disable-next-line\n var items = [];\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-backward-icon e-pv-icon', tooltipText: this.pdfViewer.localeObj.getConstant('Go Back'), id: this.pdfViewer.element.id + '_backward', click: this.goBackToToolbar.bind(this) });\n items.push({ prefixIcon: 'e-pv-shape-line-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_shape_line', text: this.pdfViewer.localeObj.getConstant('Line Shape'), align: 'Left' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-shape-arrow-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_shape_arrow', text: this.pdfViewer.localeObj.getConstant('Arrow Shape'), align: 'Left' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-shape-rectangle-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_shape_rectangle', text: this.pdfViewer.localeObj.getConstant('Rectangle Shape'), align: 'Left' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-shape-circle-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_shape_circle', text: this.pdfViewer.localeObj.getConstant('Circle Shape'), align: 'Left' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-shape-pentagon-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_shape_pentagon', text: this.pdfViewer.localeObj.getConstant('Pentagon Shape'), align: 'Left' });\n items.push({ type: 'Separator', align: 'Left' });\n items.push({ template: colorTemplate });\n items.push({ template: strokeTemplate });\n items.push({ template: thicknessTemplate });\n items.push({ template: opacityTemplate });\n return items;\n };\n // eslint:disable-next-line\n AnnotationToolbar.prototype.createCalibrateToolbarItemsForMobile = function () {\n var colorTemplate = this.pdfViewer.toolbarModule.annotationToolbarModule.getTemplate('span', '_annotation_color', 'e-pv-annotation-color-container');\n // eslint-disable-next-line max-len\n var strokeTemplate = this.pdfViewer.toolbarModule.annotationToolbarModule.getTemplate('span', '_annotation_stroke', 'e-pv-annotation-stroke-container');\n var thicknessTemplate = this.getTemplate('span', '_annotation_thickness', 'e-pv-annotation-thickness-container');\n var opacityTemplate = this.getTemplate('span', '_annotation_opacity', 'e-pv-annotation-opacity-container');\n // eslint:disable-next-line\n var items = [];\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-backward-icon e-pv-icon', tooltipText: this.pdfViewer.localeObj.getConstant('Go Back'), id: this.pdfViewer.element.id + '_backward', click: this.goBackToToolbar.bind(this) });\n items.push({ prefixIcon: 'e-pv-calibrate-distance-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_calibrate_distance', text: this.pdfViewer.localeObj.getConstant(''), align: 'Left' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-calibrate-perimeter-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_calibrate_perimeter', text: this.pdfViewer.localeObj.getConstant(''), align: 'Left' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-calibrate-area-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_calibrate_area', text: this.pdfViewer.localeObj.getConstant(''), align: 'Left' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-calibrate-radius-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_calibrate_radius', text: this.pdfViewer.localeObj.getConstant(''), align: 'Left' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-calibrate-volume-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_calibrate_volume', text: this.pdfViewer.localeObj.getConstant(''), align: 'Left' });\n items.push({ type: 'Separator', align: 'Left' });\n items.push({ template: colorTemplate });\n items.push({ template: strokeTemplate });\n items.push({ template: thicknessTemplate });\n items.push({ template: opacityTemplate });\n return items;\n };\n AnnotationToolbar.prototype.handleShapeTool = function (type) {\n if (!isBlazor() && Browser.isDevice) {\n // eslint:disable-next-line\n var selectedItems = document.querySelectorAll('.e-pv-select');\n for (var i = 0; i < selectedItems.length; i++) {\n if (selectedItems[i].id !== type && selectedItems[i].id !== this.pdfViewer.element.id + '_annotation') {\n selectedItems[i].classList.remove('e-pv-select');\n }\n }\n }\n };\n AnnotationToolbar.prototype.createPropDropDownButton = function (element, iconClass, target, tooltipText) {\n // eslint-disable-next-line max-len\n var dropDownButton = new DropDownButton({ iconCss: iconClass + ' e-pv-icon', target: target, cssClass: 'e-caret-hide' });\n if (this.pdfViewer.enableRtl) {\n dropDownButton.enableRtl = true;\n }\n dropDownButton.appendTo(element);\n this.primaryToolbar.createTooltip(element, tooltipText);\n return dropDownButton;\n };\n // eslint-disable-next-line\n AnnotationToolbar.prototype.textAlignmentToolbarItems = function () {\n // eslint-disable-next-line\n var items = [];\n items.push({ prefixIcon: 'e-pv-left-align-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_left_align', align: 'Left', value: 'Left', click: this.onClickTextAlignment.bind(this) });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-center-align-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_center_align', align: 'Left', value: 'Center', click: this.onClickTextAlignment.bind(this) });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-right-align-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_right_align', align: 'Left', value: 'Right', click: this.onClickTextAlignment.bind(this) });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-justfiy-align-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_justify_align', align: 'Left', value: 'Justify', click: this.onClickTextAlignment.bind(this) });\n // eslint-disable-next-line max-len\n return items;\n };\n AnnotationToolbar.prototype.afterAlignmentToolbarCreation = function () {\n // eslint-disable-next-line max-len\n this.alignLeftElement = this.primaryToolbar.addClassToolbarItem('_left_align', 'e-pv-left-align', this.pdfViewer.localeObj.getConstant('Align left'));\n this.alignRightElement = this.primaryToolbar.addClassToolbarItem('_right_align', 'e-pv-right-align', this.pdfViewer.localeObj.getConstant('Align right'));\n // eslint-disable-next-line max-len\n this.alignCenterElement = this.primaryToolbar.addClassToolbarItem('_center_align', 'e-pv-center-align', this.pdfViewer.localeObj.getConstant('Center'));\n this.alignJustifyElement = this.primaryToolbar.addClassToolbarItem('_justify_align', 'e-pv-justfiy-align', this.pdfViewer.localeObj.getConstant('Justify'));\n };\n AnnotationToolbar.prototype.afterPropertiesToolbarCreation = function () {\n // eslint-disable-next-line max-len\n this.boldElement = this.primaryToolbar.addClassToolbarItem('_bold', 'e-pv-bold', this.pdfViewer.localeObj.getConstant('Bold'));\n this.italicElement = this.primaryToolbar.addClassToolbarItem('_italic', 'e-pv-italic', this.pdfViewer.localeObj.getConstant('Italic'));\n // eslint-disable-next-line max-len\n this.fontStyleStrikethroughItem = this.primaryToolbar.addClassToolbarItem('_strikeout', 'e-pv-strikeout', this.pdfViewer.localeObj.getConstant('Strikethroughs'));\n this.fontStyleUnderlineItem = this.primaryToolbar.addClassToolbarItem('_underline_textinput', 'e-pv-underlinetext', this.pdfViewer.localeObj.getConstant('Underlines'));\n };\n AnnotationToolbar.prototype.createDropDownListForSize = function (fontSelectElement) {\n // eslint-disable-next-line max-len\n var proxy = this;\n var fontSize = ['8px', '9px', '10px', '11px', '12px', '14px', '16px', '18px', '20px', '22px', '24px', '26px', '28px', '36px', '48px', '72px', '96px'];\n if (!this.pdfViewer.enableRtl) {\n this.fontSize = new ComboBox({\n dataSource: fontSize,\n cssClass: 'e-pv-prop-dropdown',\n allowCustom: true,\n showClearButton: false,\n width: '80px',\n popupWidth: '100px'\n });\n }\n else {\n this.fontSize = new ComboBox({\n dataSource: fontSize,\n cssClass: 'e-pv-prop-dropdown-rtl',\n allowCustom: true,\n showClearButton: false,\n width: '80px',\n popupWidth: '100px',\n enableRtl: true\n });\n }\n this.fontSize.value = '16px';\n this.fontSize.appendTo(fontSelectElement);\n this.primaryToolbar.createTooltip(fontSelectElement, this.pdfViewer.localeObj.getConstant('Font size'));\n this.fontSize.addEventListener('change', function (args) {\n var isUserInteracted = args.isInteracted;\n proxy.onFontSizeChange(proxy, isUserInteracted);\n });\n };\n AnnotationToolbar.prototype.createDropDownListForFamily = function (fontSelectElement) {\n var _this = this;\n var fontStyle = [{ FontName: 'Helvetica' },\n { FontName: 'Courier' }, { FontName: 'Symbol' }, { FontName: 'Times New Roman' }];\n if (!this.pdfViewer.enableRtl) {\n this.fontFamily = new ComboBox({\n dataSource: fontStyle,\n query: new Query().select(['FontName']),\n fields: { text: 'FontName', value: 'FontName' },\n cssClass: 'e-pv-prop-dropdown',\n itemTemplate: '${FontName}',\n allowCustom: true,\n showClearButton: false,\n width: '110px',\n popupWidth: '190px'\n });\n }\n else {\n this.fontFamily = new ComboBox({\n dataSource: fontStyle,\n query: new Query().select(['FontName']),\n fields: { text: 'FontName', value: 'FontName' },\n cssClass: 'e-pv-prop-dropdown-rtl',\n itemTemplate: '${FontName}',\n allowCustom: true,\n showClearButton: false,\n width: '110px',\n popupWidth: '190px',\n enableRtl: true\n });\n }\n this.fontFamily.isStringTemplate = true;\n this.fontFamily.value = 'Helvetica';\n this.fontFamily.appendTo(fontSelectElement);\n this.primaryToolbar.createTooltip(fontSelectElement, this.pdfViewer.localeObj.getConstant('Font family'));\n this.fontFamily.addEventListener('change', function () {\n _this.onFontFamilyChange(_this);\n });\n };\n // eslint-disable-next-line\n AnnotationToolbar.prototype.textPropertiesToolbarItems = function () {\n // eslint-disable-next-line\n var items = [];\n items.push({ prefixIcon: 'e-pv-bold-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_bold', align: 'Left', value: 'bold', click: this.onClickTextProperties.bind(this) });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-italic-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_italic', align: 'Left', value: 'italic', click: this.onClickTextProperties.bind(this) });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-strikeout-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_strikeout', align: 'Left', value: 'strikeout', click: this.onClickTextProperties.bind(this) });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-underlinetext-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_underline_textinput', align: 'Left', value: 'underline', click: this.onClickTextProperties.bind(this) });\n return items;\n };\n // eslint-disable-next-line\n AnnotationToolbar.prototype.createShapeToolbarItems = function () {\n // eslint-disable-next-line\n var items = [];\n items.push({ prefixIcon: 'e-pv-shape-line-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_shape_line', text: this.pdfViewer.localeObj.getConstant('Line Shape'), align: 'Left' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-shape-arrow-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_shape_arrow', text: this.pdfViewer.localeObj.getConstant('Arrow Shape'), align: 'Left' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-shape-rectangle-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_shape_rectangle', text: this.pdfViewer.localeObj.getConstant('Rectangle Shape'), align: 'Left' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-shape-circle-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_shape_circle', text: this.pdfViewer.localeObj.getConstant('Circle Shape'), align: 'Left' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-shape-pentagon-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_shape_pentagon', text: this.pdfViewer.localeObj.getConstant('Pentagon Shape'), align: 'Left' });\n return items;\n };\n // eslint-disable-next-line\n AnnotationToolbar.prototype.createCalibrateToolbarItems = function () {\n // eslint-disable-next-line\n var items = [];\n items.push({ prefixIcon: 'e-pv-calibrate-distance-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_calibrate_distance', text: this.pdfViewer.localeObj.getConstant(''), align: 'Left' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-calibrate-perimeter-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_calibrate_perimeter', text: this.pdfViewer.localeObj.getConstant(''), align: 'Left' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-calibrate-area-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_calibrate_area', text: this.pdfViewer.localeObj.getConstant(''), align: 'Left' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-calibrate-radius-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_calibrate_radius', text: this.pdfViewer.localeObj.getConstant(''), align: 'Left' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-calibrate-volume-icon e-pv-icon', cssClass: '', id: this.pdfViewer.element.id + '_calibrate_volume', text: this.pdfViewer.localeObj.getConstant(''), align: 'Left' });\n return items;\n };\n AnnotationToolbar.prototype.onCalibrateToolbarClicked = function (args) {\n var elementId = this.pdfViewer.element.id;\n var measureModule = this.pdfViewer.annotation.measureAnnotationModule;\n this.deselectAllItems();\n this.resetFreeTextAnnot();\n if (Browser.isDevice && !isBlazor()) {\n // tslint:disable-next-line\n var element = args.originalEvent.target;\n this.pdfViewer.toolbarModule.selectItem(element.parentElement);\n }\n switch (args.originalEvent.target.id) {\n case elementId + '_calibrate_distance':\n case elementId + '_calibrate_distanceIcon':\n measureModule.setAnnotationType('Distance');\n this.onShapeDrawSelection(false);\n this.updateColorInIcon(this.colorDropDownElement, measureModule.distanceFillColor);\n this.updateColorInIcon(this.strokeDropDownElement, measureModule.distanceStrokeColor);\n this.handleShapeTool(elementId + '_calibrate_distance');\n break;\n case elementId + '_calibrate_perimeter':\n case elementId + '_calibrate_perimeterIcon':\n measureModule.setAnnotationType('Perimeter');\n this.onShapeDrawSelection(false);\n this.updateColorInIcon(this.colorDropDownElement, measureModule.perimeterFillColor);\n this.updateColorInIcon(this.strokeDropDownElement, measureModule.perimeterStrokeColor);\n this.handleShapeTool(elementId + '_calibrate_perimeter');\n break;\n case elementId + '_calibrate_area':\n case elementId + '_calibrate_areaIcon':\n measureModule.setAnnotationType('Area');\n this.onShapeDrawSelection(false);\n this.updateColorInIcon(this.colorDropDownElement, measureModule.areaFillColor);\n this.updateColorInIcon(this.strokeDropDownElement, measureModule.areaStrokeColor);\n this.handleShapeTool(elementId + '_calibrate_area');\n break;\n case elementId + '_calibrate_radius':\n case elementId + '_calibrate_radiusIcon':\n measureModule.setAnnotationType('Radius');\n this.onShapeDrawSelection(false);\n this.updateColorInIcon(this.colorDropDownElement, measureModule.radiusFillColor);\n this.updateColorInIcon(this.strokeDropDownElement, measureModule.radiusStrokeColor);\n this.handleShapeTool(elementId + '_calibrate_radius');\n break;\n case elementId + '_calibrate_volume':\n case elementId + '_calibrate_volumeIcon':\n measureModule.setAnnotationType('Volume');\n this.onShapeDrawSelection(false);\n this.updateColorInIcon(this.colorDropDownElement, measureModule.volumeFillColor);\n this.updateColorInIcon(this.strokeDropDownElement, measureModule.volumeStrokeColor);\n this.handleShapeTool(elementId + '_calibrate_volume');\n break;\n }\n };\n AnnotationToolbar.prototype.onShapeDrawSelection = function (isShape) {\n // eslint-disable-next-line\n var annotation = this.pdfViewer.selectedItems.annotations[0];\n if (!Browser.isDevice) {\n this.updateInteractionTools();\n this.enableAnnotationPropertiesTools(true);\n if (isShape) {\n this.shapeDropDown.toggle();\n }\n else {\n this.calibrateDropDown.toggle();\n }\n }\n this.pdfViewer.annotation.triggerAnnotationUnselectEvent();\n };\n AnnotationToolbar.prototype.afterCalibrateToolbarCreationForMobile = function () {\n // eslint-disable-next-line max-len\n this.primaryToolbar.addClassToolbarItem('_calibrate_distance', 'e-pv-calibrate-distance', this.pdfViewer.localeObj.getConstant('Calibrate Distance'));\n this.primaryToolbar.addClassToolbarItem('_calibrate_perimeter', 'e-pv-calibrate-perimeter', this.pdfViewer.localeObj.getConstant('Calibrate Perimeter'));\n // eslint-disable-next-line max-len\n this.primaryToolbar.addClassToolbarItem('_calibrate_area', 'e-pv-calibrate-area', this.pdfViewer.localeObj.getConstant('Calibrate Area'));\n this.primaryToolbar.addClassToolbarItem('_calibrate_radius', 'e-pv-calibrate-radius', this.pdfViewer.localeObj.getConstant('Calibrate Radius'));\n // eslint-disable-next-line max-len\n this.primaryToolbar.addClassToolbarItem('_calibrate_volume', 'e-pv-calibrate-volume', this.pdfViewer.localeObj.getConstant('Calibrate Volume'));\n };\n AnnotationToolbar.prototype.afterShapeToolbarCreationForMobile = function () {\n // eslint-disable-next-line max-len\n this.primaryToolbar.addClassToolbarItem('_annotation_color', 'e-pv-annotation-color-container', this.pdfViewer.localeObj.getConstant('Change Color'));\n // eslint-disable-next-line max-len\n this.primaryToolbar.addClassToolbarItem('_annotation_stroke', 'e-pv-annotation-stroke-container', this.pdfViewer.localeObj.getConstant('Change Stroke Color'));\n // eslint-disable-next-line max-len\n this.primaryToolbar.addClassToolbarItem('_annotation_thickness', 'e-pv-annotation-thickness-container', this.pdfViewer.localeObj.getConstant('Chnage Border Thickness'));\n // eslint-disable-next-line max-len\n this.primaryToolbar.addClassToolbarItem('_annotation_opacity', 'e-annotation-opacity-container', this.pdfViewer.localeObj.getConstant('Change Opacity'));\n this.primaryToolbar.addClassToolbarItem('_shape_line', 'e-pv-shape-line', this.pdfViewer.localeObj.getConstant('Add line'));\n this.primaryToolbar.addClassToolbarItem('_shape_arrow', 'e-pv-shape-arrow', this.pdfViewer.localeObj.getConstant('Add arrow'));\n // eslint-disable-next-line max-len\n this.primaryToolbar.addClassToolbarItem('_shape_rectangle', 'e-pv-shape-rectangle', this.pdfViewer.localeObj.getConstant('Add rectangle'));\n // eslint-disable-next-line max-len\n this.primaryToolbar.addClassToolbarItem('_shape_circle', 'e-pv-shape-circle', this.pdfViewer.localeObj.getConstant('Add circle'));\n this.primaryToolbar.addClassToolbarItem('_shape_pentagon', 'e-pv-shape-pentagon', this.pdfViewer.localeObj.getConstant('Add polygon'));\n };\n AnnotationToolbar.prototype.afterShapeToolbarCreation = function () {\n this.lineElement = this.primaryToolbar.addClassToolbarItem('_shape_line', 'e-pv-shape-line', this.pdfViewer.localeObj.getConstant('Add line'));\n this.arrowElement = this.primaryToolbar.addClassToolbarItem('_shape_arrow', 'e-pv-shape-arrow', this.pdfViewer.localeObj.getConstant('Add arrow'));\n // eslint-disable-next-line max-len\n this.rectangleElement = this.primaryToolbar.addClassToolbarItem('_shape_rectangle', 'e-pv-shape-rectangle', this.pdfViewer.localeObj.getConstant('Add rectangle'));\n // eslint-disable-next-line max-len\n this.circleElement = this.primaryToolbar.addClassToolbarItem('_shape_circle', 'e-pv-shape-circle', this.pdfViewer.localeObj.getConstant('Add circle'));\n this.polygonElement = this.primaryToolbar.addClassToolbarItem('_shape_pentagon', 'e-pv-shape-pentagon', this.pdfViewer.localeObj.getConstant('Add polygon'));\n };\n AnnotationToolbar.prototype.afterCalibrateToolbarCreation = function () {\n // eslint-disable-next-line max-len\n this.calibrateDistance = this.primaryToolbar.addClassToolbarItem('_calibrate_distance', 'e-pv-calibrate-distance', this.pdfViewer.localeObj.getConstant('Calibrate Distance'));\n this.calibratePerimeter = this.primaryToolbar.addClassToolbarItem('_calibrate_perimeter', 'e-pv-calibrate-perimeter', this.pdfViewer.localeObj.getConstant('Calibrate Perimeter'));\n // eslint-disable-next-line max-len\n this.calibrateArea = this.primaryToolbar.addClassToolbarItem('_calibrate_area', 'e-pv-calibrate-area', this.pdfViewer.localeObj.getConstant('Calibrate Area'));\n this.calibrateRadius = this.primaryToolbar.addClassToolbarItem('_calibrate_radius', 'e-pv-calibrate-radius', this.pdfViewer.localeObj.getConstant('Calibrate Radius'));\n // eslint-disable-next-line max-len\n this.calibrateVolume = this.primaryToolbar.addClassToolbarItem('_calibrate_volume', 'e-pv-calibrate-volume', this.pdfViewer.localeObj.getConstant('Calibrate Volume'));\n };\n AnnotationToolbar.prototype.afterMobileToolbarCreation = function () {\n // eslint-disable-next-line max-len\n this.highlightItem = this.primaryToolbar.addClassToolbarItem('_highlight', 'e-pv-highlight', this.pdfViewer.localeObj.getConstant('Highlight'));\n this.underlineItem = this.primaryToolbar.addClassToolbarItem('_underline', 'e-pv-underline', this.pdfViewer.localeObj.getConstant('Underline'));\n // eslint-disable-next-line max-len\n this.strikethroughItem = this.primaryToolbar.addClassToolbarItem('_strikethrough', 'e-pv-strikethrough', this.pdfViewer.localeObj.getConstant('Strikethrough'));\n // eslint-disable-next-line max-len\n this.shapesItem = this.primaryToolbar.addClassToolbarItem('_annotation_shapes', 'e-pv-annotation-shapes', this.pdfViewer.localeObj.getConstant('Add Shapes'));\n this.calibrateItem = this.primaryToolbar.addClassToolbarItem('_annotation_calibrate', 'e-pv-annotation-calibrate', this.pdfViewer.localeObj.getConstant('Calibrate'));\n // eslint-disable-next-line max-len\n this.freeTextEditItem = this.primaryToolbar.addClassToolbarItem('_annotation_freeTextEdit', 'e-pv-annotation-freeTextEdit', this.pdfViewer.localeObj.getConstant('Free Text'));\n // eslint-disable-next-line max-len\n this.commentItem = this.primaryToolbar.addClassToolbarItem('_comment', 'e-pv-comment', this.pdfViewer.localeObj.getConstant('Add Comments'));\n // eslint-disable-next-line max-len\n this.commentItem = this.primaryToolbar.addClassToolbarItem('_annotation_commentPanel', 'e-pv-annotation-comment-panel', this.pdfViewer.localeObj.getConstant('Comment Panel'));\n // eslint-disable-next-line max-len\n this.inkAnnotationItem = this.primaryToolbar.addClassToolbarItem('_annotation_ink', 'e-pv-annotation-ink', this.pdfViewer.localeObj.getConstant('Draw Ink'));\n this.selectAnnotationDeleteItem(false);\n this.enableCommentPanelTool(this.pdfViewer.enableCommentPanel);\n };\n AnnotationToolbar.prototype.createColorPicker = function (idString) {\n var inputElement;\n var existingInput = document.getElementById(idString + '_target');\n if (existingInput) {\n inputElement = existingInput;\n }\n else {\n inputElement = createElement('input', { id: idString + '_target' });\n }\n document.body.appendChild(inputElement);\n var colorPicker = new ColorPicker({\n inline: true, mode: 'Palette', cssClass: 'e-show-value', enableOpacity: false,\n value: '#000000', showButtons: false, modeSwitcher: false\n });\n if (this.pdfViewer.enableRtl) {\n colorPicker.enableRtl = true;\n }\n colorPicker.appendTo(inputElement);\n return colorPicker;\n };\n // eslint-disable-next-line\n AnnotationToolbar.prototype.onColorPickerChange = function (args) {\n // eslint-disable-next-line\n var currentColor;\n if (!isBlazor()) {\n currentColor = (args.currentValue.hex === '') ? '#ffffff00' : args.currentValue.hex;\n }\n else {\n currentColor = args[0];\n }\n if (this.pdfViewer.annotationModule.textMarkupAnnotationModule) {\n if (this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation) {\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.modifyColorProperty(currentColor);\n }\n else {\n switch (this.pdfViewer.annotationModule.textMarkupAnnotationModule.currentTextMarkupAddMode) {\n case 'Highlight':\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.highlightColor = currentColor;\n break;\n case 'Underline':\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.underlineColor = currentColor;\n break;\n case 'Strikethrough':\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.strikethroughColor = currentColor;\n break;\n }\n }\n }\n if (this.pdfViewer.selectedItems.annotations.length === 1) {\n if (isBlazor()) {\n if (args[0] !== args[1]) {\n this.pdfViewer.annotation.modifyFillColor(currentColor);\n }\n }\n else {\n if (args.currentValue.hex !== args.previousValue.hex) {\n this.pdfViewer.annotation.modifyFillColor(currentColor);\n }\n }\n }\n else {\n if (this.pdfViewer.annotation.shapeAnnotationModule) {\n switch (this.pdfViewer.annotation.shapeAnnotationModule.currentAnnotationMode) {\n case 'Line':\n this.pdfViewer.annotation.shapeAnnotationModule.lineFillColor = currentColor;\n break;\n case 'Arrow':\n this.pdfViewer.annotation.shapeAnnotationModule.arrowFillColor = currentColor;\n break;\n case 'Rectangle':\n this.pdfViewer.annotation.shapeAnnotationModule.rectangleFillColor = currentColor;\n break;\n case 'Circle':\n this.pdfViewer.annotation.shapeAnnotationModule.circleFillColor = currentColor;\n break;\n case 'Polygon':\n this.pdfViewer.annotation.shapeAnnotationModule.polygonFillColor = currentColor;\n break;\n }\n }\n if (this.pdfViewer.drawingObject) {\n this.pdfViewer.drawingObject.fillColor = currentColor;\n if (this.pdfViewer.drawingObject.shapeAnnotationType === 'FreeText') {\n this.pdfViewer.freeTextSettings.fillColor = currentColor;\n this.pdfViewer.annotationModule.freeTextAnnotationModule.updateTextProperties();\n }\n }\n }\n if (isBlazor()) {\n this.colorDropDownElementInBlazor = this.pdfViewer.element.querySelector('.e-pv-annotation-color-container');\n this.updateColorInIcon(this.colorDropDownElementInBlazor, currentColor);\n }\n else {\n this.updateColorInIcon(this.colorDropDownElement, currentColor);\n this.colorDropDown.toggle();\n }\n };\n // eslint-disable-next-line\n AnnotationToolbar.prototype.onStrokePickerChange = function (args) {\n // eslint-disable-next-line\n var currentColor;\n if (!isBlazor()) {\n currentColor = (args.currentValue.hex === '') ? '#ffffff00' : args.currentValue.hex;\n }\n else {\n currentColor = args[0];\n }\n if (this.pdfViewer.selectedItems.annotations.length === 1) {\n if (isBlazor()) {\n if (args[0] !== args[1]) {\n this.pdfViewer.annotation.modifyStrokeColor(currentColor);\n }\n }\n else {\n if (args.currentValue.hex !== args.previousValue.hex) {\n this.pdfViewer.annotation.modifyStrokeColor(currentColor);\n }\n }\n }\n else {\n if (this.pdfViewer.annotation.shapeAnnotationModule) {\n switch (this.pdfViewer.annotation.shapeAnnotationModule.currentAnnotationMode) {\n case 'Line':\n this.pdfViewer.annotation.shapeAnnotationModule.lineStrokeColor = currentColor;\n break;\n case 'Arrow':\n this.pdfViewer.annotation.shapeAnnotationModule.arrowStrokeColor = currentColor;\n break;\n case 'Rectangle':\n this.pdfViewer.annotation.shapeAnnotationModule.rectangleStrokeColor = currentColor;\n break;\n case 'Circle':\n this.pdfViewer.annotation.shapeAnnotationModule.circleStrokeColor = currentColor;\n break;\n case 'Polygon':\n this.pdfViewer.annotation.shapeAnnotationModule.polygonStrokeColor = currentColor;\n break;\n }\n }\n // eslint-disable-next-line\n var annotationModule = this.pdfViewer.annotation;\n if (annotationModule && annotationModule.inkAnnotationModule) {\n this.pdfViewer.inkAnnotationSettings.strokeColor = currentColor;\n }\n if (this.pdfViewer.drawingObject) {\n this.pdfViewer.drawingObject.strokeColor = currentColor;\n }\n if (this.pdfViewer.drawingObject && this.pdfViewer.drawingObject.shapeAnnotationType === 'FreeText') {\n this.pdfViewer.freeTextSettings.borderColor = currentColor;\n this.pdfViewer.annotationModule.freeTextAnnotationModule.updateTextProperties();\n }\n }\n if (isBlazor()) {\n this.strokeDropDownElementInBlazor = this.pdfViewer.element.querySelector('.e-pv-annotation-stroke-container');\n this.updateColorInIcon(this.strokeDropDownElementInBlazor, currentColor);\n }\n else {\n this.updateColorInIcon(this.strokeDropDownElement, currentColor);\n this.strokeDropDown.toggle();\n }\n };\n /**\n * @param element\n * @param color\n * @param element\n * @param color\n * @private\n */\n AnnotationToolbar.prototype.updateColorInIcon = function (element, color) {\n if (isBlazor()) {\n if (element) {\n element.children[0].style.borderBottomColor = color;\n }\n }\n else {\n if (element) {\n element.childNodes[0] ? element.childNodes[0].style.borderBottomColor = color : element.childNodes[0];\n }\n }\n };\n /**\n * @param currentOption\n * @private\n */\n AnnotationToolbar.prototype.updateTextPropertySelection = function (currentOption) {\n if (currentOption === 'bold') {\n document.getElementById(this.pdfViewer.element.id + '_bold').classList.toggle('textprop-option-active');\n }\n else if (currentOption === 'italic') {\n document.getElementById(this.pdfViewer.element.id + '_italic').classList.toggle('textprop-option-active');\n }\n else if (currentOption === 'underline') {\n document.getElementById(this.pdfViewer.element.id + '_underline_textinput').classList.toggle('textprop-option-active');\n document.getElementById(this.pdfViewer.element.id + '_strikeout').classList.remove('textprop-option-active');\n }\n else if (currentOption === 'strikeout') {\n document.getElementById(this.pdfViewer.element.id + '_strikeout').classList.toggle('textprop-option-active');\n document.getElementById(this.pdfViewer.element.id + '_underline_textinput').classList.remove('textprop-option-active');\n }\n };\n /**\n * @param family\n * @private\n */\n AnnotationToolbar.prototype.updateFontFamilyInIcon = function (family) {\n this.fontFamily.value = family;\n };\n /**\n * @param align\n * @private\n */\n AnnotationToolbar.prototype.updateTextAlignInIcon = function (align) {\n var className = 'e-btn-icon e-pv-left-align-icon e-pv-icon';\n var leftAlign = document.getElementById(this.pdfViewer.element.id + '_left_align');\n var rightAlign = document.getElementById(this.pdfViewer.element.id + '_right_align');\n var centerAlign = document.getElementById(this.pdfViewer.element.id + '_center_align');\n var justifyAlign = document.getElementById(this.pdfViewer.element.id + '_justify_align');\n if (!isBlazor()) {\n leftAlign.classList.remove('textprop-option-active');\n rightAlign.classList.remove('textprop-option-active');\n centerAlign.classList.remove('textprop-option-active');\n justifyAlign.classList.remove('textprop-option-active');\n }\n if (align === 'Left') {\n leftAlign.classList.add('textprop-option-active');\n }\n else if (align === 'Right') {\n className = 'e-btn-icon e-pv-right-align-icon e-pv-icon';\n rightAlign.classList.add('textprop-option-active');\n }\n else if (align === 'Center') {\n className = 'e-btn-icon e-pv-center-align-icon e-pv-icon';\n centerAlign.classList.add('textprop-option-active');\n }\n else if (align === 'Justify') {\n className = 'e-btn-icon e-pv-justfiy-align-icon e-pv-icon';\n justifyAlign.classList.add('textprop-option-active');\n }\n document.getElementById(this.pdfViewer.element.id + '_annotation_textalign').children[0].className = className;\n };\n /**\n * @param size\n * @private\n */\n AnnotationToolbar.prototype.updateFontSizeInIcon = function (size) {\n this.fontSize.value = size + 'px';\n };\n AnnotationToolbar.prototype.updateOpacityIndicator = function () {\n // eslint-disable-next-line\n this.opacityIndicator.textContent = parseInt(Math.round(this.opacitySlider.value).toString()) + '%';\n };\n AnnotationToolbar.prototype.updateThicknessIndicator = function () {\n this.thicknessIndicator.textContent = this.thicknessSlider.value + ' pt';\n };\n AnnotationToolbar.prototype.createSlider = function (idString) {\n var outerContainer = createElement('div', { className: 'e-pv-annotation-opacity-popup-container' });\n document.body.appendChild(outerContainer);\n var label = createElement('span', { id: idString + '_label', className: 'e-pv-annotation-opacity-label' });\n label.textContent = this.pdfViewer.localeObj.getConstant('Opacity');\n var sliderElement = createElement('div', { id: idString + '_slider' });\n this.opacitySlider = new Slider({ type: 'MinRange', cssClass: 'e-pv-annotation-opacity-slider', max: 100, min: 0 });\n // eslint-disable-next-line max-len\n this.opacityIndicator = createElement('div', { id: idString + '_opacity_indicator', className: 'e-pv-annotation-opacity-indicator' });\n this.opacityIndicator.textContent = '100%';\n if (!this.pdfViewer.enableRtl) {\n outerContainer.appendChild(label);\n outerContainer.appendChild(sliderElement);\n this.opacitySlider.appendTo(sliderElement);\n this.opacitySlider.element.parentElement.classList.add('e-pv-annotation-opacity-slider-container');\n outerContainer.appendChild(this.opacityIndicator);\n }\n else {\n outerContainer.appendChild(this.opacityIndicator);\n outerContainer.appendChild(sliderElement);\n this.opacitySlider.enableRtl = true;\n this.opacitySlider.appendTo(sliderElement);\n this.opacitySlider.element.parentElement.classList.add('e-pv-annotation-opacity-slider-container');\n outerContainer.appendChild(label);\n }\n return outerContainer;\n };\n AnnotationToolbar.prototype.createThicknessSlider = function (idString) {\n var outerContainer = createElement('div', { className: 'e-pv-annotation-thickness-popup-container' });\n document.body.appendChild(outerContainer);\n var label = createElement('span', { id: idString + '_label', className: 'e-pv-annotation-thickness-label' });\n label.textContent = this.pdfViewer.localeObj.getConstant('Line Thickness');\n var sliderElement = createElement('div', { id: idString + '_slider' });\n this.thicknessSlider = new Slider({ type: 'MinRange', cssClass: 'e-pv-annotation-thickness-slider', max: 12, min: 0 });\n // eslint-disable-next-line max-len\n this.thicknessIndicator = createElement('div', { id: idString + '_thickness_indicator', className: 'e-pv-annotation-thickness-indicator' });\n this.thicknessIndicator.textContent = '0 pt';\n if (!this.pdfViewer.enableRtl) {\n outerContainer.appendChild(label);\n outerContainer.appendChild(sliderElement);\n this.thicknessSlider.appendTo(sliderElement);\n outerContainer.appendChild(this.thicknessIndicator);\n }\n else {\n outerContainer.appendChild(this.thicknessIndicator);\n outerContainer.appendChild(sliderElement);\n this.thicknessSlider.enableRtl = true;\n this.thicknessSlider.appendTo(sliderElement);\n outerContainer.appendChild(label);\n }\n this.thicknessSlider.element.parentElement.classList.add('e-pv-annotation-thickness-slider-container');\n return outerContainer;\n };\n AnnotationToolbar.prototype.afterToolbarCreation = function () {\n // eslint-disable-next-line max-len\n this.highlightItem = this.primaryToolbar.addClassToolbarItem('_highlight', 'e-pv-highlight', this.pdfViewer.localeObj.getConstant('Highlight'));\n this.underlineItem = this.primaryToolbar.addClassToolbarItem('_underline', 'e-pv-underline', this.pdfViewer.localeObj.getConstant('Underline'));\n // eslint-disable-next-line max-len\n this.strikethroughItem = this.primaryToolbar.addClassToolbarItem('_strikethrough', 'e-pv-strikethrough', this.pdfViewer.localeObj.getConstant('Strikethrough'));\n this.deleteItem = this.primaryToolbar.addClassToolbarItem('_annotation_delete', 'e-pv-annotation-delete', this.pdfViewer.localeObj.getConstant('Delete'));\n // eslint-disable-next-line max-len\n this.freeTextEditItem = this.primaryToolbar.addClassToolbarItem('_annotation_freeTextEdit', 'e-pv-annotation-freeTextEdit', this.pdfViewer.localeObj.getConstant('Free Text'));\n // eslint-disable-next-line max-len\n this.inkAnnotationItem = this.primaryToolbar.addClassToolbarItem('_annotation_ink', 'e-pv-annotation-ink', this.pdfViewer.localeObj.getConstant('Draw Ink'));\n // eslint-disable-next-line max-len\n this.commentItem = this.primaryToolbar.addClassToolbarItem('_annotation_commentPanel', 'e-pv-annotation-comment-panel', this.pdfViewer.localeObj.getConstant('Comment Panel'));\n this.closeItem = this.primaryToolbar.addClassToolbarItem('_annotation_close', 'e-pv-annotation-tools-close', null);\n this.selectAnnotationDeleteItem(false);\n this.enableTextMarkupAnnotationPropertiesTools(false);\n this.enableCommentPanelTool(this.pdfViewer.enableCommentPanel);\n };\n AnnotationToolbar.prototype.onToolbarClicked = function (args) {\n // eslint-disable-next-line\n var annotation = this.pdfViewer.selectedItems.annotations[0];\n if (args.originalEvent.target.id) {\n this.pdfViewer.toolbarModule.updateStampItems();\n }\n this.pdfViewer.toolbarModule.deSelectCommentAnnotation();\n switch (args.originalEvent.target.id) {\n case this.pdfViewer.element.id + '_highlight':\n case this.pdfViewer.element.id + '_highlightIcon':\n this.pdfViewer.tool = '';\n if (!Browser.isDevice) {\n this.pdfViewer.tool = '';\n this.resetFreeTextAnnot();\n this.handleHighlight();\n }\n else {\n this.pdfViewer.annotationModule.setAnnotationMode('Highlight');\n this.textMarkupForMobile(args);\n }\n this.pdfViewer.annotation.triggerAnnotationUnselectEvent();\n break;\n case this.pdfViewer.element.id + '_underline':\n case this.pdfViewer.element.id + '_underlineIcon':\n this.pdfViewer.tool = '';\n if (!Browser.isDevice) {\n this.pdfViewer.tool = '';\n this.resetFreeTextAnnot();\n this.handleUnderline();\n }\n else {\n this.pdfViewer.annotationModule.setAnnotationMode('Underline');\n this.textMarkupForMobile(args);\n }\n this.pdfViewer.annotation.triggerAnnotationUnselectEvent();\n break;\n case this.pdfViewer.element.id + '_strikethrough':\n case this.pdfViewer.element.id + '_strikethroughIcon':\n this.pdfViewer.tool = '';\n if (!Browser.isDevice) {\n this.pdfViewer.tool = '';\n this.resetFreeTextAnnot();\n this.handleStrikethrough();\n }\n else {\n this.pdfViewer.annotationModule.setAnnotationMode('Strikethrough');\n this.textMarkupForMobile(args);\n }\n this.pdfViewer.annotation.triggerAnnotationUnselectEvent();\n break;\n case this.pdfViewer.element.id + '_annotation_delete':\n case this.pdfViewer.element.id + '_annotation_deleteIcon':\n this.pdfViewer.annotationModule.deleteAnnotation();\n this.resetFreeTextAnnot();\n break;\n case this.pdfViewer.element.id + '_annotation_commentPanel':\n case this.pdfViewer.element.id + '_annotation_commentPanelIcon':\n this.inkAnnotationSelected = false;\n var commentPanel = document.getElementById(this.pdfViewer.element.id + '_commantPanel');\n if (this.pdfViewer.annotation && this.pdfViewer.annotation.textMarkupAnnotationModule) {\n this.pdfViewer.annotation.textMarkupAnnotationModule.showHideDropletDiv(true);\n }\n if (commentPanel.style.display === 'block') {\n this.pdfViewerBase.navigationPane.closeCommentPanelContainer();\n }\n else {\n this.pdfViewer.annotationModule.showCommentsPanel();\n }\n break;\n case this.pdfViewer.element.id + '_annotation_close':\n case this.pdfViewer.element.id + '_annotation_closeIcon':\n this.inkAnnotationSelected = false;\n var commentsPanel = document.getElementById(this.pdfViewer.element.id + '_commantPanel');\n if (commentsPanel.style.display === 'block') {\n this.pdfViewerBase.navigationPane.closeCommentPanelContainer();\n }\n this.showAnnotationToolbar(this.primaryToolbar.annotationItem);\n break;\n case this.pdfViewer.element.id + '_annotation_freeTextEdit':\n case this.pdfViewer.element.id + '_annotation_freeTextEditIcon':\n if (!Browser.isDevice) {\n this.resetFreeTextAnnot();\n this.handleFreeTextEditor();\n }\n else {\n this.pdfViewer.annotationModule.setAnnotationMode('FreeText');\n this.FreeTextForMobile();\n }\n break;\n case this.pdfViewer.element.id + '_annotation_signature':\n case this.pdfViewer.element.id + '_annotation_signatureIcon':\n this.inkAnnotationSelected = false;\n this.updateSignatureCount();\n break;\n case this.pdfViewer.element.id + '_annotation_ink':\n case this.pdfViewer.element.id + '_annotation_inkIcon':\n if (annotation) {\n this.pdfViewer.annotation.triggerAnnotationUnselectEvent();\n }\n this.pdfViewer.clearSelection(this.pdfViewer.currentPageNumber - 1);\n if (this.pdfViewer.annotationModule.inkAnnotationModule) {\n // eslint-disable-next-line\n var currentPageNumber = this.pdfViewer.annotationModule.inkAnnotationModule.currentPageNumber;\n if (currentPageNumber && currentPageNumber !== '') {\n // eslint-disable-next-line\n this.pdfViewer.annotationModule.inkAnnotationModule.drawInkAnnotation(parseInt(currentPageNumber));\n this.primaryToolbar.deSelectItem(this.inkAnnotationItem);\n }\n }\n if (!this.inkAnnotationSelected) {\n this.deselectAllItems();\n this.drawInkAnnotation();\n }\n else {\n this.inkAnnotationSelected = false;\n }\n break;\n case this.pdfViewer.element.id + '_annotation_shapesIcon':\n case this.pdfViewer.element.id + '_annotation_shapes':\n if (Browser.isDevice) {\n this.shapeToolMobile(args);\n }\n break;\n case this.pdfViewer.element.id + '_annotation_calibrateIcon':\n case this.pdfViewer.element.id + '_annotation_calibrate':\n if (Browser.isDevice) {\n this.calibrateToolMobile(args);\n }\n break;\n case this.pdfViewer.element.id + '_commentIcon':\n case this.pdfViewer.element.id + '_comment':\n this.pdfViewerBase.isAddComment = true;\n this.pdfViewerBase.isCommentIconAdded = true;\n var commentsButton = document.getElementById(this.pdfViewer.element.id + '_comment');\n commentsButton.classList.add('e-pv-select');\n this.pdfViewer.toolbarModule.addComments(args);\n break;\n }\n };\n AnnotationToolbar.prototype.addInkAnnotation = function () {\n this.pdfViewer.clearSelection(this.pdfViewer.currentPageNumber - 1);\n if (this.pdfViewer.annotationModule.inkAnnotationModule) {\n // eslint-disable-next-line\n var currentPageNumber = this.pdfViewer.annotationModule.inkAnnotationModule.currentPageNumber;\n if (currentPageNumber && currentPageNumber !== '') {\n // eslint-disable-next-line\n this.pdfViewer.annotationModule.inkAnnotationModule.drawInkAnnotation(parseInt(currentPageNumber));\n if (!isBlazor()) {\n this.primaryToolbar.deSelectItem(this.inkAnnotationItem);\n }\n else {\n this.primaryToolbar.deSelectItem(this.InkAnnotationElement);\n this.pdfViewerBase.focusViewerContainer();\n }\n }\n }\n if (!this.inkAnnotationSelected) {\n this.deselectAllItemsInBlazor();\n this.drawInkAnnotation();\n }\n else {\n this.inkAnnotationSelected = false;\n }\n };\n /**\n * @private\n */\n AnnotationToolbar.prototype.deselectInkAnnotation = function () {\n if (!isBlazor()) {\n this.primaryToolbar.deSelectItem(this.inkAnnotationItem);\n }\n else {\n this.primaryToolbar.deSelectItem(this.InkAnnotationElement);\n this.pdfViewerBase.focusViewerContainer();\n }\n };\n AnnotationToolbar.prototype.drawInkAnnotation = function () {\n this.inkAnnotationSelected = true;\n if (!isBlazor()) {\n this.primaryToolbar.selectItem(this.inkAnnotationItem);\n }\n else {\n this.primaryToolbar.selectItem(this.InkAnnotationElement);\n }\n this.enableSignaturePropertiesTools(true);\n this.pdfViewerBase.isToolbarInkClicked = true;\n this.pdfViewer.annotationModule.inkAnnotationModule.drawInk();\n };\n AnnotationToolbar.prototype.resetFreeTextAnnot = function () {\n if (this.pdfViewer.annotationModule && this.pdfViewer.annotationModule.freeTextAnnotationModule) {\n this.pdfViewer.annotation.freeTextAnnotationModule.isNewFreeTextAnnot = false;\n this.pdfViewer.annotation.freeTextAnnotationModule.isNewAddedAnnot = false;\n if (!Browser.isDevice) {\n if (this.freeTextEditItem && !isBlazor()) {\n this.primaryToolbar.deSelectItem(this.freeTextEditItem);\n }\n else if (isBlazor()) {\n this.primaryToolbar.deSelectItem(this.FreeTextElement);\n }\n this.enableFreeTextAnnotationPropertiesTools(false);\n }\n }\n if (this.pdfViewer.annotationModule && this.pdfViewer.annotationModule.inkAnnotationModule) { // eslint-disable-next-line\n var currentPageNumber = this.pdfViewer.annotationModule.inkAnnotationModule.currentPageNumber;\n if (currentPageNumber && currentPageNumber !== '') {\n // eslint-disable-next-line\n this.pdfViewer.annotationModule.inkAnnotationModule.drawInkAnnotation(parseInt(currentPageNumber));\n if (!isBlazor()) {\n this.primaryToolbar.deSelectItem(this.inkAnnotationItem);\n }\n else {\n this.primaryToolbar.deSelectItem(this.InkAnnotationElement);\n }\n }\n }\n this.inkAnnotationSelected = false;\n };\n AnnotationToolbar.prototype.updateInkannotationItems = function () {\n if (this.pdfViewer.annotationModule && this.pdfViewer.annotationModule.inkAnnotationModule && this.inkAnnotationSelected) {\n // eslint-disable-next-line\n var currentPageNumber = this.pdfViewer.annotationModule.inkAnnotationModule.currentPageNumber;\n if (currentPageNumber && currentPageNumber !== '') {\n // eslint-disable-next-line\n this.pdfViewer.annotationModule.inkAnnotationModule.drawInkAnnotation(parseInt(currentPageNumber));\n this.pdfViewerBase.isToolbarInkClicked = true;\n this.pdfViewer.tool = 'Ink';\n this.pdfViewer.clearSelection(currentPageNumber);\n }\n }\n };\n AnnotationToolbar.prototype.showSignaturepanel = function () {\n this.pdfViewerBase.isToolbarSignClicked = true;\n this.pdfViewerBase.signatureModule.showSignatureDialog(true);\n };\n AnnotationToolbar.prototype.handleFreeTextEditor = function () {\n // eslint-disable-next-line\n var annotation = this.pdfViewer.selectedItems.annotations[0];\n this.enableFreeTextAnnotationPropertiesTools(true);\n if (annotation) {\n this.pdfViewer.fireAnnotationUnSelect(annotation.annotName, annotation.pageIndex, annotation);\n }\n this.pdfViewer.clearSelection(this.pdfViewer.currentPageNumber - 1);\n if (this.pdfViewer.annotationModule.textMarkupAnnotationModule) {\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.isTextMarkupAnnotationMode = false;\n }\n this.isStrikethroughEnabled = false;\n this.isHighlightEnabled = false;\n this.isUnderlineEnabled = false;\n var freeTextAnnotationModule = this.pdfViewer.annotation.freeTextAnnotationModule;\n freeTextAnnotationModule.setAnnotationType('FreeText');\n freeTextAnnotationModule.isNewFreeTextAnnot = true;\n freeTextAnnotationModule.isNewAddedAnnot = true;\n this.updateInteractionTools();\n this.primaryToolbar.deSelectItem(this.highlightItem);\n this.primaryToolbar.deSelectItem(this.underlineItem);\n this.primaryToolbar.deSelectItem(this.strikethroughItem);\n this.primaryToolbar.selectItem(this.freeTextEditItem);\n this.updateColorInIcon(this.colorDropDownElement, this.pdfViewer.annotationModule.freeTextAnnotationModule.fillColor);\n this.updateColorInIcon(this.strokeDropDownElement, this.pdfViewer.annotationModule.freeTextAnnotationModule.borderColor);\n this.updateColorInIcon(this.fontColorElement, this.pdfViewer.annotationModule.freeTextAnnotationModule.fontColor);\n this.updateFontFamilyInIcon(this.pdfViewer.annotationModule.freeTextAnnotationModule.fontFamily);\n this.updateFontSizeInIcon(this.pdfViewer.annotationModule.freeTextAnnotationModule.fontSize);\n this.updateTextAlignInIcon(this.pdfViewer.annotationModule.freeTextAnnotationModule.textAlign);\n this.updateFontFamily();\n };\n AnnotationToolbar.prototype.updateFontFamily = function () {\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.freeTextAnnotationModule.isBold ? this.updateFontFamilyIcon('_bold', true) : this.updateFontFamilyIcon('_bold', false);\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.freeTextAnnotationModule.isItalic ? this.updateFontFamilyIcon('_italic', true) : this.updateFontFamilyIcon('_italic', false);\n if (this.pdfViewer.annotationModule.freeTextAnnotationModule.isUnderline) {\n this.updateFontFamilyIcon('_underline_textinput', true);\n this.updateFontFamilyIcon('_strikeout', false);\n }\n else {\n this.updateFontFamilyIcon('_underline_textinput', false);\n }\n if (this.pdfViewer.annotationModule.freeTextAnnotationModule.isStrikethrough) {\n this.updateFontFamilyIcon('_strikeout', true);\n this.updateFontFamilyIcon('_underline_textinput', false);\n }\n else {\n this.updateFontFamilyIcon('_strikeout', false);\n }\n };\n AnnotationToolbar.prototype.updateFontFamilyIcon = function (fontFamily, isActive) {\n var fontFamilyElement = document.getElementById(this.pdfViewer.element.id + fontFamily);\n isActive ? fontFamilyElement.classList.add('textprop-option-active') : fontFamilyElement.classList.remove('textprop-option-active');\n };\n /**\n * @param element\n * @param isInitialLoading\n * @param element\n * @param isInitialLoading\n * @private\n */\n AnnotationToolbar.prototype.showAnnotationToolbar = function (element, isInitialLoading) {\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n if (!this.isToolbarHidden) {\n // eslint-disable-next-line\n var annotationModule = this.pdfViewer.annotationModule;\n if (element) {\n this.primaryToolbar.deSelectItem(element);\n }\n else {\n if (this.pdfViewer.enableToolbar) {\n this.primaryToolbar.deSelectItem(this.primaryToolbar.annotationItem);\n }\n }\n this.adjustViewer(false);\n // eslint-disable-next-line max-len\n if (annotationModule && annotationModule.textMarkupAnnotationModule && annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation) {\n this.enablePropertiesTool(annotationModule);\n }\n else {\n this.deselectAllItems();\n }\n this.toolbarElement.style.display = 'none';\n if (!isInitialLoading) {\n this.pdfViewer.isAnnotationToolbarVisible = false;\n }\n if (this.pdfViewerBase.isPanMode) {\n this.primaryToolbar.updateInteractionTools(false);\n }\n else {\n this.primaryToolbar.updateInteractionTools(true);\n }\n }\n else {\n var toolBarInitialStatus = void 0;\n if (this.toolbarElement) {\n toolBarInitialStatus = this.toolbarElement.style.display;\n this.toolbarElement.style.display = 'block';\n }\n if (!isInitialLoading) {\n this.pdfViewer.isAnnotationToolbarVisible = true;\n }\n if (element) {\n this.primaryToolbar.selectItem(element);\n }\n else {\n if (this.pdfViewer.enableToolbar) {\n this.primaryToolbar.selectItem(this.primaryToolbar.annotationItem);\n }\n }\n if (toolBarInitialStatus === 'none') {\n this.adjustViewer(true);\n }\n }\n // eslint-disable-next-line max-len\n if (this.pdfViewer.magnification && this.pdfViewer.magnification.fitType === 'fitToPage') {\n this.pdfViewer.magnification.fitToPage();\n }\n this.enableAnnotationAddTools(true);\n this.isToolbarHidden = !this.isToolbarHidden;\n }\n };\n // eslint-disable-next-line\n AnnotationToolbar.prototype.enablePropertiesTool = function (annotationModule) {\n this.isHighlightEnabled = false;\n this.isUnderlineEnabled = false;\n this.isStrikethroughEnabled = false;\n if (this.pdfViewerBase.isTextMarkupAnnotationModule()) {\n annotationModule.textMarkupAnnotationModule.isTextMarkupAnnotationMode = false;\n }\n this.primaryToolbar.deSelectItem(this.highlightItem);\n this.primaryToolbar.deSelectItem(this.underlineItem);\n this.primaryToolbar.deSelectItem(this.strikethroughItem);\n this.enableTextMarkupAnnotationPropertiesTools(true);\n // eslint-disable-next-line max-len\n this.updateColorInIcon(this.colorDropDownElement, annotationModule.textMarkupAnnotationModule.currentTextMarkupAnnotation.color);\n this.selectAnnotationDeleteItem(true);\n };\n /**\n * @private\n */\n AnnotationToolbar.prototype.applyAnnotationToolbarSettings = function () {\n // eslint-disable-next-line\n var annotationToolbarItems = this.pdfViewer.toolbarSettings.annotationToolbarItems;\n if (annotationToolbarItems) {\n if (annotationToolbarItems.indexOf('HighlightTool') !== -1) {\n this.showHighlightTool(true, 0, 0);\n }\n else {\n this.showHighlightTool(false, 0, 0);\n }\n if (annotationToolbarItems.indexOf('UnderlineTool') !== -1) {\n this.showUnderlineTool(true, 1, 1);\n }\n else {\n this.showUnderlineTool(false, 1, 1);\n }\n if (annotationToolbarItems.indexOf('StrikethroughTool') !== -1) {\n this.showStrikethroughTool(true, 2, 2);\n }\n else {\n this.showStrikethroughTool(false, 2, 2);\n }\n if (annotationToolbarItems.indexOf('ShapeTool') !== -1) {\n this.showShapeAnnotationTool(true, 4, 4);\n }\n else {\n this.showShapeAnnotationTool(false, 4, 4);\n }\n if (annotationToolbarItems.indexOf('CalibrateTool') !== -1) {\n this.showCalibrateAnnotationTool(true, 6, 6);\n }\n else {\n this.showCalibrateAnnotationTool(false, 6, 6);\n }\n if (annotationToolbarItems.indexOf('ColorEditTool') !== -1) {\n this.showColorEditTool(true, 22, 22);\n }\n else {\n this.showColorEditTool(false, 22, 22);\n }\n if (annotationToolbarItems.indexOf('StrokeColorEditTool') !== -1) {\n this.showStrokeColorEditTool(true, 23, 23);\n }\n else {\n this.showStrokeColorEditTool(false, 23, 23);\n }\n if (annotationToolbarItems.indexOf('ThicknessEditTool') !== -1) {\n this.showThicknessEditTool(true, 24, 24);\n }\n else {\n this.showThicknessEditTool(false, 24, 24);\n }\n if (annotationToolbarItems.indexOf('OpacityEditTool') !== -1) {\n this.showOpacityEditTool(true, 25, 25);\n }\n else {\n this.showOpacityEditTool(false, 25, 25);\n }\n if (annotationToolbarItems.indexOf('AnnotationDeleteTool') !== -1) {\n this.showAnnotationDeleteTool(true, 27, 27);\n }\n else {\n this.showAnnotationDeleteTool(false, 27, 27);\n }\n if (annotationToolbarItems.indexOf('StampAnnotationTool') !== -1) {\n this.showStampAnnotationTool(true, 10, 10);\n }\n else {\n this.showStampAnnotationTool(false, 10, 10);\n }\n if (annotationToolbarItems.indexOf('HandWrittenSignatureTool') !== -1) {\n this.showSignatureTool(true, 12, 12);\n }\n else {\n this.showSignatureTool(false, 12, 12);\n }\n if (annotationToolbarItems.indexOf('FreeTextAnnotationTool') !== -1) {\n this.showFreeTextAnnotationTool(true, 8, 8);\n }\n else {\n this.showFreeTextAnnotationTool(false, 8, 8);\n }\n if (annotationToolbarItems.indexOf('FontFamilyAnnotationTool') !== -1) {\n this.showFontFamilyAnnotationTool(true, 16, 16);\n }\n else {\n this.showFontFamilyAnnotationTool(false, 16, 16);\n }\n if (annotationToolbarItems.indexOf('FontSizeAnnotationTool') !== -1) {\n this.showFontSizeAnnotationTool(true, 17, 17);\n }\n else {\n this.showFontSizeAnnotationTool(false, 17, 17);\n }\n if (annotationToolbarItems.indexOf('FontStylesAnnotationTool') !== -1) {\n this.showFontStylesAnnotationTool(true, 20, 20);\n }\n else {\n this.showFontStylesAnnotationTool(false, 20, 20);\n }\n if (annotationToolbarItems.indexOf('FontAlignAnnotationTool') !== -1) {\n this.showFontAlignAnnotationTool(true, 18, 18);\n }\n else {\n this.showFontAlignAnnotationTool(false, 18, 18);\n }\n if (annotationToolbarItems.indexOf('FontColorAnnotationTool') !== -1) {\n this.showFontColorAnnotationTool(true, 19, 19);\n }\n else {\n this.showFontColorAnnotationTool(false, 19, 19);\n }\n if (annotationToolbarItems.indexOf('CommentPanelTool') !== -1) {\n this.showCommentPanelTool(true, 28, 28);\n }\n else {\n this.showCommentPanelTool(false, 28, 28);\n }\n this.showInkAnnotationTool();\n this.showSeparator();\n }\n };\n /**\n * @private\n */\n AnnotationToolbar.prototype.applyMobileAnnotationToolbarSettings = function () {\n // eslint-disable-next-line\n var annotationToolbarItems = this.pdfViewer.toolbarSettings.annotationToolbarItems;\n if (annotationToolbarItems) {\n if (annotationToolbarItems.indexOf('HighlightTool') !== -1) {\n this.showHighlightTool(true, 2, 2);\n }\n else {\n this.showHighlightTool(false, 2, 2);\n }\n if (annotationToolbarItems.indexOf('UnderlineTool') !== -1) {\n this.showUnderlineTool(true, 3, 3);\n }\n else {\n this.showUnderlineTool(false, 3, 3);\n }\n if (annotationToolbarItems.indexOf('StrikethroughTool') !== -1) {\n this.showStrikethroughTool(true, 4, 4);\n }\n else {\n this.showStrikethroughTool(false, 4, 4);\n }\n if (annotationToolbarItems.indexOf('ShapeTool') !== -1) {\n this.showShapeAnnotationTool(true, 6, 6);\n }\n else {\n this.showShapeAnnotationTool(false, 6, 6);\n }\n if (annotationToolbarItems.indexOf('CalibrateTool') !== -1) {\n this.showCalibrateAnnotationTool(true, 8, 8);\n }\n else {\n this.showCalibrateAnnotationTool(false, 8, 8);\n }\n var toolbarItems = this.pdfViewer.toolbarSettings.toolbarItems;\n if (toolbarItems && toolbarItems.indexOf('CommentTool') !== -1) {\n this.showStickyNoteToolInMobile(true);\n }\n else {\n this.showStickyNoteToolInMobile(false);\n }\n if (annotationToolbarItems.indexOf('StampAnnotationTool') !== -1) {\n this.showStampAnnotationTool(true, 12, 12);\n }\n else {\n this.showStampAnnotationTool(false, 12, 12);\n }\n if (annotationToolbarItems.indexOf('HandWrittenSignatureTool') !== -1) {\n this.showSignatureTool(true, 14, 14);\n }\n else {\n this.showSignatureTool(false, 14, 14);\n }\n if (annotationToolbarItems.indexOf('FreeTextAnnotationTool') !== -1) {\n this.showFreeTextAnnotationTool(true, 10, 10);\n }\n else {\n this.showFreeTextAnnotationTool(false, 10, 10);\n }\n if (annotationToolbarItems.indexOf('CommentPanelTool') !== -1) {\n this.showCommentPanelTool(true, 18, 18);\n }\n else {\n this.showCommentPanelTool(false, 18, 18);\n }\n if (annotationToolbarItems.indexOf('InkAnnotationTool') !== -1) {\n this.showInkTool(true, 16, 16);\n }\n else {\n this.showInkTool(false, 16, 16);\n }\n this.showSeparatorInMobile();\n }\n };\n AnnotationToolbar.prototype.showStickyNoteToolInMobile = function (isShow) {\n this.isCommentBtnVisible = isShow;\n this.applyHideToToolbar(isShow, 0, 0);\n };\n AnnotationToolbar.prototype.showSeparatorInMobile = function () {\n if (!this.isCommentBtnVisible) {\n this.applyHideToToolbar(false, 1, 1);\n }\n if ((!this.isHighlightBtnVisible && !this.isUnderlineBtnVisible && !this.isStrikethroughBtnVisible)) {\n this.applyHideToToolbar(false, 5, 5);\n }\n if (!this.isShapeBtnVisible) {\n this.applyHideToToolbar(false, 7, 7);\n }\n if (!this.isCalibrateBtnVisible) {\n this.applyHideToToolbar(false, 9, 9);\n }\n if (!this.isFreeTextBtnVisible) {\n this.applyHideToToolbar(false, 11, 11);\n }\n if (!this.isStampBtnVisible) {\n this.applyHideToToolbar(false, 13, 13);\n }\n if (!this.isSignatureBtnVisible) {\n this.applyHideToToolbar(false, 15, 15);\n }\n if (!this.isInkBtnVisible) {\n this.applyHideToToolbar(false, 17, 17);\n }\n };\n AnnotationToolbar.prototype.showInkAnnotationTool = function () {\n if (this.pdfViewer.toolbarSettings.annotationToolbarItems.indexOf('InkAnnotationTool') !== -1) {\n this.showInkTool(true, 14, 14);\n }\n else {\n this.showInkTool(false, 14, 14);\n }\n };\n AnnotationToolbar.prototype.showSeparator = function () {\n if ((!this.isHighlightBtnVisible && !this.isUnderlineBtnVisible && !this.isStrikethroughBtnVisible)) {\n this.applyHideToToolbar(false, 3, 3);\n }\n if (!this.isShapeBtnVisible) {\n this.applyHideToToolbar(false, 5, 5);\n }\n if (!this.isCalibrateBtnVisible) {\n this.applyHideToToolbar(false, 7, 7);\n }\n if (!this.isFreeTextBtnVisible) {\n this.applyHideToToolbar(false, 9, 9);\n }\n if (!this.isStampBtnVisible) {\n this.applyHideToToolbar(false, 11, 11);\n }\n if (!this.isSignatureBtnVisible) {\n this.applyHideToToolbar(false, 13, 13);\n }\n if (!this.isInkBtnVisible) {\n this.applyHideToToolbar(false, 15, 15);\n }\n // eslint-disable-next-line max-len\n if (!this.isFontFamilyToolVisible && !this.isFontSizeToolVisible && !this.isFontColorToolVisible && !this.isFontAlignToolVisible && !this.isFontStylesToolVisible) {\n this.applyHideToToolbar(false, 21, 21);\n }\n // eslint-disable-next-line max-len\n if ((!this.isColorToolVisible && !this.isStrokeColorToolVisible && !this.isThicknessToolVisible && !this.isOpacityToolVisible) || !this.isDeleteAnnotationToolVisible) {\n this.applyHideToToolbar(false, 26, 26);\n }\n };\n AnnotationToolbar.prototype.showHighlightTool = function (isShow, startIndex, endIndex) {\n this.isHighlightBtnVisible = isShow;\n this.applyHideToToolbar(isShow, startIndex, endIndex);\n };\n AnnotationToolbar.prototype.showUnderlineTool = function (isShow, startIndex, endIndex) {\n this.isUnderlineBtnVisible = isShow;\n this.applyHideToToolbar(isShow, startIndex, endIndex);\n };\n AnnotationToolbar.prototype.showStrikethroughTool = function (isShow, startIndex, endIndex) {\n this.isStrikethroughBtnVisible = isShow;\n this.applyHideToToolbar(isShow, startIndex, endIndex);\n };\n AnnotationToolbar.prototype.showShapeAnnotationTool = function (isShow, startIndex, endIndex) {\n this.isShapeBtnVisible = isShow;\n this.applyHideToToolbar(isShow, startIndex, endIndex);\n };\n AnnotationToolbar.prototype.showCalibrateAnnotationTool = function (isShow, startIndex, endIndex) {\n this.isCalibrateBtnVisible = isShow;\n this.applyHideToToolbar(isShow, startIndex, endIndex);\n };\n AnnotationToolbar.prototype.showFreeTextAnnotationTool = function (isShow, startIndex, endIndex) {\n this.isFreeTextBtnVisible = isShow;\n this.applyHideToToolbar(isShow, startIndex, endIndex);\n };\n AnnotationToolbar.prototype.showStampAnnotationTool = function (isShow, startIndex, endIndex) {\n this.isStampBtnVisible = isShow;\n this.applyHideToToolbar(isShow, startIndex, endIndex);\n };\n AnnotationToolbar.prototype.showSignatureTool = function (isShow, startIndex, endIndex) {\n this.isSignatureBtnVisible = isShow;\n this.applyHideToToolbar(isShow, startIndex, endIndex);\n };\n AnnotationToolbar.prototype.showInkTool = function (isShow, startIndex, endIndex) {\n this.isInkBtnVisible = isShow;\n this.applyHideToToolbar(isShow, startIndex, endIndex);\n };\n AnnotationToolbar.prototype.showFontFamilyAnnotationTool = function (isShow, startIndex, endIndex) {\n this.isFontFamilyToolVisible = isShow;\n this.applyHideToToolbar(isShow, startIndex, endIndex);\n };\n AnnotationToolbar.prototype.showFontSizeAnnotationTool = function (isShow, startIndex, endIndex) {\n this.isFontSizeToolVisible = isShow;\n this.applyHideToToolbar(isShow, startIndex, endIndex);\n };\n AnnotationToolbar.prototype.showFontAlignAnnotationTool = function (isShow, startIndex, endIndex) {\n this.isFontAlignToolVisible = isShow;\n this.applyHideToToolbar(isShow, startIndex, endIndex);\n };\n AnnotationToolbar.prototype.showFontColorAnnotationTool = function (isShow, startIndex, endIndex) {\n this.isFontColorToolVisible = isShow;\n this.applyHideToToolbar(isShow, startIndex, endIndex);\n };\n AnnotationToolbar.prototype.showFontStylesAnnotationTool = function (isShow, startIndex, endIndex) {\n this.isFontStylesToolVisible = isShow;\n this.applyHideToToolbar(isShow, startIndex, endIndex);\n };\n AnnotationToolbar.prototype.showColorEditTool = function (isShow, startIndex, endIndex) {\n this.isColorToolVisible = isShow;\n this.applyHideToToolbar(isShow, startIndex, endIndex);\n };\n AnnotationToolbar.prototype.showStrokeColorEditTool = function (isShow, startIndex, endIndex) {\n this.isStrokeColorToolVisible = isShow;\n this.applyHideToToolbar(isShow, startIndex, endIndex);\n };\n AnnotationToolbar.prototype.showThicknessEditTool = function (isShow, startIndex, endIndex) {\n this.isThicknessToolVisible = isShow;\n this.applyHideToToolbar(isShow, startIndex, endIndex);\n };\n AnnotationToolbar.prototype.showOpacityEditTool = function (isShow, startIndex, endIndex) {\n this.isOpacityToolVisible = isShow;\n this.applyHideToToolbar(isShow, startIndex, endIndex);\n };\n AnnotationToolbar.prototype.showAnnotationDeleteTool = function (isShow, startIndex, endIndex) {\n this.isDeleteAnnotationToolVisible = isShow;\n this.applyHideToToolbar(isShow, startIndex, endIndex);\n };\n AnnotationToolbar.prototype.showCommentPanelTool = function (isShow, startIndex, endIndex) {\n this.isCommentPanelBtnVisible = isShow;\n this.applyHideToToolbar(isShow, startIndex, endIndex);\n };\n AnnotationToolbar.prototype.applyHideToToolbar = function (show, startIndex, endIndex) {\n var isHide = !show;\n for (var index = startIndex; index <= endIndex; index++) {\n var toolbar_1 = void 0;\n var propertyToolbarElement = (this.propertyToolbar && this.propertyToolbar.element) ? this.propertyToolbar.element : null;\n var toolbarElement = (this.toolbar && this.toolbar.element) ? this.toolbar.element : null;\n if (toolbarElement && toolbarElement.children && toolbarElement.children.length > 0) {\n toolbar_1 = this.toolbar;\n }\n else if (Browser.isDevice && propertyToolbarElement && propertyToolbarElement.children && propertyToolbarElement.children.length > 0) {\n toolbar_1 = this.propertyToolbar;\n }\n if (toolbar_1 && toolbar_1.items[index]) {\n var className = toolbar_1.items[index].cssClass;\n if (className && className !== '') {\n // Querying the toolbar item\n var element = toolbar_1.element.querySelector('.' + className);\n if (element) {\n this.toolbar.hideItem(element, isHide);\n }\n }\n else {\n toolbar_1.hideItem(index, isHide);\n }\n }\n }\n };\n /**\n * @param isAdjust\n * @private\n */\n AnnotationToolbar.prototype.adjustViewer = function (isAdjust) {\n var splitterElement;\n var toolbarContainer;\n var annotationToolbarHeight;\n if (isBlazor()) {\n splitterElement = this.pdfViewer.element.querySelector('.e-pv-sidebar-toolbar-splitter');\n toolbarContainer = this.pdfViewer.element.querySelector('.e-pv-toolbar');\n var annotationToolbarContainer = this.pdfViewer.element.querySelector('.e-pv-annotation-toolbar');\n annotationToolbarHeight = this.getToolbarHeight(annotationToolbarContainer);\n }\n else {\n splitterElement = this.pdfViewerBase.getElement('_sideBarToolbarSplitter');\n toolbarContainer = this.pdfViewerBase.getElement('_toolbarContainer');\n annotationToolbarHeight = this.getToolbarHeight(this.toolbarElement);\n }\n var toolbarHeight = this.getToolbarHeight(toolbarContainer);\n var sideBarToolbar = this.pdfViewerBase.navigationPane.sideBarToolbar;\n var sideBarContentContainer = this.pdfViewerBase.navigationPane.sideBarContentContainer;\n var commentsContainer = this.pdfViewerBase.navigationPane.commentPanelContainer;\n var commentPanelResizer = this.pdfViewerBase.navigationPane.commentPanelResizer;\n var newToolbarHeight = '';\n if (isAdjust) {\n if (this.pdfViewer.enableToolbar) {\n sideBarToolbar.style.top = (toolbarHeight + annotationToolbarHeight) + 'px';\n sideBarContentContainer.style.top = (toolbarHeight + annotationToolbarHeight) + 'px';\n splitterElement.style.top = (toolbarHeight + annotationToolbarHeight) + 'px';\n commentsContainer.style.top = (toolbarHeight + annotationToolbarHeight) + 'px';\n commentPanelResizer.style.top = (toolbarHeight + annotationToolbarHeight) + 'px';\n }\n else {\n sideBarToolbar.style.top = (annotationToolbarHeight) + 'px';\n sideBarContentContainer.style.top = (annotationToolbarHeight) + 'px';\n splitterElement.style.top = (annotationToolbarHeight) + 'px';\n commentsContainer.style.top = (annotationToolbarHeight) + 'px';\n commentPanelResizer.style.top = (toolbarHeight + annotationToolbarHeight) + 'px';\n }\n if (!this.pdfViewer.enableToolbar) {\n toolbarHeight = 0;\n }\n // eslint-disable-next-line max-len\n this.pdfViewerBase.viewerContainer.style.height = this.updateViewerHeight(this.getElementHeight(this.pdfViewerBase.viewerContainer), (annotationToolbarHeight + toolbarHeight)) + 'px';\n newToolbarHeight = this.getNavigationToolbarHeight(annotationToolbarHeight + toolbarHeight);\n sideBarToolbar.style.height = newToolbarHeight;\n splitterElement.style.height = newToolbarHeight;\n commentPanelResizer.style.height = newToolbarHeight;\n sideBarContentContainer.style.height = newToolbarHeight;\n }\n else {\n if (this.pdfViewer.enableToolbar) {\n // eslint-disable-next-line max-len\n sideBarToolbar.style.top = toolbarHeight + 'px';\n sideBarContentContainer.style.top = toolbarHeight + 'px';\n splitterElement.style.top = toolbarHeight + 'px';\n commentsContainer.style.top = toolbarHeight + 'px';\n commentPanelResizer.style.top = toolbarHeight + 'px';\n }\n else {\n sideBarToolbar.style.top = 1 + 'px';\n sideBarToolbar.style.height = '100%';\n sideBarContentContainer.style.top = 1 + 'px';\n sideBarContentContainer.style.height = '100%';\n splitterElement.style.top = 1 + 'px';\n splitterElement.style.height = '100%';\n commentsContainer.style.top = 1 + 'px';\n commentsContainer.style.height = '100%';\n commentPanelResizer.style.top = 1 + 'px';\n commentPanelResizer.style.height = '100%';\n }\n if (!this.pdfViewer.enableToolbar) {\n toolbarHeight = 0;\n }\n // eslint-disable-next-line max-len\n this.pdfViewerBase.viewerContainer.style.height = this.updateViewerHeight(this.getElementHeight(this.pdfViewerBase.viewerContainer), annotationToolbarHeight) + 'px';\n newToolbarHeight = this.getNavigationToolbarHeight(toolbarHeight);\n sideBarToolbar.style.height = newToolbarHeight;\n splitterElement.style.height = newToolbarHeight;\n commentPanelResizer.style.height = newToolbarHeight;\n sideBarContentContainer.style.height = newToolbarHeight;\n if (this.pdfViewerBase.viewerContainer.style.height === '0px') {\n // eslint-disable-next-line\n this.pdfViewerBase.viewerContainer.style.height = (parseInt(this.pdfViewer.element.style.height) - parseInt(sideBarToolbar.style.top)) + 'px';\n }\n }\n };\n AnnotationToolbar.prototype.updateContentContainerHeight = function (isAdjust, isBlazor) {\n var annotationToolbarHeight;\n if (isBlazor) {\n var annotationToolbarContainer = this.pdfViewer.element.querySelector('.e-pv-annotation-toolbar');\n annotationToolbarHeight = this.getToolbarHeight(annotationToolbarContainer);\n }\n else {\n annotationToolbarHeight = this.getToolbarHeight(this.toolbarElement);\n }\n var sideBarClientRect = this.pdfViewerBase.navigationPane.sideBarContentContainer.getBoundingClientRect();\n if (sideBarClientRect.height !== 0) {\n if (isAdjust) {\n // eslint-disable-next-line max-len\n this.pdfViewerBase.navigationPane.sideBarContentContainer.style.height = sideBarClientRect.height - annotationToolbarHeight + 'px';\n }\n else {\n // eslint-disable-next-line max-len\n this.pdfViewerBase.navigationPane.sideBarContentContainer.style.height = sideBarClientRect.height + annotationToolbarHeight + 'px';\n }\n }\n };\n AnnotationToolbar.prototype.getToolbarHeight = function (element) {\n var toolbarHeight = element.getBoundingClientRect().height;\n if (toolbarHeight === 0 && element === this.pdfViewerBase.getElement('_toolbarContainer')) {\n // getComputedStyle gets the value from style and toolbar border height is added to it.\n // eslint-disable-next-line\n toolbarHeight = parseFloat(window.getComputedStyle(element)['height']) + this.toolbarBorderHeight;\n }\n return toolbarHeight;\n };\n AnnotationToolbar.prototype.getNavigationToolbarHeight = function (toolbarHeight) {\n var height = this.pdfViewer.element.getBoundingClientRect().height;\n return (height !== 0) ? height - toolbarHeight + 'px' : '';\n };\n AnnotationToolbar.prototype.handleHighlight = function () {\n if (!this.isHighlightEnabled) {\n this.updateInteractionTools();\n this.clearShapeMode();\n this.clearMeasureMode();\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.drawTextMarkupAnnotations('Highlight');\n this.primaryToolbar.selectItem(this.highlightItem);\n this.primaryToolbar.deSelectItem(this.underlineItem);\n this.primaryToolbar.deSelectItem(this.strikethroughItem);\n this.primaryToolbar.deSelectItem(this.freeTextEditItem);\n this.primaryToolbar.deSelectItem(this.inkAnnotationItem);\n this.enableTextMarkupAnnotationPropertiesTools(true);\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.highlightColor = null;\n this.setCurrentColorInPicker();\n this.updateColorInIcon(this.colorDropDownElement, this.pdfViewer.annotationModule.textMarkupAnnotationModule.highlightColor);\n this.isHighlightEnabled = true;\n this.isUnderlineEnabled = false;\n this.isStrikethroughEnabled = false;\n }\n else {\n this.deselectAllItems();\n }\n };\n AnnotationToolbar.prototype.handleUnderline = function () {\n if (!this.isUnderlineEnabled) {\n this.updateInteractionTools();\n this.clearShapeMode();\n this.clearMeasureMode();\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.drawTextMarkupAnnotations('Underline');\n this.primaryToolbar.selectItem(this.underlineItem);\n this.primaryToolbar.deSelectItem(this.highlightItem);\n this.primaryToolbar.deSelectItem(this.strikethroughItem);\n this.primaryToolbar.deSelectItem(this.freeTextEditItem);\n this.primaryToolbar.deSelectItem(this.inkAnnotationItem);\n this.enableTextMarkupAnnotationPropertiesTools(true);\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.underlineColor = null;\n this.setCurrentColorInPicker();\n this.updateColorInIcon(this.colorDropDownElement, this.pdfViewer.annotationModule.textMarkupAnnotationModule.underlineColor);\n this.isUnderlineEnabled = true;\n this.isHighlightEnabled = false;\n this.isStrikethroughEnabled = false;\n }\n else {\n this.deselectAllItems();\n }\n };\n AnnotationToolbar.prototype.handleStrikethrough = function () {\n if (!this.isStrikethroughEnabled) {\n this.updateInteractionTools();\n this.clearShapeMode();\n this.clearMeasureMode();\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.drawTextMarkupAnnotations('Strikethrough');\n this.primaryToolbar.selectItem(this.strikethroughItem);\n this.primaryToolbar.deSelectItem(this.highlightItem);\n this.primaryToolbar.deSelectItem(this.underlineItem);\n this.primaryToolbar.deSelectItem(this.freeTextEditItem);\n this.primaryToolbar.deSelectItem(this.inkAnnotationItem);\n this.enableTextMarkupAnnotationPropertiesTools(true);\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.strikethroughColor = null;\n this.setCurrentColorInPicker();\n // eslint-disable-next-line max-len\n this.updateColorInIcon(this.colorDropDownElement, this.pdfViewer.annotationModule.textMarkupAnnotationModule.strikethroughColor);\n this.isStrikethroughEnabled = true;\n this.isHighlightEnabled = false;\n this.isUnderlineEnabled = false;\n }\n else {\n this.deselectAllItems();\n }\n };\n /**\n * @private\n */\n AnnotationToolbar.prototype.deselectAllItemsInBlazor = function () {\n if (this.pdfViewerBase.isTextMarkupAnnotationModule()) {\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.isTextMarkupAnnotationMode = false;\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.showHideDropletDiv(true);\n }\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n this.primaryToolbar.deSelectItem(this.HighlightElement);\n this.primaryToolbar.deSelectItem(this.UnderlineElement);\n this.primaryToolbar.deSelectItem(this.StrikethroughElement);\n this.primaryToolbar.deSelectItem(this.FreeTextElement);\n this.primaryToolbar.deSelectItem(this.InkAnnotationElement);\n this.pdfViewer._dotnetInstance.invokeMethodAsync('UpdateTextMarkupButtons', false, false, false);\n }\n this.resetFreeTextAnnot();\n this.clearTextMarkupMode();\n this.clearShapeMode();\n this.clearMeasureMode();\n this.pdfViewer.tool = '';\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n this.enableTextMarkupAnnotationPropertiesTools(false);\n this.enableFreeTextAnnotationPropertiesTools(false);\n this.updateColorInIcon(this.colorDropDownElement, '#000000');\n this.updateColorInIcon(this.strokeDropDownElement, '#000000');\n this.updateColorInIcon(this.fontColorElement, '#000000');\n this.selectAnnotationDeleteItem(false);\n }\n if (this.pdfViewer.annotationModule) {\n this.pdfViewer.annotationModule.freeTextAnnotationModule.isNewFreeTextAnnot = false;\n }\n };\n /**\n * @private\n */\n AnnotationToolbar.prototype.deselectAllItems = function () {\n var isBlazorPlatform = isBlazor();\n this.isHighlightEnabled = false;\n this.isUnderlineEnabled = false;\n this.isStrikethroughEnabled = false;\n if (this.pdfViewerBase.isTextMarkupAnnotationModule()) {\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.isTextMarkupAnnotationMode = false;\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.showHideDropletDiv(true);\n }\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n if (isBlazorPlatform) {\n this.primaryToolbar.deSelectItem(this.pdfViewer.toolbar.SelectToolElement);\n this.primaryToolbar.selectItem(this.pdfViewer.toolbar.PanElement);\n this.primaryToolbar.deSelectItem(this.HighlightElement);\n this.primaryToolbar.deSelectItem(this.UnderlineElement);\n this.primaryToolbar.deSelectItem(this.StrikethroughElement);\n this.primaryToolbar.deSelectItem(this.FreeTextElement);\n this.primaryToolbar.deSelectItem(this.InkAnnotationElement);\n }\n else {\n this.primaryToolbar.deSelectItem(this.highlightItem);\n this.primaryToolbar.deSelectItem(this.underlineItem);\n this.primaryToolbar.deSelectItem(this.strikethroughItem);\n this.primaryToolbar.deSelectItem(this.freeTextEditItem);\n this.primaryToolbar.deSelectItem(this.inkAnnotationItem);\n }\n }\n this.resetFreeTextAnnot();\n this.clearTextMarkupMode();\n this.clearShapeMode();\n this.clearMeasureMode();\n this.pdfViewer.tool = '';\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n this.enableTextMarkupAnnotationPropertiesTools(false);\n this.enableFreeTextAnnotationPropertiesTools(false);\n this.updateColorInIcon(this.colorDropDownElement, '#000000');\n this.updateColorInIcon(this.strokeDropDownElement, '#000000');\n this.updateColorInIcon(this.fontColorElement, '#000000');\n this.selectAnnotationDeleteItem(false);\n }\n if (this.pdfViewer.annotationModule) {\n this.pdfViewer.annotationModule.freeTextAnnotationModule.isNewFreeTextAnnot = false;\n }\n };\n AnnotationToolbar.prototype.updateInteractionTools = function () {\n if (this.pdfViewer.enableTextSelection) {\n this.pdfViewerBase.initiateTextSelectMode();\n if (!Browser.isDevice) {\n this.pdfViewer.toolbar.updateInteractionTools(true);\n }\n }\n else if (!Browser.isDevice) {\n this.pdfViewer.toolbar.updateInteractionTools(false);\n }\n };\n /**\n * @param isEnable\n * @private\n */\n AnnotationToolbar.prototype.selectAnnotationDeleteItem = function (isEnable, deleteIconCicked) {\n if (!isBlazor() && !Browser.isDevice) {\n if (this.toolbar) {\n if (isEnable) {\n // eslint-disable-next-line\n var annotation = this.pdfViewer.annotationModule.findCurrentAnnotation();\n if (annotation) {\n // eslint-disable-next-line\n if (annotation.annotationSettings && annotation.annotationSettings.isLock) {\n if (this.pdfViewer.annotationModule.checkAllowedInteractions('Delete', annotation)) {\n this.toolbar.enableItems(this.deleteItem.parentElement, isEnable);\n }\n else {\n this.toolbar.enableItems(this.deleteItem.parentElement, false);\n }\n }\n else {\n this.toolbar.enableItems(this.deleteItem.parentElement, isEnable);\n }\n }\n }\n else {\n this.toolbar.enableItems(this.deleteItem.parentElement, isEnable);\n }\n }\n }\n else {\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n if (isEnable) {\n // eslint-disable-next-line\n var annotation = this.pdfViewer.annotationModule.findCurrentAnnotation();\n if (annotation) {\n // eslint-disable-next-line\n if (annotation.annotationSettings && annotation.annotationSettings.isLock) {\n if (this.pdfViewer.annotationModule.checkAllowedInteractions('Delete', annotation)) {\n this.pdfViewerBase.blazorUIAdaptor.EnableDeleteOption(isEnable);\n }\n else {\n this.pdfViewerBase.blazorUIAdaptor.EnableDeleteOption(false);\n }\n }\n else if (this.pdfViewerBase.blazorUIAdaptor) {\n this.pdfViewerBase.blazorUIAdaptor.EnableDeleteOption(isEnable);\n }\n }\n }\n else if (this.pdfViewerBase.blazorUIAdaptor) {\n this.pdfViewerBase.blazorUIAdaptor.EnableDeleteOption(isEnable);\n }\n if (deleteIconCicked) {\n this.pdfViewerBase.focusViewerContainer();\n }\n }\n }\n };\n /**\n * @param isEnable\n * @private\n */\n AnnotationToolbar.prototype.enableTextMarkupAnnotationPropertiesTools = function (isEnable) {\n if (!Browser.isDevice) {\n if (!isBlazor()) {\n this.toolbar.enableItems(this.colorDropDownElement.parentElement, isEnable);\n this.toolbar.enableItems(this.opacityDropDownElement.parentElement, isEnable);\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n this.toolbar.enableItems(this.strokeDropDownElement.parentElement, false);\n this.toolbar.enableItems(this.thicknessElement.parentElement, false);\n this.toolbar.enableItems(this.fontFamilyElement.parentElement, false);\n this.toolbar.enableItems(this.fontSizeElement.parentElement, false);\n this.toolbar.enableItems(this.fontColorElement.parentElement, false);\n this.toolbar.enableItems(this.textAlignElement.parentElement, false);\n this.toolbar.enableItems(this.textPropElement.parentElement, false);\n }\n }\n else {\n // this.pdfViewer._dotnetInstance.invokeMethodAsync('AnnotationSelect', 'TextMarkup');\n this.pdfViewerBase.blazorUIAdaptor.enableTextMarkupAnnotationPropertiesTools(isEnable);\n }\n }\n };\n AnnotationToolbar.prototype.checkAnnotationPropertiesChange = function () {\n // eslint-disable-next-line\n var annotation = this.pdfViewer.selectedItems.annotations[0];\n if (annotation && annotation.annotationSettings) {\n // eslint-disable-next-line\n var isLock = annotation.annotationSettings.isLock;\n if (isLock) {\n if (this.pdfViewer.annotationModule.checkAllowedInteractions('PropertyChange', annotation)) {\n return true;\n }\n else {\n return false;\n }\n }\n }\n return true;\n };\n /**\n * @param isEnable\n * @private\n */\n AnnotationToolbar.prototype.enableAnnotationPropertiesTools = function (isEnable) {\n if (!Browser.isDevice) {\n var isPropertiesChanges = this.checkAnnotationPropertiesChange();\n if (!isEnable) {\n isPropertiesChanges = true;\n }\n if (!isBlazor()) {\n if (isPropertiesChanges) {\n // eslint-disable-next-line max-len\n if (this.pdfViewer.selectedItems.annotations[0] && (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'Line')) {\n this.toolbar.enableItems(this.colorDropDownElement.parentElement, false);\n }\n else {\n this.toolbar.enableItems(this.colorDropDownElement.parentElement, isEnable);\n }\n this.toolbar.enableItems(this.opacityDropDownElement.parentElement, isEnable);\n this.toolbar.enableItems(this.strokeDropDownElement.parentElement, isEnable);\n this.toolbar.enableItems(this.thicknessElement.parentElement, isEnable);\n if (this.pdfViewer.enableShapeLabel) {\n this.toolbar.enableItems(this.fontFamilyElement.parentElement, isEnable);\n this.toolbar.enableItems(this.fontSizeElement.parentElement, isEnable);\n this.toolbar.enableItems(this.fontColorElement.parentElement, isEnable);\n }\n this.toolbar.enableItems(this.textAlignElement.parentElement, false);\n this.toolbar.enableItems(this.textPropElement.parentElement, false);\n }\n }\n else {\n // this.pdfViewer._dotnetInstance.invokeMethodAsync('EnableAnnotationPropertiesTools', isEnable, isPropertiesChanges);\n this.pdfViewerBase.blazorUIAdaptor.enableAnnotationPropertiesTool(isEnable, isPropertiesChanges);\n }\n }\n };\n /**\n * @param isEnable\n * @private\n */\n AnnotationToolbar.prototype.enableSignaturePropertiesTools = function (isEnable) {\n if (!Browser.isDevice) {\n var isPropertiesChanges = this.checkAnnotationPropertiesChange();\n if (!isEnable) {\n isPropertiesChanges = true;\n }\n if (!isBlazor()) {\n if (isPropertiesChanges) {\n this.toolbar.enableItems(this.colorDropDownElement.parentElement, false);\n this.toolbar.enableItems(this.opacityDropDownElement.parentElement, isEnable);\n this.toolbar.enableItems(this.strokeDropDownElement.parentElement, isEnable);\n this.toolbar.enableItems(this.thicknessElement.parentElement, isEnable);\n this.toolbar.enableItems(this.textAlignElement.parentElement, false);\n this.toolbar.enableItems(this.textPropElement.parentElement, false);\n this.toolbar.enableItems(this.fontFamilyElement.parentElement, false);\n this.toolbar.enableItems(this.fontSizeElement.parentElement, false);\n this.toolbar.enableItems(this.fontColorElement.parentElement, false);\n this.toolbar.enableItems(this.textAlignElement.parentElement, false);\n }\n }\n else {\n //this.pdfViewer._dotnetInstance.invokeMethodAsync('EnableSignaturePropertiesTools', isEnable, isPropertiesChanges);\n this.pdfViewerBase.blazorUIAdaptor.enableSignaturePropertiesTools(isEnable, isPropertiesChanges);\n }\n }\n };\n /**\n * @param isEnable\n * @private\n */\n AnnotationToolbar.prototype.enableStampAnnotationPropertiesTools = function (isEnable) {\n var isPropertiesChanges = this.checkAnnotationPropertiesChange();\n if (!isEnable) {\n isPropertiesChanges = true;\n }\n if (!isBlazor()) {\n if (isPropertiesChanges) {\n this.toolbar.enableItems(this.opacityDropDownElement.parentElement, isEnable);\n this.toolbar.enableItems(this.colorDropDownElement.parentElement, false);\n this.toolbar.enableItems(this.strokeDropDownElement.parentElement, false);\n this.toolbar.enableItems(this.thicknessElement.parentElement, false);\n this.toolbar.enableItems(this.fontFamilyElement.parentElement, false);\n this.toolbar.enableItems(this.fontSizeElement.parentElement, false);\n this.toolbar.enableItems(this.fontColorElement.parentElement, false);\n this.toolbar.enableItems(this.textAlignElement.parentElement, false);\n this.toolbar.enableItems(this.textPropElement.parentElement, false);\n }\n }\n else {\n // this.pdfViewer._dotnetInstance.invokeMethodAsync('EnableStampAnnotationPropertiesTools', isEnable, isPropertiesChanges);\n this.pdfViewerBase.blazorUIAdaptor.enableStampAnnotationPropertiesTools(isEnable, isPropertiesChanges);\n }\n };\n /**\n * @param isEnable\n * @private\n */\n AnnotationToolbar.prototype.enableFreeTextAnnotationPropertiesTools = function (isEnable) {\n var isPropertiesChanges = this.checkAnnotationPropertiesChange();\n if (!isEnable) {\n isPropertiesChanges = true;\n }\n if (!isBlazor()) {\n if (isPropertiesChanges) {\n this.toolbar.enableItems(this.opacityDropDownElement.parentElement, isEnable);\n this.toolbar.enableItems(this.colorDropDownElement.parentElement, isEnable);\n this.toolbar.enableItems(this.strokeDropDownElement.parentElement, isEnable);\n this.toolbar.enableItems(this.thicknessElement.parentElement, isEnable);\n this.toolbar.enableItems(this.fontFamilyElement.parentElement, isEnable);\n this.toolbar.enableItems(this.fontSizeElement.parentElement, isEnable);\n this.toolbar.enableItems(this.fontColorElement.parentElement, isEnable);\n this.toolbar.enableItems(this.textAlignElement.parentElement, isEnable);\n this.toolbar.enableItems(this.textPropElement.parentElement, isEnable);\n }\n }\n else {\n //this.pdfViewer._dotnetInstance.invokeMethodAsync('EnableFreeTextAnnotationPropertiesTools', isEnable, isPropertiesChanges);\n this.pdfViewerBase.blazorUIAdaptor.enableFreeTextAnnotationPropertiesTools(isEnable, isPropertiesChanges);\n }\n };\n /**\n * @param isEnable\n * @private\n */\n AnnotationToolbar.prototype.enableAnnotationAddTools = function (isEnable) {\n if (this.toolbar && !Browser.isDevice) {\n if (this.pdfViewer.enableTextMarkupAnnotation) {\n this.toolbar.enableItems(this.highlightItem.parentElement, isEnable);\n this.toolbar.enableItems(this.underlineItem.parentElement, isEnable);\n this.toolbar.enableItems(this.strikethroughItem.parentElement, isEnable);\n }\n if (this.pdfViewer.enableShapeAnnotation) {\n this.toolbar.enableItems(this.shapeElement.parentElement, isEnable);\n }\n if (this.pdfViewer.enableStampAnnotations) {\n this.toolbar.enableItems(this.stampElement.parentElement, isEnable);\n }\n if (this.pdfViewer.enableMeasureAnnotation && this.pdfViewerBase.isCalibrateAnnotationModule()) {\n this.toolbar.enableItems(this.calibrateElement.parentElement, isEnable);\n }\n if (this.pdfViewer.enableFreeText) {\n this.toolbar.enableItems(this.freeTextEditItem.parentElement, isEnable);\n }\n if (this.pdfViewer.enableHandwrittenSignature) {\n this.toolbar.enableItems(this.handWrittenSignatureItem.parentElement, isEnable);\n }\n if (this.pdfViewer.enableInkAnnotation) {\n this.toolbar.enableItems(this.inkAnnotationItem.parentElement, isEnable);\n }\n if (this.pdfViewer.enableCommentPanel) {\n this.enableCommentPanelTool(isEnable);\n }\n }\n };\n /**\n * @private\n */\n AnnotationToolbar.prototype.isAnnotationButtonsEnabled = function () {\n var isButtonsEnabled = false;\n if (this.isHighlightEnabled || this.isUnderlineEnabled || this.isStrikethroughEnabled) {\n isButtonsEnabled = true;\n }\n return isButtonsEnabled;\n };\n /**\n * @param isEnable\n * @private\n */\n AnnotationToolbar.prototype.enableCommentPanelTool = function (isEnable) {\n if (this.toolbar) {\n this.toolbar.enableItems(this.commentItem.parentElement, isEnable);\n }\n };\n AnnotationToolbar.prototype.updateToolbarItems = function () {\n if (this.pdfViewer.enableTextMarkupAnnotation) {\n this.enableTextMarkupAddTools(true);\n }\n else {\n this.enableTextMarkupAddTools(false);\n }\n this.toolbar.enableItems(this.shapeElement.parentElement, this.pdfViewer.enableShapeAnnotation);\n this.toolbar.enableItems(this.stampElement.parentElement, this.pdfViewer.enableStampAnnotations);\n this.toolbar.enableItems(this.calibrateElement.parentElement, this.pdfViewer.enableMeasureAnnotation);\n this.toolbar.enableItems(this.freeTextEditItem.parentElement, this.pdfViewer.enableFreeText);\n this.toolbar.enableItems(this.handWrittenSignatureItem.parentElement, this.pdfViewer.enableHandwrittenSignature);\n this.toolbar.enableItems(this.inkAnnotationItem.parentElement, this.pdfViewer.enableInkAnnotation);\n };\n AnnotationToolbar.prototype.enableTextMarkupAddTools = function (isEnable) {\n this.toolbar.enableItems(this.highlightItem.parentElement, isEnable);\n this.toolbar.enableItems(this.underlineItem.parentElement, isEnable);\n this.toolbar.enableItems(this.strikethroughItem.parentElement, isEnable);\n };\n /**\n * @private\n */\n // for shapes added by drawing package\n AnnotationToolbar.prototype.updateAnnnotationPropertyItems = function () {\n if (!isBlazor()) {\n if (this.pdfViewer.selectedItems.annotations.length === 1) {\n // eslint-disable-next-line max-len\n this.pdfViewer.toolbar.annotationToolbarModule.updateColorInIcon(this.colorDropDownElement, this.getColorHexValue(this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.fill, 'fillColor'));\n this.pdfViewer.toolbar.annotationToolbarModule.updateColorInIcon(this.strokeDropDownElement, this.getColorHexValue(this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.strokeColor, 'strokeColor'));\n if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'FreeText') {\n // eslint-disable-next-line\n this.pdfViewer.toolbar.annotationToolbarModule.updateColorInIcon(this.fontColorElement, this.getColorHexValue(this.pdfViewer.selectedItems.annotations[0].fontColor, 'fontColor'));\n this.pdfViewer.toolbar.annotationToolbarModule.updateFontFamilyInIcon(this.pdfViewer.selectedItems.annotations[0].fontFamily);\n // eslint-disable-next-line max-len\n this.pdfViewer.toolbar.annotationToolbarModule.updateFontSizeInIcon(this.pdfViewer.selectedItems.annotations[0].fontSize);\n this.pdfViewer.toolbar.annotationToolbarModule.updateTextAlignInIcon(this.pdfViewer.selectedItems.annotations[0].textAlign);\n }\n }\n else {\n this.pdfViewer.toolbar.annotationToolbarModule.updateColorInIcon(this.colorDropDownElement, '#000000');\n this.pdfViewer.toolbar.annotationToolbarModule.updateColorInIcon(this.strokeDropDownElement, '#000000');\n this.pdfViewer.toolbar.annotationToolbarModule.updateColorInIcon(this.fontColorElement, '#000000');\n }\n }\n else {\n this.colorDropDownElementInBlazor = this.pdfViewer.element.querySelector('.e-pv-annotation-color-container');\n this.strokeDropDownElementInBlazor = this.pdfViewer.element.querySelector('.e-pv-annotation-stroke-container');\n this.fontColorElementInBlazor = this.pdfViewer.element.querySelector('.e-pv-annotation-textcolor-container');\n if (this.pdfViewer.selectedItems.annotations.length === 1) {\n // eslint-disable-next-line max-len\n this.pdfViewer.toolbar.annotationToolbarModule.updateColorInIcon(this.colorDropDownElementInBlazor, this.getColorHexValue(this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.fill, 'fillColor'));\n this.pdfViewer.toolbar.annotationToolbarModule.updateColorInIcon(this.strokeDropDownElementInBlazor, this.getColorHexValue(this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.strokeColor, 'strokeColor'));\n if (this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'FreeText') {\n // eslint-disable-next-line\n this.pdfViewer.toolbar.annotationToolbarModule.updateColorInIcon(this.fontColorElementInBlazor, this.getColorHexValue(this.pdfViewer.selectedItems.annotations[0].fontColor, 'fontColor'));\n //this.pdfViewer._dotnetInstance.invokeMethodAsync('UpdateFontFamilyInIcon', this.pdfViewer.selectedItems.annotations[0].fontFamily);\n // eslint-disable-next-line max-len\n this.pdfViewerBase.blazorUIAdaptor.updateFontFamilyInIcon(this.pdfViewer.selectedItems.annotations[0].fontFamily);\n // this.pdfViewer._dotnetInstance.invokeMethodAsync('UpdateFontSizeInIcon', this.pdfViewer.selectedItems.annotations[0].fontSize);\n this.pdfViewerBase.blazorUIAdaptor.updateFontSizeInIcon(this.pdfViewer.selectedItems.annotations[0].fontSize);\n //this.pdfViewer.toolbar.annotationtoolbar.updateTextAlignInIcon(this.pdfViewer.selectedItems.annotations[0].textAlign);\n }\n }\n else {\n this.pdfViewer.toolbar.annotationToolbarModule.updateColorInIcon(this.colorDropDownElementInBlazor, '#000000');\n this.pdfViewer.toolbar.annotationToolbarModule.updateColorInIcon(this.strokeDropDownElementInBlazor, '#000000');\n this.pdfViewer.toolbar.annotationToolbarModule.updateColorInIcon(this.fontColorElementInBlazor, '#000000');\n }\n }\n };\n AnnotationToolbar.prototype.getColorHexValue = function (colorString, type) {\n if (colorString === '#ffffff00') {\n colorString = '#ffffff';\n }\n if (colorString.toLowerCase() === 'red') {\n colorString = '#FF0000';\n }\n if (colorString !== 'transparent') {\n if (!isBlazor()) {\n return this.colorPalette.getValue(colorString, 'hex');\n }\n else {\n return colorString;\n }\n }\n else {\n if (type === 'fontColor' || type === 'strokeColor') {\n return '#000000';\n }\n else {\n return '#ffffff';\n }\n }\n };\n AnnotationToolbar.prototype.setColorInPicker = function (colorpick, colorString) {\n if (colorpick) {\n colorpick.setProperties({ 'value': colorString }, true);\n }\n };\n /**\n * @private\n */\n AnnotationToolbar.prototype.resetToolbar = function () {\n this.adjustViewer(false);\n this.updateToolbarItems();\n // eslint-disable-next-line max-len\n if ((this.pdfViewer.isAnnotationToolbarOpen || this.pdfViewer.isAnnotationToolbarVisible) && this.pdfViewer.enableAnnotationToolbar) {\n this.toolbarElement.style.display = '';\n this.isToolbarHidden = false;\n this.adjustViewer(true);\n this.enableAnnotationAddTools(false);\n this.pdfViewer.isAnnotationToolbarVisible = true;\n }\n else {\n this.toolbarElement.style.display = 'none';\n this.isToolbarHidden = true;\n this.pdfViewer.isAnnotationToolbarVisible = false;\n }\n };\n /**\n * @private\n */\n AnnotationToolbar.prototype.clearTextMarkupMode = function () {\n if (this.pdfViewerBase.isTextMarkupAnnotationModule()) {\n if (isBlazor()) {\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.isTextMarkupAnnotationMode = false;\n }\n this.pdfViewer.annotation.textMarkupAnnotationModule.currentTextMarkupAddMode = '';\n }\n };\n /**\n * @private\n */\n AnnotationToolbar.prototype.clearShapeMode = function () {\n if (this.pdfViewerBase.isShapeAnnotationModule()) {\n this.pdfViewer.annotation.shapeAnnotationModule.currentAnnotationMode = '';\n }\n };\n /**\n * @private\n */\n AnnotationToolbar.prototype.clearMeasureMode = function () {\n if (this.pdfViewerBase.isCalibrateAnnotationModule()) {\n this.pdfViewer.annotation.measureAnnotationModule.currentAnnotationMode = '';\n }\n };\n /**\n * @private\n */\n AnnotationToolbar.prototype.clear = function () {\n this.deselectAllItems();\n };\n /**\n * @private\n */\n AnnotationToolbar.prototype.destroy = function () {\n this.destroyComponent();\n this.shapeDropDown ? this.shapeDropDown.destroy() : null;\n this.calibrateDropDown ? this.calibrateDropDown.destroy() : null;\n this.fontColorDropDown ? this.fontColorDropDown.destroy() : null;\n this.textAlignDropDown ? this.textAlignDropDown.destroy() : null;\n this.colorDropDown ? this.colorDropDown.destroy() : null;\n this.strokeDropDown ? this.strokeDropDown.destroy() : null;\n this.thicknessDropDown ? this.thicknessDropDown.destroy() : null;\n this.opacityDropDown ? this.opacityDropDown.destroy() : null;\n this.textPropertiesDropDown ? this.textPropertiesDropDown.destroy() : null;\n this.toolbar ? this.toolbar.destroy() : null;\n // eslint-disable-next-line\n var stampImage = document.getElementById(this.pdfViewer.element.id + '_stampElement');\n if (stampImage) {\n stampImage.parentElement.removeChild(stampImage);\n }\n };\n AnnotationToolbar.prototype.destroyComponent = function () {\n // eslint-disable-next-line\n var componentElement = [this.highlightItem, this.underlineItem, this.strikethroughItem, this.lineElement, this.arrowElement,\n this.rectangleElement, this.circleElement, this.polygonElement, this.calibrateDistance, this.calibrateArea, this.calibrateRadius,\n this.calibrateVolume, this.calibratePerimeter, this.freeTextEditItem, this.stampElement, this.handWrittenSignatureItem, this.inkAnnotationItem,\n this.fontFamilyElement, this.fontSizeElement, this.alignLeftElement, this.alignRightElement, this.alignCenterElement, this.alignJustifyElement,\n this.boldElement, this.italicElement, this.fontStyleStrikethroughItem, this.fontStyleUnderlineItem, this.deleteItem, this.commentItem,\n this.shapeDropDown ? this.shapeDropDown.activeElem[0] : null, this.calibrateDropDown ? this.calibrateDropDown.activeElem[0] : null, this.fontColorDropDown ? this.fontColorDropDown.activeElem[0] : null, this.textAlignDropDown ? this.textAlignDropDown.activeElem[0] : null,\n this.colorDropDown ? this.colorDropDown.activeElem[0] : null, this.strokeDropDown ? this.strokeDropDown.activeElem[0] : null, this.thicknessDropDown ? this.thicknessDropDown.activeElem[0] : null, this.opacityDropDown ? this.opacityDropDown.activeElem[0] : null, this.textPropertiesDropDown ? this.textPropertiesDropDown.activeElem[0] : null\n ];\n for (var i = 0; i < componentElement.length; i++) {\n if (componentElement[i]) {\n this.destroyDependentComponent(componentElement[i]);\n }\n }\n };\n AnnotationToolbar.prototype.destroyDependentComponent = function (component) {\n if (component.ej2_instances) {\n for (var i = component.ej2_instances.length - 1; i >= 0; i--) {\n component.ej2_instances[i].destroy();\n }\n }\n };\n AnnotationToolbar.prototype.getElementHeight = function (element) {\n try {\n return element.getBoundingClientRect().height;\n }\n catch (error) {\n return 0;\n }\n };\n AnnotationToolbar.prototype.updateViewerHeight = function (viewerHeight, toolbarHeight) {\n return this.getElementHeight(this.pdfViewer.element) - toolbarHeight;\n };\n AnnotationToolbar.prototype.resetViewerHeight = function (viewerHeight, toolbarHeight) {\n return viewerHeight + toolbarHeight;\n };\n /**\n * @private\n */\n AnnotationToolbar.prototype.afterAnnotationToolbarCreationInBlazor = function () {\n this.HighlightElement = document.getElementById(this.pdfViewer.element.id + '_highLight').children[0];\n this.UnderlineElement = document.getElementById(this.pdfViewer.element.id + '_underline').children[0];\n this.StrikethroughElement = document.getElementById(this.pdfViewer.element.id + '_strikethrough').children[0];\n this.InkAnnotationElement = document.getElementById(this.pdfViewer.element.id + '_annotation_ink').children[0];\n this.InkAnnotationElement.classList.add('e-pv-tbar-btn');\n this.FreeTextElement = document.getElementById(this.pdfViewer.element.id + '_annotation_freeTextEdit').children[0];\n this.HighlightElement = this.addClassToToolbarInBlazor(this.HighlightElement, 'e-pv-highlight', '_highLight');\n this.UnderlineElement = this.addClassToToolbarInBlazor(this.UnderlineElement, 'e-pv-underline', '_underline');\n this.StrikethroughElement = this.addClassToToolbarInBlazor(this.StrikethroughElement, 'e-pv-strikethrough', '_strikethrough');\n };\n // eslint-disable-next-line\n AnnotationToolbar.prototype.addClassToToolbarInBlazor = function (element, className, idString) {\n element.classList.add(className);\n element.classList.add('e-pv-tbar-btn');\n if (element.childNodes.length > 0) {\n var spanElement = element.childNodes[0];\n if (spanElement && spanElement.classList) {\n spanElement.id = this.pdfViewer.element.id + idString + 'Icon';\n spanElement.classList.remove('e-icons');\n spanElement.classList.remove('e-btn-icon');\n if (this.pdfViewer.enableRtl) {\n spanElement.classList.add('e-right');\n }\n }\n }\n return element;\n };\n AnnotationToolbar.prototype.handleHighlightInBlazor = function () {\n if (this.HighlightElement.classList.contains('e-pv-select')) {\n this.primaryToolbar.deSelectItem(this.HighlightElement);\n }\n else if (!this.HighlightElement.classList.contains('e-pv-select')) {\n this.primaryToolbar.selectItem(this.HighlightElement);\n }\n if (this.StrikethroughElement.classList.contains('e-pv-select')) {\n this.primaryToolbar.deSelectItem(this.StrikethroughElement);\n }\n if (this.UnderlineElement.classList.contains('e-pv-select')) {\n this.primaryToolbar.deSelectItem(this.UnderlineElement);\n }\n };\n AnnotationToolbar.prototype.handleUnderlineInBlazor = function () {\n if (this.UnderlineElement.classList.contains('e-pv-select')) {\n this.primaryToolbar.deSelectItem(this.UnderlineElement);\n }\n else if (!this.UnderlineElement.classList.contains('e-pv-select')) {\n this.primaryToolbar.selectItem(this.UnderlineElement);\n }\n if (this.StrikethroughElement.classList.contains('e-pv-select')) {\n this.primaryToolbar.deSelectItem(this.StrikethroughElement);\n }\n if (this.HighlightElement.classList.contains('e-pv-select')) {\n this.primaryToolbar.deSelectItem(this.HighlightElement);\n }\n };\n AnnotationToolbar.prototype.handleStrikethroughInBlazor = function () {\n if (this.StrikethroughElement.classList.contains('e-pv-select')) {\n this.primaryToolbar.deSelectItem(this.StrikethroughElement);\n }\n else if (!this.StrikethroughElement.classList.contains('e-pv-select')) {\n this.primaryToolbar.selectItem(this.StrikethroughElement);\n }\n if (this.HighlightElement.classList.contains('e-pv-select')) {\n this.primaryToolbar.deSelectItem(this.HighlightElement);\n }\n if (this.UnderlineElement.classList.contains('e-pv-select')) {\n this.primaryToolbar.deSelectItem(this.UnderlineElement);\n }\n };\n AnnotationToolbar.prototype.AnnotationSliderOpened = function () {\n if (this.pdfViewer.selectedItems.annotations && this.pdfViewer.selectedItems.annotations.length > 0 && this.pdfViewer.selectedItems.annotations[0]) {\n if (this.pdfViewer.selectedItems.annotations[0].wrapper && this.pdfViewer.selectedItems.annotations[0].wrapper.children[0]) {\n var opacity = this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.opacity * 100;\n var thickness = this.pdfViewer.selectedItems.annotations[0].wrapper.children[0].style.strokeWidth;\n this.pdfViewer._dotnetInstance.invokeMethodAsync('UpdateAnnotationSlider', opacity, thickness);\n }\n }\n };\n AnnotationToolbar.prototype.DropDownOpened = function (colorElement) {\n if (colorElement && colorElement[0].element) {\n var colorElementBounds = colorElement[0].element.getBoundingClientRect();\n var sidebarElement = this.pdfViewerBase.navigationPane.sideBarToolbar;\n var sideBarElementWidth = (sidebarElement) ? sidebarElement.getBoundingClientRect().width : 0;\n if (colorElementBounds.left > this.pdfViewerBase.viewerContainer.clientWidth + colorElementBounds.width + sideBarElementWidth) {\n colorElement[0].element.style.left = (colorElementBounds.left - (this.pdfViewerBase.viewerContainer.clientHeight / 2)) + 'px';\n }\n }\n };\n return AnnotationToolbar;\n}());\nexport { AnnotationToolbar };\n","/* eslint-disable */\nimport { createElement, isBlazor, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { Toolbar as Tool } from '@syncfusion/ej2-navigations';\nimport { DropDownButton } from '@syncfusion/ej2-splitbuttons';\n/* eslint-disable */\n/**\n * @hidden\n */\nvar FormDesignerToolbar = /** @class */ (function () {\n function FormDesignerToolbar(viewer, viewerBase, toolbar) {\n /**\n * @private\n */\n this.isToolbarHidden = false;\n this.isTextboxBtnVisible = true;\n this.isPasswordBtnVisible = true;\n this.isCheckboxBtnVisible = true;\n this.isRadiobuttonBtnVisible = true;\n this.isDropdownBtnVisible = true;\n this.isListboxBtnVisible = true;\n this.isSignatureBtnVisible = true;\n this.isDeleteBtnVisible = true;\n this.toolbarBorderHeight = 1;\n this.pdfViewer = viewer;\n this.pdfViewerBase = viewerBase;\n this.primaryToolbar = toolbar;\n }\n FormDesignerToolbar.prototype.initializeFormDesignerToolbar = function () {\n var _this = this;\n // eslint-disable-next-line max-len\n this.toolbarElement = createElement('div', { id: this.pdfViewer.element.id + '_formdesigner_toolbar', className: 'e-pv-formdesigner-toolbar' });\n this.pdfViewerBase.viewerMainContainer.appendChild(this.toolbarElement);\n this.toolbar = new Tool({\n width: '', height: '', overflowMode: 'Popup',\n items: this.createToolbarItems(), clicked: this.onToolbarClicked.bind(this),\n created: function () {\n _this.createDropDowns();\n }\n });\n //this.toolbar.isStringTemplate = true;\n if (this.pdfViewer.enableRtl) {\n this.toolbar.enableRtl = true;\n }\n this.toolbar.appendTo(this.toolbarElement);\n this.afterToolbarCreation();\n this.createSignContainer();\n this.applyFormDesignerToolbarSettings();\n //this.updateToolbarItems();\n this.showFormDesignerToolbar(null, true);\n };\n /**\n * @private\n */\n FormDesignerToolbar.prototype.resetFormDesignerToolbar = function () {\n this.adjustViewer(false);\n if (this.pdfViewer.isFormDesignerToolbarVisible) {\n this.toolbarElement.style.display = '';\n this.isToolbarHidden = false;\n this.adjustViewer(true);\n this.pdfViewer.isFormDesignerToolbarVisible = true;\n }\n else {\n this.toolbarElement.style.display = 'none';\n this.isToolbarHidden = true;\n this.pdfViewer.isFormDesignerToolbarVisible = false;\n }\n };\n /**\n * @param element\n * @param isInitialLoading\n * @param element\n * @param isInitialLoading\n * @private\n */\n FormDesignerToolbar.prototype.showFormDesignerToolbar = function (element, isInitialLoading) {\n if (!this.isToolbarHidden) {\n // eslint-disable-next-line\n var formDesignerModule = this.pdfViewer.formDesignerModule;\n if (element) {\n this.primaryToolbar.deSelectItem(element);\n }\n else {\n if (this.pdfViewer.enableToolbar) {\n this.primaryToolbar.deSelectItem(this.primaryToolbar.formDesignerItem);\n }\n }\n this.adjustViewer(false);\n // eslint-disable-next-line max-len\n //this.deselectAllItems();\n this.toolbarElement.style.display = 'none';\n this.pdfViewer.formDesignerModule.setMode(\"edit\");\n this.pdfViewer.designerMode = false;\n if (!isInitialLoading) {\n this.pdfViewer.isFormDesignerToolbarVisible = false;\n }\n }\n else {\n var toolBarInitialStatus = this.toolbarElement.style.display;\n this.toolbarElement.style.display = 'block';\n this.pdfViewer.designerMode = true;\n this.pdfViewer.formDesignerModule.setMode(\"designer\");\n if (!isInitialLoading) {\n this.pdfViewer.isFormDesignerToolbarVisible = true;\n }\n if (element) {\n this.primaryToolbar.selectItem(element);\n }\n else {\n if (this.pdfViewer.enableToolbar) {\n this.primaryToolbar.selectItem(this.primaryToolbar.formDesignerItem);\n }\n }\n if (toolBarInitialStatus === 'none') {\n this.adjustViewer(true);\n }\n }\n // eslint-disable-next-line max-len\n if (this.pdfViewer.magnification && this.pdfViewer.magnification.fitType === 'fitToPage') {\n this.pdfViewer.magnification.fitToPage();\n }\n //this.enableAnnotationAddTools(true);\n this.isToolbarHidden = !this.isToolbarHidden;\n };\n /**\n * @param isAdjust\n * @private\n */\n FormDesignerToolbar.prototype.adjustViewer = function (isAdjust) {\n var splitterElement;\n var toolbarContainer;\n var formDesignerToolbarHeight;\n if (isBlazor()) {\n splitterElement = this.pdfViewer.element.querySelector('.e-pv-sidebar-toolbar-splitter');\n toolbarContainer = this.pdfViewer.element.querySelector('.e-pv-toolbar');\n var formDesignerToolbarContainer = this.pdfViewer.element.querySelector('.e-pv-formDesigner-toolbar');\n formDesignerToolbarHeight = this.getToolbarHeight(formDesignerToolbarContainer);\n }\n else {\n splitterElement = this.pdfViewerBase.getElement('_sideBarToolbarSplitter');\n toolbarContainer = this.pdfViewerBase.getElement('_toolbarContainer');\n formDesignerToolbarHeight = this.getToolbarHeight(this.toolbarElement);\n }\n var toolbarHeight = this.getToolbarHeight(toolbarContainer);\n var sideBarToolbar = this.pdfViewerBase.navigationPane.sideBarToolbar;\n var sideBarContentContainer = this.pdfViewerBase.navigationPane.sideBarContentContainer;\n var commentsContainer = this.pdfViewerBase.navigationPane.commentPanelContainer;\n var commentPanelResizer = this.pdfViewerBase.navigationPane.commentPanelResizer;\n var newToolbarHeight = '';\n if (isAdjust) {\n if (this.pdfViewer.enableToolbar) {\n sideBarToolbar.style.top = (toolbarHeight + formDesignerToolbarHeight) + 'px';\n sideBarContentContainer.style.top = (toolbarHeight + formDesignerToolbarHeight) + 'px';\n splitterElement.style.top = (toolbarHeight + formDesignerToolbarHeight) + 'px';\n commentsContainer.style.top = (toolbarHeight + formDesignerToolbarHeight) + 'px';\n commentPanelResizer.style.top = (toolbarHeight + formDesignerToolbarHeight) + 'px';\n }\n else {\n sideBarToolbar.style.top = (formDesignerToolbarHeight) + 'px';\n sideBarContentContainer.style.top = (formDesignerToolbarHeight) + 'px';\n splitterElement.style.top = (formDesignerToolbarHeight) + 'px';\n commentsContainer.style.top = (formDesignerToolbarHeight) + 'px';\n commentPanelResizer.style.top = (toolbarHeight + formDesignerToolbarHeight) + 'px';\n }\n if (!this.pdfViewer.enableToolbar) {\n toolbarHeight = 0;\n }\n // eslint-disable-next-line max-len\n this.pdfViewerBase.viewerContainer.style.height = this.updateViewerHeight(this.getElementHeight(this.pdfViewerBase.viewerContainer), (formDesignerToolbarHeight + toolbarHeight)) + 'px';\n newToolbarHeight = this.getNavigationToolbarHeight(formDesignerToolbarHeight + toolbarHeight);\n sideBarToolbar.style.height = newToolbarHeight;\n splitterElement.style.height = newToolbarHeight;\n commentPanelResizer.style.height = newToolbarHeight;\n sideBarContentContainer.style.height = newToolbarHeight;\n }\n else {\n if (this.pdfViewer.enableToolbar) {\n // eslint-disable-next-line max-len\n sideBarToolbar.style.top = toolbarHeight + 'px';\n sideBarContentContainer.style.top = toolbarHeight + 'px';\n splitterElement.style.top = toolbarHeight + 'px';\n commentsContainer.style.top = toolbarHeight + 'px';\n commentPanelResizer.style.top = toolbarHeight + 'px';\n }\n else {\n sideBarToolbar.style.top = 1 + 'px';\n sideBarToolbar.style.height = '100%';\n sideBarContentContainer.style.top = 1 + 'px';\n sideBarContentContainer.style.height = '100%';\n splitterElement.style.top = 1 + 'px';\n splitterElement.style.height = '100%';\n commentsContainer.style.top = 1 + 'px';\n commentsContainer.style.height = '100%';\n commentPanelResizer.style.top = 1 + 'px';\n commentPanelResizer.style.height = '100%';\n }\n if (!this.pdfViewer.enableToolbar) {\n toolbarHeight = 0;\n }\n // eslint-disable-next-line max-len\n this.pdfViewerBase.viewerContainer.style.height = this.updateViewerHeight(this.getElementHeight(this.pdfViewerBase.viewerContainer), formDesignerToolbarHeight) + 'px';\n newToolbarHeight = this.getNavigationToolbarHeight(toolbarHeight);\n sideBarToolbar.style.height = newToolbarHeight;\n splitterElement.style.height = newToolbarHeight;\n commentPanelResizer.style.height = newToolbarHeight;\n sideBarContentContainer.style.height = newToolbarHeight;\n if (this.pdfViewerBase.viewerContainer.style.height === '0px') {\n // eslint-disable-next-line\n this.pdfViewerBase.viewerContainer.style.height = (parseInt(this.pdfViewer.element.style.height) - parseInt(sideBarToolbar.style.top)) + 'px';\n }\n }\n };\n FormDesignerToolbar.prototype.getElementHeight = function (element) {\n try {\n return element.getBoundingClientRect().height;\n }\n catch (error) {\n return 0;\n }\n };\n FormDesignerToolbar.prototype.updateViewerHeight = function (viewerHeight, toolbarHeight) {\n return this.getElementHeight(this.pdfViewer.element) - toolbarHeight;\n };\n FormDesignerToolbar.prototype.resetViewerHeight = function (viewerHeight, toolbarHeight) {\n return viewerHeight + toolbarHeight;\n };\n FormDesignerToolbar.prototype.getNavigationToolbarHeight = function (toolbarHeight) {\n var height = this.pdfViewer.element.getBoundingClientRect().height;\n return (height !== 0) ? height - toolbarHeight + 'px' : '';\n };\n FormDesignerToolbar.prototype.updateContentContainerHeight = function (isAdjust, isBlazor) {\n var formDesignerToolbarHeight;\n if (isBlazor) {\n var formDesignerToolbarContainer = this.pdfViewer.element.querySelector('.e-pv-formDesigner-toolbar');\n formDesignerToolbarHeight = this.getToolbarHeight(formDesignerToolbarContainer);\n }\n else {\n formDesignerToolbarHeight = this.getToolbarHeight(this.toolbarElement);\n }\n var sideBarClientRect = this.pdfViewerBase.navigationPane.sideBarContentContainer.getBoundingClientRect();\n if (sideBarClientRect.height !== 0) {\n if (isAdjust) {\n // eslint-disable-next-line max-len\n this.pdfViewerBase.navigationPane.sideBarContentContainer.style.height = sideBarClientRect.height - formDesignerToolbarHeight + 'px';\n }\n else {\n // eslint-disable-next-line max-len\n this.pdfViewerBase.navigationPane.sideBarContentContainer.style.height = sideBarClientRect.height + formDesignerToolbarHeight + 'px';\n }\n }\n };\n FormDesignerToolbar.prototype.getToolbarHeight = function (element) {\n var toolbarHeight = element.getBoundingClientRect().height;\n if (toolbarHeight === 0 && element === this.pdfViewerBase.getElement('_toolbarContainer')) {\n // getComputedStyle gets the value from style and toolbar border height is added to it.\n // eslint-disable-next-line\n toolbarHeight = parseFloat(window.getComputedStyle(element)['height']) + this.toolbarBorderHeight;\n }\n return toolbarHeight;\n };\n // eslint-disable-next-line\n FormDesignerToolbar.prototype.createToolbarItems = function () {\n var signTemplate = this.getTemplate('button', '_formfield_signature', 'e-pv-annotation-handwritten-container');\n // eslint-disable-next-line\n var items = [];\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-textbox-icon e-pv-icon', className: 'e-pv-annotation-shapes-container', id: this.pdfViewer.element.id + '_formdesigner_textbox', align: 'Left' });\n items.push({ prefixIcon: 'e-pv-password-icon e-pv-icon', className: 'e-pv-annotation-shapes-container', id: this.pdfViewer.element.id + '_formdesigner_passwordfield', align: 'Left' });\n items.push({ prefixIcon: 'e-pv-checkbox-icon e-pv-icon', className: 'e-pv-annotation-shapes-container', id: this.pdfViewer.element.id + '_formdesigner_checkbox', align: 'Left' });\n items.push({ prefixIcon: 'e-pv-radiobutton-icon e-pv-icon', className: 'e-pv-annotation-shapes-container', id: this.pdfViewer.element.id + '_formdesigner_radiobutton', align: 'Left' });\n items.push({ prefixIcon: 'e-pv-dropdown-icon e-pv-icon', className: 'e-pv-annotation-shapes-container', id: this.pdfViewer.element.id + '_formdesigner_dropdown', align: 'Left' });\n items.push({ prefixIcon: 'e-pv-listbox-icon e-pv-icon', className: 'e-pv-annotation-shapes-container', id: this.pdfViewer.element.id + '_formdesigner_listbox', align: 'Left' });\n items.push({ template: signTemplate, align: 'Left' });\n items.push({ type: 'Separator', align: 'Left' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-annotation-delete-icon e-pv-icon', className: 'e-pv-annotation-delete-container', id: this.pdfViewer.element.id + '_formdesigner_delete', align: 'Left' });\n items.push({ prefixIcon: 'e-pv-annotation-tools-close-icon e-pv-icon', className: 'e-pv-annotation-tools-close-container', id: this.pdfViewer.element.id + '_formdesigner_close', align: 'Right' });\n return items;\n };\n FormDesignerToolbar.prototype.createSignContainer = function () {\n var _this = this;\n this.handWrittenSignatureItem = this.pdfViewerBase.getElement('_formfield_signature');\n // eslint-disable-next-line max-len\n this.primaryToolbar.createTooltip(this.pdfViewerBase.getElement('_formfield_signature'), this.pdfViewer.localeObj.getConstant('HandwrittenSignatureDialogHeaderText'));\n // eslint-disable-next-line\n var proxy = this;\n var items = [];\n items = [\n {\n text: 'ADD SIGNATURE'\n },\n {\n separator: true\n },\n {\n text: 'ADD INITIAL'\n }\n ];\n var saveOptions = {\n items: items,\n iconCss: 'e-pv-handwritten-icon e-pv-icon',\n cssClass: 'e-pv-handwritten-popup',\n beforeItemRender: function (args) {\n _this.pdfViewer.clearSelection(_this.pdfViewerBase.currentPageNumber - 1);\n if (args.element && args.element.className.indexOf(\"e-separator\") !== -1) {\n args.element.style.margin = \"8px 0\";\n args.element.setAttribute('role', 'menuitem');\n args.element.setAttribute('aria-label', 'separator');\n }\n if (args.item.text === 'ADD SIGNATURE') {\n args.element.innerHTML = '';\n var addInitialSpan = createElement('button');\n addInitialSpan.classList.add(\"e-control\", \"e-btn\", \"e-lib\", \"e-outline\", \"e-primary\");\n addInitialSpan.textContent = _this.pdfViewer.localeObj.getConstant('SignatureFieldDialogHeaderText');\n _this.pdfViewer.locale === 'en-US' ? addInitialSpan.style.width = \"130px\" : addInitialSpan.style.width = \"auto\";\n addInitialSpan.style.height = \"36px\";\n addInitialSpan.addEventListener('click', _this.clickSignature.bind(_this));\n args.element.appendChild(addInitialSpan);\n args.element.addEventListener('mouseover', _this.hoverInitialBtn.bind(_this));\n args.element.style.width = '206px';\n args.element.style.display = 'flex';\n args.element.style.flexDirection = 'column';\n args.element.style.height = 'auto';\n args.element.style.alignItems = 'center';\n args.element.setAttribute('role', 'menuitem');\n }\n if (args.item.text === 'ADD INITIAL') {\n args.element.innerHTML = '';\n var addInitialSpan = createElement('button');\n addInitialSpan.classList.add(\"e-control\", \"e-btn\", \"e-lib\", \"e-outline\", \"e-primary\");\n addInitialSpan.textContent = _this.pdfViewer.localeObj.getConstant('InitialFieldDialogHeaderText');\n _this.pdfViewer.locale === 'en-US' ? addInitialSpan.style.width = \"130px\" : addInitialSpan.style.width = \"auto\";\n addInitialSpan.style.height = \"36px\";\n addInitialSpan.addEventListener('click', _this.clickInitial.bind(_this));\n args.element.appendChild(addInitialSpan);\n args.element.addEventListener('mouseover', _this.hoverInitialBtn.bind(_this));\n args.element.style.width = '206px';\n args.element.style.display = 'flex';\n args.element.style.flexDirection = 'column';\n args.element.style.height = 'auto';\n args.element.style.alignItems = 'center';\n args.element.setAttribute('role', 'menuitem');\n }\n },\n };\n var drpDownBtn = new DropDownButton(saveOptions);\n if (this.pdfViewer.enableRtl) {\n drpDownBtn.enableRtl = this.pdfViewer.enableRtl;\n }\n drpDownBtn.appendTo(this.handWrittenSignatureItem);\n };\n FormDesignerToolbar.prototype.hoverInitialBtn = function (event) {\n var eventTarget = event.target;\n var currentFieldID = isNullOrUndefined(event.path) ? event.composedPath()[0].id : event.path[0].id;\n if (currentFieldID !== 'sign_' + currentFieldID.split(\"_\")[1] && currentFieldID !== 'delete_' + currentFieldID.split(\"_\")[1]) {\n var liElement = document.getElementById(eventTarget.id);\n if (isNullOrUndefined(liElement)) {\n liElement = document.getElementById(eventTarget.parentElement.id);\n }\n if (liElement != null && (eventTarget.id !== 'sign_' + eventTarget.id.split('_')[1] || eventTarget.id !== 'sign_border_' + eventTarget.id.split('_')[2])) {\n liElement.style.background = 'transparent';\n liElement.style.cursor = 'default';\n }\n else if (liElement.parentElement != null && (eventTarget.id !== 'sign_' + eventTarget.id.split('_')[1] || eventTarget.id !== 'sign_border_' + eventTarget.id.split('_')[2])) {\n liElement.parentElement.style.background = 'transparent';\n liElement.parentElement.style.cursor = 'default';\n }\n }\n };\n FormDesignerToolbar.prototype.getTemplate = function (elementName, id, className) {\n var element = createElement(elementName, { id: this.pdfViewer.element.id + id });\n if (className) {\n element.className = className;\n }\n return element.outerHTML;\n };\n FormDesignerToolbar.prototype.onToolbarClicked = function (args) {\n // eslint-disable-next-line\n if (args && args.item) {\n if (args.item.id.indexOf(\"textbox\") !== -1) {\n this.pdfViewer.formDesignerModule.setFormFieldMode('Textbox');\n }\n else if (args.item.id.indexOf(\"passwordfield\") !== -1) {\n this.pdfViewer.formDesignerModule.setFormFieldMode('Password');\n }\n else if (args.item.id.indexOf(\"checkbox\") !== -1) {\n this.pdfViewer.formDesignerModule.setFormFieldMode('CheckBox');\n }\n else if (args.item.id.indexOf(\"radiobutton\") !== -1) {\n this.pdfViewer.formDesignerModule.setFormFieldMode('RadioButton');\n }\n else if (args.item.id.indexOf(\"dropdown\") !== -1) {\n this.pdfViewer.formDesignerModule.setFormFieldMode('DropDown');\n }\n else if (args.item.id.indexOf(\"listbox\") !== -1) {\n this.pdfViewer.formDesignerModule.setFormFieldMode('ListBox');\n }\n else if (args.item.id.indexOf(\"signature\") !== -1) {\n this.pdfViewer.formDesignerModule.setFormFieldMode('SignatureField');\n }\n else if (args.item.id.indexOf(\"close\") !== -1) {\n this.pdfViewer.toolbarModule.formDesignerToolbarModule.showFormDesignerToolbar(this.pdfViewer.toolbarModule.formDesignerItem);\n }\n else if (args.item.id.indexOf(\"delete\") !== -1) {\n this.pdfViewer.formDesignerModule.deleteFormField(this.pdfViewer.selectedItems.formFields[0]);\n this.showHideDeleteIcon(false);\n }\n if (this.pdfViewer.selectedItems.formFields.length > 0) {\n this.pdfViewer.clearSelection(this.pdfViewer.selectedItems.formFields[0].pageIndex);\n }\n }\n };\n FormDesignerToolbar.prototype.clickSignature = function (args) {\n this.pdfViewer.formDesignerModule.setFormFieldMode('SignatureField');\n };\n FormDesignerToolbar.prototype.clickInitial = function (args) {\n this.pdfViewer.isInitialFieldToolbarSelection = true;\n this.pdfViewer.formDesignerModule.setFormFieldMode('InitialField');\n this.pdfViewer.isInitialFieldToolbarSelection = false;\n };\n FormDesignerToolbar.prototype.afterToolbarCreation = function () {\n // eslint-disable-next-line max-len\n this.textboxItem = this.primaryToolbar.addClassToolbarItem('_formdesigner_textbox', 'e-pv-formdesigner-textbox', this.pdfViewer.localeObj.getConstant('Textbox'));\n this.passwordItem = this.primaryToolbar.addClassToolbarItem('_formdesigner_passwordfield', 'e-pv-formdesigner-passwordfield', this.pdfViewer.localeObj.getConstant('Password'));\n this.checkboxItem = this.primaryToolbar.addClassToolbarItem('_formdesigner_checkbox', 'e-pv-formdesigner-checkbox', this.pdfViewer.localeObj.getConstant('Check Box'));\n this.radioButtonItem = this.primaryToolbar.addClassToolbarItem('_formdesigner_radiobutton', 'e-pv-formdesigner-radiobutton', this.pdfViewer.localeObj.getConstant('Radio Button'));\n this.dropdownItem = this.primaryToolbar.addClassToolbarItem('_formdesigner_dropdown', 'e-pv-formdesigner-dropdown', this.pdfViewer.localeObj.getConstant('Dropdown'));\n this.listboxItem = this.primaryToolbar.addClassToolbarItem('_formdesigner_listbox', 'e-pv-formdesigner-listbox', this.pdfViewer.localeObj.getConstant('List Box'));\n //this.signatureItem = this.primaryToolbar.addClassToolbarItem('_formdesigner_signature', 'e-pv-formdesigner-signature', this.pdfViewer.localeObj.getConstant('Signature'));\n this.deleteItem = this.primaryToolbar.addClassToolbarItem('_formdesigner_delete', 'e-pv-formdesigner-delete', this.pdfViewer.localeObj.getConstant('Delete FormField'));\n this.closeItem = this.primaryToolbar.addClassToolbarItem('_formdesigner_close', 'e-pv-annotation-tools-close', null);\n this.showHideDeleteIcon(false);\n //this.enableTextMarkupAnnotationPropertiesTools(false); \n };\n FormDesignerToolbar.prototype.showHideDeleteIcon = function (isEnable) {\n if (this.toolbar)\n this.toolbar.enableItems(this.deleteItem.parentElement, isEnable);\n };\n /**\n * @private\n */\n FormDesignerToolbar.prototype.applyFormDesignerToolbarSettings = function () {\n if (this.pdfViewer.toolbarSettings.formDesignerToolbarItems) {\n if (this.pdfViewer.toolbarSettings.formDesignerToolbarItems.indexOf('TextboxTool') !== -1) {\n this.showTextboxTool(true);\n }\n else {\n this.showTextboxTool(false);\n }\n if (this.pdfViewer.toolbarSettings.formDesignerToolbarItems.indexOf('PasswordTool') !== -1) {\n this.showPasswordTool(true);\n }\n else {\n this.showPasswordTool(false);\n }\n if (this.pdfViewer.toolbarSettings.formDesignerToolbarItems.indexOf('CheckBoxTool') !== -1) {\n this.showCheckboxTool(true);\n }\n else {\n this.showCheckboxTool(false);\n }\n if (this.pdfViewer.toolbarSettings.formDesignerToolbarItems.indexOf('RadioButtonTool') !== -1) {\n this.showRadioButtonTool(true);\n }\n else {\n this.showRadioButtonTool(false);\n }\n if (this.pdfViewer.toolbarSettings.formDesignerToolbarItems.indexOf('DropdownTool') !== -1) {\n this.showDropdownTool(true);\n }\n else {\n this.showDropdownTool(false);\n }\n if (this.pdfViewer.toolbarSettings.formDesignerToolbarItems.indexOf('ListboxTool') !== -1) {\n this.showListboxTool(true);\n }\n else {\n this.showListboxTool(false);\n }\n if (this.pdfViewer.toolbarSettings.formDesignerToolbarItems.indexOf('DrawSignatureTool') !== -1) {\n this.showDrawSignatureTool(true);\n }\n else {\n this.showDrawSignatureTool(false);\n }\n if (this.pdfViewer.toolbarSettings.formDesignerToolbarItems.indexOf('DeleteTool') !== -1) {\n this.showDeleteTool(true);\n }\n else {\n this.showDeleteTool(false);\n }\n this.showSeparator();\n }\n };\n FormDesignerToolbar.prototype.showTextboxTool = function (isShow) {\n this.isTextboxBtnVisible = isShow;\n this.applyHideToToolbar(isShow, 0, 0);\n };\n FormDesignerToolbar.prototype.showPasswordTool = function (isShow) {\n this.isPasswordBtnVisible = isShow;\n this.applyHideToToolbar(isShow, 1, 1);\n };\n FormDesignerToolbar.prototype.showCheckboxTool = function (isShow) {\n this.isCheckboxBtnVisible = isShow;\n this.applyHideToToolbar(isShow, 2, 2);\n };\n FormDesignerToolbar.prototype.showRadioButtonTool = function (isShow) {\n this.isRadiobuttonBtnVisible = isShow;\n this.applyHideToToolbar(isShow, 3, 3);\n };\n FormDesignerToolbar.prototype.showDropdownTool = function (isShow) {\n this.isDropdownBtnVisible = isShow;\n this.applyHideToToolbar(isShow, 4, 4);\n };\n FormDesignerToolbar.prototype.showListboxTool = function (isShow) {\n this.isListboxBtnVisible = isShow;\n this.applyHideToToolbar(isShow, 5, 5);\n };\n FormDesignerToolbar.prototype.showDrawSignatureTool = function (isShow) {\n this.isSignatureBtnVisible = isShow;\n this.applyHideToToolbar(isShow, 6, 6);\n };\n FormDesignerToolbar.prototype.showDeleteTool = function (isShow) {\n this.isDeleteBtnVisible = isShow;\n this.applyHideToToolbar(isShow, 8, 8);\n };\n FormDesignerToolbar.prototype.showSeparator = function () {\n if (!this.isSignatureBtnVisible && !this.isDeleteBtnVisible)\n this.applyHideToToolbar(false, 7, 7);\n };\n FormDesignerToolbar.prototype.applyHideToToolbar = function (show, startIndex, endIndex) {\n var isHide = !show;\n for (var index = startIndex; index <= endIndex; index++) {\n this.toolbar.hideItem(index, isHide);\n }\n };\n FormDesignerToolbar.prototype.createDropDowns = function () {\n };\n /**\n * @private\n */\n FormDesignerToolbar.prototype.destroy = function () {\n var componentElement = [this.textboxItem, this.passwordItem, this.checkboxItem, this.radioButtonItem,\n this.listboxItem, this.dropdownItem, this.handWrittenSignatureItem, this.deleteItem];\n for (var i = 0; i < componentElement.length; i++) {\n if (componentElement[i]) {\n this.destroyDependentComponent(componentElement[i]);\n }\n }\n };\n FormDesignerToolbar.prototype.destroyDependentComponent = function (component) {\n if (component.ej2_instances) {\n for (var i = component.ej2_instances.length - 1; i >= 0; i--) {\n component.ej2_instances[i].destroy();\n }\n }\n };\n return FormDesignerToolbar;\n}());\nexport { FormDesignerToolbar };\n","/* eslint-disable */\nimport { createElement, Browser, isBlazor, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { Toolbar as tool } from '@syncfusion/ej2-navigations';\nimport { NumericTextBox } from '@syncfusion/ej2-inputs';\nimport { ComboBox } from '@syncfusion/ej2-dropdowns';\nimport { AnnotationToolbar } from '../index';\nimport { Tooltip } from '@syncfusion/ej2-popups';\nimport { DropDownButton } from '@syncfusion/ej2-splitbuttons';\nimport { FormFieldDataFormat } from '../base/types';\nimport { FormDesignerToolbar } from './formdesigner-toolbar';\n/**\n * Toolbar module\n */\nvar Toolbar = /** @class */ (function () {\n /**\n * @param viewer\n * @param viewerBase\n * @param viewer\n * @param viewerBase\n * @private\n */\n function Toolbar(viewer, viewerBase) {\n var _this = this;\n this.isPageNavigationToolDisabled = false;\n this.isMagnificationToolDisabled = false;\n /**\n * @private\n */\n this.isSelectionToolDisabled = false;\n this.isScrollingToolDisabled = false;\n this.isOpenBtnVisible = true;\n this.isNavigationToolVisible = true;\n this.isMagnificationToolVisible = true;\n this.isSelectionBtnVisible = true;\n this.isScrollingBtnVisible = true;\n this.isDownloadBtnVisible = true;\n this.isPrintBtnVisible = true;\n this.isSearchBtnVisible = true;\n this.isTextSearchBoxDisplayed = false;\n this.isUndoRedoBtnsVisible = true;\n this.isAnnotationEditBtnVisible = true;\n this.isFormDesignerEditBtnVisible = true;\n this.isCommentBtnVisible = true;\n this.isSubmitbtnvisible = true;\n this.onToolbarKeydown = function (event) {\n var targetId = event.target.id;\n if (!(targetId === _this.pdfViewer.element.id + '_currentPageInput' || targetId === _this.pdfViewer.element.id + '_zoomDropDown')) {\n event.preventDefault();\n event.stopPropagation();\n }\n };\n this.toolbarClickHandler = function (args) {\n // eslint-disable-next-line max-len\n if (!Browser.isDevice || _this.pdfViewer.enableDesktopMode) {\n if (args.originalEvent.target === _this.zoomDropdownItem.parentElement.childNodes[1] || args.originalEvent.target === _this.zoomDropdownItem.parentElement.childNodes[2]) {\n args.cancel = true;\n }\n else if (args.originalEvent.target.id === _this.pdfViewer.element.id + '_openIcon') {\n var tooltipData = args.originalEvent.target.parentElement.dataset;\n if (tooltipData && tooltipData.tooltipId) {\n var tooltipElement = document.getElementById(tooltipData.tooltipId);\n if (tooltipElement) {\n tooltipElement.style.display = 'none';\n }\n }\n }\n }\n _this.handleToolbarBtnClick(args);\n // eslint-disable-next-line\n var targetElement = args.originalEvent.target;\n if (!Browser.isDevice || _this.pdfViewer.enableDesktopMode) {\n // eslint-disable-next-line max-len\n if (!(args.originalEvent.target === _this.zoomDropdownItem.parentElement.childNodes[1] || args.originalEvent.target === _this.zoomDropdownItem.parentElement.childNodes[2] || args.originalEvent.target === _this.currentPageBoxElement || args.originalEvent.target === _this.textSearchItem.childNodes[0])) {\n if (targetElement.parentElement.id !== _this.pdfViewer.element.id + '_toolbarContainer_nav' && targetElement.id !== _this.pdfViewer.element.id + '_toolbarContainer_nav') {\n args.originalEvent.target.blur();\n _this.pdfViewerBase.focusViewerContainer();\n }\n }\n }\n else {\n args.originalEvent.target.blur();\n _this.pdfViewerBase.focusViewerContainer();\n }\n };\n // eslint-disable-next-line\n this.loadDocument = function (args) {\n // eslint-disable-next-line\n var upoadedFiles = args.target.files;\n if (args.target.files[0] !== null) {\n var uploadedFile = upoadedFiles[0];\n if (uploadedFile) {\n _this.uploadedDocumentName = uploadedFile.name;\n var reader = new FileReader();\n reader.readAsDataURL(uploadedFile);\n // eslint-disable-next-line\n reader.onload = function (e) {\n var uploadedFileUrl = e.currentTarget.result;\n if (isBlazor()) {\n _this.pdfViewer._dotnetInstance.invokeMethodAsync(\"LoadDocumentFromClient\", uploadedFileUrl);\n }\n else {\n _this.pdfViewer.load(uploadedFileUrl, null);\n }\n };\n }\n }\n };\n this.navigateToPage = function (args) {\n if (args.which === 13) {\n // eslint-disable-next-line\n var enteredValue = parseInt(_this.currentPageBoxElement.value);\n if (enteredValue !== null) {\n if (enteredValue > 0 && enteredValue <= _this.pdfViewerBase.pageCount) {\n if (_this.pdfViewer.navigationModule) {\n _this.pdfViewer.navigationModule.goToPage(enteredValue);\n }\n }\n else {\n _this.updateCurrentPage(_this.pdfViewerBase.currentPageNumber);\n }\n }\n else {\n _this.updateCurrentPage(_this.pdfViewerBase.currentPageNumber);\n }\n _this.currentPageBoxElement.blur();\n _this.pdfViewerBase.focusViewerContainer();\n }\n };\n this.textBoxFocusOut = function () {\n // eslint-disable-next-line\n if (_this.currentPageBox.value === null || _this.currentPageBox.value >= _this.pdfViewerBase.pageCount || _this.currentPageBox.value !== _this.pdfViewerBase.currentPageNumber) {\n _this.updateCurrentPage(_this.pdfViewerBase.currentPageNumber);\n }\n };\n this.pdfViewer = viewer;\n this.pdfViewerBase = viewerBase;\n }\n /**\n * @param width\n * @private\n */\n Toolbar.prototype.intializeToolbar = function (width) {\n var toolbarDiv;\n if (!isBlazor()) {\n toolbarDiv = this.createToolbar(width);\n }\n else {\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n toolbarDiv = this.pdfViewer.element.querySelector('.e-pv-toolbar');\n this.toolbarElement = toolbarDiv;\n }\n }\n // eslint-disable-next-line\n var isIE = !!document.documentMode;\n if (isIE) {\n if (isBlazor()) {\n this.pdfViewerBase.blazorUIAdaptor.totalPageElement.classList.add('e-pv-total-page-ms');\n }\n else {\n if (!Browser.isDevice) {\n this.totalPageItem.classList.add('e-pv-total-page-ms');\n }\n }\n }\n this.createFileElement(toolbarDiv);\n this.wireEvent();\n if (!isBlazor()) {\n this.updateToolbarItems();\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n this.applyToolbarSettings();\n this.initialEnableItems();\n this.pdfViewerBase.navigationPane.adjustPane();\n }\n else {\n this.initialEnableItems();\n }\n if (this.pdfViewer.annotationModule) {\n this.annotationToolbarModule = new AnnotationToolbar(this.pdfViewer, this.pdfViewerBase, this);\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n this.annotationToolbarModule.initializeAnnotationToolbar();\n }\n }\n if (this.pdfViewer.formDesignerModule) {\n this.formDesignerToolbarModule = new FormDesignerToolbar(this.pdfViewer, this.pdfViewerBase, this);\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n this.formDesignerToolbarModule.initializeFormDesignerToolbar();\n }\n }\n }\n else {\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n this.initialEnableItems();\n this.pdfViewerBase.navigationPane.adjustPane();\n if (this.pdfViewer.enableToolbar) {\n this.bindOpenIconEvent();\n }\n }\n this.PanElement = document.getElementById(this.pdfViewer.element.id + '_handTool').children[0];\n this.PanElement.classList.add('e-pv-tbar-btn');\n this.SelectToolElement = document.getElementById(this.pdfViewer.element.id + '_selectTool').children[0];\n this.SelectToolElement.classList.add('e-pv-tbar-btn');\n this.CommentElement = document.getElementById(this.pdfViewer.element.id + '_comment').children[0];\n this.CommentElement.classList.add('e-pv-tbar-btn');\n this.annotationToolbarModule = new AnnotationToolbar(this.pdfViewer, this.pdfViewerBase, this);\n if (this.pdfViewer.enableToolbar && this.pdfViewer.enableAnnotationToolbar || (this.pdfViewer.enableDesktopMode && Browser.isDevice)) {\n this.annotationToolbarModule.afterAnnotationToolbarCreationInBlazor();\n }\n }\n return toolbarDiv;\n };\n Toolbar.prototype.bindOpenIconEvent = function () {\n var openElement = document.getElementById(this.pdfViewer.element.id + '_open');\n if (openElement) {\n openElement.addEventListener('click', this.openFileDialogBox.bind(this));\n }\n };\n Toolbar.prototype.InitializeMobileToolbarInBlazor = function () {\n var toolbarDiv;\n toolbarDiv = this.pdfViewer.element.querySelector('.e-pv-mobile-toolbar');\n this.createFileElement(toolbarDiv);\n this.wireEvent();\n };\n /**\n * Shows /hides the toolbar in the PdfViewer\n *\n * @param {boolean} enableToolbar - If set true , its show the Toolbar\n * @returns void\n */\n Toolbar.prototype.showToolbar = function (enableToolbar) {\n var toolbar = this.toolbarElement;\n if (enableToolbar) {\n toolbar.style.display = 'block';\n // eslint-disable-next-line max-len\n if ((Browser.isDevice && !this.pdfViewer.enableDesktopMode) && this.pdfViewer.toolbarModule && this.pdfViewer.toolbarModule.annotationToolbarModule) {\n this.pdfViewer.toolbarModule.annotationToolbarModule.hideMobileAnnotationToolbar();\n }\n }\n else {\n this.pdfViewerBase.toolbarHeight = 0;\n if (enableToolbar) {\n if (Browser.isDevice && this.pdfViewer.toolbarModule.annotationToolbarModule.toolbar) {\n this.annotationToolbarModule.toolbarCreated = false;\n this.annotationToolbarModule.adjustMobileViewer();\n this.pdfViewer.toolbarModule.annotationToolbarModule.toolbar.element.style.display = 'none';\n }\n if (Browser.isDevice && this.annotationToolbarModule.propertyToolbar) {\n this.annotationToolbarModule.propertyToolbar.element.style.display = 'none';\n }\n }\n toolbar.style.display = 'none';\n }\n };\n /**\n * Shows/hides the Navigation toolbar in the PdfViewer\n *\n * @param {boolean} enableNavigationToolbar - If set true , its show the Navigation Toolbar\n * @returns void\n */\n Toolbar.prototype.showNavigationToolbar = function (enableNavigationToolbar) {\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n var navigationToolbar = this.pdfViewerBase.navigationPane.sideBarToolbar;\n var navigationToolbarSplitter = this.pdfViewerBase.navigationPane.sideBarToolbarSplitter;\n if (enableNavigationToolbar) {\n navigationToolbar.style.display = 'block';\n navigationToolbarSplitter.style.display = 'block';\n if (this.pdfViewerBase.navigationPane.isBookmarkOpen || this.pdfViewerBase.navigationPane.isThumbnailOpen) {\n this.pdfViewerBase.navigationPane.clear();\n }\n }\n else {\n navigationToolbar.style.display = 'none';\n navigationToolbarSplitter.style.display = 'none';\n if (this.pdfViewerBase.navigationPane.isBookmarkOpen || this.pdfViewerBase.navigationPane.isThumbnailOpen) {\n this.pdfViewerBase.navigationPane.updateViewerContainerOnClose();\n }\n }\n }\n };\n /**\n * Shows /hides the annotation toolbar in the PdfViewer\n *\n * @param {boolean} enableAnnotationToolbar - If set true , its show the annotation Toolbar\n * @returns void\n */\n Toolbar.prototype.showAnnotationToolbar = function (enableAnnotationToolbar) {\n if (enableAnnotationToolbar) {\n this.annotationToolbarModule.isToolbarHidden = true;\n this.annotationToolbarModule.showAnnotationToolbar();\n }\n else {\n this.annotationToolbarModule.isToolbarHidden = false;\n this.annotationToolbarModule.showAnnotationToolbar();\n }\n };\n /**\n * Shows /hides the the toolbar items in the PdfViewer\n *\n * @param {string[]} items - Defines the toolbar items in the toolbar\n * @param {boolean} isVisible - If set true, then its show the toolbar Items\n * @returns void\n */\n Toolbar.prototype.showToolbarItem = function (items, isVisible) {\n for (var i = 0; i < items.length; i++) {\n switch (items[i]) {\n case 'OpenOption':\n this.showOpenOption(isVisible);\n break;\n case 'PageNavigationTool':\n this.showPageNavigationTool(isVisible);\n break;\n case 'MagnificationTool':\n this.showMagnificationTool(isVisible);\n break;\n case 'SelectionTool':\n this.showSelectionTool(isVisible);\n break;\n case 'PanTool':\n this.showScrollingTool(isVisible);\n break;\n case 'DownloadOption':\n this.showDownloadOption(isVisible);\n break;\n case 'PrintOption':\n this.showPrintOption(isVisible);\n break;\n case 'SearchOption':\n this.showSearchOption(isVisible);\n break;\n case 'UndoRedoTool':\n this.showUndoRedoTool(isVisible);\n break;\n case 'AnnotationEditTool':\n this.showAnnotationEditTool(isVisible);\n break;\n case 'FormDesignerEditTool':\n this.showFormDesignerEditTool(isVisible);\n break;\n case 'CommentTool':\n this.showCommentOption(isVisible);\n break;\n case 'SubmitForm':\n this.showSubmitForm(isVisible);\n break;\n }\n }\n this.applyHideToToolbar(true, 1, 1);\n this.applyHideToToolbar(true, 8, 8);\n this.applyHideToToolbar(true, 12, 12);\n this.applyHideToToolbar(true, 15, 15);\n this.showSeparator(items);\n };\n /**\n * Enables /disables the the toolbar items in the PdfViewer\n *\n * @param {string[]} items - Defines the toolbar items in the toolbar\n * @param {boolean} isEnable - If set true, then its Enable the toolbar Items\n * @returns void\n */\n Toolbar.prototype.enableToolbarItem = function (items, isEnable) {\n for (var i = 0; i < items.length; i++) {\n switch (items[i]) {\n case 'OpenOption':\n this.enableOpenOption(isEnable);\n break;\n case 'PageNavigationTool':\n this.isPageNavigationToolDisabled = isEnable;\n this.enablePageNavigationTool(isEnable);\n break;\n case 'MagnificationTool':\n this.isMagnificationToolDisabled = isEnable;\n this.enableMagnificationTool(isEnable);\n break;\n case 'SelectionTool':\n this.isSelectionToolDisabled = isEnable;\n this.enableSelectionTool(isEnable);\n break;\n case 'PanTool':\n this.isScrollingToolDisabled = isEnable;\n this.enableScrollingTool(isEnable);\n break;\n case 'DownloadOption':\n this.enableDownloadOption(isEnable);\n break;\n case 'PrintOption':\n this.enablePrintOption(isEnable);\n break;\n case 'SearchOption':\n this.enableSearchOption(isEnable);\n break;\n case 'UndoRedoTool':\n this.enableUndoRedoTool(isEnable);\n break;\n case 'AnnotationEditTool':\n this.enableAnnotationEditTool(isEnable);\n break;\n case 'FormDesignerEditTool':\n this.enableFormDesignerEditTool(isEnable);\n break;\n case 'CommentTool':\n this.enableCommentsTool(isEnable);\n break;\n }\n }\n };\n /**\n * @param restrictionSummary\n * @param isEnable\n * @param restrictionSummary\n * @param isEnable\n * @private\n */\n // eslint-disable-next-line\n Toolbar.prototype.DisableToolbarItems = function (restrictionSummary, isEnable) {\n switch (restrictionSummary) {\n case 'Print':\n this.enablePrintOption(isEnable);\n break;\n case 'CopyContent':\n this.isSelectionToolDisabled = isEnable;\n this.enableSelectionTool(isEnable);\n if (isEnable) {\n this.pdfViewerBase.initiateTextSelectMode();\n this.updateInteractionTools(isEnable);\n }\n else {\n this.pdfViewerBase.initiatePanning();\n this.updateInteractionTools(isEnable);\n }\n break;\n case 'EditAnnotations':\n this.enableAnnotationEditTool(isEnable);\n if (this.annotationToolbarModule && !this.annotationToolbarModule.isToolbarHidden) {\n this.annotationToolbarModule.showAnnotationToolbar();\n }\n break;\n }\n };\n Toolbar.prototype.showOpenOption = function (enableOpenOption) {\n this.isOpenBtnVisible = enableOpenOption;\n this.applyHideToToolbar(enableOpenOption, 0, 0);\n };\n Toolbar.prototype.showPageNavigationTool = function (enablePageNavigationTool) {\n this.isNavigationToolVisible = enablePageNavigationTool;\n this.applyHideToToolbar(enablePageNavigationTool, 2, 7);\n };\n Toolbar.prototype.showMagnificationTool = function (enableMagnificationTool) {\n this.isMagnificationToolVisible = enableMagnificationTool;\n this.applyHideToToolbar(enableMagnificationTool, 9, 11);\n };\n Toolbar.prototype.showSelectionTool = function (enableSelectionTool) {\n this.isSelectionBtnVisible = enableSelectionTool;\n this.applyHideToToolbar(enableSelectionTool, 13, 13);\n };\n Toolbar.prototype.showScrollingTool = function (enableScrollingTool) {\n this.isScrollingBtnVisible = enableScrollingTool;\n this.applyHideToToolbar(enableScrollingTool, 14, 14);\n };\n Toolbar.prototype.showDownloadOption = function (enableDownloadOption) {\n this.isDownloadBtnVisible = enableDownloadOption;\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n this.applyHideToToolbar(enableDownloadOption, 26, 26);\n }\n else {\n this.applyHideToToolbar(enableDownloadOption, 5, 5);\n }\n };\n Toolbar.prototype.showPrintOption = function (enablePrintOption) {\n this.isPrintBtnVisible = enablePrintOption;\n this.applyHideToToolbar(enablePrintOption, 25, 25);\n };\n Toolbar.prototype.showSearchOption = function (enableSearchOption) {\n this.isSearchBtnVisible = enableSearchOption;\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n this.applyHideToToolbar(enableSearchOption, 22, 22);\n }\n else {\n this.applyHideToToolbar(enableSearchOption, 5, 5);\n }\n };\n Toolbar.prototype.showUndoRedoTool = function (isEnable) {\n this.isUndoRedoBtnsVisible = isEnable;\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n this.applyHideToToolbar(isEnable, 16, 17);\n }\n else {\n this.applyHideToToolbar(isEnable, 2, 3);\n }\n };\n Toolbar.prototype.showCommentOption = function (isEnable) {\n if (!this.pdfViewer.enableStickyNotesAnnotation) {\n this.isCommentBtnVisible = isEnable;\n this.applyHideToToolbar(this.pdfViewer.enableStickyNotesAnnotation, 18, 19);\n }\n else {\n this.isCommentBtnVisible = isEnable;\n this.applyHideToToolbar(isEnable, 18, 19);\n }\n };\n Toolbar.prototype.showAnnotationEditTool = function (isEnable) {\n this.isAnnotationEditBtnVisible = isEnable;\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n this.applyHideToToolbar(isEnable, 23, 23);\n }\n else {\n this.applyHideToToolbar(isEnable, 4, 4);\n }\n };\n Toolbar.prototype.showFormDesignerEditTool = function (isEnable) {\n this.isFormDesignerEditBtnVisible = isEnable;\n this.applyHideToToolbar(isEnable, 24, 24);\n };\n Toolbar.prototype.showSubmitForm = function (isEnable) {\n this.isSubmitbtnvisible = isEnable;\n this.applyHideToToolbar(isEnable, 20, 21);\n };\n Toolbar.prototype.enableOpenOption = function (enableOpenOption) {\n this.toolbar.enableItems(this.openDocumentItem.parentElement, enableOpenOption);\n };\n Toolbar.prototype.enablePageNavigationTool = function (enablePageNavigationTool) {\n this.toolbar.enableItems(this.firstPageItem.parentElement, enablePageNavigationTool);\n this.toolbar.enableItems(this.previousPageItem.parentElement, enablePageNavigationTool);\n this.toolbar.enableItems(this.nextPageItem.parentElement, enablePageNavigationTool);\n this.toolbar.enableItems(this.lastPageItem.parentElement, enablePageNavigationTool);\n this.currentPageBox.readonly = !enablePageNavigationTool;\n };\n Toolbar.prototype.enableMagnificationTool = function (enableMagnificationTool) {\n this.toolbar.enableItems(this.zoomInItem.parentElement, enableMagnificationTool);\n this.toolbar.enableItems(this.zoomOutItem.parentElement, enableMagnificationTool);\n this.zoomDropDown.readonly = !enableMagnificationTool;\n };\n Toolbar.prototype.enableSelectionTool = function (enableSelectionTool) {\n if (this.textSelectItem && this.textSelectItem.parentElement) {\n this.toolbar.enableItems(this.textSelectItem.parentElement, enableSelectionTool);\n }\n };\n Toolbar.prototype.enableScrollingTool = function (enableScrollingTool) {\n this.toolbar.enableItems(this.panItem.parentElement, enableScrollingTool);\n };\n Toolbar.prototype.enableDownloadOption = function (enableDownloadOption) {\n this.toolbar.enableItems(this.downloadItem.parentElement, enableDownloadOption);\n };\n Toolbar.prototype.enablePrintOption = function (enablePrintOption) {\n this.toolbar.enableItems(this.printItem.parentElement, enablePrintOption);\n };\n Toolbar.prototype.enableSearchOption = function (enableSearchOption) {\n this.toolbar.enableItems(this.textSearchItem.parentElement, enableSearchOption);\n };\n Toolbar.prototype.enableUndoRedoTool = function (isEnable) {\n this.toolbar.enableItems(this.undoItem.parentElement, isEnable);\n this.toolbar.enableItems(this.redoItem.parentElement, isEnable);\n };\n Toolbar.prototype.enableAnnotationEditTool = function (isEnable) {\n this.toolbar.enableItems(this.annotationItem.parentElement, isEnable);\n };\n Toolbar.prototype.enableFormDesignerEditTool = function (isEnable) {\n this.toolbar.enableItems(this.formDesignerItem.parentElement, isEnable);\n };\n Toolbar.prototype.enableCommentsTool = function (isEnable) {\n if (this.pdfViewer.enableStickyNotesAnnotation) {\n this.toolbar.enableItems(this.annotationItem.parentElement, isEnable);\n }\n };\n /**\n * @private\n */\n Toolbar.prototype.resetToolbar = function () {\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n this.currentPageBox.min = 0;\n this.currentPageBox.value = 0;\n this.updateTotalPage();\n this.updateToolbarItems();\n if (this.annotationToolbarModule) {\n this.annotationToolbarModule.clear();\n }\n else {\n if (this.annotationToolbarModule) {\n if (this.annotationToolbarModule.propertyToolbar) {\n this.annotationToolbarModule.propertyToolbar.destroy();\n }\n // eslint:disable-next-line\n var commentsContainer = document.getElementById(this.pdfViewer.element.id + '_commentscontentcontainer');\n if (commentsContainer) {\n commentsContainer.innerHTML = '';\n }\n }\n }\n }\n };\n /**\n * @private\n */\n Toolbar.prototype.updateToolbarItems = function () {\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n if (this.toolbar) {\n if (this.pdfViewerBase.pageCount === 0) {\n this.toolbar.enableItems(this.downloadItem.parentElement, false);\n this.toolbar.enableItems(this.printItem.parentElement, false);\n this.toolbar.enableItems(this.commentItem.parentElement, false);\n this.updateUndoRedoButtons();\n this.updateNavigationButtons();\n this.toolbar.enableItems(this.zoomInItem.parentElement, false);\n this.toolbar.enableItems(this.zoomOutItem.parentElement, false);\n if (this.pdfViewer.magnificationModule) {\n this.zoomDropDown.readonly = true;\n }\n this.toolbar.enableItems(this.submitItem.parentElement, false);\n this.toolbar.enableItems(this.pdfViewerBase.getElement('_currentPageInputContainer'), false);\n this.toolbar.enableItems(this.pdfViewerBase.getElement('_zoomDropDownContainer'), false);\n this.toolbar.enableItems(this.textSelectItem.parentElement, false);\n this.toolbar.enableItems(this.annotationItem.parentElement, false);\n this.toolbar.enableItems(this.formDesignerItem.parentElement, false);\n this.toolbar.enableItems(this.panItem.parentElement, false);\n this.toolbar.enableItems(this.textSearchItem.parentElement, false);\n this.deSelectItem(this.annotationItem);\n if (this.annotationToolbarModule) {\n this.annotationToolbarModule.resetToolbar();\n }\n this.deSelectItem(this.formDesignerItem);\n if (this.formDesignerToolbarModule) {\n this.formDesignerToolbarModule.resetFormDesignerToolbar();\n }\n }\n else if (this.pdfViewerBase.pageCount > 0) {\n var obj = this.pdfViewerBase.getElement('_currentPageInputContainer');\n if (obj) {\n this.toolbar.enableItems(this.downloadItem.parentElement, true);\n this.toolbar.enableItems(this.printItem.parentElement, true);\n this.toolbar.enableItems(this.pdfViewerBase.getElement('_currentPageInputContainer'), true);\n this.toolbar.enableItems(this.pdfViewerBase.getElement('_zoomDropDownContainer'), true);\n this.updateUndoRedoButtons();\n this.updateNavigationButtons();\n this.updateZoomButtons();\n if (this.pdfViewer.magnificationModule) {\n this.zoomDropDown.readonly = false;\n }\n this.updateInteractionItems();\n // modify this condition if new annotation types are added.\n if (this.pdfViewer.annotationModule && this.pdfViewer.enableAnnotation) {\n this.toolbar.enableItems(this.annotationItem.parentElement, true);\n }\n if (this.pdfViewer.formDesignerModule && this.pdfViewer.enableFormDesigner) {\n this.toolbar.enableItems(this.formDesignerItem.parentElement, true);\n }\n if (this.pdfViewer.textSearchModule && this.pdfViewer.enableTextSearch) {\n this.toolbar.enableItems(this.textSearchItem.parentElement, true);\n }\n if (this.pdfViewer.annotationModule && this.pdfViewer.enableStickyNotesAnnotation) {\n this.toolbar.enableItems(this.commentItem.parentElement, true);\n }\n }\n }\n if (this.pdfViewer.toolbarSettings.annotationToolbarItems) {\n // eslint-disable-next-line max-len\n if (this.pdfViewer.toolbarSettings.annotationToolbarItems.length === 0 || !this.pdfViewer.annotationModule || !this.pdfViewer.enableAnnotationToolbar) {\n this.enableToolbarItem(['AnnotationEditTool'], false);\n }\n }\n if (this.pdfViewer.toolbarSettings.formDesignerToolbarItems) {\n // eslint-disable-next-line max-len\n if (this.pdfViewer.toolbarSettings.formDesignerToolbarItems.length === 0 || !this.pdfViewer.formDesignerModule || !this.pdfViewer.enableFormDesignerToolbar) {\n this.enableToolbarItem(['FormDesignerEditTool'], false);\n }\n }\n if (!this.pdfViewer.enableDownload) {\n this.enableDownloadOption(false);\n }\n if (!this.pdfViewer.enablePrint) {\n this.enablePrintOption(false);\n }\n }\n }\n else {\n if (this.pdfViewerBase.pageCount === 0) {\n this.toolbar.enableItems(this.textSearchItem.parentElement, false);\n this.toolbar.enableItems(this.moreOptionItem.parentElement, false);\n this.toolbar.enableItems(this.annotationItem.parentElement, false);\n }\n else if (this.pdfViewerBase.pageCount > 0) {\n this.toolbar.enableItems(this.textSearchItem.parentElement, true);\n this.toolbar.enableItems(this.moreOptionItem.parentElement, true);\n if (this.pdfViewer.annotationModule && this.pdfViewer.enableAnnotation) {\n this.toolbar.enableItems(this.annotationItem.parentElement, true);\n }\n if (!this.pdfViewer.annotationModule || !this.pdfViewer.enableAnnotationToolbar) {\n this.enableToolbarItem(['AnnotationEditTool'], false);\n }\n this.updateUndoRedoButtons();\n }\n }\n };\n /**\n * @private\n */\n Toolbar.prototype.updateNavigationButtons = function () {\n if (this.pdfViewer.navigationModule && !this.isPageNavigationToolDisabled) {\n if (this.pdfViewerBase.pageCount === 0 || (this.pdfViewerBase.currentPageNumber === 1 && this.pdfViewerBase.pageCount === 1)) {\n this.toolbar.enableItems(this.firstPageItem.parentElement, false);\n this.toolbar.enableItems(this.previousPageItem.parentElement, false);\n this.toolbar.enableItems(this.nextPageItem.parentElement, false);\n this.toolbar.enableItems(this.lastPageItem.parentElement, false);\n }\n else if (this.pdfViewerBase.currentPageNumber === 1 && this.pdfViewerBase.pageCount > 0) {\n this.toolbar.enableItems(this.firstPageItem.parentElement, false);\n this.toolbar.enableItems(this.previousPageItem.parentElement, false);\n this.toolbar.enableItems(this.nextPageItem.parentElement, true);\n this.toolbar.enableItems(this.lastPageItem.parentElement, true);\n }\n else if (this.pdfViewerBase.currentPageNumber === this.pdfViewerBase.pageCount && this.pdfViewerBase.pageCount > 0) {\n this.toolbar.enableItems(this.firstPageItem.parentElement, true);\n this.toolbar.enableItems(this.previousPageItem.parentElement, true);\n this.toolbar.enableItems(this.nextPageItem.parentElement, false);\n this.toolbar.enableItems(this.lastPageItem.parentElement, false);\n }\n else if (this.pdfViewerBase.currentPageNumber > 1 && this.pdfViewerBase.currentPageNumber < this.pdfViewerBase.pageCount) {\n this.toolbar.enableItems(this.firstPageItem.parentElement, true);\n this.toolbar.enableItems(this.previousPageItem.parentElement, true);\n this.toolbar.enableItems(this.nextPageItem.parentElement, true);\n this.toolbar.enableItems(this.lastPageItem.parentElement, true);\n }\n }\n else {\n this.toolbar.enableItems(this.firstPageItem.parentElement, false);\n this.toolbar.enableItems(this.previousPageItem.parentElement, false);\n this.toolbar.enableItems(this.nextPageItem.parentElement, false);\n this.toolbar.enableItems(this.lastPageItem.parentElement, false);\n this.currentPageBox.readonly = true;\n }\n };\n /**\n * @private\n */\n Toolbar.prototype.updateZoomButtons = function () {\n // eslint-disable-next-line max-len\n if (this.pdfViewer.magnificationModule && !this.isMagnificationToolDisabled && (!Browser.isDevice || this.pdfViewer.enableDesktopMode)) {\n if (this.pdfViewer.magnificationModule.zoomFactor <= 0.1) {\n this.toolbar.enableItems(this.zoomInItem.parentElement, true);\n this.toolbar.enableItems(this.zoomOutItem.parentElement, false);\n }\n else if (this.pdfViewer.magnificationModule.zoomFactor >= 4) {\n this.toolbar.enableItems(this.zoomInItem.parentElement, false);\n this.toolbar.enableItems(this.zoomOutItem.parentElement, true);\n }\n else {\n this.toolbar.enableItems(this.zoomInItem.parentElement, true);\n this.toolbar.enableItems(this.zoomOutItem.parentElement, true);\n }\n }\n };\n /**\n * @private\n */\n Toolbar.prototype.updateUndoRedoButtons = function () {\n if (this.pdfViewer.annotationModule) {\n if (this.pdfViewerBase.pageCount > 0) {\n if (isBlazor()) {\n this.enableCollectionAvailableInBlazor(this.pdfViewer.annotationModule.actionCollection, 'undo');\n this.enableCollectionAvailableInBlazor(this.pdfViewer.annotationModule.redoCollection, 'redo');\n }\n else {\n this.enableCollectionAvailable(this.pdfViewer.annotationModule.actionCollection, this.undoItem.parentElement);\n this.enableCollectionAvailable(this.pdfViewer.annotationModule.redoCollection, this.redoItem.parentElement);\n }\n }\n else {\n if (isBlazor()) {\n //this.pdfViewer._dotnetInstance.invokeMethodAsync('DisableUndoRedoButton', null);\n this.pdfViewerBase.blazorUIAdaptor.disableUndoRedoButton();\n }\n else {\n this.disableUndoRedoButtons();\n }\n }\n }\n else {\n if (isBlazor()) {\n //this.pdfViewer._dotnetInstance.invokeMethodAsync('DisableUndoRedoButton', null);\n this.pdfViewerBase.blazorUIAdaptor.disableUndoRedoButton();\n }\n else {\n this.disableUndoRedoButtons();\n }\n }\n };\n // eslint-disable-next-line\n Toolbar.prototype.enableCollectionAvailable = function (collection, item) {\n if (collection.length > 0) {\n this.toolbar.enableItems(item, true);\n }\n else {\n this.toolbar.enableItems(item, false);\n }\n };\n // eslint-disable-next-line\n Toolbar.prototype.enableCollectionAvailableInBlazor = function (collection, item) {\n if (collection.length > 0) {\n //this.pdfViewer._dotnetInstance.invokeMethodAsync('UpdateUndoRedoButton', item, true);\n this.pdfViewerBase.blazorUIAdaptor.updateUndoRedoButton(item, true);\n }\n else {\n // this.pdfViewer._dotnetInstance.invokeMethodAsync('UpdateUndoRedoButton', item, false);\n this.pdfViewerBase.blazorUIAdaptor.updateUndoRedoButton(item, false);\n }\n };\n Toolbar.prototype.disableUndoRedoButtons = function () {\n this.toolbar.enableItems(this.undoItem.parentElement, false);\n this.toolbar.enableItems(this.redoItem.parentElement, false);\n };\n /**\n * @private\n */\n Toolbar.prototype.destroy = function () {\n if (!isBlazor()) {\n this.unWireEvent();\n this.destroyComponent();\n if (this.moreDropDown) {\n this.moreDropDown.destroy();\n }\n if (this.annotationToolbarModule) {\n this.annotationToolbarModule.destroy();\n }\n if (this.formDesignerToolbarModule) {\n this.formDesignerToolbarModule.destroy();\n }\n if (this.toolbar) {\n this.toolbar.destroy();\n }\n this.toolbarElement.parentElement.removeChild(this.toolbarElement);\n }\n };\n Toolbar.prototype.destroyComponent = function () {\n // eslint-disable-next-line\n var componentElement = [this.openDocumentItem, this.firstPageItem, this.previousPageItem, this.nextPageItem,\n this.lastPageItem, this.currentPageBoxElement, this.zoomOutItem, this.zoomInItem, this.zoomDropdownItem, this.textSelectItem,\n this.panItem, this.submitItem, this.undoItem, this.redoItem, this.commentItem, this.textSearchItem, this.annotationItem,\n this.formDesignerItem, this.printItem, this.downloadItem];\n for (var i = 0; i < componentElement.length; i++) {\n if (componentElement[i]) {\n this.destroyDependentComponent(componentElement[i]);\n }\n }\n };\n Toolbar.prototype.destroyDependentComponent = function (component) {\n if (component.ej2_instances) {\n for (var i = component.ej2_instances.length - 1; i >= 0; i--) {\n component.ej2_instances[i].destroy();\n }\n }\n };\n /**\n * @param pageIndex\n * @private\n */\n Toolbar.prototype.updateCurrentPage = function (pageIndex) {\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n if (!isBlazor()) {\n if (!isNullOrUndefined(this.currentPageBox)) {\n if (this.currentPageBox.value === pageIndex) {\n this.currentPageBoxElement.value = pageIndex.toString();\n }\n this.currentPageBox.value = pageIndex;\n }\n }\n else {\n //this.pdfViewer._dotnetInstance.invokeMethodAsync('OnPageChanged', pageIndex);\n this.pdfViewerBase.blazorUIAdaptor.pageChanged(pageIndex);\n }\n this.pdfViewerBase.currentPageNumber = pageIndex;\n this.pdfViewer.currentPageNumber = pageIndex;\n }\n else {\n this.pdfViewerBase.mobileSpanContainer.innerHTML = pageIndex.toString();\n this.pdfViewerBase.mobilecurrentPageContainer.innerHTML = pageIndex.toString();\n }\n };\n /**\n * @private\n */\n Toolbar.prototype.updateTotalPage = function () {\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n if (this.pdfViewerBase.pageCount > 0) {\n if (!isNullOrUndefined(this.currentPageBox))\n this.currentPageBox.min = 1;\n }\n if (!isNullOrUndefined(this.totalPageItem))\n this.totalPageItem.textContent = this.pdfViewer.localeObj.getConstant('of') + this.pdfViewerBase.pageCount.toString();\n }\n };\n /**\n * @param event\n * @private\n */\n Toolbar.prototype.openFileDialogBox = function (event) {\n event.preventDefault();\n this.fileInputElement.click();\n };\n Toolbar.prototype.createToolbar = function (controlWidth) {\n var _this = this;\n // eslint-disable-next-line max-len\n this.toolbarElement = createElement('div', { id: this.pdfViewer.element.id + '_toolbarContainer', className: 'e-pv-toolbar' });\n this.pdfViewerBase.viewerMainContainer.appendChild(this.toolbarElement);\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n this.toolbar = new tool({\n clicked: this.toolbarClickHandler, width: '', height: '', overflowMode: 'Popup', cssClass: 'e-pv-toolbar-scroll',\n items: this.createToolbarItems(), created: function () {\n _this.createZoomDropdown();\n _this.createNumericTextBox();\n _this.toolbar.refreshOverflow();\n }\n });\n this.toolbar.isStringTemplate = true;\n if (this.pdfViewer.enableRtl) {\n this.toolbar.enableRtl = true;\n }\n this.toolbar.appendTo(this.toolbarElement);\n this.applyToolbarSettings();\n this.afterToolbarCreation();\n this.updateTotalPage();\n this.toolbarElement.addEventListener('keydown', this.onToolbarKeydown);\n this.toolbarElement.setAttribute('aria-label', 'Toolbar');\n }\n else {\n this.createToolbarItemsForMobile();\n this.afterToolbarCreationInMobile();\n if (this.pdfViewer.enableRtl) {\n this.toolbar.enableRtl = true;\n }\n this.applyToolbarSettingsForMobile();\n this.disableUndoRedoButtons();\n }\n return this.toolbarElement;\n };\n // eslint-disable-next-line\n Toolbar.prototype.createToolbarItems = function () {\n var currentPageInputTemplate = this.createCurrentPageInputTemplate();\n var totalPageTemplate = this.createTotalPageTemplate();\n var zoomDropDownTemplateString = this.createZoomDropdownElement();\n // eslint-disable-next-line\n var items = [];\n var submitButton = '';\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-open-document-icon e-pv-icon', cssClass: 'e-pv-open-document-container', id: this.pdfViewer.element.id + '_open', text: this.pdfViewer.localeObj.getConstant('Open text'), align: 'Left' });\n items.push({ type: 'Separator', align: 'Left', cssClass: 'e-pv-open-separator-container' });\n if (!this.pdfViewer.enableRtl) {\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-first-page-navigation-icon e-pv-icon', cssClass: 'e-pv-first-page-navigation-container', id: this.pdfViewer.element.id + '_firstPage', text: this.pdfViewer.localeObj.getConstant('First text'), align: 'Left' });\n items.push({ prefixIcon: 'e-pv-previous-page-navigation-icon e-pv-icon', cssClass: 'e-pv-previous-page-navigation-container', id: this.pdfViewer.element.id + '_previousPage', text: this.pdfViewer.localeObj.getConstant('Previous text'), align: 'Left' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-next-page-navigation-icon e-pv-icon', cssClass: 'e-pv-next-page-navigation-container', id: this.pdfViewer.element.id + '_nextPage', text: this.pdfViewer.localeObj.getConstant('Next text'), align: 'Left' });\n items.push({ prefixIcon: 'e-pv-last-page-navigation-icon e-pv-icon', cssClass: 'e-pv-last-page-navigation-container', id: this.pdfViewer.element.id + '_lastPage', text: this.pdfViewer.localeObj.getConstant('Last text'), align: 'Left' });\n items.push({ template: currentPageInputTemplate, align: 'Left', cssClass: 'e-pv-current-page-container' });\n items.push({ template: totalPageTemplate, align: 'Left', cssClass: 'e-pv-total-page-container' });\n }\n else {\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-last-page-navigation-icon e-pv-icon', cssClass: 'e-pv-last-page-navigation-container', id: this.pdfViewer.element.id + '_firstPage', text: this.pdfViewer.localeObj.getConstant('First text'), align: 'Left' });\n items.push({ prefixIcon: 'e-pv-next-page-navigation-icon e-pv-icon', cssClass: 'e-pv-next-page-navigation-container', id: this.pdfViewer.element.id + '_previousPage', text: this.pdfViewer.localeObj.getConstant('Previous text'), align: 'Left' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-previous-page-navigation-icon e-pv-icon', cssClass: 'e-pv-previous-page-navigation-container', id: this.pdfViewer.element.id + '_nextPage', text: this.pdfViewer.localeObj.getConstant('Next text'), align: 'Left' });\n items.push({ prefixIcon: 'e-pv-first-page-navigation-icon e-pv-icon', cssClass: 'e-pv-first-page-navigation-container', id: this.pdfViewer.element.id + '_lastPage', text: this.pdfViewer.localeObj.getConstant('Last text'), align: 'Left' });\n items.push({ template: totalPageTemplate, align: 'Left', cssClass: 'e-pv-total-page-container' });\n items.push({ template: currentPageInputTemplate, align: 'Left', cssClass: 'e-pv-current-page-container' });\n }\n items.push({ type: 'Separator', align: 'Left', cssClass: 'e-pv-navigation-separator-container' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-zoom-out-icon e-pv-icon', cssClass: 'e-pv-zoom-out-container', id: this.pdfViewer.element.id + '_zoomOut', text: this.pdfViewer.localeObj.getConstant('Zoom out text'), align: 'Left' });\n items.push({ prefixIcon: 'e-pv-zoom-in-icon e-pv-icon', cssClass: 'e-pv-zoom-in-container', id: this.pdfViewer.element.id + '_zoomIn', text: this.pdfViewer.localeObj.getConstant('Zoom in text'), align: 'Left' });\n items.push({ template: zoomDropDownTemplateString, cssClass: 'e-pv-zoom-drop-down-container', align: 'Left' });\n items.push({ type: 'Separator', align: 'Left', cssClass: 'e-pv-magnification-separator-container' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-text-select-tool-icon e-pv-icon', cssClass: 'e-pv-text-select-tool-container', id: this.pdfViewer.element.id + '_selectTool', text: this.pdfViewer.localeObj.getConstant('Selection text') });\n items.push({ prefixIcon: 'e-pv-pan-tool-icon e-pv-icon', cssClass: 'e-pv-pan-tool-container', id: this.pdfViewer.element.id + '_handTool', text: this.pdfViewer.localeObj.getConstant('Pan text') });\n items.push({ type: 'Separator', align: 'Left', cssClass: 'e-pv-pan-separator-container' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-undo-icon e-pv-icon', cssClass: 'e-pv-undo-container', id: this.pdfViewer.element.id + '_undo', text: this.pdfViewer.localeObj.getConstant('Undo'), align: 'Left' });\n items.push({ prefixIcon: 'e-pv-redo-icon e-pv-icon', cssClass: 'e-pv-redo-container', id: this.pdfViewer.element.id + '_redo', text: this.pdfViewer.localeObj.getConstant('Redo'), align: 'Left' });\n items.push({ type: 'Separator', align: 'Left', cssClass: 'e-pv-undo-separator-container' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-comment-icon e-pv-icon', cssClass: 'e-pv-comment-container', id: this.pdfViewer.element.id + '_comment', text: this.pdfViewer.localeObj.getConstant('Add Comments'), align: 'Left' });\n items.push({ type: 'Separator', align: 'Left', cssClass: 'e-pv-comment-separator-container' });\n items.push({ template: submitButton, cssClass: 'e-pv-submit', align: 'Left' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-text-search-icon e-pv-icon', cssClass: 'e-pv-text-search-container', id: this.pdfViewer.element.id + '_search', text: this.pdfViewer.localeObj.getConstant('Search text'), align: 'Right' });\n items.push({ prefixIcon: 'e-pv-annotation-icon e-pv-icon', cssClass: 'e-pv-annotation-container', id: this.pdfViewer.element.id + '_annotation', text: this.pdfViewer.localeObj.getConstant('Annotation Edit text'), align: 'Right' });\n items.push({ prefixIcon: 'e-pv-formdesigner-icon e-pv-icon', cssClass: 'e-pv-formdesigner-container', id: this.pdfViewer.element.id + '_formdesigner', text: this.pdfViewer.localeObj.getConstant('FormDesigner Edit text'), align: 'Right' });\n // eslint-disable-next-line max-len\n items.push({ prefixIcon: 'e-pv-print-document-icon e-pv-icon', cssClass: 'e-pv-print-document-container', id: this.pdfViewer.element.id + '_print', text: this.pdfViewer.localeObj.getConstant('Print text'), align: 'Right' });\n items.push({ prefixIcon: 'e-pv-download-document-icon e-pv-icon', cssClass: 'e-pv-download-document-container', id: this.pdfViewer.element.id + '_download', text: this.pdfViewer.localeObj.getConstant('Download'), align: 'Right' });\n return items;\n };\n Toolbar.prototype.afterToolbarCreationInMobile = function () {\n this.itemsContainer = this.toolbar.element.childNodes[0];\n this.itemsContainer.id = this.pdfViewer.element.id + '_toolbarItemsContainer';\n this.openDocumentItem = this.addClassToolbarItem('_open', 'e-pv-open-document', this.pdfViewer.localeObj.getConstant('Open'));\n this.undoItem = this.addClassToolbarItem('_undo', 'e-pv-undo', this.pdfViewer.localeObj.getConstant('Undo'));\n this.redoItem = this.addClassToolbarItem('_redo', 'e-pv-redo', this.pdfViewer.localeObj.getConstant('Redo'));\n this.annotationItem = this.addClassToolbarItem('_annotation', 'e-pv-annotation', this.pdfViewer.localeObj.getConstant('Annotation'));\n this.textSearchItem = this.addClassToolbarItem('_search', 'e-pv-text-search', this.pdfViewer.localeObj.getConstant('Text Search'));\n };\n Toolbar.prototype.afterToolbarCreation = function () {\n this.itemsContainer = this.toolbar.element.childNodes[0];\n this.itemsContainer.id = this.pdfViewer.element.id + '_toolbarItemsContainer';\n this.openDocumentItem = this.addClassToolbarItem('_open', 'e-pv-open-document', this.pdfViewer.localeObj.getConstant('Open'));\n this.undoItem = this.addClassToolbarItem('_undo', 'e-pv-undo', this.pdfViewer.localeObj.getConstant('Undo'));\n this.redoItem = this.addClassToolbarItem('_redo', 'e-pv-redo', this.pdfViewer.localeObj.getConstant('Redo'));\n if (!this.pdfViewer.enableRtl) {\n // eslint-disable-next-line max-len\n this.firstPageItem = this.addClassToolbarItem('_firstPage', 'e-pv-first-page-navigation', this.pdfViewer.localeObj.getConstant('Go To First Page'));\n this.previousPageItem = this.addClassToolbarItem('_previousPage', 'e-pv-previous-page-navigation', this.pdfViewer.localeObj.getConstant('Previous Page'));\n // eslint-disable-next-line max-len\n this.nextPageItem = this.addClassToolbarItem('_nextPage', 'e-pv-next-page-navigation', this.pdfViewer.localeObj.getConstant('Next Page'));\n this.lastPageItem = this.addClassToolbarItem('_lastPage', 'e-pv-last-page-navigation', this.pdfViewer.localeObj.getConstant('Go To Last Page'));\n }\n else {\n // eslint-disable-next-line max-len\n this.firstPageItem = this.addClassToolbarItem('_firstPage', 'e-pv-last-page-navigation', this.pdfViewer.localeObj.getConstant('Go To First Page'));\n this.previousPageItem = this.addClassToolbarItem('_previousPage', 'e-pv-next-page-navigation', this.pdfViewer.localeObj.getConstant('Previous Page'));\n // eslint-disable-next-line max-len\n this.nextPageItem = this.addClassToolbarItem('_nextPage', 'e-pv-previous-page-navigation', this.pdfViewer.localeObj.getConstant('Next Page'));\n this.lastPageItem = this.addClassToolbarItem('_lastPage', 'e-pv-first-page-navigation', this.pdfViewer.localeObj.getConstant('Go To Last Page'));\n }\n this.zoomOutItem = this.addClassToolbarItem('_zoomOut', 'e-pv-zoom-out', this.pdfViewer.localeObj.getConstant('Zoom Out'));\n this.zoomInItem = this.addClassToolbarItem('_zoomIn', 'e-pv-zoom-in', this.pdfViewer.localeObj.getConstant('Zoom In'));\n // eslint-disable-next-line max-len\n this.textSelectItem = this.addClassToolbarItem('_selectTool', 'e-pv-text-select-tool', this.pdfViewer.localeObj.getConstant('Text Selection'));\n this.panItem = this.addClassToolbarItem('_handTool', 'e-pv-pan-tool', this.pdfViewer.localeObj.getConstant('Panning'));\n this.commentItem = this.addClassToolbarItem('_comment', 'e-pv-comment', this.pdfViewer.localeObj.getConstant('Add Comments'));\n // eslint-disable-next-line max-len\n this.textSearchItem = this.addClassToolbarItem('_search', 'e-pv-text-search', this.pdfViewer.localeObj.getConstant('Text Search'));\n this.textSearchItem.setAttribute('aria-label', this.pdfViewer.localeObj.getConstant('Search text'));\n this.annotationItem = this.addClassToolbarItem('_annotation', 'e-pv-annotation', this.pdfViewer.localeObj.getConstant('Annotation'));\n this.annotationItem.setAttribute('aria-label', this.pdfViewer.localeObj.getConstant('Annotation Edit text'));\n this.formDesignerItem = this.addClassToolbarItem('_formdesigner', 'e-pv-formdesigner', this.pdfViewer.localeObj.getConstant('FormDesigner'));\n // eslint-disable-next-line max-len\n this.printItem = this.addClassToolbarItem('_print', 'e-pv-print-document', this.pdfViewer.localeObj.getConstant('Print'));\n this.downloadItem = this.addClassToolbarItem('_download', 'e-pv-download-document', this.pdfViewer.localeObj.getConstant('Download file'));\n this.zoomDropdownItem = this.pdfViewerBase.getElement('_zoomDropDown');\n this.createTooltip(this.zoomDropdownItem, this.pdfViewer.localeObj.getConstant('Zoom'));\n this.zoomDropdownItem.setAttribute('aria-label', this.pdfViewer.localeObj.getConstant('Zoom'));\n // eslint-disable-next-line max-len\n this.addPropertiesToolItemContainer(this.zoomDropdownItem.parentElement.parentElement, null, '_zoomDropDownContainer');\n this.pdfViewerBase.getElement('_zoomDropDownContainer').style.minWidth = '';\n this.createTooltip(this.currentPageBoxElement, this.pdfViewer.localeObj.getConstant('Page Number'));\n this.currentPageBoxElement.setAttribute('aria-label', this.pdfViewer.localeObj.getConstant('Page Number'));\n this.submitItem = this.pdfViewerBase.getElement('_submitForm');\n this.addPropertiesToolItemContainer(this.submitItem.parentElement, 'e-pv-submit', '_submitFormContainer');\n this.createTooltip(this.submitItem, this.pdfViewer.localeObj.getConstant('SubmitForm'));\n // eslint-disable-next-line max-len\n this.addPropertiesToolItemContainer(this.currentPageBoxElement.parentElement.parentElement, 'e-pv-current-page-container', '_currentPageInputContainer');\n this.pdfViewerBase.getElement('_currentPageInputContainer').style.minWidth = '20px';\n this.totalPageItem = this.pdfViewerBase.getElement('_totalPage');\n this.addPropertiesToolItemContainer(this.totalPageItem.parentElement, 'e-pv-total-page-container', '_totalPageContainer');\n };\n /**\n * @param idString\n * @param className\n * @param tooltipText\n * @param idString\n * @param className\n * @param tooltipText\n * @private\n */\n Toolbar.prototype.addClassToolbarItem = function (idString, className, tooltipText) {\n var element = this.pdfViewerBase.getElement(idString);\n element.classList.add(className);\n element.classList.add('e-pv-tbar-btn');\n element.setAttribute('aria-label', tooltipText);\n element.parentElement.classList.add(className + '-container');\n element.parentElement.classList.add('e-popup-text');\n element.parentElement.id = this.pdfViewer.element.id + idString + 'Container';\n if (element.childNodes.length > 0) {\n var spanElement = element.childNodes[0];\n spanElement.id = this.pdfViewer.element.id + idString + 'Icon';\n spanElement.classList.remove('e-icons');\n spanElement.classList.remove('e-btn-icon');\n if (this.pdfViewer.enableRtl) {\n spanElement.classList.add('e-right');\n }\n var textElement = element.childNodes[1];\n if (textElement) {\n if (textElement.classList.contains('e-tbar-btn-text')) {\n textElement.id = this.pdfViewer.element.id + idString + 'Text';\n }\n }\n }\n element.style.width = '';\n this.createTooltip(element, tooltipText);\n return element;\n };\n Toolbar.prototype.addPropertiesToolItemContainer = function (element, className, idString) {\n if (className !== null) {\n element.classList.add(className);\n }\n element.classList.add('e-popup-text');\n element.id = this.pdfViewer.element.id + idString;\n };\n Toolbar.prototype.createZoomDropdownElement = function () {\n // eslint-disable-next-line max-len\n var zoomDropdownElement = this.createToolbarItem('input', this.pdfViewer.element.id + '_zoomDropDown', null);\n return zoomDropdownElement.outerHTML;\n };\n Toolbar.prototype.createZoomDropdown = function () {\n // eslint-disable-next-line max-len\n var items = [{ percent: '10%', id: '0' }, { percent: '25%', id: '1' }, { percent: '50%', id: '2' }, { percent: '75%', id: '3' }, { percent: '100%', id: '4' }, { percent: '125%', id: '5' },\n // eslint-disable-next-line max-len\n { percent: '150%', id: '6' }, { percent: '200%', id: '7' }, { percent: '400%', id: '8' }, { percent: this.pdfViewer.localeObj.getConstant('Fit Page'), id: '9' }, { percent: this.pdfViewer.localeObj.getConstant('Fit Width'), id: '10' }, { percent: this.pdfViewer.localeObj.getConstant('Automatic'), id: '11' }\n ];\n // eslint-disable-next-line max-len\n if (!this.pdfViewer.enableRtl) {\n this.zoomDropDown = new ComboBox({ dataSource: items, text: '100%', fields: { text: 'percent', value: 'id' }, readonly: true, cssClass: 'e-pv-zoom-drop-down', popupHeight: '450px', showClearButton: false, open: this.openZoomDropdown.bind(this), select: function (args) {\n if (args.e.type == 'keydown' && args.itemData.text !== this.zoomDropDown.element.value) {\n args.cancel = true;\n }\n }\n });\n }\n else {\n this.zoomDropDown = new ComboBox({ dataSource: items, text: '100%', enableRtl: true, fields: { text: 'percent', value: 'id' }, readonly: true, cssClass: 'e-pv-zoom-drop-down-rtl', popupHeight: '450px', showClearButton: false, open: this.openZoomDropdown.bind(this), select: function (args) {\n if (args.e.type == 'keydown' && args.itemData.text !== this.zoomDropDown.element.value) {\n args.cancel = true;\n }\n }\n });\n }\n this.zoomDropDown.appendTo(this.pdfViewerBase.getElement('_zoomDropDown'));\n };\n Toolbar.prototype.createCurrentPageInputTemplate = function () {\n // eslint-disable-next-line max-len\n var goToPageElement = this.createToolbarItem('input', this.pdfViewer.element.id + '_currentPageInput', null);\n return goToPageElement.outerHTML;\n };\n Toolbar.prototype.createTotalPageTemplate = function () {\n // eslint-disable-next-line max-len\n var totalPageElement = this.createToolbarItem('span', this.pdfViewer.element.id + '_totalPage', 'e-pv-total-page');\n return totalPageElement.outerHTML;\n };\n Toolbar.prototype.createNumericTextBox = function () {\n this.currentPageBox = new NumericTextBox({ value: 0, format: '##', cssClass: 'e-pv-current-page-box', showSpinButton: false });\n this.currentPageBoxElement = this.pdfViewerBase.getElement('_currentPageInput');\n this.currentPageBox.appendTo(this.currentPageBoxElement);\n };\n Toolbar.prototype.createToolbarItemsForMobile = function () {\n this.toolbarElement.classList.add('e-pv-mobile-toolbar');\n var template = '';\n this.toolbar = new tool({\n // eslint-disable-next-line max-len\n items: [{ prefixIcon: 'e-pv-open-document-icon e-pv-icon', tooltipText: this.pdfViewer.localeObj.getConstant('Open'), id: this.pdfViewer.element.id + '_open' },\n { type: 'Separator', align: 'Left' },\n // eslint-disable-next-line max-len\n { prefixIcon: 'e-pv-undo-icon e-pv-icon', tooltipText: this.pdfViewer.localeObj.getConstant('Undo'), id: this.pdfViewer.element.id + '_undo' },\n // eslint-disable-next-line max-len\n { prefixIcon: 'e-pv-redo-icon e-pv-icon', tooltipText: this.pdfViewer.localeObj.getConstant('Redo'), id: this.pdfViewer.element.id + '_redo' },\n // eslint-disable-next-line max-len\n { prefixIcon: 'e-pv-annotation-icon e-pv-icon', cssClass: 'e-pv-annotation-container', tooltipText: this.pdfViewer.localeObj.getConstant('Annotation'), id: this.pdfViewer.element.id + '_annotation', align: 'Right' },\n // eslint-disable-next-line max-len\n { prefixIcon: 'e-pv-text-search-icon e-pv-icon', tooltipText: this.pdfViewer.localeObj.getConstant('Text Search'), id: this.pdfViewer.element.id + '_search', align: 'Right' },\n { template: template, align: 'Right' }\n ], clicked: this.toolbarClickHandler, width: '', height: '', overflowMode: 'Popup'\n });\n this.toolbar.isStringTemplate = true;\n this.toolbar.appendTo(this.toolbarElement);\n this.openDocumentItem = this.pdfViewerBase.getElement('_open');\n this.openDocumentItem.classList.add('e-pv-open-document');\n this.openDocumentItem.firstElementChild.id = this.pdfViewer.element.id + '_openIcon';\n this.annotationItem = this.pdfViewerBase.getElement('_annotation');\n this.annotationItem.classList.add('e-pv-annotation');\n this.annotationItem.firstElementChild.id = this.pdfViewer.element.id + '_annotationIcon';\n this.textSearchItem = this.pdfViewerBase.getElement('_search');\n this.textSearchItem.classList.add('e-pv-text-search');\n this.textSearchItem.firstElementChild.id = this.pdfViewer.element.id + '_searchIcon';\n this.undoItem = this.pdfViewerBase.getElement('_undo');\n this.undoItem.classList.add('e-pv-undo');\n this.redoItem = this.pdfViewerBase.getElement('_redo');\n this.redoItem.classList.add('e-pv-redo');\n this.redoItem.firstElementChild.id = this.pdfViewer.element.id + '_redoIcon';\n this.undoItem.firstElementChild.id = this.pdfViewer.element.id + '_undoIcon';\n this.createMoreOption(this.pdfViewer.element.id + '_more_option');\n };\n Toolbar.prototype.createMoreOption = function (idString) {\n var _this = this;\n this.moreOptionItem = document.getElementById(idString);\n var items = [\n {\n text: this.pdfViewer.localeObj.getConstant('Download'), id: this.pdfViewer.element.id + '_menu_download',\n iconCss: 'e-icons e-pv-download-document-icon e-pv-icon'\n },\n {\n text: this.pdfViewer.localeObj.getConstant('Bookmarks'), id: this.pdfViewer.element.id + '_menu_bookmarks',\n iconCss: 'e-icons e-pv-bookmark-icon e-pv-icon'\n }\n ];\n this.moreDropDown = new DropDownButton({\n items: items, iconCss: 'e-pv-more-icon e-pv-icon', cssClass: 'e-caret-hide',\n open: function (args) {\n var dropdownButtonPosition = _this.moreDropDown.element.getBoundingClientRect();\n // eslint-disable-next-line max-len\n if (!_this.pdfViewer.enableRtl) {\n args.element.parentElement.style.left = dropdownButtonPosition.left + dropdownButtonPosition.width - args.element.parentElement.offsetWidth + 'px';\n }\n }, select: function (args) {\n switch (args.item.id) {\n case _this.pdfViewer.element.id + '_menu_download':\n _this.pdfViewerBase.download();\n break;\n case _this.pdfViewer.element.id + '_menu_bookmarks':\n _this.showToolbar(false);\n _this.pdfViewerBase.navigationPane.createNavigationPaneMobile('bookmarks');\n break;\n default:\n break;\n }\n }, beforeItemRender: function (args) {\n if (args.item.id === _this.pdfViewer.element.id + '_menu_bookmarks') {\n if (!_this.pdfViewer.bookmarkViewModule || !_this.pdfViewer.bookmarkViewModule.bookmarks) {\n args.element.classList.add('e-disabled');\n }\n else {\n args.element.classList.remove('e-disabled');\n }\n }\n }, close: function (args) {\n _this.moreOptionItem.blur();\n _this.pdfViewerBase.focusViewerContainer();\n }\n });\n this.moreDropDown.appendTo('#' + idString);\n };\n Toolbar.prototype.createToolbarItem = function (elementName, id, className) {\n var toolbarItem = createElement(elementName, { id: id });\n if (className !== null) {\n toolbarItem.className = className;\n }\n if (elementName === 'input' && id !== this.pdfViewer.element.id + '_zoomDropDown') {\n toolbarItem.type = 'text';\n }\n return toolbarItem;\n };\n /**\n * @param toolbarItem\n * @param tooltipText\n * @param toolbarItem\n * @param tooltipText\n * @private\n */\n Toolbar.prototype.createTooltip = function (toolbarItem, tooltipText) {\n if (tooltipText !== null) {\n // eslint-disable-next-line\n var tooltip = new Tooltip({ content: tooltipText, opensOn: 'Hover', beforeOpen: this.onTooltipBeforeOpen.bind(this) });\n tooltip.appendTo(toolbarItem);\n }\n };\n Toolbar.prototype.onTooltipBeforeOpen = function (args) {\n if (!this.pdfViewer.toolbarSettings.showTooltip && this.toolbarElement.contains(args.target)) {\n args.cancel = true;\n }\n if (this.annotationToolbarModule) {\n // eslint-disable-next-line max-len\n if (!this.pdfViewer.toolbarSettings.showTooltip && ((this.annotationToolbarModule.toolbarElement && this.annotationToolbarModule.toolbarElement.contains(args.target)) || (this.annotationToolbarModule.shapeToolbarElement && this.annotationToolbarModule.shapeToolbarElement.contains(args.target)))) {\n args.cancel = true;\n }\n }\n if (this.formDesignerToolbarModule) {\n // eslint-disable-next-line max-len\n if (!this.pdfViewer.toolbarSettings.showTooltip && (this.formDesignerToolbarModule.toolbarElement && this.formDesignerToolbarModule.toolbarElement.contains(args.target))) {\n args.cancel = true;\n }\n }\n };\n Toolbar.prototype.createFileElement = function (toolbarElement) {\n if (toolbarElement) {\n if (!isBlazor()) {\n // eslint-disable-next-line max-len\n this.fileInputElement = createElement('input', { id: this.pdfViewer.element.id + '_fileUploadElement', styles: 'position:fixed; left:-100em', attrs: { 'type': 'file' } });\n this.fileInputElement.setAttribute('accept', '.pdf');\n this.fileInputElement.setAttribute('aria-label', 'file upload element');\n }\n else {\n this.fileInputElement = this.pdfViewer.element.querySelector('.e-pv-fileupload-element');\n }\n if (toolbarElement) {\n toolbarElement.appendChild(this.fileInputElement);\n }\n }\n };\n Toolbar.prototype.wireEvent = function () {\n if (this.fileInputElement) {\n this.fileInputElement.addEventListener('change', this.loadDocument);\n }\n if (!isBlazor()) {\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n this.toolbarElement.addEventListener('mouseup', this.toolbarOnMouseup.bind(this));\n this.currentPageBoxElement.addEventListener('focusout', this.textBoxFocusOut);\n this.currentPageBoxElement.addEventListener('keypress', this.navigateToPage);\n this.zoomDropDown.change = this.zoomPercentSelect.bind(this);\n this.zoomDropDown.element.addEventListener('keypress', this.onZoomDropDownInput.bind(this));\n this.zoomDropDown.element.addEventListener('click', this.onZoomDropDownInputClick.bind(this));\n }\n }\n };\n Toolbar.prototype.unWireEvent = function () {\n if (this.fileInputElement) {\n this.fileInputElement.removeEventListener('change', this.loadDocument);\n }\n if ((!Browser.isDevice || this.pdfViewer.enableDesktopMode) && !isBlazor()) {\n if (!isNullOrUndefined(this.toolbarElement)) {\n this.toolbarElement.removeEventListener('mouseup', this.toolbarOnMouseup.bind(this));\n }\n if (!isNullOrUndefined(this.currentPageBoxElement)) {\n this.currentPageBoxElement.removeEventListener('focusout', this.textBoxFocusOut);\n this.currentPageBoxElement.removeEventListener('keypress', this.navigateToPage);\n }\n if (!isNullOrUndefined(this.zoomDropDown)) {\n this.zoomDropDown.removeEventListener('change', this.zoomPercentSelect);\n this.zoomDropDown.element.removeEventListener('keypress', this.onZoomDropDownInput);\n this.zoomDropDown.element.removeEventListener('click', this.onZoomDropDownInputClick);\n }\n }\n };\n /**\n * @param viewerWidth\n * @private\n */\n Toolbar.prototype.onToolbarResize = function (viewerWidth) {\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n this.pdfViewerBase.navigationPane.toolbarResize();\n }\n else {\n if (!isNullOrUndefined(this.toolbar)) {\n this.toolbar.refreshOverflow();\n }\n }\n };\n Toolbar.prototype.toolbarOnMouseup = function (event) {\n if (event.target === this.itemsContainer || event.target === this.toolbarElement) {\n this.pdfViewerBase.focusViewerContainer();\n }\n };\n Toolbar.prototype.applyHideToToolbar = function (show, startIndex, endIndex) {\n var isHide = !show;\n for (var index = startIndex; index <= endIndex; index++) {\n if (this.toolbar.items[index]) {\n var className = this.toolbar.items[index].cssClass;\n if (className && className !== '') {\n // Querying the toolbar item\n var element = this.toolbar.element.querySelector('.' + className);\n if (element) {\n this.toolbar.hideItem(element, isHide);\n }\n }\n else {\n this.toolbar.hideItem(index, isHide);\n }\n }\n }\n };\n Toolbar.prototype.handleOpenIconClick = function (args) {\n this.fileInputElement.click();\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n if (!isBlazor()) {\n args.originalEvent.target.blur();\n }\n this.pdfViewerBase.focusViewerContainer();\n }\n };\n // eslint-disable-next-line\n Toolbar.prototype.handleToolbarBtnClick = function (args) {\n this.addInkAnnotation();\n this.deSelectCommentAnnotation();\n switch (args.originalEvent.target.id) {\n case this.pdfViewer.element.id + '_open':\n case this.pdfViewer.element.id + '_openIcon':\n case this.pdfViewer.element.id + '_openText':\n this.handleOpenIconClick(args);\n break;\n case this.pdfViewer.element.id + '_download':\n case this.pdfViewer.element.id + '_downloadIcon':\n case this.pdfViewer.element.id + '_downloadText':\n this.pdfViewerBase.download();\n break;\n case this.pdfViewer.element.id + '_print':\n case this.pdfViewer.element.id + '_printIcon':\n case this.pdfViewer.element.id + '_printText':\n if (this.pdfViewer.printModule) {\n this.pdfViewer.firePrintStart();\n }\n break;\n case this.pdfViewer.element.id + '_undo':\n case this.pdfViewer.element.id + '_undoIcon':\n case this.pdfViewer.element.id + '_undoText':\n if (this.pdfViewer.annotationModule) {\n this.pdfViewer.annotationModule.undo();\n }\n break;\n case this.pdfViewer.element.id + '_redo':\n case this.pdfViewer.element.id + '_redoIcon':\n case this.pdfViewer.element.id + '_redoText':\n if (this.pdfViewer.annotationModule) {\n this.pdfViewer.annotationModule.redo();\n }\n break;\n case this.pdfViewer.element.id + '_firstPage':\n case this.pdfViewer.element.id + '_firstPageIcon':\n case this.pdfViewer.element.id + '_firstPageText':\n if (this.pdfViewer.navigationModule) {\n this.pdfViewer.navigationModule.goToFirstPage();\n }\n break;\n case this.pdfViewer.element.id + '_previousPage':\n case this.pdfViewer.element.id + '_previousPageIcon':\n case this.pdfViewer.element.id + '_previousPageText':\n if (this.pdfViewer.navigationModule) {\n this.pdfViewer.navigationModule.goToPreviousPage();\n }\n break;\n case this.pdfViewer.element.id + '_nextPage':\n case this.pdfViewer.element.id + '_nextPageIcon':\n case this.pdfViewer.element.id + '_nextPageText':\n if (this.pdfViewer.navigationModule) {\n this.pdfViewer.navigationModule.goToNextPage();\n }\n break;\n case this.pdfViewer.element.id + '_lastPage':\n case this.pdfViewer.element.id + '_lastPageIcon':\n case this.pdfViewer.element.id + '_lastPageText':\n if (this.pdfViewer.navigationModule) {\n this.pdfViewer.navigationModule.goToLastPage();\n }\n break;\n case this.pdfViewer.element.id + '_zoomIn':\n case this.pdfViewer.element.id + '_zoomInIcon':\n case this.pdfViewer.element.id + '_zoomInText':\n this.pdfViewer.magnificationModule.zoomIn();\n break;\n case this.pdfViewer.element.id + '_zoomOut':\n case this.pdfViewer.element.id + '_zoomOutIcon':\n case this.pdfViewer.element.id + '_zoomOutText':\n this.pdfViewer.magnificationModule.zoomOut();\n break;\n case this.pdfViewer.element.id + '_selectTool':\n case this.pdfViewer.element.id + '_selectToolIcon':\n case this.pdfViewer.element.id + '_selectToolText':\n if (!this.isSelectionToolDisabled) {\n this.pdfViewerBase.initiateTextSelectMode();\n this.updateInteractionTools(true);\n }\n break;\n case this.pdfViewer.element.id + '_handTool':\n case this.pdfViewer.element.id + '_handToolIcon':\n case this.pdfViewer.element.id + '_handToolText':\n if (!(this.isScrollingToolDisabled || this.getStampMode())) {\n this.pdfViewerBase.initiatePanning();\n this.updateInteractionTools(false);\n }\n break;\n case this.pdfViewer.element.id + '_search':\n case this.pdfViewer.element.id + '_searchIcon':\n case this.pdfViewer.element.id + '_searchText':\n this.textSearchButtonHandler();\n break;\n case this.pdfViewer.element.id + '_annotation':\n case this.pdfViewer.element.id + '_annotationIcon':\n case this.pdfViewer.element.id + '_annotationText':\n this.initiateAnnotationMode(args.originalEvent.target.id);\n break;\n case this.pdfViewer.element.id + '_formdesigner':\n case this.pdfViewer.element.id + '_formdesignerIcon':\n case this.pdfViewer.element.id + '_formdesignerText':\n this.initiateFormDesignerMode();\n this.formDesignerToolbarModule.showHideDeleteIcon(false);\n break;\n case this.pdfViewer.element.id + '_comment':\n case this.pdfViewer.element.id + '_commentIcon':\n this.pdfViewerBase.isAddComment = true;\n this.pdfViewerBase.isCommentIconAdded = true;\n this.annotationToolbarModule.deselectAllItems();\n this.pdfViewer.annotation.triggerAnnotationUnselectEvent();\n this.addComments(args.originalEvent.target);\n break;\n case this.pdfViewer.element.id + '_submitForm':\n case this.pdfViewer.element.id + '_submitFormSpan':\n var data = void 0;\n this.pdfViewerBase.exportFormFields(data, FormFieldDataFormat.Json);\n break;\n }\n };\n Toolbar.prototype.addInkAnnotation = function () {\n if (this.pdfViewer.annotationModule && this.pdfViewer.annotationModule.inkAnnotationModule) {\n // eslint-disable-next-line\n var currentPageNumber = parseInt(this.pdfViewer.annotationModule.inkAnnotationModule.currentPageNumber);\n this.pdfViewer.annotationModule.inkAnnotationModule.drawInkAnnotation(currentPageNumber);\n }\n if (this.annotationToolbarModule) {\n this.pdfViewer.toolbar.annotationToolbarModule.deselectInkAnnotation();\n this.annotationToolbarModule.inkAnnotationSelected = false;\n }\n };\n Toolbar.prototype.deSelectCommentAnnotation = function () {\n if (!isBlazor()) {\n this.pdfViewer.toolbar.deSelectItem(this.commentItem);\n }\n else {\n this.pdfViewer.toolbar.deSelectItem(this.CommentElement);\n }\n this.pdfViewerBase.isCommentIconAdded = false;\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n Toolbar.prototype.addComments = function (targetElement) {\n if (!isBlazor()) {\n // eslint-disable-next-line max-len\n if (targetElement.id === this.pdfViewer.element.id + '_comment' || targetElement.id === this.pdfViewer.element.id + '_commentIcon') {\n if (targetElement.id === this.pdfViewer.element.id + '_commentIcon' && targetElement.parentElement) {\n targetElement.parentElement.classList.add('e-pv-select');\n }\n else {\n targetElement.classList.add('e-pv-select');\n }\n }\n else {\n if (this.pdfViewer.enableRtl) {\n targetElement.className = 'e-pv-comment-selection-icon e-pv-icon e-icon-left e-right';\n }\n else {\n targetElement.className = 'e-pv-comment-selection-icon e-pv-icon e-icon-left';\n }\n }\n }\n else {\n this.pdfViewerBase.isCommentIconAdded = true;\n this.pdfViewerBase.isAddComment = true;\n this.annotationToolbarModule.deselectAllItemsInBlazor();\n var commentsButton = this.CommentElement;\n commentsButton.classList.add('e-pv-select');\n }\n this.updateStampItems();\n document.getElementById(this.pdfViewer.element.id + '_pageDiv_' + (this.pdfViewerBase.currentPageNumber - 1)).addEventListener('mousedown', this.pdfViewer.annotationModule.stickyNotesAnnotationModule.drawIcons.bind(this));\n };\n Toolbar.prototype.openZoomDropdown = function () {\n var toolbarData = this;\n if (document.fullscreen) {\n if (isBlazor()) {\n // eslint-disable-next-line\n var fullscreenElement = document.fullscreenElement;\n if (fullscreenElement && fullscreenElement.tagName !== 'BODY' && fullscreenElement.tagName !== 'HTML') {\n setTimeout(function () {\n // eslint-disable-next-line\n var popupElement = document.getElementById(toolbarData.pdfViewer.element.id + \"_zoomCombo_popup\");\n var targetElement = document.getElementById(toolbarData.toolbarElement.id);\n // eslint-disable-next-line\n if (popupElement && targetElement && popupElement.ej2_instances) {\n targetElement.appendChild(popupElement);\n popupElement.ej2_instances[0].refreshPosition();\n }\n }, 100);\n }\n }\n else {\n var popupElement = document.getElementById(this.pdfViewer.element.id + \"_zoomDropDown_popup\");\n var targetElement = document.getElementById(this.toolbarElement.id);\n if (popupElement) {\n targetElement.appendChild(popupElement);\n }\n }\n }\n };\n Toolbar.prototype.onZoomDropDownInput = function (event) {\n if ((event.which < 48 || event.which > 57) && event.which !== 8 && event.which !== 13) {\n event.preventDefault();\n return false;\n }\n else {\n if (event.which === 13) {\n event.preventDefault();\n var value = this.zoomDropDown.element.value;\n this.zoomDropDownChange(value);\n }\n return true;\n }\n };\n Toolbar.prototype.onZoomDropDownInputClick = function () {\n this.zoomDropDown.element.select();\n };\n Toolbar.prototype.zoomPercentSelect = function (args) {\n if (this.pdfViewerBase.pageCount > 0) {\n if (args.isInteracted) {\n if (args.itemData) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var zoomText = args.itemData.percent;\n this.zoomDropDownChange(zoomText);\n }\n }\n else {\n this.updateZoomPercentage(this.pdfViewer.magnificationModule.zoomFactor);\n }\n }\n };\n Toolbar.prototype.zoomDropDownChange = function (zoomText) {\n // eslint-disable-next-line max-len\n if (zoomText !== this.pdfViewer.localeObj.getConstant('Fit Width') && zoomText !== this.pdfViewer.localeObj.getConstant('Fit Page') && zoomText !== this.pdfViewer.localeObj.getConstant('Automatic')) {\n this.pdfViewer.magnificationModule.isAutoZoom = false;\n this.pdfViewer.magnificationModule.zoomTo(parseFloat(zoomText));\n this.updateZoomPercentage(this.pdfViewer.magnificationModule.zoomFactor);\n this.zoomDropDown.focusOut();\n }\n else if (zoomText === this.pdfViewer.localeObj.getConstant('Fit Width')) {\n this.pdfViewer.magnificationModule.isAutoZoom = false;\n this.pdfViewer.magnificationModule.fitToWidth();\n this.zoomDropDown.focusOut();\n }\n else if (zoomText === this.pdfViewer.localeObj.getConstant('Fit Page')) {\n this.pdfViewer.magnificationModule.fitToPage();\n this.zoomDropDown.focusOut();\n }\n else if (zoomText === this.pdfViewer.localeObj.getConstant('Automatic')) {\n this.pdfViewer.magnificationModule.isAutoZoom = true;\n this.pdfViewer.magnificationModule.fitToAuto();\n this.zoomDropDown.focusOut();\n }\n };\n /**\n * @param zoomFactor\n * @private\n */\n Toolbar.prototype.updateZoomPercentage = function (zoomFactor) {\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n // eslint-disable-next-line radix\n var currentPercent = parseInt((zoomFactor * 100).toString()) + '%';\n if (isBlazor()) {\n // eslint-disable-next-line\n var blazorZoomDropDown = this.pdfViewerBase.getElement('_zoomDropDown');\n if (blazorZoomDropDown && blazorZoomDropDown.children.length > 0) {\n blazorZoomDropDown.children[0].children[0].value = currentPercent;\n }\n }\n else {\n if (this.zoomDropDown.text === currentPercent) {\n this.zoomDropDown.element.value = currentPercent;\n }\n if (this.zoomDropDown.index === 11) {\n this.zoomDropDown.value = 4;\n }\n if (zoomFactor <= 0.25) {\n this.pdfViewerBase.isMinimumZoom = true;\n }\n else {\n this.pdfViewerBase.isMinimumZoom = false;\n }\n // eslint-disable-next-line\n this.zoomDropDown.text = currentPercent;\n }\n }\n };\n Toolbar.prototype.updateInteractionItems = function () {\n if (this.pdfViewer.textSelectionModule) {\n if (this.pdfViewer.enableTextSelection) {\n this.toolbar.enableItems(this.textSelectItem.parentElement, true);\n }\n else {\n this.toolbar.enableItems(this.textSelectItem.parentElement, false);\n }\n }\n else {\n this.toolbar.enableItems(this.textSelectItem.parentElement, false);\n }\n this.toolbar.enableItems(this.panItem.parentElement, true);\n if (this.pdfViewer.interactionMode === 'TextSelection' && this.pdfViewer.enableTextSelection) {\n this.selectItem(this.textSelectItem);\n this.deSelectItem(this.panItem);\n }\n else {\n this.selectItem(this.panItem);\n this.deSelectItem(this.textSelectItem);\n this.pdfViewerBase.initiatePanning();\n }\n };\n /**\n * @private\n */\n Toolbar.prototype.textSearchButtonHandler = function () {\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n if (this.pdfViewer.textSearchModule && this.pdfViewerBase.pageCount > 0) {\n this.isTextSearchBoxDisplayed = !this.isTextSearchBoxDisplayed;\n this.pdfViewer.textSearchModule.showSearchBox(this.isTextSearchBoxDisplayed);\n if (this.isTextSearchBoxDisplayed) {\n if (!isBlazor()) {\n this.selectItem(this.textSearchItem);\n }\n // eslint-disable-next-line max-len\n var searchInputElement = document.getElementById(this.pdfViewer.element.id + '_search_input');\n searchInputElement.select();\n searchInputElement.focus();\n }\n else {\n if (!isBlazor()) {\n this.deSelectItem(this.textSearchItem);\n this.textSearchItem.blur();\n }\n else {\n var searchItem = this.pdfViewerBase.getElement('_search');\n searchItem.firstElementChild.blur();\n }\n }\n }\n }\n else {\n this.showToolbar(false);\n this.pdfViewerBase.navigationPane.createNavigationPaneMobile('search');\n }\n };\n Toolbar.prototype.initiateAnnotationMode = function (id) {\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n if (this.annotationToolbarModule && this.pdfViewer.enableAnnotationToolbar) {\n this.annotationToolbarModule.showAnnotationToolbar(this.annotationItem);\n this.pdfViewer.toolbarModule.annotationToolbarModule.toolbar.refreshOverflow();\n if (this.pdfViewer.isAnnotationToolbarVisible && this.pdfViewer.isFormDesignerToolbarVisible) {\n var formDesignerMainDiv = document.getElementById(this.pdfViewer.element.id + \"_formdesigner_toolbar\");\n formDesignerMainDiv.style.display = \"none\";\n this.formDesignerToolbarModule.isToolbarHidden = false;\n this.formDesignerToolbarModule.showFormDesignerToolbar(this.formDesignerItem);\n this.annotationToolbarModule.adjustViewer(true);\n }\n }\n }\n else {\n if (!isBlazor()) {\n if (id === this.pdfViewer.element.id + '_annotation') {\n id = this.pdfViewer.element.id + '_annotationIcon';\n }\n this.annotationToolbarModule.createAnnotationToolbarForMobile(id);\n }\n }\n };\n Toolbar.prototype.initiateFormDesignerMode = function () {\n if (this.formDesignerToolbarModule && this.pdfViewer.enableFormDesignerToolbar) {\n this.formDesignerToolbarModule.showFormDesignerToolbar(this.formDesignerItem);\n if (this.pdfViewer.isAnnotationToolbarVisible && this.pdfViewer.isFormDesignerToolbarVisible) {\n var annotationMainDiv = document.getElementById(this.pdfViewer.element.id + \"_annotation_toolbar\");\n annotationMainDiv.style.display = \"none\";\n this.annotationToolbarModule.isToolbarHidden = false;\n this.annotationToolbarModule.showAnnotationToolbar(this.annotationItem);\n this.formDesignerToolbarModule.adjustViewer(true);\n }\n }\n };\n /**\n * @private\n */\n Toolbar.prototype.DisableInteractionTools = function () {\n this.deSelectItem(this.textSelectItem);\n this.deSelectItem(this.panItem);\n };\n /**\n * @param element\n * @private\n */\n Toolbar.prototype.selectItem = function (element) {\n if (element) {\n element.classList.add('e-pv-select');\n }\n };\n /**\n * @param element\n * @private\n */\n Toolbar.prototype.deSelectItem = function (element) {\n if (element) {\n element.classList.remove('e-pv-select');\n }\n };\n /**\n * @param isTextSelect\n * @private\n */\n Toolbar.prototype.updateInteractionTools = function (isTextSelect) {\n var isBlazorPlatform = isBlazor();\n if (isTextSelect) {\n if (isBlazorPlatform) {\n this.selectItem(this.SelectToolElement);\n this.deSelectItem(this.PanElement);\n }\n else {\n this.selectItem(this.textSelectItem);\n this.deSelectItem(this.panItem);\n }\n }\n else {\n if (isBlazorPlatform) {\n this.selectItem(this.PanElement);\n this.deSelectItem(this.SelectToolElement);\n }\n else {\n this.selectItem(this.panItem);\n this.deSelectItem(this.textSelectItem);\n }\n }\n };\n Toolbar.prototype.initialEnableItems = function () {\n if (this.pdfViewer.enableToolbar) {\n this.showToolbar(true);\n }\n else {\n this.showToolbar(false);\n }\n if (this.pdfViewer.enableNavigationToolbar) {\n this.showNavigationToolbar(true);\n }\n else {\n this.showNavigationToolbar(false);\n }\n if (!isBlazor()) {\n if (this.isPrintBtnVisible) {\n this.showPrintOption(true);\n }\n else {\n this.showPrintOption(false);\n }\n if (this.isDownloadBtnVisible) {\n this.showDownloadOption(true);\n }\n else {\n this.showDownloadOption(false);\n }\n if (this.isSearchBtnVisible) {\n this.showSearchOption(true);\n }\n else {\n this.showSearchOption(false);\n }\n if (this.isCommentBtnVisible) {\n this.showCommentOption(true);\n }\n else {\n this.showCommentOption(false);\n }\n }\n };\n Toolbar.prototype.showSeparator = function (toolbarItems) {\n // eslint-disable-next-line max-len\n if (!this.isOpenBtnVisible || (!this.isNavigationToolVisible && !this.isMagnificationToolVisible && !this.isSelectionBtnVisible && !this.isScrollingBtnVisible && !this.isUndoRedoBtnsVisible)) {\n this.applyHideToToolbar(false, 1, 1);\n }\n if (((!this.isNavigationToolVisible && !this.isMagnificationToolVisible) && !this.isOpenBtnVisible) ||\n (this.isOpenBtnVisible && !this.isNavigationToolVisible) ||\n // eslint-disable-next-line max-len\n ((!this.isOpenBtnVisible && !this.isNavigationToolVisible) || (!this.isMagnificationToolVisible && !this.isScrollingBtnVisible && !this.isSelectionBtnVisible))) {\n this.applyHideToToolbar(false, 8, 8);\n }\n if ((!this.isMagnificationToolVisible && !this.isSelectionBtnVisible && !this.isScrollingBtnVisible) ||\n (this.isMagnificationToolVisible && (!this.isSelectionBtnVisible && !this.isScrollingBtnVisible)) ||\n (!this.isMagnificationToolVisible && (this.isSelectionBtnVisible || this.isScrollingBtnVisible))) {\n this.applyHideToToolbar(false, 12, 12);\n }\n if (((!this.isMagnificationToolVisible && !this.isNavigationToolVisible && !this.isScrollingBtnVisible\n && !this.isSelectionBtnVisible) && this.isUndoRedoBtnsVisible || !this.isUndoRedoBtnsVisible)) {\n this.applyHideToToolbar(false, 15, 15);\n }\n };\n /**\n * @private\n */\n Toolbar.prototype.applyToolbarSettings = function () {\n var toolbarSettingsItems = this.pdfViewer.toolbarSettings.toolbarItems;\n if (toolbarSettingsItems) {\n if (toolbarSettingsItems.indexOf('OpenOption') !== -1) {\n this.showOpenOption(true);\n }\n else {\n this.showOpenOption(false);\n }\n if (toolbarSettingsItems.indexOf('PageNavigationTool') !== -1) {\n this.showPageNavigationTool(true);\n }\n else {\n this.showPageNavigationTool(false);\n }\n if (toolbarSettingsItems.indexOf('MagnificationTool') !== -1) {\n this.showMagnificationTool(true);\n }\n else {\n this.showMagnificationTool(false);\n }\n if (toolbarSettingsItems.indexOf('SelectionTool') !== -1) {\n this.showSelectionTool(true);\n }\n else {\n this.showSelectionTool(false);\n }\n if (toolbarSettingsItems.indexOf('PanTool') !== -1) {\n this.showScrollingTool(true);\n }\n else {\n this.showScrollingTool(false);\n }\n if (toolbarSettingsItems.indexOf('PrintOption') !== -1) {\n this.showPrintOption(true);\n }\n else {\n this.showPrintOption(false);\n }\n if (toolbarSettingsItems.indexOf('DownloadOption') !== -1) {\n this.showDownloadOption(true);\n }\n else {\n this.showDownloadOption(false);\n }\n if (toolbarSettingsItems.indexOf('SearchOption') !== -1) {\n this.showSearchOption(true);\n }\n else {\n this.showSearchOption(false);\n }\n if (toolbarSettingsItems.indexOf('UndoRedoTool') !== -1) {\n this.showUndoRedoTool(true);\n }\n else {\n this.showUndoRedoTool(false);\n }\n if (toolbarSettingsItems.indexOf('AnnotationEditTool') !== -1) {\n this.showAnnotationEditTool(true);\n }\n else {\n this.showAnnotationEditTool(false);\n }\n if (toolbarSettingsItems.indexOf('FormDesignerEditTool') !== -1) {\n this.showFormDesignerEditTool(true);\n }\n else {\n this.showFormDesignerEditTool(false);\n }\n if (toolbarSettingsItems.indexOf('CommentTool') !== -1) {\n this.showCommentOption(true);\n }\n else {\n this.showCommentOption(false);\n }\n if (toolbarSettingsItems.indexOf('SubmitForm') !== -1) {\n this.showSubmitForm(true);\n }\n else {\n this.showSubmitForm(false);\n }\n this.showSeparator(toolbarSettingsItems);\n }\n };\n /**\n * @private\n */\n Toolbar.prototype.applyToolbarSettingsForMobile = function () {\n var toolbarSettingsItems = this.pdfViewer.toolbarSettings.toolbarItems;\n if (toolbarSettingsItems) {\n if (toolbarSettingsItems.indexOf('OpenOption') !== -1) {\n this.showOpenOption(true);\n }\n else {\n this.showOpenOption(false);\n }\n if (toolbarSettingsItems.indexOf('UndoRedoTool') !== -1) {\n this.showUndoRedoTool(true);\n }\n else {\n this.showUndoRedoTool(false);\n }\n if (toolbarSettingsItems.indexOf('AnnotationEditTool') !== -1) {\n this.showAnnotationEditTool(true);\n }\n else {\n this.showAnnotationEditTool(false);\n }\n if (toolbarSettingsItems.indexOf('SearchOption') !== -1) {\n this.showSearchOption(true);\n }\n else {\n this.showSearchOption(false);\n }\n }\n };\n Toolbar.prototype.getStampMode = function () {\n if (this.pdfViewer.annotation && this.pdfViewer.annotation.stampAnnotationModule) {\n return this.pdfViewer.annotation.stampAnnotationModule.isStampAddMode;\n }\n else {\n return false;\n }\n };\n // eslint-disable-next-line\n Toolbar.prototype.stampBeforeOpen = function (args) {\n this.annotationToolbarModule.resetFreeTextAnnot();\n if (args.ParentItem.Text === '' && this.pdfViewer.customStampSettings.isAddToMenu && args.Items.length > 0) {\n // eslint-disable-next-line\n var currentElements = null;\n for (var i = 0; i < args.Items.length; i++) {\n if (args.Items[i].Text === 'Custom Stamp') {\n args.Items[i].Items = [];\n currentElements = args.Items[i];\n break;\n }\n }\n // eslint-disable-next-line\n var elements = this.pdfViewerBase.customStampCollection;\n // eslint-disable-next-line\n var stampElements = this.pdfViewer.customStampSettings.customStamps;\n if (elements.length === 0 && stampElements && stampElements.length > 0) {\n for (var n = 0; n < stampElements.length; n++) {\n // eslint-disable-next-line max-len\n elements.push({ customStampName: stampElements[n].customStampName, customStampImageSource: stampElements[n].customStampImageSource });\n }\n }\n for (var m = 0; m < elements.length; m++) {\n if (currentElements != null) {\n currentElements.Items.push({ text: elements[m].customStampName });\n }\n }\n }\n };\n // eslint-disable-next-line\n Toolbar.prototype.stampBeforeClose = function (args, showItemOnClick) {\n // eslint-disable-next-line max-len\n if ((args.ParentItem && args.ParentItem.Text !== 'Custom Stamp' && args.ParentItem.Text !== 'Standard Business' && args.ParentItem.Text !== 'Dynamic' && args.ParentItem.Text !== 'Sign Here') || !args.ParentItem) {\n showItemOnClick = true;\n }\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n Toolbar.prototype.updateStampItems = function () {\n if (this.pdfViewer.annotationModule && this.pdfViewer.annotationModule.stampAnnotationModule && this.pdfViewer.annotationModule.stampAnnotationModule.isNewStampAnnot) {\n if (this.pdfViewer.selectedItems.annotations[0]) {\n this.pdfViewer.remove(this.pdfViewer.selectedItems.annotations[0]);\n this.pdfViewer.clearSelection(this.pdfViewer.currentPageNumber - 1);\n this.pdfViewer.renderDrawing();\n this.pdfViewerBase.tool = null;\n }\n this.pdfViewerBase.isAlreadyAdded = false;\n this.pdfViewer.annotationModule.stampAnnotationModule.isNewStampAnnot = false;\n }\n };\n // eslint-disable-next-line\n Toolbar.prototype.stampSelect = function (args, stampParentID) {\n this.pdfViewerBase.isAlreadyAdded = false;\n this.updateStampItems();\n if (args.Item.Text === 'Custom Stamp') {\n this.annotationToolbarModule.checkStampAnnotations();\n this.pdfViewer.annotation.stampAnnotationModule.isStampAddMode = true;\n // eslint-disable-next-line\n var stampImage = createElement('input', { id: this.pdfViewer.element.id + '_stampElement', attrs: { 'type': 'file' } });\n stampImage.setAttribute('accept', '.jpg,.jpeg,.png');\n stampImage.style.position = 'absolute';\n stampImage.style.left = '0px';\n stampImage.style.top = '0px';\n stampImage.style.visibility = 'hidden';\n document.body.appendChild(stampImage);\n stampImage.click();\n stampImage.addEventListener('change', this.annotationToolbarModule.addStampImage);\n document.body.removeChild(stampImage);\n // eslint-disable-next-line max-len\n }\n else if (stampParentID === 'Custom Stamp' && args.Item.Text !== '') {\n // eslint-disable-next-line\n var elements = this.pdfViewerBase.customStampCollection;\n for (var n = 0; n < elements.length; n++) {\n if (elements[n].customStampName === args.Item.Text) {\n this.pdfViewer.annotationModule.stampAnnotationModule.customStampName = args.Item.Text;\n this.annotationToolbarModule.checkStampAnnotations();\n this.pdfViewer.annotation.stampAnnotationModule.isStampAddMode = true;\n this.pdfViewer.annotationModule.stampAnnotationModule.isStampAnnotSelected = true;\n this.pdfViewerBase.stampAdded = true;\n this.pdfViewerBase.isAlreadyAdded = true;\n // eslint-disable-next-line max-len\n this.pdfViewer.annotationModule.stampAnnotationModule.createCustomStampAnnotation(elements[n].customStampImageSource);\n this.pdfViewerBase.stampAdded = false;\n }\n }\n // eslint-disable-next-line max-len\n }\n else if (args.Item.Text !== 'Dynamic' && args.Item.Text !== '' && args.Item.Text !== 'Standard Business' && (stampParentID === 'Sign Here' || args.Item.Text !== 'Sign Here')) {\n this.annotationToolbarModule.checkStampAnnotations();\n this.pdfViewer.annotation.stampAnnotationModule.isStampAddMode = true;\n this.pdfViewer.annotationModule.stampAnnotationModule.isStampAnnotSelected = true;\n this.pdfViewerBase.stampAdded = true;\n if (stampParentID === 'Dynamic') {\n this.pdfViewerBase.isDynamicStamp = true;\n this.pdfViewer.annotationModule.stampAnnotationModule.retrieveDynamicStampAnnotation(args.Item.Text);\n }\n else {\n this.pdfViewerBase.isDynamicStamp = false;\n this.pdfViewer.annotationModule.stampAnnotationModule.retrievestampAnnotation(args.Item.Text);\n }\n }\n };\n /**\n * @private\n */\n Toolbar.prototype.getModuleName = function () {\n return 'Toolbar';\n };\n return Toolbar;\n}());\nexport { Toolbar };\n","/**\n * Navigation module\n */\nvar Navigation = /** @class */ (function () {\n /**\n * @param viewer\n * @param viewerBase\n * @param viewer\n * @param viewerBase\n * @private\n */\n function Navigation(viewer, viewerBase) {\n this.pdfViewer = viewer;\n this.pdfViewerBase = viewerBase;\n }\n /**\n * Navigate to Next page of the PDF document\n *\n * @returns void\n */\n Navigation.prototype.goToNextPage = function () {\n this.pageNumber = this.pdfViewerBase.currentPageNumber;\n this.pageNumber++;\n if (this.pageNumber <= this.pdfViewerBase.pageCount) {\n this.pdfViewerBase.updateScrollTop(this.pageNumber - 1);\n }\n };\n /**\n * Navigate to Previous page of the PDF document\n *\n * @returns void\n */\n Navigation.prototype.goToPreviousPage = function () {\n this.pageNumber = this.pdfViewerBase.currentPageNumber;\n this.pageNumber--;\n if (this.pageNumber > 0) {\n this.pdfViewerBase.updateScrollTop(this.pageNumber - 1);\n }\n };\n /**\n * Navigate to given Page number\n * Note : In case if we have provided incorrect page number as argument it will retain the existing page\n *\n * @param {number} pageNumber - Defines the page number to navigate\n * @returns void\n */\n Navigation.prototype.goToPage = function (pageNumber) {\n if (pageNumber > 0 && pageNumber <= this.pdfViewerBase.pageCount && this.pdfViewerBase.currentPageNumber !== pageNumber) {\n this.pdfViewerBase.updateScrollTop(pageNumber - 1);\n }\n this.pdfViewer.magnificationModule.resizeCanvas(pageNumber);\n var textLayer = document.getElementById(this.pdfViewer.element.id + '_textLayer_' + (pageNumber - 1));\n if (textLayer) {\n textLayer.style.display = 'block';\n }\n };\n /**\n * Navigate to First page of the PDF document\n *\n * @returns void\n */\n Navigation.prototype.goToFirstPage = function () {\n this.pageNumber = 0;\n this.pdfViewerBase.updateScrollTop(this.pageNumber);\n };\n /**\n * Navigate to Last page of the PDF document\n *\n * @returns void\n */\n Navigation.prototype.goToLastPage = function () {\n this.pageNumber = this.pdfViewerBase.pageCount - 1;\n this.pdfViewerBase.updateScrollTop(this.pageNumber);\n };\n /**\n * @private\n */\n Navigation.prototype.destroy = function () {\n this.pageNumber = 0;\n };\n /**\n * @private\n */\n Navigation.prototype.getModuleName = function () {\n return 'Navigation';\n };\n return Navigation;\n}());\nexport { Navigation };\n","/* eslint-disable */\nimport { createElement, Browser, isNullOrUndefined, isBlazor } from '@syncfusion/ej2-base';\nimport { CheckBox } from '@syncfusion/ej2-buttons';\nimport { AjaxHandler } from '../index';\nimport { createSpinner, showSpinner, hideSpinner } from '../index';\n/**\n * TextSearch module\n */\nvar TextSearch = /** @class */ (function () {\n /**\n * @param pdfViewer\n * @param pdfViewerBase\n * @param pdfViewer\n * @param pdfViewerBase\n * @private\n */\n function TextSearch(pdfViewer, pdfViewerBase) {\n var _this = this;\n /**\n * @private\n */\n this.isTextSearch = false;\n /**\n * @private\n */\n this.searchCount = 0;\n this.searchIndex = 0;\n this.currentSearchIndex = 0;\n this.startIndex = null;\n this.searchPageIndex = null;\n this.searchString = null;\n this.isMatchCase = false;\n this.searchRequestHandler = null;\n // eslint-disable-next-line\n this.textContents = new Array();\n // eslint-disable-next-line\n this.searchMatches = new Array();\n // eslint-disable-next-line\n this.searchCollection = new Array();\n this.searchedPages = [];\n this.isPrevSearch = false;\n /**\n * @private\n */\n this.searchTextDivzIndex = \"-1\";\n // eslint-disable-next-line\n this.tempElementStorage = new Array();\n /**\n * @private\n */\n this.isMessagePopupOpened = false;\n /**\n * @private\n */\n this.isTextRetrieved = false;\n this.isTextSearched = false;\n this.isTextSearchEventTriggered = false;\n this.isSearchText = false;\n // eslint-disable-next-line\n this.checkBoxOnChange = function (event) {\n if (isBlazor()) {\n if (event.currentTarget && event.currentTarget.checked) {\n _this.isMatchCase = true;\n }\n else {\n _this.isMatchCase = false;\n }\n }\n else {\n if (event.checked) {\n _this.isMatchCase = true;\n }\n else {\n _this.isMatchCase = false;\n }\n }\n if (_this.isTextSearch) {\n _this.resetVariables();\n _this.clearAllOccurrences();\n var inputString = _this.searchInput.value;\n _this.searchIndex = 0;\n _this.textSearch(inputString);\n }\n };\n this.searchKeypressHandler = function (event) {\n _this.enableNextButton(true);\n _this.enablePrevButton(true);\n if (event.which === 13) {\n _this.initiateTextSearch(_this.searchInput);\n _this.updateSearchInputIcon(false);\n }\n else {\n _this.resetVariables();\n }\n };\n this.searchClickHandler = function (event) {\n _this.searchButtonClick(_this.searchBtn, _this.searchInput);\n };\n this.nextButtonOnClick = function (event) {\n _this.nextSearch();\n };\n this.prevButtonOnClick = function (event) {\n _this.prevSearch();\n };\n this.pdfViewer = pdfViewer;\n this.pdfViewerBase = pdfViewerBase;\n }\n /**\n * @private\n */\n TextSearch.prototype.createTextSearchBox = function () {\n var _this = this;\n // eslint-disable-next-line max-len\n this.searchBox = createElement('div', { id: this.pdfViewer.element.id + '_search_box', className: 'e-pv-search-bar' });\n var toolbarElement;\n if (isBlazor()) {\n toolbarElement = document.getElementById('toolbarContainer');\n }\n else {\n toolbarElement = this.pdfViewerBase.getElement('_toolbarContainer');\n }\n if (toolbarElement) {\n if (isBlazor()) {\n this.searchBox.style.top = toolbarElement.clientHeight + 'px';\n }\n else {\n this.searchBox.style.top = toolbarElement.clientHeight + 'px';\n }\n }\n var searchElementsContainer = createElement('div', { id: this.pdfViewer.element.id + '_search_box_elements', className: 'e-pv-search-bar-elements' });\n // eslint-disable-next-line max-len\n var searchInputContainer = createElement('div', { id: this.pdfViewer.element.id + '_search_input_container', className: 'e-input-group e-pv-search-input' });\n this.searchInput = createElement('input', { id: this.pdfViewer.element.id + '_search_input', className: 'e-input' });\n this.searchInput.type = 'text';\n if (isBlazor()) {\n var promise = this.pdfViewer._dotnetInstance.invokeMethodAsync('GetLocaleText', 'PdfViewer_Findindocument');\n promise.then(function (value) {\n _this.searchInput.placeholder = value;\n });\n }\n else {\n this.searchInput.placeholder = this.pdfViewer.localeObj.getConstant('Find in document');\n }\n // eslint-disable-next-line max-len\n this.searchBtn = createElement('span', { id: this.pdfViewer.element.id + '_search_box-icon', className: 'e-input-group-icon e-input-search-group-icon e-pv-search-icon' });\n searchInputContainer.appendChild(this.searchInput);\n searchInputContainer.appendChild(this.searchBtn);\n searchElementsContainer.appendChild(searchInputContainer);\n if (this.pdfViewer.enableRtl) {\n this.prevSearchBtn = this.createSearchBoxButtons('prev_occurrence', 'e-pv-next-search');\n }\n else {\n this.prevSearchBtn = this.createSearchBoxButtons('prev_occurrence', 'e-pv-prev-search');\n }\n this.prevSearchBtn.setAttribute('aria-label', 'Previous Search text');\n searchElementsContainer.appendChild(this.prevSearchBtn);\n if (this.pdfViewer.enableRtl) {\n this.nextSearchBtn = this.createSearchBoxButtons('next_occurrence', 'e-pv-prev-search');\n }\n else {\n this.nextSearchBtn = this.createSearchBoxButtons('next_occurrence', 'e-pv-next-search');\n }\n this.nextSearchBtn.setAttribute('aria-label', 'Next Search text');\n searchElementsContainer.appendChild(this.nextSearchBtn);\n // eslint-disable-next-line max-len\n var matchCaseContainer = createElement('div', { id: this.pdfViewer.element.id + '_match_case_container', className: 'e-pv-match-case-container' });\n var matchCaseInput = createElement('input', { id: this.pdfViewer.element.id + '_match_case' });\n matchCaseInput.type = 'checkbox';\n if (isBlazor()) {\n matchCaseInput.style.height = '17px';\n matchCaseInput.style.width = '17px';\n matchCaseInput.addEventListener('change', this.checkBoxOnChange.bind(this));\n }\n matchCaseContainer.appendChild(matchCaseInput);\n this.searchBox.appendChild(searchElementsContainer);\n this.searchBox.appendChild(matchCaseContainer);\n this.pdfViewerBase.mainContainer.appendChild(this.searchBox);\n if (isBlazor()) {\n // eslint-disable-next-line max-len\n var matchCaseText_1 = createElement('span', { id: this.pdfViewer.element.id + '_search_box_text', styles: 'position: absolute; padding-top: 3px; padding-left: 8px; padding-right: 8px; font-size: 13px' });\n var promise = this.pdfViewer._dotnetInstance.invokeMethodAsync('GetLocaleText', 'PdfViewer_Matchcase');\n promise.then(function (value) {\n matchCaseText_1.textContent = value;\n });\n matchCaseContainer.appendChild(matchCaseText_1);\n }\n else {\n // eslint-disable-next-line max-len\n var checkBox = new CheckBox({ cssClass: 'e-pv-match-case', label: this.pdfViewer.localeObj.getConstant('Match case'), change: this.checkBoxOnChange.bind(this) });\n checkBox.appendTo(matchCaseInput);\n }\n var waitingPopup = createElement('div', { id: this.pdfViewer.element.id + '_textSearchLoadingIndicator' });\n searchInputContainer.appendChild(waitingPopup);\n waitingPopup.style.position = 'absolute';\n waitingPopup.style.top = '15px';\n waitingPopup.style.left = searchInputContainer.clientWidth - 46 + 'px';\n createSpinner({ target: waitingPopup, cssClass: 'e-spin-center' });\n this.setLoaderProperties(waitingPopup);\n this.showSearchBox(false);\n if (this.pdfViewer.enableRtl) {\n this.searchBox.classList.add('e-rtl');\n this.searchBox.style.left = '88.3px';\n }\n else {\n this.searchBox.classList.remove('e-rtl');\n this.searchBox.style.right = '88.3px';\n }\n this.searchInput.addEventListener('focus', function () {\n _this.searchInput.parentElement.classList.add('e-input-focus');\n });\n this.searchInput.addEventListener('blur', function () {\n _this.searchInput.parentElement.classList.remove('e-input-focus');\n });\n this.searchInput.addEventListener('keydown', this.searchKeypressHandler.bind(this));\n this.searchBtn.addEventListener('click', this.searchClickHandler.bind(this));\n this.nextSearchBtn.addEventListener('click', this.nextButtonOnClick.bind(this));\n this.prevSearchBtn.addEventListener('click', this.prevButtonOnClick.bind(this));\n };\n TextSearch.prototype.setLoaderProperties = function (element) {\n var spinnerElement = element.firstChild.firstChild.firstChild;\n if (spinnerElement) {\n spinnerElement.style.height = '18px';\n spinnerElement.style.width = '18px';\n spinnerElement.style.transformOrigin = '9px 9px 9px';\n }\n };\n TextSearch.prototype.showLoadingIndicator = function (isShow) {\n var waitingPopup = document.getElementById(this.pdfViewer.element.id + '_textSearchLoadingIndicator');\n if (waitingPopup) {\n if (isShow) {\n showSpinner(waitingPopup);\n }\n else {\n hideSpinner(waitingPopup);\n }\n }\n };\n /**\n * @private\n */\n TextSearch.prototype.textSearchBoxOnResize = function () {\n if (this.pdfViewer.toolbarModule && this.pdfViewer.enableToolbar) {\n var secondaryToolbar = this.pdfViewerBase.getElement('_toolbarContainer_popup');\n if (secondaryToolbar) {\n if (secondaryToolbar.contains(this.pdfViewerBase.getElement('_search').parentElement)) {\n this.searchBox.style.right = '0px';\n }\n }\n }\n else {\n // eslint-disable-next-line max-len\n if (this.pdfViewerBase.viewerContainer.clientWidth + this.pdfViewerBase.viewerContainer.offsetLeft < this.searchBox.offsetLeft + this.searchBox.clientWidth) {\n this.searchBox.style.right = '0px';\n // eslint-disable-next-line\n this.searchBox.style.width = parseInt(this.searchBox.style.width) - ((this.searchBox.offsetLeft + this.searchBox.clientWidth) - (this.pdfViewerBase.viewerContainer.clientWidth)) + 'px';\n // eslint-disable-next-line\n this.searchInput.style.width = parseInt(this.searchInput.style.width) - ((this.searchBox.offsetLeft + this.searchBox.clientWidth) - (this.pdfViewerBase.viewerContainer.clientWidth)) + 'px';\n }\n else {\n this.searchBox.style.right = '88.3px';\n this.searchBox.style.width = '';\n this.searchInput.style.width = '';\n }\n }\n };\n /**\n * @param isShow\n * @private\n */\n TextSearch.prototype.showSearchBox = function (isShow) {\n if (isShow) {\n this.searchBox.style.display = 'block';\n }\n else {\n this.searchBox.style.display = 'none';\n this.searchInput.value = '';\n }\n this.onTextSearchClose();\n };\n /**\n * @private\n */\n TextSearch.prototype.searchAfterSelection = function () {\n if (this.isTextSearch) {\n this.initSearch(this.searchPageIndex, true);\n this.highlightOthers();\n }\n };\n TextSearch.prototype.initiateTextSearch = function (searchElement) {\n var inputString = searchElement.value;\n if (inputString && inputString.length > 0 && inputString[inputString.length - 1] === ' ') {\n inputString = inputString.slice(0, inputString.length - 1);\n }\n this.initiateSearch(inputString);\n };\n /**\n * @param inputString\n * @private\n */\n TextSearch.prototype.initiateSearch = function (inputString) {\n if (inputString !== this.searchString) {\n this.isTextSearch = false;\n this.searchPageIndex = this.pdfViewerBase.currentPageNumber - 1;\n }\n this.clearAllOccurrences();\n if (inputString !== '') {\n // eslint-disable-next-line\n if (this.searchMatches[this.searchPageIndex] && inputString === this.searchString) {\n if (this.searchMatches[this.searchPageIndex].length === 0) {\n this.initSearch(this.searchPageIndex, false);\n }\n else {\n this.nextSearch();\n }\n }\n else {\n this.resetVariables();\n this.searchIndex = 0;\n this.textSearch(inputString);\n }\n }\n };\n TextSearch.prototype.textSearch = function (inputString) {\n if (inputString !== '' || inputString) {\n this.searchString = inputString;\n this.isTextSearch = true;\n this.isSearchText = true;\n this.searchPageIndex = this.pdfViewerBase.currentPageNumber - 1;\n this.searchCount = 0;\n this.isTextSearchEventTriggered = false;\n this.showLoadingIndicator(true);\n this.pdfViewer.fireTextSearchStart(inputString, this.isMatchCase);\n if (this.pdfViewer.isExtractText) {\n if (this.isTextRetrieved) {\n for (var i = 0; i < this.pdfViewerBase.pageCount; i++) {\n this.initSearch(i, false, true);\n }\n }\n else {\n this.isTextSearched = true;\n for (var i = 0; i < this.documentTextCollection.length; i++) {\n this.initSearch(i, false, true);\n }\n }\n }\n this.initSearch(this.searchPageIndex, false);\n this.highlightOthers();\n }\n };\n TextSearch.prototype.nextSearch = function () {\n this.isPrevSearch = false;\n this.isTextSearch = true;\n this.isSearchText = false;\n if (this.searchString) {\n this.clearAllOccurrences();\n this.searchIndex = this.searchIndex + 1;\n if (this.searchMatches[this.searchPageIndex]) {\n // eslint-disable-next-line max-len\n if (this.searchIndex >= this.searchMatches[this.searchPageIndex].length) {\n this.searchIndex = 0;\n this.searchPageIndex = ((this.searchPageIndex + 1) < this.pdfViewerBase.pageCount) ? (this.searchPageIndex + 1) : 0;\n if (this.pdfViewerBase.pageCount > 1) {\n this.initSearch(this.searchPageIndex, false);\n }\n else {\n this.initSearch(this.searchPageIndex, true);\n if (!this.isMessagePopupOpened) {\n this.onMessageBoxOpen();\n }\n this.pdfViewerBase.updateScrollTop(this.searchPageIndex);\n }\n this.showLoadingIndicator(true);\n }\n else {\n this.highlightSearchedTexts(this.searchPageIndex, false, undefined);\n this.showLoadingIndicator(false);\n }\n this.highlightOthers(true);\n }\n else {\n this.initiateTextSearch(this.searchInput);\n }\n }\n else {\n this.initiateTextSearch(this.searchInput);\n }\n };\n TextSearch.prototype.prevSearch = function () {\n this.isPrevSearch = true;\n this.isTextSearch = true;\n this.isSearchText = false;\n if (this.searchString) {\n this.clearAllOccurrences();\n this.searchIndex = this.searchIndex - 1;\n if (this.searchIndex < 0) {\n this.searchPageIndex = ((this.searchPageIndex - 1) < 0) ? (this.pdfViewerBase.pageCount - 1) : this.searchPageIndex - 1;\n this.initSearch(this.searchPageIndex, false);\n this.showLoadingIndicator(true);\n }\n else {\n this.highlightSearchedTexts(this.searchPageIndex, false, undefined);\n this.showLoadingIndicator(false);\n }\n this.highlightOthers(true);\n }\n else {\n this.searchIndex = this.searchIndex - 1;\n this.searchPageIndex = ((this.searchPageIndex - 1) < 0) ? (this.pdfViewerBase.pageCount - 1) : this.searchPageIndex - 1;\n var inputString = this.searchInput.value;\n this.textSearch(inputString);\n }\n };\n TextSearch.prototype.initSearch = function (pageIndex, isSinglePageSearch, isCount) {\n // eslint-disable-next-line\n var storedData = this.pdfViewerBase.getStoredData(pageIndex, true);\n var pageText = null;\n var textContents = null;\n // eslint-disable-next-line\n var characterBounds = null;\n if (isCount) {\n if (this.documentTextCollection.length !== 0) {\n // eslint-disable-next-line\n var documentIndex = this.documentTextCollection[pageIndex][pageIndex];\n var pageTextData = documentIndex.pageText ? documentIndex.pageText : documentIndex.PageText;\n if (this.documentTextCollection[pageIndex] && documentIndex) {\n // eslint-disable-next-line max-len\n this.getSearchTextContent(pageIndex, this.searchString, pageTextData, textContents, isSinglePageSearch, this.documentTextCollection[pageIndex]);\n }\n }\n }\n else {\n if (storedData) {\n // eslint-disable-next-line\n pageText = storedData['pageText'];\n // eslint-disable-next-line\n textContents = storedData['textContent'];\n characterBounds = this.pdfViewerBase.textLayer.characterBound[pageIndex];\n this.textContents[pageIndex] = textContents;\n this.getPossibleMatches(pageIndex, this.searchString, pageText, textContents, isSinglePageSearch, characterBounds);\n }\n else {\n if (!isSinglePageSearch) {\n this.createRequestForSearch(pageIndex);\n }\n }\n }\n if (this.pdfViewerBase.pageCount === (this.searchedPages && this.searchedPages.length)) {\n if (!this.isTextSearchEventTriggered) {\n this.isTextSearchEventTriggered = true;\n this.pdfViewer.fireTextSearchComplete(this.searchString, this.isMatchCase);\n }\n }\n };\n // eslint-disable-next-line\n TextSearch.prototype.getPossibleMatches = function (pageIndex, searchString, pageString, textContents, isSinglePageSearch, characterBounds) {\n var arrayReturns;\n if (this.searchMatches && !this.searchMatches[pageIndex]) {\n var pageText = pageString;\n var searchText = searchString;\n var multiSearch = (pageText.replace((/(\\s\\r\\n)/gm), ' ')).replace((/(\\r\\n)/gm), \" \");\n var Multiline = (pageString.replace((/(\\s\\r\\n)/gm), ' ')).replace((/(\\r\\n)/gm), \" \");\n var specialCharcterSearch = multiSearch.replace(/[^a-zA-z0-9\" \"]/g, \"\");\n var queryLength = searchString.length;\n if (!this.isMatchCase) {\n searchText = searchString.toLowerCase();\n pageText = pageString.toLowerCase();\n multiSearch = multiSearch.toLowerCase();\n Multiline = Multiline.toLowerCase();\n specialCharcterSearch = specialCharcterSearch.toLowerCase();\n }\n var matches = [];\n var matchedArray = [];\n var matchIndex = -queryLength;\n var newIndex = -queryLength;\n var multiSearchIndex = -queryLength;\n var MultilineIndex = -queryLength;\n var specialcharcterIndex = -queryLength;\n while (matchIndex !== 0 || matchIndex === 0) {\n if (searchText === '' || searchText === ' ' || !searchText) {\n break;\n }\n matchIndex = pageText.indexOf(searchText, matchIndex + queryLength);\n if (searchText.indexOf(' ') !== -1) {\n var newString = searchString.replace(' ', '\\r\\n');\n newIndex = pageText.indexOf(newString, newIndex + queryLength);\n newIndex = -1;\n if (!(newIndex <= -1)) {\n if (newIndex < matchIndex) {\n matches.push(newIndex);\n }\n }\n }\n if (matchIndex <= -1 && newIndex <= -1) {\n break;\n }\n if (!(matchIndex <= -1)) {\n matches.push(matchIndex);\n }\n if (newIndex > matchIndex && !(newIndex <= -1)) {\n matches.push(newIndex);\n }\n }\n if (matches.length == 0) {\n multiSearchIndex = multiSearch.indexOf(searchText, multiSearchIndex + queryLength);\n MultilineIndex = Multiline.indexOf(searchText, MultilineIndex + queryLength);\n specialcharcterIndex = specialCharcterSearch.indexOf(searchText, specialcharcterIndex + queryLength);\n if (multiSearchIndex !== -1) {\n arrayReturns = this.correctLinetext(searchString, matchIndex, pageText);\n matchIndex = -arrayReturns[0].length;\n for (var i = 0; i < arrayReturns.length; i++) {\n matchIndex = pageText.indexOf(arrayReturns[i].trim(), matchIndex + (arrayReturns[i - 1] === undefined || null ? arrayReturns[0].length : arrayReturns[i - 1].length));\n matchedArray.push(matchIndex);\n if (matchedArray.length > 1) {\n if ((matchedArray[1] - (matchedArray[0] + arrayReturns[0].length)) <= 3) {\n matches.push(matchedArray);\n this.searchMatches[pageIndex] = matches;\n }\n else {\n i = -1;\n matchIndex = matchedArray[0] + arrayReturns[0].length;\n matchedArray.splice(0, matchedArray.length);\n }\n }\n }\n }\n else if (specialcharcterIndex !== -1) {\n arrayReturns = this.correctLinetext(searchString, matchIndex, pageText);\n matchIndex = -arrayReturns[0].length;\n for (var i = 0; i < arrayReturns.length; i++) {\n matchIndex = pageText.indexOf(arrayReturns[i].trim(), matchIndex + (arrayReturns[i - 1] === undefined || null ? arrayReturns[0].length : arrayReturns[i - 1].length));\n matchedArray.push(matchIndex);\n if (matchedArray.length > 1) {\n if ((matchedArray[1] - (matchedArray[0] + arrayReturns[0].length)) <= 3) {\n matches.push(matchedArray);\n this.searchMatches[pageIndex] = matches;\n }\n else {\n i = -1;\n matchIndex = matchedArray[0] + arrayReturns[0].length;\n matchedArray.splice(0, matchedArray.length);\n }\n }\n }\n }\n else if (MultilineIndex !== -1) {\n arrayReturns = this.correctLinetext(searchString, matchIndex, pageText);\n matchIndex = -arrayReturns[0].length;\n for (var i = 0; i < arrayReturns.length; i++) {\n matchIndex = pageText.indexOf(arrayReturns[i].trim(), matchIndex + (arrayReturns[i - 1] === undefined || null ? arrayReturns[0].length : arrayReturns[i - 1].length));\n matchedArray.push(matchIndex);\n if (matchedArray.length > 1) {\n if ((matchedArray[1] - (matchedArray[0] + arrayReturns[0].length)) <= 3) {\n matches.push(matchedArray);\n this.searchMatches[pageIndex] = matches;\n }\n else {\n i = -1;\n matchIndex = matchedArray[0] + arrayReturns[0].length;\n matchedArray.splice(0, matchedArray.length);\n }\n }\n }\n }\n if (matches.length > 1) {\n matches.splice(1, matches.length);\n }\n }\n if (this.searchMatches && matches.length > 0) {\n this.searchMatches[pageIndex] = matches;\n }\n }\n if (!isSinglePageSearch) {\n if (this.searchedPages.indexOf(pageIndex) === -1) {\n this.searchedPages.push(pageIndex);\n this.startIndex = this.searchedPages[0];\n }\n this.updateSearchInputIcon(false);\n }\n if (this.searchMatches && this.searchMatches[pageIndex] && this.searchMatches[pageIndex].length !== 0) {\n if (!isSinglePageSearch) {\n if (this.isPrevSearch) {\n this.searchIndex = this.searchMatches[pageIndex].length - 1;\n }\n if ((this.pdfViewerBase.currentPageNumber - 1) !== this.searchPageIndex) {\n // eslint-disable-next-line max-len\n if (this.searchMatches.length > 0 && (this.searchIndex === 0 || this.searchIndex === -1) && (this.searchPageIndex) === this.currentSearchIndex) {\n if (!this.isMessagePopupOpened && !this.isSearchText) {\n this.onMessageBoxOpen();\n }\n this.searchPageIndex = this.getSearchPage(this.pdfViewerBase.currentPageNumber - 1);\n this.searchedPages = [this.searchPageIndex];\n }\n // eslint-disable-next-line max-len\n else if (this.isPrevSearch && this.searchMatches && this.searchMatches.length > 0 && (this.searchMatches[this.searchPageIndex] && this.searchMatches[this.searchPageIndex].length > 0) && this.searchedPages.length === this.pdfViewerBase.pageCount && this.startIndex - 1 === this.searchPageIndex) {\n if (!this.isMessagePopupOpened) {\n this.onMessageBoxOpen();\n }\n this.searchedPages = [this.startIndex];\n }\n this.pdfViewerBase.updateScrollTop(this.searchPageIndex);\n }\n else if (this.searchMatches && (this.searchMatches[this.searchPageIndex] && this.searchMatches[this.searchPageIndex].length > 0) && this.searchedPages.length === this.pdfViewerBase.pageCount && this.startIndex === this.searchPageIndex && this.pdfViewerBase.pageCount > 1) {\n if (!this.isMessagePopupOpened) {\n this.onMessageBoxOpen();\n }\n this.searchedPages = [this.startIndex];\n }\n }\n this.highlightSearchedTexts(pageIndex, isSinglePageSearch, arrayReturns);\n }\n else {\n if (!isSinglePageSearch) {\n if (this.isPrevSearch) {\n this.searchPageIndex = ((this.searchPageIndex - 1) < 0) ? (this.pdfViewerBase.pageCount - 1) : this.searchPageIndex - 1;\n }\n else {\n this.searchPageIndex = ((this.searchPageIndex + 1) < this.pdfViewerBase.pageCount) ? (this.searchPageIndex + 1) : 0;\n }\n if (this.searchedPages.indexOf(this.searchPageIndex) === -1 && this.searchedPages.length !== this.pdfViewerBase.pageCount) {\n this.showLoadingIndicator(true);\n this.initSearch(this.searchPageIndex, false);\n }\n else {\n var searchPageIndex = this.getSearchPage(pageIndex);\n // eslint-disable-next-line max-len\n if (this.searchMatches && isNullOrUndefined(this.searchMatches[this.searchPageIndex]) && this.searchedPages.length === this.pdfViewerBase.pageCount) {\n // eslint-disable-next-line max-len\n if (!this.isMessagePopupOpened) {\n this.onMessageBoxOpen();\n }\n this.pdfViewerBase.updateScrollTop(this.startIndex);\n // eslint-disable-next-line max-len\n }\n else if (this.searchMatches && this.searchMatches.length > 0 && (this.searchIndex === 0 || this.searchIndex === -1) && (searchPageIndex) === this.currentSearchIndex) {\n if (this.isPrevSearch) {\n // eslint-disable-next-line max-len\n if (!this.isMessagePopupOpened) {\n this.onMessageBoxOpen();\n }\n this.searchPageIndex = searchPageIndex;\n this.searchedPages = [searchPageIndex];\n this.searchIndex = -1;\n }\n else {\n if (!this.isMessagePopupOpened && this.pdfViewerBase.currentPageNumber !== 1 && !this.isSearchText) {\n this.onMessageBoxOpen();\n }\n this.searchPageIndex = searchPageIndex;\n this.searchedPages = [searchPageIndex];\n this.searchIndex = 0;\n }\n this.highlightSearchedTexts(this.searchPageIndex, isSinglePageSearch, undefined);\n }\n else if (this.searchMatches && (this.searchMatches[this.searchPageIndex] && this.searchMatches[this.searchPageIndex].length > 0) && this.searchedPages.length === this.pdfViewerBase.pageCount) {\n if (!this.isMessagePopupOpened) {\n this.onMessageBoxOpen();\n }\n this.searchPageIndex = this.startIndex;\n this.searchedPages = [this.searchPageIndex];\n this.searchIndex = 0;\n this.pdfViewerBase.updateScrollTop(this.startIndex);\n this.highlightSearchedTexts(this.searchPageIndex, isSinglePageSearch, undefined);\n }\n }\n }\n }\n };\n TextSearch.prototype.correctLinetext = function (searchString, matchIndex, pageText) {\n var indiuvalLineArray = [];\n var searchArray = searchString.split(/[\" \"]+/);\n if (!this.isMatchCase) {\n searchArray = searchString.toLowerCase().split(/[\" \"]+/);\n }\n matchIndex = 0;\n var linestring = \"\";\n var mergedText = pageText.replace(/ \\r\\n/g, \" \");\n mergedText = mergedText.replace(/\\r\\n/g, \" \");\n mergedText = mergedText.replace(/[^a-zA-Z0-9 ]/g, '');\n searchString = searchString.replace(/[^a-zA-Z0-9 ]/g, '');\n var result = mergedText.match(searchString);\n if (!this.isMatchCase) {\n result = mergedText.match(searchString.toLowerCase());\n }\n if (isNullOrUndefined(result)) {\n return indiuvalLineArray;\n }\n else {\n result = pageText.slice(result.index, pageText.length);\n }\n var pageCheck = result;\n for (var i = 0; i < searchArray.length; i++) {\n var searchArrayText = linestring + searchArray[i];\n matchIndex = pageText.indexOf(searchArrayText, matchIndex);\n pageCheck = pageCheck ? pageCheck.replace(searchArray[i - 1], \"\") : pageText.replace(searchArray[i - 1], \"\");\n if ((pageCheck[pageCheck.indexOf(searchArray[i]) - 1] === \"\\n\" && (pageCheck[pageCheck.indexOf(searchArray[i + 1]) - 1]) === \"\\n\") || (pageCheck[pageCheck.indexOf(searchArray[i]) - 1] === \"\\n\" && isNullOrUndefined((pageCheck[pageCheck.indexOf(searchArray[i + 1]) - 1])))) {\n matchIndex = -1;\n if (linestring === \"\") {\n linestring = searchArray[i];\n i = i + 1;\n }\n }\n if (matchIndex !== -1) {\n linestring += searchArray[i] + \" \";\n if (i == (searchArray.length - 1)) {\n indiuvalLineArray.push(linestring);\n }\n }\n else {\n indiuvalLineArray.push(linestring);\n linestring = searchArray[i] + \" \";\n if (pageCheck[pageCheck.indexOf(searchArray[i]) - 1] == \"\\n\" && pageCheck[pageCheck.indexOf(searchArray[i + 1]) - 1] == \"\\n\") {\n indiuvalLineArray.push(linestring);\n linestring = searchArray[i + 1] + \" \";\n pageCheck = pageCheck ? pageCheck.replace(searchArray[i - 1], \"\") : pageText.replace(searchArray[i - 1], \"\");\n i = i + 1;\n }\n if (i == (searchArray.length - 1)) {\n indiuvalLineArray.push(linestring);\n }\n }\n }\n return indiuvalLineArray;\n };\n // eslint-disable-next-line\n TextSearch.prototype.getSearchTextContent = function (pageIndex, searchString, pageString, textContents, isSinglePageSearch, characterBounds) {\n var pageText = pageString;\n var searchText = searchString;\n var queryLength = searchString.length;\n if (!this.isMatchCase) {\n searchText = searchString.toLowerCase();\n pageText = pageString.toLowerCase();\n }\n var matches = [];\n var matchIndex = -queryLength;\n var newIndex = -queryLength;\n while (matchIndex !== 0) {\n if (searchText === '' || searchText === ' ' || !searchText) {\n break;\n }\n matchIndex = pageText.indexOf(searchText, matchIndex + queryLength);\n if (searchText.indexOf(' ') !== -1) {\n var newString = searchString.replace(' ', '\\r\\n');\n newIndex = pageText.indexOf(newString, newIndex + queryLength);\n if (!(newIndex <= -1)) {\n if (newIndex < matchIndex) {\n matches.push(newIndex);\n }\n }\n }\n if (matchIndex <= -1 && newIndex <= -1) {\n break;\n }\n if (!(matchIndex <= -1)) {\n matches.push(matchIndex);\n }\n if (newIndex > matchIndex && !(newIndex <= -1)) {\n matches.push(newIndex);\n }\n }\n if (matches.length !== 0) {\n this.searchCount = this.searchCount + matches.length;\n }\n this.searchMatches[pageIndex] = matches;\n };\n TextSearch.prototype.getSearchPage = function (pageIndex) {\n var pageNumber = null;\n if (this.isPrevSearch) {\n for (var i = pageIndex; i >= 0; i--) {\n if (i !== pageIndex && this.searchMatches[i]) {\n pageNumber = i;\n break;\n }\n }\n if (!pageNumber) {\n for (var j = this.pdfViewerBase.pageCount - 1; j > pageIndex; j--) {\n if (this.searchMatches[j]) {\n pageNumber = j;\n break;\n }\n }\n }\n }\n else {\n for (var i = pageIndex; i < this.pdfViewerBase.pageCount; i++) {\n if (i !== pageIndex && this.searchMatches[i]) {\n pageNumber = i;\n break;\n }\n }\n if (!pageNumber) {\n if (pageIndex === 0) {\n pageNumber = pageIndex;\n }\n else {\n for (var j = 0; j < pageIndex; j++) {\n if (this.searchMatches[j]) {\n pageNumber = j;\n break;\n }\n }\n }\n }\n }\n return pageNumber;\n };\n TextSearch.prototype.highlightSearchedTexts = function (pageIndex, isSinglePageSearch, ArrayReturns) {\n // eslint-disable-next-line\n var matches = this.searchMatches[pageIndex];\n var prevEnd = null;\n // eslint-disable-next-line\n var scrollPoint = { y: -100, x: -100 };\n var startId;\n var className;\n var searchingText = this.searchString;\n // eslint-disable-next-line\n var characterBounds = this.pdfViewerBase.textLayer.characterBound[pageIndex];\n var isHighlight = false;\n if (isSinglePageSearch && (this.pdfViewerBase.currentPageNumber - 1) !== this.searchPageIndex) {\n if (this.searchMatches.length > 0) {\n if (pageIndex === this.getSearchPage(this.pdfViewerBase.currentPageNumber - 1)) {\n isHighlight = true;\n }\n }\n }\n if (characterBounds) {\n for (var i = 0; i < matches.length; i++) {\n if (matches[i].length !== undefined && ArrayReturns !== undefined) {\n if (i === this.searchIndex && pageIndex === this.searchPageIndex) {\n for (var j = 0; j < ArrayReturns.length; j++) {\n className = 'e-pv-search-text-highlight';\n this.searchString = ArrayReturns[j].trim();\n this.addDivForSearch(i, pageIndex, characterBounds, this.searchString.length, className, j);\n }\n }\n else {\n for (var j = 0; j < ArrayReturns.length; j++) {\n className = 'e-pv-search-text-highlightother';\n this.searchString = ArrayReturns[j].trim();\n this.addDivForSearch(i, pageIndex, characterBounds, this.searchString.length, className, j);\n }\n }\n }\n else if (i === this.searchIndex && pageIndex === this.searchPageIndex) {\n className = 'e-pv-search-text-highlight';\n }\n else {\n className = 'e-pv-search-text-highlightother';\n }\n if (matches[i].length == undefined) {\n this.addDivForSearch(i, pageIndex, characterBounds, this.searchString.length, className, undefined);\n }\n }\n this.searchString = searchingText;\n if (pageIndex === this.searchPageIndex && !isSinglePageSearch) {\n var element = this.pdfViewerBase.getElement('_searchtext_' + pageIndex + '_' + this.searchIndex);\n if (element) {\n var targetScrollElement = this.getScrollElement(element);\n this.scrollToSearchStr(targetScrollElement, scrollPoint);\n }\n else {\n this.pdfViewerBase.updateScrollTop(pageIndex);\n var element_1 = this.pdfViewerBase.getElement('_searchtext_' + pageIndex + '_' + this.searchIndex);\n if (element_1) {\n var targetScrollElement = this.getScrollElement(element_1);\n this.scrollToSearchStr(targetScrollElement, scrollPoint);\n }\n }\n }\n }\n };\n // eslint-disable-next-line\n TextSearch.prototype.addDivForSearch = function (index, pageIndex, characterBounds, queryLength, className, nestedIndex) {\n var textLayer = this.pdfViewerBase.getElement('_textLayer_' + pageIndex);\n if (isNullOrUndefined(textLayer) && className === 'e-pv-search-text-highlight') {\n if (this.pdfViewer.navigation) {\n this.pdfViewer.navigation.goToPage(pageIndex + 1);\n }\n }\n var count;\n if (this.searchMatches[pageIndex][index].length !== undefined) {\n count = this.searchMatches[pageIndex][index][nestedIndex];\n }\n else {\n count = this.searchMatches[pageIndex][index];\n }\n var initial = count;\n var divCount = 0;\n while (count < initial + queryLength) {\n count = this.addDivElement(count, characterBounds, queryLength, className, index, pageIndex, initial, divCount, nestedIndex);\n divCount++;\n }\n if (className === 'e-pv-search-text-highlight') {\n this.showLoadingIndicator(false);\n }\n };\n // eslint-disable-next-line\n TextSearch.prototype.addDivElement = function (count, characterBounds, queryLength, className, index, pageIndex, initial, divCount, nestedIndex) {\n var height = 0;\n var width = 0;\n var top = 0;\n var left = 0;\n var isRTL = false;\n if (characterBounds[count]) {\n left = characterBounds[count].X;\n top = characterBounds[count].Y;\n }\n var v = 0;\n if ((count - initial) !== 0) {\n v = count - initial;\n queryLength += 1;\n }\n for (v = v; v < queryLength; v++) {\n if (characterBounds[count]) {\n // eslint-disable-next-line\n var charBound = characterBounds[count];\n if (left > charBound.X + charBound.Width) {\n isRTL = true;\n }\n top = (top < charBound.Y) ? top : charBound.Y;\n var topDifference = (top < charBound.Y) ? (charBound.Y - top) : (top - charBound.Y);\n height = (height > (topDifference + charBound.Height)) ? height : (topDifference + charBound.Height);\n count++;\n }\n }\n var isContinuation = false;\n if (!isRTL) {\n if (initial + queryLength !== count) {\n isContinuation = true;\n if (characterBounds[count - 1]) {\n width = (characterBounds[count - 1].X - left);\n }\n }\n else {\n isContinuation = false;\n // eslint-disable-next-line\n var storedData = this.pdfViewerBase.getStoredData(pageIndex, true);\n var pageText = null;\n if (storedData) {\n pageText = storedData['pageText'];\n }\n else if (this.pdfViewer.isExtractText && this.documentTextCollection.length !== 0) {\n // eslint-disable-next-line\n var documentIndex = this.documentTextCollection[pageIndex][pageIndex];\n pageText = documentIndex.pageText ? documentIndex.pageText : documentIndex.PageText;\n }\n if (characterBounds[count]) {\n if (pageText && (pageText[count] === '' || pageText[count] === ' ' || pageText[count] === '\\r' || pageText[count] === '\\n') && (characterBounds[count].Width) === 0) {\n width = (characterBounds[count - 1].X - left) + characterBounds[count - 1].Width;\n }\n else {\n width = (characterBounds[count].X - left);\n }\n }\n else {\n if (characterBounds[count - 1]) {\n width = (characterBounds[count - 1].X - left);\n }\n }\n }\n }\n else {\n var charBound = characterBounds[(initial + queryLength) - 1];\n left = charBound.X;\n width = characterBounds[initial].X - characterBounds[(initial + queryLength) - 1].X;\n top = (top < charBound.Y) ? top : charBound.Y;\n var topDifference = (top < charBound.Y) ? (charBound.Y - top) : (top - charBound.Y);\n height = (height > (topDifference + charBound.Height)) ? height : (topDifference + charBound.Height);\n //some RTL character calculated width is zero and width difference value calculated from Y possition difference in the same line.\n var widthDifference = characterBounds[initial - 1].Y - characterBounds[initial].Y;\n for (var j = (initial + queryLength) - 1; j >= initial; j--) {\n charBound = characterBounds[j];\n if (charBound.Width === 0) {\n widthDifference = charBound.Y - characterBounds[j - 1].Y;\n }\n }\n width = width + widthDifference;\n }\n this.createSearchTextDiv(index, pageIndex, height, width, top, left, className, isContinuation, divCount, nestedIndex);\n return count;\n };\n // eslint-disable-next-line\n TextSearch.prototype.createSearchTextDiv = function (index, pageIndex, height, width, top, left, className, isContinuation, divCount, nestedIndex) {\n var idString = '_searchtext_' + pageIndex + '_' + index;\n if (isContinuation) {\n idString += '_' + divCount;\n }\n if (nestedIndex !== undefined && this.pdfViewerBase.getElement(idString)) {\n var textDiv = createElement('div', { id: this.pdfViewer.element.id + idString + \"_\" + nestedIndex });\n // eslint-disable-next-line\n var pageDetails = this.pdfViewerBase.pageSize[pageIndex];\n this.calculateBounds(textDiv, height, width, top, left, pageDetails);\n textDiv.classList.add(className);\n if (className === 'e-pv-search-text-highlight') {\n // eslint-disable-next-line max-len\n textDiv.style.backgroundColor = (this.pdfViewer.textSearchColorSettings.searchHighlightColor === '') ? '#fdd835' : this.pdfViewer.textSearchColorSettings.searchHighlightColor;\n var bounds = { left: left, top: top, width: width, height: height };\n this.pdfViewer.fireTextSearchHighlight(this.searchString, this.isMatchCase, bounds, (pageIndex + 1));\n }\n else if (className === 'e-pv-search-text-highlightother') {\n // eslint-disable-next-line max-len\n textDiv.style.backgroundColor = (this.pdfViewer.textSearchColorSettings.searchColor === '') ? '#8b4c12' : this.pdfViewer.textSearchColorSettings.searchColor;\n }\n var textLayer = this.pdfViewerBase.getElement('_textLayer_' + pageIndex);\n textDiv.style.zIndex = this.searchTextDivzIndex;\n if (textLayer) {\n textLayer.appendChild(textDiv);\n }\n }\n if (!this.pdfViewerBase.getElement(idString)) {\n var textDiv = createElement('div', { id: this.pdfViewer.element.id + idString });\n // eslint-disable-next-line\n var pageDetails = this.pdfViewerBase.pageSize[pageIndex];\n this.calculateBounds(textDiv, height, width, top, left, pageDetails);\n textDiv.classList.add(className);\n if (className === 'e-pv-search-text-highlight') {\n // eslint-disable-next-line max-len\n textDiv.style.backgroundColor = (this.pdfViewer.textSearchColorSettings.searchHighlightColor === '') ? '#fdd835' : this.pdfViewer.textSearchColorSettings.searchHighlightColor;\n var bounds = { left: left, top: top, width: width, height: height };\n this.pdfViewer.fireTextSearchHighlight(this.searchString, this.isMatchCase, bounds, (pageIndex + 1));\n }\n else if (className === 'e-pv-search-text-highlightother') {\n // eslint-disable-next-line max-len\n textDiv.style.backgroundColor = (this.pdfViewer.textSearchColorSettings.searchColor === '') ? '#8b4c12' : this.pdfViewer.textSearchColorSettings.searchColor;\n }\n var textLayer = this.pdfViewerBase.getElement('_textLayer_' + pageIndex);\n textDiv.style.zIndex = this.searchTextDivzIndex;\n if (textLayer) {\n textLayer.appendChild(textDiv);\n }\n }\n };\n // eslint-disable-next-line\n TextSearch.prototype.calculateBounds = function (textDiv, height, width, top, left, pageDetails) {\n if (pageDetails.rotation === 0 || pageDetails.rotation === 2) {\n textDiv.style.height = Math.ceil(height) * this.pdfViewerBase.getZoomFactor() + 'px';\n textDiv.style.width = width * this.pdfViewerBase.getZoomFactor() + 'px';\n if (pageDetails.rotation === 2) {\n textDiv.style.top = (pageDetails.height - top - height) * this.pdfViewerBase.getZoomFactor() + 'px';\n textDiv.style.left = Math.ceil(pageDetails.width - left - width) * this.pdfViewerBase.getZoomFactor() + 'px';\n }\n else {\n textDiv.style.top = top * this.pdfViewerBase.getZoomFactor() + 'px';\n textDiv.style.left = left * this.pdfViewerBase.getZoomFactor() + 'px';\n }\n }\n else if (pageDetails.rotation === 1) {\n textDiv.style.height = width * this.pdfViewerBase.getZoomFactor() + 'px';\n textDiv.style.width = height * this.pdfViewerBase.getZoomFactor() + 'px';\n textDiv.style.top = left * this.pdfViewerBase.getZoomFactor() + 'px';\n textDiv.style.left = (pageDetails.height - top - height) * this.pdfViewerBase.getZoomFactor() + 'px';\n }\n else if (pageDetails.rotation === 3) {\n textDiv.style.height = width * this.pdfViewerBase.getZoomFactor() + 'px';\n textDiv.style.width = height * this.pdfViewerBase.getZoomFactor() + 'px';\n textDiv.style.left = ((pageDetails.width - pageDetails.height) + top) * this.pdfViewerBase.getZoomFactor() + 'px';\n textDiv.style.top = (pageDetails.height - left - width) * this.pdfViewerBase.getZoomFactor() + 'px';\n }\n };\n TextSearch.prototype.isClassAvailable = function () {\n var isClass = false;\n for (var j = 0; j < this.tempElementStorage.length; j++) {\n if (this.tempElementStorage[j].classString) {\n // eslint-disable-next-line max-len\n if (this.tempElementStorage[j].classString === 'e-pv-search-text-highlight' || this.tempElementStorage[j].classString === 'e-pv-search-text-highlightother') {\n isClass = true;\n break;\n }\n }\n }\n return isClass;\n };\n TextSearch.prototype.getScrollElement = function (element) {\n var targetElement = element;\n if (element.childNodes.length > 0) {\n for (var i = 0; i < element.childNodes.length; i++) {\n if (element.childNodes[i].classList) {\n if (element.childNodes[i].classList.contains('e-pv-search-text-highlight')) {\n targetElement = element.childNodes[i];\n }\n }\n }\n }\n return targetElement;\n };\n // eslint-disable-next-line\n TextSearch.prototype.scrollToSearchStr = function (element, scrollPoint) {\n var parent = element.offsetParent;\n var offsetY = element.offsetTop + element.clientTop;\n var offsetX = element.offsetLeft + element.clientLeft;\n while (parent.id !== this.pdfViewerBase.viewerContainer.id) {\n offsetY += parent.offsetTop;\n offsetX += parent.offsetLeft;\n parent = parent.offsetParent;\n }\n if (scrollPoint) {\n offsetY += scrollPoint.y;\n offsetX += scrollPoint.x;\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n parent.scrollLeft = offsetX;\n }\n else {\n if (this.pdfViewerBase.getZoomFactor() > 1.5) {\n parent.scrollLeft = offsetX;\n }\n }\n }\n parent.scrollTop = offsetY;\n this.pdfViewerBase.updateMobileScrollerPosition();\n };\n /**\n * @param pageIndex\n * @private\n */\n TextSearch.prototype.resizeSearchElements = function (pageIndex) {\n var searchDivs = document.querySelectorAll('div[id*=\"' + this.pdfViewer.element.id + '_searchtext_' + pageIndex + '\"]');\n for (var i = 0; i < searchDivs.length; i++) {\n var textDiv = searchDivs[i];\n var previousZoomFactor = 1;\n if (this.pdfViewer.magnificationModule) {\n previousZoomFactor = this.pdfViewer.magnificationModule.previousZoomFactor;\n }\n // eslint-disable-next-line max-len\n var outputdata = pageIndex + '_' + previousZoomFactor + '_' + this.pdfViewerBase.getZoomFactor();\n if (textDiv.getAttribute('name') !== outputdata) {\n // eslint-disable-next-line\n textDiv.style.width = (parseFloat(textDiv.style.width) / previousZoomFactor) * this.pdfViewerBase.getZoomFactor() + 'px';\n // eslint-disable-next-line\n textDiv.style.height = (parseFloat(textDiv.style.height) / previousZoomFactor) * this.pdfViewerBase.getZoomFactor() + 'px';\n // eslint-disable-next-line\n textDiv.style.top = (parseFloat(textDiv.style.top) / previousZoomFactor) * this.pdfViewerBase.getZoomFactor() + 'px';\n // eslint-disable-next-line\n textDiv.style.left = (parseFloat(textDiv.style.left) / previousZoomFactor) * this.pdfViewerBase.getZoomFactor() + 'px';\n textDiv.setAttribute('name', outputdata);\n }\n }\n };\n /**\n * @param pageNumber\n * @private\n */\n TextSearch.prototype.highlightOtherOccurrences = function (pageNumber) {\n this.initSearch(pageNumber, true);\n };\n TextSearch.prototype.highlightOthers = function (isSearched) {\n var indexes = this.getIndexes();\n var lowerPageValue = parseFloat(indexes.lowerPageValue.toString());\n var higherPageValue = parseFloat(indexes.higherPageValue.toString());\n for (var i = lowerPageValue; i <= higherPageValue; i++) {\n this.highlightOtherOccurrences(i);\n }\n if (isSearched) {\n this.showLoadingIndicator(false);\n }\n };\n /**\n * @private\n */\n TextSearch.prototype.clearAllOccurrences = function () {\n var searchTextDivs = document.querySelectorAll('div[id*=\"' + this.pdfViewer.element.id + '_searchtext_\"]');\n for (var i = 0; i < searchTextDivs.length; i++) {\n searchTextDivs[i].parentElement.removeChild(searchTextDivs[i]);\n }\n };\n /**\n * @private\n */\n // eslint-disable-next-line\n TextSearch.prototype.getIndexes = function () {\n var lowerPageValue = this.pdfViewerBase.currentPageNumber - 3;\n lowerPageValue = (lowerPageValue > 0) ? lowerPageValue : 0;\n var higherPageValue = this.pdfViewerBase.currentPageNumber + 1;\n higherPageValue = (higherPageValue < this.pdfViewerBase.pageCount) ? higherPageValue : (this.pdfViewerBase.pageCount - 1);\n return { lowerPageValue: lowerPageValue, higherPageValue: higherPageValue };\n };\n TextSearch.prototype.applyTextSelection = function () {\n if (this.pdfViewer.textSelectionModule && !this.pdfViewerBase.isTextSelectionDisabled) {\n var indexes = this.getIndexes();\n var lowerPageValue = parseFloat(indexes.lowerPageValue.toString());\n var higherPageValue = parseFloat(indexes.higherPageValue.toString());\n for (var i = lowerPageValue; i <= higherPageValue; i++) {\n this.pdfViewer.textSelectionModule.applySelectionRangeOnScroll(i);\n }\n }\n };\n /**\n * @private\n */\n TextSearch.prototype.resetTextSearch = function () {\n this.resetVariables();\n this.onTextSearchClose();\n this.searchPageIndex = null;\n this.searchIndex = 0;\n this.updateSearchInputIcon(true);\n this.enableNextButton(false);\n this.enablePrevButton(false);\n this.documentTextCollection = [];\n this.isTextRetrieved = false;\n this.isTextSearched = false;\n this.isSearchText = false;\n if (this.searchRequestHandler) {\n this.searchRequestHandler.clear();\n }\n };\n TextSearch.prototype.onTextSearchClose = function () {\n this.isPrevSearch = false;\n this.isTextSearch = false;\n if (this.pdfViewerBase.pageCount > 0) {\n this.clearAllOccurrences();\n }\n };\n TextSearch.prototype.createRequestForSearch = function (pageIndex) {\n var proxy = this;\n var viewPortWidth = 816;\n var viewPortHeight = this.pdfViewer.element.clientHeight;\n var pageWidth = this.pdfViewerBase.pageSize[pageIndex].width;\n var pageHeight = this.pdfViewerBase.pageSize[pageIndex].height;\n var tileCount = this.pdfViewerBase.getTileCount(pageWidth);\n var noTileX = viewPortWidth >= pageWidth ? 1 : tileCount;\n var noTileY = viewPortWidth >= pageWidth ? 1 : tileCount;\n var isTileRendering = false;\n var tileSettings = this.pdfViewer.tileRenderingSettings;\n if (tileSettings.enableTileRendering && tileSettings.x > 0 && tileSettings.y > 0) {\n noTileX = viewPortWidth >= pageWidth ? 1 : tileSettings.x;\n noTileY = viewPortWidth >= pageWidth ? 1 : tileSettings.y;\n }\n if (noTileX > 1 && noTileY > 1) {\n isTileRendering = true;\n }\n var _loop_1 = function (x) {\n var _loop_2 = function (y) {\n var jsonObject = void 0;\n // eslint-disable-next-line max-len\n jsonObject = { xCoordinate: x, yCoordinate: y, pageNumber: pageIndex, viewPortWidth: viewPortWidth, viewPortHeight: viewPortHeight, documentId: proxy.pdfViewerBase.getDocumentId(), hashId: proxy.pdfViewerBase.hashId, zoomFactor: proxy.pdfViewerBase.getZoomFactor(), tilecount: tileCount, action: 'Search', elementId: proxy.pdfViewer.element.id, uniqueId: proxy.pdfViewerBase.documentId,\n tileXCount: noTileX, tileYCount: noTileY };\n if (this_1.pdfViewerBase.jsonDocumentId) {\n // eslint-disable-next-line\n jsonObject.documentId = this_1.pdfViewerBase.jsonDocumentId;\n }\n this_1.searchRequestHandler = new AjaxHandler(this_1.pdfViewer);\n this_1.searchRequestHandler.url = this_1.pdfViewer.serviceUrl + '/' + this_1.pdfViewer.serverActionSettings.renderPages;\n this_1.searchRequestHandler.responseType = 'json';\n this_1.searchRequestHandler.send(jsonObject);\n // eslint-disable-next-line\n this_1.searchRequestHandler.onSuccess = function (result) {\n // eslint-disable-next-line\n var data = result.data;\n if (data) {\n if (typeof data !== 'object') {\n try {\n data = JSON.parse(data);\n }\n catch (error) {\n proxy.pdfViewerBase.onControlError(500, data, this.pdfViewer.serverActionSettings.renderPages);\n data = null;\n }\n }\n if (data) {\n if (!isNullOrUndefined(data.pageText) && data.uniqueId === proxy.pdfViewerBase.documentId) {\n proxy.pdfViewer.fireAjaxRequestSuccess(this.pdfViewer.serverActionSettings.renderPages, data);\n var pageNumber = (data.pageNumber !== undefined) ? data.pageNumber : pageIndex;\n if (viewPortWidth >= pageWidth) {\n proxy.pdfViewerBase.storeWinData(data, pageNumber);\n }\n else {\n proxy.pdfViewerBase.storeWinData(data, pageNumber, data.tileX, data.tileY);\n }\n if (!isTileRendering) {\n proxy.initSearch(pageIndex, false);\n }\n else {\n if (x === (noTileX - 1) && y === (noTileY - 1)) {\n proxy.initSearch(pageIndex, false);\n }\n }\n }\n else if (isTileRendering && data.uniqueId === proxy.pdfViewerBase.documentId) {\n proxy.pdfViewer.fireAjaxRequestSuccess(this.pdfViewer.serverActionSettings.renderPages, data);\n var pageNumber = (data.pageNumber !== undefined) ? data.pageNumber : pageIndex;\n proxy.pdfViewerBase.storeWinData(data, pageNumber, data.tileX, data.tileY);\n if (x === (noTileX - 1) && y === (noTileY - 1)) {\n proxy.initSearch(pageIndex, false);\n }\n }\n }\n }\n };\n // eslint-disable-next-line\n this_1.searchRequestHandler.onFailure = function (result) {\n proxy.pdfViewer.fireAjaxRequestFailed(result.status, result.statusText, this.pdfViewer.serverActionSettings.renderPages);\n };\n // eslint-disable-next-line\n this_1.searchRequestHandler.onError = function (result) {\n proxy.pdfViewerBase.openNotificationPopup();\n // eslint-disable-next-line max-len\n proxy.pdfViewer.fireAjaxRequestFailed(result.status, result.statusText, this.pdfViewer.serverActionSettings.renderPages);\n };\n };\n for (var y = 0; y < noTileY; y++) {\n _loop_2(y);\n }\n };\n var this_1 = this;\n for (var x = 0; x < noTileX; x++) {\n _loop_1(x);\n }\n };\n /**\n * @private\n */\n TextSearch.prototype.getPDFDocumentTexts = function () {\n var startIndex = 0;\n var endIndex = 50;\n var pageCount = this.pdfViewerBase.pageCount;\n if (endIndex >= pageCount) {\n endIndex = pageCount;\n }\n this.createRequestForGetPdfTexts(startIndex, endIndex);\n };\n /**\n * @param startIndex\n * @param endIndex\n * @private\n */\n TextSearch.prototype.createRequestForGetPdfTexts = function (startIndex, endIndex) {\n var proxy = this;\n var jsonObject;\n // eslint-disable-next-line max-len\n jsonObject = { pageStartIndex: startIndex, pageEndIndex: endIndex, documentId: proxy.pdfViewerBase.getDocumentId(), hashId: proxy.pdfViewerBase.hashId, action: 'RenderPdfTexts', elementId: proxy.pdfViewer.element.id, uniqueId: proxy.pdfViewerBase.documentId };\n if (this.pdfViewerBase.jsonDocumentId) {\n // eslint-disable-next-line\n jsonObject.documentId = this.pdfViewerBase.jsonDocumentId;\n }\n this.searchRequestHandler = new AjaxHandler(this.pdfViewer);\n this.searchRequestHandler.url = this.pdfViewer.serviceUrl + '/' + this.pdfViewer.serverActionSettings.renderTexts;\n this.searchRequestHandler.responseType = 'json';\n this.searchRequestHandler.send(jsonObject);\n // eslint-disable-next-line\n this.searchRequestHandler.onSuccess = function (result) {\n // eslint-disable-next-line\n var data = result.data;\n if (data) {\n if (typeof data !== 'object') {\n try {\n data = JSON.parse(data);\n }\n catch (error) {\n proxy.pdfViewerBase.onControlError(500, data, this.pdfViewer.serverActionSettings.renderTexts);\n data = null;\n }\n }\n if (data) {\n if (data.documentTextCollection && data.uniqueId === proxy.pdfViewerBase.documentId) {\n proxy.pdfViewer.fireAjaxRequestSuccess(this.pdfViewer.serverActionSettings.renderTexts, data);\n if (proxy.documentTextCollection.length > 0) {\n proxy.documentTextCollection = data.documentTextCollection.concat(proxy.documentTextCollection);\n proxy.documentTextCollection = proxy.orderPdfTextCollections(proxy.documentTextCollection);\n }\n else {\n proxy.documentTextCollection = data.documentTextCollection;\n }\n var pageCount = proxy.pdfViewerBase.pageCount;\n if (endIndex !== pageCount) {\n startIndex = endIndex;\n endIndex = endIndex + 50;\n if (endIndex >= pageCount) {\n endIndex = pageCount;\n }\n proxy.createRequestForGetPdfTexts(startIndex, endIndex);\n }\n else {\n proxy.isTextRetrieved = true;\n proxy.pdfViewer.fireTextExtractionCompleted(proxy.documentTextCollection);\n if (proxy.isTextSearched && proxy.searchString.length > 0) {\n proxy.textSearch(proxy.searchString);\n proxy.isTextSearched = false;\n }\n }\n }\n }\n }\n };\n // eslint-disable-next-line\n this.searchRequestHandler.onFailure = function (result) {\n proxy.pdfViewer.fireAjaxRequestFailed(result.status, result.statusText, this.pdfViewer.serverActionSettings.renderTexts);\n };\n // eslint-disable-next-line\n this.searchRequestHandler.onError = function (result) {\n proxy.pdfViewerBase.openNotificationPopup();\n proxy.pdfViewer.fireAjaxRequestFailed(result.status, result.statusText, this.pdfViewer.serverActionSettings.renderTexts);\n };\n };\n // eslint-disable-next-line\n TextSearch.prototype.orderPdfTextCollections = function (oldCollection) {\n // eslint-disable-next-line\n var annotationCollectionList = [];\n for (var i = 0; i < oldCollection.length; i++) {\n if (annotationCollectionList.length === 0) {\n annotationCollectionList.push(oldCollection[i]);\n }\n else {\n // eslint-disable-next-line\n if (parseInt(Object.keys(oldCollection[i])[0]) > parseInt(Object.keys(annotationCollectionList[annotationCollectionList.length - 1])[0])) {\n annotationCollectionList.push(oldCollection[i]);\n }\n else {\n for (var j = 0; j < annotationCollectionList.length; j++) {\n // eslint-disable-next-line\n if ((parseInt(Object.keys(oldCollection[i])[0]) < parseInt(Object.keys(annotationCollectionList[j])[0]))) {\n annotationCollectionList.splice(j, 0, oldCollection[i]);\n break;\n }\n }\n }\n }\n }\n return annotationCollectionList;\n };\n TextSearch.prototype.createSearchBoxButtons = function (id, className) {\n // eslint-disable-next-line max-len\n var button = createElement('button', { id: this.pdfViewer.element.id + '_' + id, className: 'e-btn e-icon-btn e-pv-search-btn ' + className });\n button.setAttribute('type', 'button');\n // eslint-disable-next-line max-len\n var iconSpan = createElement('span', { id: this.pdfViewer.element.id + '_' + id + 'Icon', className: 'e-pv-icon-search ' + className + '-icon' });\n button.disabled = true;\n button.appendChild(iconSpan);\n return button;\n };\n TextSearch.prototype.enablePrevButton = function (isEnable) {\n if ((!Browser.isDevice || this.pdfViewer.enableDesktopMode)) {\n if (isEnable) {\n this.prevSearchBtn.removeAttribute('disabled');\n }\n else {\n if (this.prevSearchBtn) {\n this.prevSearchBtn.disabled = true;\n }\n }\n }\n };\n TextSearch.prototype.enableNextButton = function (isEnable) {\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n if (isEnable) {\n this.nextSearchBtn.removeAttribute('disabled');\n }\n else {\n if (this.nextSearchBtn) {\n this.nextSearchBtn.disabled = true;\n }\n }\n }\n };\n /**\n * @private\n */\n TextSearch.prototype.resetVariables = function () {\n this.searchedPages = [];\n // eslint-disable-next-line\n this.searchMatches = new Array();\n };\n /**\n * @param element\n * @param inputElement\n * @private\n */\n TextSearch.prototype.searchButtonClick = function (element, inputElement) {\n this.isMessagePopupOpened = false;\n if (isBlazor() && (Browser.isDevice && !this.pdfViewer.enableDesktopMode)) {\n var searchElement = this.pdfViewerBase.getElement('_search_box-icon');\n element = searchElement.children[0].children[0];\n inputElement = this.pdfViewerBase.getElement('_search_input');\n }\n if (element.classList.contains('e-pv-search-icon')) {\n this.initiateTextSearch(inputElement);\n }\n else if (element.classList.contains('e-pv-search-close')) {\n this.showLoadingIndicator(false);\n inputElement.value = '';\n this.resetTextSearch();\n inputElement.focus();\n }\n };\n TextSearch.prototype.updateSearchInputIcon = function (isEnable) {\n if (isBlazor()) {\n if (this.searchBtn && (Browser.isDevice && !this.pdfViewer.enableDesktopMode)) {\n this.searchBtn = this.pdfViewerBase.getElement('_search_box-icon').children[0].children[0];\n }\n }\n if (this.searchBtn) {\n if (isEnable) {\n this.searchBtn.classList.remove('e-pv-search-close');\n this.searchBtn.classList.add('e-pv-search-icon');\n }\n else {\n this.searchBtn.classList.remove('e-pv-search-icon');\n this.searchBtn.classList.add('e-pv-search-close');\n }\n }\n };\n TextSearch.prototype.onMessageBoxOpen = function () {\n var _this = this;\n this.showLoadingIndicator(false);\n this.pdfViewerBase.getElement('_search_input').blur();\n this.isMessagePopupOpened = true;\n if (!Browser.isDevice || this.pdfViewer.enableDesktopMode) {\n if (isBlazor()) {\n var promise = this.pdfViewer._dotnetInstance.invokeMethodAsync('GetLocaleText', 'PdfViewer_Nomatches');\n promise.then(function (value) {\n _this.pdfViewerBase.textLayer.createNotificationPopup(value);\n });\n }\n else {\n this.pdfViewerBase.textLayer.createNotificationPopup(this.pdfViewer.localeObj.getConstant('No matches'));\n }\n }\n else {\n if (isBlazor()) {\n var promise = this.pdfViewer._dotnetInstance.invokeMethodAsync('GetLocaleText', 'PdfViewer_NoTextFound');\n promise.then(function (value) {\n _this.pdfViewerBase.navigationPane.createTooltipMobile(value);\n });\n }\n else {\n this.pdfViewerBase.navigationPane.createTooltipMobile(this.pdfViewer.localeObj.getConstant('No Text Found'));\n }\n }\n };\n /**\n * Searches the target text in the PDF document and highlights the occurrences in the pages\n *\n * @param {string} searchText - Specifies the searchText content\n * @param {boolean} isMatchCase - If set true , its highlights the MatchCase content\n * @returns void\n */\n TextSearch.prototype.searchText = function (searchText, isMatchCase) {\n if (searchText && searchText.length > 0 && searchText[searchText.length - 1] === ' ') {\n searchText = searchText.slice(0, searchText.length - 1);\n }\n this.searchString = searchText;\n this.isMatchCase = isMatchCase;\n this.searchIndex = 0;\n this.textSearch(searchText);\n };\n /**\n * Searches the next occurrence of the searched text from the current occurrence of the PdfViewer.\n *\n * @returns void\n */\n TextSearch.prototype.searchNext = function () {\n this.nextSearch();\n };\n /**\n * Searches the previous occurrence of the searched text from the current occurrence of the PdfViewer.\n *\n * @returns void\n */\n TextSearch.prototype.searchPrevious = function () {\n this.prevSearch();\n };\n /**\n * Cancels the text search of the PdfViewer.\n *\n * @returns void\n */\n TextSearch.prototype.cancelTextSearch = function () {\n this.resetTextSearch();\n };\n /**\n * @private\n */\n TextSearch.prototype.destroy = function () {\n this.searchMatches = undefined;\n };\n /**\n * @private\n */\n TextSearch.prototype.getModuleName = function () {\n return 'TextSearch';\n };\n return TextSearch;\n}());\nexport { TextSearch };\n","/* eslint-disable */\nimport { Browser, isBlazor, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { getDiagramElement } from '@syncfusion/ej2-drawings';\n/**\n * Magnification module\n */\nvar Magnification = /** @class */ (function () {\n /**\n * @param pdfViewer\n * @param viewerBase\n * @private\n */\n function Magnification(pdfViewer, viewerBase) {\n /**\n * @private\n */\n this.zoomFactor = 1;\n /**\n * @private\n */\n this.previousZoomFactor = 1;\n this.scrollWidth = 25;\n this.zoomPercentages = [10, 25, 50, 75, 100, 125, 150, 200, 400];\n this.isNotPredefinedZoom = false;\n this.pinchStep = 0;\n this.reRenderPageNumber = 0;\n // eslint-disable-next-line\n this.magnifyPageRerenderTimer = null;\n // eslint-disable-next-line\n this.rerenderOnScrollTimer = null;\n // eslint-disable-next-line\n this.rerenderInterval = null;\n this.touchCenterX = 0;\n this.touchCenterY = 0;\n this.mouseCenterX = 0;\n this.mouseCenterY = 0;\n this.pageRerenderCount = 0;\n this.imageObjects = [];\n this.topValue = 0;\n this.isTapToFitZoom = false;\n /**\n * @private\n */\n this.fitType = null;\n /**\n * @private\n */\n this.isPinchZoomed = false;\n /**\n * @private\n */\n this.isPagePinchZoomed = false;\n /**\n * @private\n */\n this.isRerenderCanvasCreated = false;\n /**\n * @private\n */\n this.isMagnified = false;\n /**\n * @private\n */\n this.isPagesZoomed = false;\n /**\n * @private\n */\n this.isPinchScrolled = false;\n /**\n * @private\n */\n this.isAutoZoom = false;\n /**\n * @private\n */\n this.isDoubleTapZoom = false;\n /**\n * @private\n */\n this.isFormFieldPageZoomed = false;\n this.isWebkitMobile = false;\n this.isFitToPageMode = true;\n this.pdfViewer = pdfViewer;\n this.pdfViewerBase = viewerBase;\n this.zoomLevel = 2;\n // eslint-disable-next-line max-len\n this.isWebkitMobile = /Chrome/.test(navigator.userAgent) || /Google Inc/.test(navigator.vendor) || (navigator.userAgent.indexOf('Safari') !== -1);\n }\n /**\n * Zoom the PDF document to the given zoom value\n *\n * @param {number} zoomValue - Specifies the Zoom Value for magnify the PDF document\n * @returns void\n */\n Magnification.prototype.zoomTo = function (zoomValue) {\n var MaximumZoomPercentage = 400;\n var MinmumZoomPercentage = 10;\n if (zoomValue < MinmumZoomPercentage) {\n zoomValue = MinmumZoomPercentage;\n }\n else if (zoomValue > MaximumZoomPercentage) {\n zoomValue = MaximumZoomPercentage;\n }\n this.fitType = null;\n this.isNotPredefinedZoom = false;\n if (this.isAutoZoom && this.isInitialLoading) {\n this.pdfViewerBase.onWindowResize();\n }\n else {\n this.isAutoZoom = false;\n this.onZoomChanged(zoomValue);\n }\n this.isInitialLoading = false;\n };\n /**\n * Magnifies the page to the next value in the zoom drop down list.\n *\n * @returns void\n */\n Magnification.prototype.zoomIn = function () {\n if (this.fitType || this.isNotPredefinedZoom) {\n this.zoomLevel = this.lowerZoomLevel;\n this.fitType = null;\n }\n this.isNotPredefinedZoom = false;\n if (this.zoomLevel >= 8) {\n this.zoomLevel = 8;\n }\n else {\n this.zoomLevel++;\n }\n this.isAutoZoom = false;\n this.onZoomChanged(this.zoomPercentages[this.zoomLevel]);\n };\n /**\n * Magnifies the page to the previous value in the zoom drop down list.\n *\n * @returns void\n */\n Magnification.prototype.zoomOut = function () {\n if (this.fitType || this.isNotPredefinedZoom) {\n this.zoomLevel = this.higherZoomLevel;\n this.fitType = null;\n }\n this.isNotPredefinedZoom = false;\n if (this.zoomLevel <= 0) {\n this.zoomLevel = 0;\n }\n else {\n this.zoomLevel--;\n }\n this.isAutoZoom = false;\n this.onZoomChanged(this.zoomPercentages[this.zoomLevel]);\n };\n /**\n * Scales the page to fit the page width to the width of the container in the control.\n *\n * @returns void\n */\n Magnification.prototype.fitToWidth = function () {\n this.isAutoZoom = false;\n var zoomValue = this.calculateFitZoomFactor('fitToWidth');\n this.onZoomChanged(zoomValue);\n };\n /**\n * @private\n */\n Magnification.prototype.fitToAuto = function () {\n this.isAutoZoom = true;\n var zoomValue = this.calculateFitZoomFactor('fitToWidth');\n this.onZoomChanged(zoomValue);\n };\n /**\n * Scales the page to fit the page in the container in the control.\n *\n * @param {number} zoomValue - Defines the Zoom Value for fit the page in the Container\n * @returns void\n */\n Magnification.prototype.fitToPage = function () {\n var zoomValue = this.calculateFitZoomFactor('fitToPage');\n if (zoomValue !== null) {\n this.isAutoZoom = false;\n this.onZoomChanged(zoomValue);\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n if (this.isWebkitMobile) {\n this.pdfViewerBase.viewerContainer.style.overflowY = 'auto';\n }\n else {\n this.pdfViewerBase.viewerContainer.style.overflowY = 'hidden';\n }\n }\n else {\n this.pdfViewerBase.viewerContainer.style.overflowY = 'auto';\n }\n if (this.pdfViewerBase.pageSize[this.pdfViewerBase.currentPageNumber - 1]) {\n // eslint-disable-next-line max-len\n this.pdfViewerBase.viewerContainer.scrollTop = this.pdfViewerBase.pageSize[this.pdfViewerBase.currentPageNumber - 1].top * this.zoomFactor;\n }\n }\n };\n /**\n * Returns zoom factor for the fit zooms.\n *\n * @param type\n */\n Magnification.prototype.calculateFitZoomFactor = function (type) {\n var viewerWidth = this.pdfViewerBase.viewerContainer.getBoundingClientRect().width;\n var viewerHeight = this.pdfViewerBase.viewerContainer.getBoundingClientRect().height;\n if (viewerWidth === 0 && viewerHeight === 0) {\n viewerWidth = parseFloat(this.pdfViewer.width.toString());\n viewerHeight = parseFloat(this.pdfViewer.height.toString());\n }\n if (isNaN(viewerHeight) || isNaN(viewerWidth)) {\n return null;\n }\n this.fitType = type;\n if (this.fitType === 'fitToWidth') {\n var scaleX = ((viewerWidth - this.scrollWidth) / this.pdfViewerBase.highestWidth);\n if (this.isAutoZoom) {\n this.fitType = null;\n scaleX = Math.min(1, scaleX);\n if (scaleX === 1) {\n this.zoomLevel = 2;\n }\n }\n // eslint-disable-next-line radix\n return parseInt((scaleX * 100).toString());\n }\n else {\n this.isFitToPageMode = true;\n var pageLeft = 10;\n var scaleX = ((viewerWidth - this.scrollWidth - pageLeft) / this.pdfViewerBase.highestWidth);\n var scaleY = (viewerHeight / this.pdfViewerBase.highestHeight);\n if (scaleY > scaleX) {\n scaleY = scaleX;\n this.isFitToPageMode = false;\n }\n // eslint-disable-next-line radix\n return parseInt((scaleY * 100).toString());\n }\n };\n /**\n * Initiating cursor based zoom.\n * @private\n */\n Magnification.prototype.initiateMouseZoom = function (pointX, pointY, zoomValue) {\n var pointInViewer = this.positionInViewer(pointX, pointY);\n this.mouseCenterX = pointInViewer.x;\n this.mouseCenterY = pointInViewer.y;\n this.zoomTo(zoomValue);\n };\n /**\n * Performs pinch in operation\n */\n Magnification.prototype.pinchIn = function () {\n this.fitType = null;\n var temporaryZoomFactor = this.zoomFactor - this.pinchStep;\n if (temporaryZoomFactor < 4 && temporaryZoomFactor > 2) {\n temporaryZoomFactor = this.zoomFactor - this.pinchStep;\n }\n if (temporaryZoomFactor <= 1.5) {\n temporaryZoomFactor = this.zoomFactor - (this.pinchStep / 1.5);\n }\n if (temporaryZoomFactor < 0.25) {\n temporaryZoomFactor = 0.25;\n }\n this.isPinchZoomed = true;\n this.onZoomChanged(temporaryZoomFactor * 100);\n this.isTapToFitZoom = true;\n if ((Browser.isDevice && !this.pdfViewer.enableDesktopMode) && (this.zoomFactor * 100) === 50) {\n var zoomValue = this.calculateFitZoomFactor('fitToWidth');\n this.fitType = null;\n if (zoomValue <= 50) {\n this.fitToWidth();\n }\n }\n };\n /**\n * Performs pinch out operation\n */\n Magnification.prototype.pinchOut = function () {\n this.fitType = null;\n var temporaryZoomFactor = this.zoomFactor + this.pinchStep;\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n if (temporaryZoomFactor > 4) {\n temporaryZoomFactor = 4;\n }\n }\n else {\n if (temporaryZoomFactor > 2) {\n temporaryZoomFactor = temporaryZoomFactor + this.pinchStep;\n }\n if (temporaryZoomFactor > 4) {\n temporaryZoomFactor = 4;\n }\n }\n this.isTapToFitZoom = true;\n this.isPinchZoomed = true;\n this.onZoomChanged(temporaryZoomFactor * 100);\n };\n /**\n * returns zoom level for the zoom factor.\n *\n * @param zoomFactor\n */\n Magnification.prototype.getZoomLevel = function (zoomFactor) {\n var min = 0;\n var max = this.zoomPercentages.length - 1;\n while ((min <= max) && !(min === 0 && max === 0)) {\n var mid = Math.round((min + max) / 2);\n if (this.zoomPercentages[mid] <= zoomFactor) {\n min = mid + 1;\n }\n else if (this.zoomPercentages[mid] >= zoomFactor) {\n max = mid - 1;\n }\n }\n this.higherZoomLevel = min;\n this.lowerZoomLevel = max;\n return max;\n };\n /**\n * @private\n */\n Magnification.prototype.checkZoomFactor = function () {\n return this.zoomPercentages.indexOf(this.zoomFactor * 100) > -1;\n };\n /**\n * Executes when the zoom or pinch operation is performed\n *\n * @param zoomValue\n */\n Magnification.prototype.onZoomChanged = function (zoomValue) {\n if (zoomValue) {\n if (this.pdfViewer.annotationModule) {\n this.pdfViewer.annotationModule.closePopupMenu();\n }\n this.previousZoomFactor = this.zoomFactor;\n this.zoomLevel = this.getZoomLevel(zoomValue);\n this.zoomFactor = this.getZoomFactor(zoomValue);\n if (this.zoomFactor <= 0.25) {\n this.pdfViewerBase.isMinimumZoom = true;\n }\n else {\n this.pdfViewerBase.isMinimumZoom = false;\n }\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n if (this.isWebkitMobile) {\n this.pdfViewerBase.viewerContainer.style.overflowY = 'auto';\n }\n else {\n this.pdfViewerBase.viewerContainer.style.overflowY = 'hidden';\n }\n }\n else {\n this.pdfViewerBase.viewerContainer.style.overflowY = 'auto';\n }\n if (this.pdfViewerBase.pageCount > 0) {\n if ((this.previousZoomFactor !== this.zoomFactor)) {\n if (!this.isPinchZoomed) {\n this.magnifyPages();\n }\n else {\n if (Browser.isDevice && !this.pdfViewer.enableDesktopMode) {\n // eslint-disable-next-line max-len\n this.pdfViewerBase.mobilePageNoContainer.style.left = (this.pdfViewer.element.clientWidth / 2) - (parseFloat(this.pdfViewerBase.mobilePageNoContainer.style.width) / 2) + 'px';\n }\n this.responsivePages();\n }\n }\n if (!isBlazor()) {\n if (this.pdfViewer.toolbarModule) {\n this.pdfViewer.toolbarModule.updateZoomButtons();\n }\n }\n if (!this.isInitialLoading) {\n if (this.previousZoomFactor !== this.zoomFactor) {\n // eslint-disable-next-line\n this.pdfViewer.zoomValue = parseInt((this.zoomFactor * 100).toString());\n this.pdfViewer.fireZoomChange();\n }\n }\n }\n if (this.pdfViewer.toolbarModule) {\n this.pdfViewer.toolbarModule.updateZoomPercentage(this.zoomFactor);\n }\n if (!this.isInitialLoading) {\n if (this.previousZoomFactor !== this.zoomFactor) {\n this.pdfViewer.zoomValue = parseInt((this.zoomFactor * 100).toString());\n this.pdfViewer.fireZoomChange();\n }\n }\n if ((Browser.isDevice && !this.pdfViewer.enableDesktopMode) && this.isPinchZoomed) {\n // eslint-disable-next-line radix\n var zoomPercentage = parseInt((this.zoomFactor * 100).toString()) + '%';\n this.pdfViewerBase.navigationPane.createTooltipMobile(zoomPercentage);\n }\n }\n };\n /**\n * @param clientX\n * @param clientY\n * @private\n */\n Magnification.prototype.setTouchPoints = function (clientX, clientY) {\n var pointInViewer = this.positionInViewer(clientX, clientY);\n this.touchCenterX = pointInViewer.x;\n this.touchCenterY = pointInViewer.y;\n };\n /**\n * @param pointX1\n * @param pointY1\n * @param pointX2\n * @param pointY2\n * @param pointX1\n * @param pointY1\n * @param pointX2\n * @param pointY2\n * @param pointX1\n * @param pointY1\n * @param pointX2\n * @param pointY2\n * @param pointX1\n * @param pointY1\n * @param pointX2\n * @param pointY2\n * @private\n */\n Magnification.prototype.initiatePinchMove = function (pointX1, pointY1, pointX2, pointY2) {\n this.isPinchScrolled = false;\n this.isMagnified = false;\n this.reRenderPageNumber = this.pdfViewerBase.currentPageNumber;\n var pointInViewer = this.positionInViewer((pointX1 + pointX2) / 2, (pointY1 + pointY2) / 2);\n this.touchCenterX = pointInViewer.x;\n this.touchCenterY = pointInViewer.y;\n this.zoomOverPages(pointX1, pointY1, pointX2, pointY2);\n };\n Magnification.prototype.magnifyPages = function () {\n this.clearRerenderTimer();\n if (!this.isPagesZoomed) {\n this.reRenderPageNumber = this.pdfViewerBase.currentPageNumber;\n }\n if (!this.pdfViewerBase.documentLoaded && !this.pdfViewerBase.isInitialPageMode) {\n this.isPagesZoomed = true;\n }\n var scrollValue = this.pdfViewerBase.viewerContainer.scrollTop;\n if (this.pdfViewer.textSelectionModule) {\n this.pdfViewer.textSelectionModule.maintainSelectionOnZoom(false, true);\n }\n if (this.pdfViewer.formDesignerModule && !this.pdfViewerBase.documentLoaded && !this.pdfViewerBase.isDocumentLoaded) {\n this.isFormFieldPageZoomed = true;\n }\n if (!this.isInitialLoading) {\n this.isMagnified = true;\n }\n this.updatePageLocation();\n this.resizeCanvas(this.reRenderPageNumber);\n this.calculateScrollValuesOnMouse(scrollValue);\n if (this.pdfViewer.textSelectionModule) {\n this.pdfViewer.textSelectionModule.resizeTouchElements();\n }\n // eslint-disable-next-line\n var annotModule = this.pdfViewer.annotationModule;\n if (annotModule && annotModule.textMarkupAnnotationModule) {\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.updateCurrentResizerPosition();\n }\n if (this.pdfViewerBase.pageSize.length > 0) {\n // eslint-disable-next-line max-len\n this.pdfViewerBase.pageContainer.style.height = this.topValue + this.pdfViewerBase.getPageHeight(this.pdfViewerBase.pageSize.length - 1) + 'px';\n // eslint-disable-next-line\n var proxy_1 = this;\n this.pdfViewerBase.renderedPagesList = [];\n this.pdfViewerBase.pinchZoomStorage = [];\n if (!this.pdfViewerBase.documentLoaded) {\n this.magnifyPageRerenderTimer = setTimeout(function () {\n proxy_1.rerenderMagnifiedPages();\n }, 800);\n }\n }\n };\n Magnification.prototype.updatePageLocation = function () {\n this.topValue = 0;\n for (var i = 1; i < this.pdfViewerBase.pageSize.length; i++) {\n this.topValue += (this.pdfViewerBase.pageSize[i].height + this.pdfViewerBase.pageGap) * this.zoomFactor;\n }\n var limit = this.pdfViewerBase.pageCount < 10 ? this.pdfViewerBase.pageCount : 10;\n for (var i = 0; i < limit; i++) {\n this.updatePageContainer(i, this.pdfViewerBase.getPageWidth(i), this.pdfViewerBase.getPageHeight(i), this.pdfViewerBase.getPageTop(i), true);\n }\n };\n Magnification.prototype.updatePageContainer = function (pageNumber, pageWidth, pageHeight, topValue, isReRender) {\n // eslint-disable-next-line\n var pageDiv = this.pdfViewerBase.getElement('_pageDiv_' + pageNumber);\n if (pageDiv) {\n pageDiv.style.width = pageWidth + 'px';\n pageDiv.style.height = pageHeight + 'px';\n // eslint-disable-next-line\n var textLayerDiv = this.pdfViewerBase.getElement('_textLayer_' + pageNumber);\n if (textLayerDiv) {\n textLayerDiv.style.width = pageWidth + 'px';\n textLayerDiv.style.height = pageHeight + 'px';\n }\n pageDiv.style.width = pageWidth + 'px';\n pageDiv.style.height = pageHeight + 'px';\n if (this.pdfViewer.enableRtl) {\n pageDiv.style.right = this.pdfViewerBase.updateLeftPosition(pageNumber) + 'px';\n }\n else {\n pageDiv.style.left = this.pdfViewerBase.updateLeftPosition(pageNumber) + 'px';\n }\n pageDiv.style.top = topValue + 'px';\n this.pdfViewerBase.pageContainer.style.width = this.pdfViewerBase.viewerContainer.clientWidth + 'px';\n this.pdfViewerBase.renderPageCanvas(pageDiv, pageWidth, pageHeight, pageNumber, 'block');\n }\n };\n Magnification.prototype.clearRerenderTimer = function () {\n clearTimeout(this.rerenderOnScrollTimer);\n clearTimeout(this.magnifyPageRerenderTimer);\n this.clearIntervalTimer();\n this.isPinchScrolled = false;\n };\n /**\n * @private\n */\n Magnification.prototype.clearIntervalTimer = function () {\n clearInterval(this.rerenderInterval);\n this.rerenderInterval = null;\n this.clearRendering();\n var oldCanvases = document.querySelectorAll('canvas[id*=\"' + this.pdfViewer.element.id + '_oldCanvas_\"]');\n for (var i = 0; i < oldCanvases.length; i++) {\n // eslint-disable-next-line\n var pageNumber = parseInt(oldCanvases[i].id.split('_oldCanvas_')[1]);\n var pageCanvas = this.pdfViewerBase.getElement('_pageCanvas_' + pageNumber);\n if (pageCanvas) {\n oldCanvases[i].id = pageCanvas.id;\n pageCanvas.parentElement.removeChild(pageCanvas);\n }\n else {\n oldCanvases[i].id = this.pdfViewer.element.id + '_pageCanvas_' + pageNumber;\n }\n if (this.pdfViewerBase.isTextMarkupAnnotationModule()) {\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.rerenderAnnotationsPinch(i);\n }\n }\n this.isRerenderCanvasCreated = false;\n };\n /**\n * @param image\n * @private\n */\n Magnification.prototype.pushImageObjects = function (image) {\n if (!isNullOrUndefined(this.imageObjects)) {\n this.imageObjects && this.imageObjects.push(image);\n }\n };\n Magnification.prototype.clearRendering = function () {\n if (this.imageObjects) {\n for (var j = 0; j < this.imageObjects.length; j++) {\n if (this.imageObjects[j]) {\n this.imageObjects[j].onload = null;\n }\n }\n this.imageObjects = [];\n }\n };\n Magnification.prototype.rerenderMagnifiedPages = function () {\n if ((this.pdfViewerBase.isInitialLoaded || this.pdfViewerBase.isDocumentLoaded) && !this.pdfViewerBase.isInitialPageMode) {\n this.renderInSeparateThread(this.reRenderPageNumber);\n this.isPagesZoomed = false;\n }\n else if (this.pdfViewerBase.isInitialPageMode) {\n this.pageRerenderCount = 0;\n this.pdfViewerBase.renderedPagesList = [];\n this.pdfViewerBase.pinchZoomStorage = [];\n this.isMagnified = false;\n this.pdfViewerBase.pageViewScrollChanged(this.reRenderPageNumber);\n this.pdfViewerBase.isInitialPageMode = false;\n }\n };\n Magnification.prototype.renderInSeparateThread = function (pageNumber) {\n var _this = this;\n this.designNewCanvas(pageNumber);\n this.pageRerenderCount = 0;\n this.pdfViewerBase.renderedPagesList = [];\n this.pdfViewerBase.pinchZoomStorage = [];\n this.isMagnified = false;\n this.pdfViewerBase.pageViewScrollChanged(this.reRenderPageNumber);\n // eslint-disable-next-line\n var proxy = this;\n this.rerenderInterval = setInterval(function () {\n _this.initiateRerender(proxy);\n }, 1);\n };\n Magnification.prototype.responsivePages = function () {\n this.isPagesZoomed = true;\n this.clearRerenderTimer();\n if (this.pdfViewer.textSelectionModule) {\n this.pdfViewer.textSelectionModule.clearTextSelection();\n }\n if (this.pdfViewer.textSearchModule) {\n this.pdfViewer.textSearchModule.clearAllOccurrences();\n }\n var scrollValue = this.pdfViewerBase.viewerContainer.scrollTop;\n this.isAutoZoom = false;\n this.updatePageLocation();\n // eslint-disable-next-line max-len\n this.pdfViewerBase.pageContainer.style.height = this.topValue + this.pdfViewerBase.pageSize[this.pdfViewerBase.pageSize.length - 1].height * this.zoomFactor + 'px';\n this.resizeCanvas(this.pdfViewerBase.currentPageNumber);\n if (this.pdfViewerBase.textLayer && this.pdfViewer.formDesignerModule) {\n this.pdfViewerBase.textLayer.clearTextLayers(true);\n }\n if (this.isPinchZoomed) {\n this.calculateScrollValues(scrollValue);\n }\n this.pdfViewerBase.renderedPagesList = [];\n this.pdfViewerBase.pinchZoomStorage = [];\n if (this.pdfViewer.formFieldsModule && !this.pdfViewer.formDesignerModule) {\n var proxy_2 = this;\n if (!this.pdfViewerBase.documentLoaded) {\n this.magnifyPageRerenderTimer = setTimeout(function () {\n proxy_2.rerenderMagnifiedPages();\n }, 800);\n }\n }\n };\n Magnification.prototype.calculateScrollValues = function (scrollValue) {\n var pageIndex = this.pdfViewerBase.currentPageNumber - 1;\n var currentPageCanvas = this.pdfViewerBase.getElement('_pageDiv_' + pageIndex);\n if (currentPageCanvas) {\n var pointInViewer = void 0;\n var currentPageBounds = currentPageCanvas.getBoundingClientRect();\n if (this.pdfViewer.enableRtl && !this.isDoubleTapZoom) {\n pointInViewer = this.positionInViewer(currentPageBounds.right, currentPageBounds.top);\n }\n else {\n pointInViewer = this.positionInViewer(currentPageBounds.left, currentPageBounds.top);\n }\n var currentPageBoundsLeft = pointInViewer.x;\n var currentPageBoundsTop = pointInViewer.y;\n // update scroll top for the viewer container based on pinch zoom factor\n var previousPageTop = (currentPageBoundsTop) * this.previousZoomFactor;\n var canvasPreviousY = scrollValue + this.touchCenterY;\n // eslint-disable-next-line max-len\n var canvasCurrentY = (currentPageBoundsTop) * this.zoomFactor + ((canvasPreviousY - previousPageTop) < 0 ? canvasPreviousY - previousPageTop : (canvasPreviousY -\n // eslint-disable-next-line max-len\n previousPageTop) * (this.zoomFactor / this.previousZoomFactor));\n var pageGapValue = this.zoomFactor - this.previousZoomFactor > 0 ? -this.pdfViewerBase.pageGap * (this.zoomFactor / this.previousZoomFactor) : this.pdfViewerBase.pageGap * (this.previousZoomFactor / this.zoomFactor);\n this.pdfViewerBase.viewerContainer.scrollTop = canvasCurrentY - this.touchCenterY + pageGapValue / this.pdfViewerBase.zoomInterval;\n // update scroll left for the viewer container based on pinch zoom factor\n var previousWidthFactor = (currentPageBounds.width * this.previousZoomFactor) / currentPageBounds.width;\n var scaleCorrectionFactor = this.zoomFactor / previousWidthFactor - 1;\n var scrollX_1 = this.touchCenterX - currentPageBoundsLeft;\n this.pdfViewerBase.viewerContainer.scrollLeft += scrollX_1 * scaleCorrectionFactor;\n }\n };\n Magnification.prototype.calculateScrollValuesOnMouse = function (scrollValue) {\n var pageIndex = this.pdfViewerBase.currentPageNumber - 1;\n var currentPageCanvas = this.pdfViewerBase.getElement('_pageDiv_' + pageIndex);\n if (currentPageCanvas) {\n var pointInViewer = void 0;\n var currentPageBounds = currentPageCanvas.getBoundingClientRect();\n if (this.pdfViewer.enableRtl) {\n pointInViewer = this.positionInViewer(currentPageBounds.right, currentPageBounds.top);\n }\n else {\n pointInViewer = this.positionInViewer(currentPageBounds.left, currentPageBounds.top);\n }\n var currentPageBoundsLeft = pointInViewer.x;\n var currentPageBoundsTop = pointInViewer.y;\n // update scroll top for the viewer container based on mouse zoom factor\n var previousPageTop = (currentPageBoundsTop) * this.previousZoomFactor;\n var canvasPreviousY = scrollValue + this.mouseCenterY;\n // eslint-disable-next-line max-len\n var canvasCurrentY = (currentPageBoundsTop) * this.zoomFactor + ((canvasPreviousY - previousPageTop) < 0 ? canvasPreviousY - previousPageTop : (canvasPreviousY -\n // eslint-disable-next-line max-len\n previousPageTop) * (this.zoomFactor / this.previousZoomFactor));\n // eslint-disable-next-line max-len\n var pageGapValue = this.zoomFactor - this.previousZoomFactor > 0 ? -this.pdfViewerBase.pageGap * (this.zoomFactor / this.previousZoomFactor) : this.pdfViewerBase.pageGap * (this.previousZoomFactor / this.zoomFactor);\n if (this.pdfViewerBase.isTouchPad && !this.pdfViewerBase.isMacSafari) {\n pageGapValue = pageGapValue / this.pdfViewerBase.zoomInterval;\n }\n this.pdfViewerBase.viewerContainer.scrollTop = canvasCurrentY - this.mouseCenterY + pageGapValue;\n // update scroll left for the viewer container based on mouse zoom factor\n var previousWidthFactor = (currentPageBounds.width * this.previousZoomFactor) / currentPageBounds.width;\n var scaleCorrectionFactor = this.zoomFactor / previousWidthFactor - 1;\n var scrollX_2 = this.mouseCenterX - currentPageBoundsLeft;\n this.pdfViewerBase.viewerContainer.scrollLeft += scrollX_2 * scaleCorrectionFactor;\n }\n };\n Magnification.prototype.rerenderOnScroll = function () {\n var _this = this;\n this.isPinchZoomed = false;\n if (this.isPinchScrolled) {\n this.rerenderOnScrollTimer = null;\n this.isPinchScrolled = false;\n this.reRenderPageNumber = this.pdfViewerBase.currentPageNumber;\n this.pdfViewerBase.renderedPagesList = [];\n this.pdfViewerBase.pinchZoomStorage = [];\n var pageDivs = document.querySelectorAll('img[id*=\"' + this.pdfViewer.element.id + '_pageCanvas_\"]');\n var viewPortWidth = 816;\n for (var i = 0; i < pageDivs.length; i++) {\n // eslint-disable-next-line radix\n var pageNumber = parseInt(pageDivs[i].id.split('_pageCanvas_')[1]);\n var pageWidth = this.pdfViewerBase.pageSize[pageNumber].width;\n if ((viewPortWidth < pageWidth) && this.pdfViewer.tileRenderingSettings.enableTileRendering) {\n if (this.pdfViewer.restrictZoomRequest) {\n pageDivs[i].style.width = pageWidth * this.pdfViewerBase.getZoomFactor() + 'px';\n // eslint-disable-next-line max-len\n pageDivs[i].style.height = this.pdfViewerBase.pageSize[pageNumber].height * this.pdfViewerBase.getZoomFactor() + 'px';\n }\n else {\n pageDivs[i].style.width = pageWidth * this.pdfViewerBase.getZoomFactor() + 'px';\n // eslint-disable-next-line max-len\n pageDivs[i].style.height = this.pdfViewerBase.pageSize[pageNumber].height * this.pdfViewerBase.getZoomFactor() + 'px';\n }\n }\n }\n if (this.pdfViewerBase.textLayer) {\n var textLayers = document.querySelectorAll('div[id*=\"' + this.pdfViewer.element.id + '_textLayer_\"]');\n for (var i = 0; i < textLayers.length; i++) {\n textLayers[i].style.display = 'block';\n }\n }\n if (this.pdfViewerBase.isTextMarkupAnnotationModule()) {\n // eslint-disable-next-line max-len\n var annotationLayers = document.querySelectorAll('canvas[id*=\"' + this.pdfViewer.element.id + '_annotationCanvas_\"]');\n for (var j = 0; j < annotationLayers.length; j++) {\n var pageNumber = annotationLayers[j].id.split('_annotationCanvas_')[1];\n // eslint-disable-next-line radix\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.rerenderAnnotationsPinch(parseInt(pageNumber));\n }\n }\n this.pdfViewerBase.pageViewScrollChanged(this.reRenderPageNumber);\n this.isPagePinchZoomed = false;\n this.rerenderOnScrollTimer = setTimeout(function () {\n _this.pdfViewerBase.pageViewScrollChanged(_this.reRenderPageNumber);\n }, 300);\n }\n };\n /**\n * @private\n */\n Magnification.prototype.pinchMoveScroll = function () {\n var _this = this;\n if (this.isRerenderCanvasCreated) {\n this.clearIntervalTimer();\n }\n if (this.isPagesZoomed || (!this.isRerenderCanvasCreated && this.isPagePinchZoomed)) {\n this.clearRendering();\n this.isPagesZoomed = false;\n clearTimeout(this.magnifyPageRerenderTimer);\n this.isPinchScrolled = true;\n this.isFormFieldPageZoomed = true;\n this.rerenderOnScrollTimer = setTimeout(function () {\n _this.rerenderOnScroll();\n }, 100);\n }\n };\n // eslint-disable-next-line\n Magnification.prototype.initiateRerender = function (proxy) {\n var isReRender = false;\n if (this.previousZoomFactor < 0.4 || this.pdfViewerBase.isMinimumZoom) {\n isReRender = true;\n }\n // eslint-disable-next-line max-len\n if (((proxy.pageRerenderCount === proxy.pdfViewerBase.reRenderedCount) || isReRender) && proxy.pageRerenderCount !== 0 && proxy.pdfViewerBase.reRenderedCount !== 0) {\n proxy.reRenderAfterPinch(this.reRenderPageNumber);\n proxy.isFormFieldPageZoomed = false;\n }\n };\n Magnification.prototype.reRenderAfterPinch = function (currentPageIndex) {\n this.pageRerenderCount = 0;\n var lowerPageValue = currentPageIndex - 3;\n var higherPageValue = currentPageIndex + 1;\n if (this.pdfViewerBase.isMinimumZoom) {\n lowerPageValue = currentPageIndex - 4;\n higherPageValue = currentPageIndex + 4;\n }\n lowerPageValue = (lowerPageValue > 0) ? lowerPageValue : 0;\n higherPageValue = (higherPageValue < this.pdfViewerBase.pageCount) ? higherPageValue : (this.pdfViewerBase.pageCount - 1);\n for (var i = lowerPageValue; i <= higherPageValue; i++) {\n var pageDiv = this.pdfViewerBase.getElement('_pageDiv_' + i);\n var pageCanvas = this.pdfViewerBase.getElement('_pageCanvas_' + i);\n var oldCanvas = this.pdfViewerBase.getElement('_oldCanvas_' + i);\n if (oldCanvas) {\n oldCanvas.parentNode.removeChild(oldCanvas);\n }\n if (this.pdfViewerBase.isTextMarkupAnnotationModule()) {\n this.pdfViewer.annotationModule.textMarkupAnnotationModule.rerenderAnnotations(i);\n }\n else if (this.pdfViewer.formDesignerModule) {\n this.rerenderAnnotations(i);\n this.pdfViewer.renderDrawing(undefined, currentPageIndex);\n }\n if (pageDiv) {\n pageDiv.style.visibility = 'visible';\n }\n }\n this.isRerenderCanvasCreated = false;\n this.isPagePinchZoomed = false;\n if (this.pdfViewerBase.reRenderedCount !== 0) {\n this.pdfViewerBase.reRenderedCount = 0;\n this.pageRerenderCount = 0;\n clearInterval(this.rerenderInterval);\n this.rerenderInterval = null;\n }\n this.imageObjects = [];\n };\n /**\n * @param pageNumber\n * @private\n */\n Magnification.prototype.rerenderAnnotations = function (pageNumber) {\n // eslint-disable-next-line\n var oldCanvasCollection = document.querySelectorAll('#' + this.pdfViewer.element.id + '_old_annotationCanvas_' + pageNumber);\n for (var i = 0; i < oldCanvasCollection.length; i++) {\n if (oldCanvasCollection[i]) {\n oldCanvasCollection[i].parentElement.removeChild(oldCanvasCollection[i]);\n }\n }\n var newCanvas = this.pdfViewerBase.getElement('_annotationCanvas_' + pageNumber);\n if (newCanvas) {\n newCanvas.style.display = 'block';\n }\n };\n Magnification.prototype.designNewCanvas = function (currentPageIndex) {\n if (this.pdfViewerBase.textLayer) {\n this.pdfViewerBase.textLayer.clearTextLayers();\n }\n var lowerPageValue = currentPageIndex - 3;\n var higherPageValue = currentPageIndex + 1; // jshint ignore:line\n if (this.pdfViewerBase.isMinimumZoom) {\n lowerPageValue = currentPageIndex - 4;\n higherPageValue = currentPageIndex + 4;\n }\n lowerPageValue = (lowerPageValue > 0) ? lowerPageValue : 0;\n higherPageValue = (higherPageValue < this.pdfViewerBase.pageCount) ? higherPageValue : (this.pdfViewerBase.pageCount - 1);\n for (var i = lowerPageValue; i <= higherPageValue; i++) {\n var canvas = this.pdfViewerBase.getElement('_pageCanvas_' + i);\n var width = this.pdfViewerBase.pageSize[i].width * this.zoomFactor;\n var height = this.pdfViewerBase.pageSize[i].height * this.zoomFactor;\n if (canvas && !this.pdfViewer.restrictZoomRequest) {\n // eslint-disable-next-line max-len\n this.pdfViewerBase.renderPageCanvas(this.pdfViewerBase.getElement('_pageDiv_' + i), width, height, i, 'none');\n }\n else if (!this.pdfViewer.restrictZoomRequest) {\n // eslint-disable-next-line max-len\n this.pdfViewerBase.renderPageCanvas(this.pdfViewerBase.getElement('_pageDiv_' + i), width, height, i, 'none');\n }\n }\n this.isRerenderCanvasCreated = true;\n };\n /**\n * @private\n */\n Magnification.prototype.pageRerenderOnMouseWheel = function () {\n var _this = this;\n if (this.isRerenderCanvasCreated) {\n this.clearIntervalTimer();\n clearTimeout(this.magnifyPageRerenderTimer);\n if (!this.isPinchScrolled) {\n this.isPinchScrolled = true;\n this.rerenderOnScrollTimer = setTimeout(function () {\n _this.rerenderOnScroll();\n }, 100);\n }\n }\n };\n /**\n * @private\n */\n Magnification.prototype.renderCountIncrement = function () {\n if (this.isRerenderCanvasCreated) {\n this.pageRerenderCount++;\n }\n };\n /**\n * @private\n */\n Magnification.prototype.rerenderCountIncrement = function () {\n if (this.pageRerenderCount > 0) {\n this.pdfViewerBase.reRenderedCount++;\n }\n };\n /**\n * @param pageNumber\n * @private\n */\n Magnification.prototype.resizeCanvas = function (pageNumber) {\n var annotationModule = this.pdfViewer.annotationModule;\n if (annotationModule && annotationModule.inkAnnotationModule) {\n // eslint-disable-next-line\n var currentPageNumber = parseInt(annotationModule.inkAnnotationModule.currentPageNumber);\n annotationModule.inkAnnotationModule.drawInkAnnotation(currentPageNumber);\n }\n if (annotationModule && annotationModule.freeTextAnnotationModule) {\n // eslint-disable-next-line\n var currentPosition = { x: annotationModule.freeTextAnnotationModule.currentPosition[0], y: annotationModule.freeTextAnnotationModule.currentPosition[1], width: annotationModule.freeTextAnnotationModule.currentPosition[2], height: annotationModule.freeTextAnnotationModule.currentPosition[3] };\n annotationModule.freeTextAnnotationModule.addInputInZoom(currentPosition);\n }\n var lowerPageValue = pageNumber - 3;\n var higherPageValue = pageNumber + 3;\n if (this.pdfViewerBase.isMinimumZoom) {\n lowerPageValue = pageNumber - 4;\n higherPageValue = pageNumber + 4;\n }\n lowerPageValue = (lowerPageValue > 0) ? lowerPageValue : 0;\n higherPageValue = (higherPageValue < this.pdfViewerBase.pageCount) ? higherPageValue : (this.pdfViewerBase.pageCount - 1);\n for (var i = lowerPageValue; i <= higherPageValue; i++) {\n var pageDiv = this.pdfViewerBase.getElement('_pageDiv_' + i);\n var textLayer = document.getElementById(this.pdfViewer.element.id + '_textLayer_' + i);\n if (pageDiv) {\n if ((lowerPageValue <= i) && (i <= higherPageValue)) {\n var isSelectionAvailable = false;\n if (this.pdfViewer.textSelectionModule) {\n isSelectionAvailable = this.pdfViewer.textSelectionModule.isSelectionAvailableOnScroll(i);\n }\n if (this.pdfViewerBase.pageSize[i] != null) {\n var width = this.pdfViewerBase.pageSize[i].width * this.zoomFactor;\n var height = this.pdfViewerBase.pageSize[i].height * this.zoomFactor;\n pageDiv.style.width = width + 'px';\n pageDiv.style.height = height + 'px';\n // eslint-disable-next-line max-len\n pageDiv.style.top = ((this.pdfViewerBase.pageSize[i].top) * this.zoomFactor) + 'px';\n if (this.pdfViewer.enableRtl) {\n pageDiv.style.right = this.pdfViewerBase.updateLeftPosition(i) + 'px';\n }\n else {\n pageDiv.style.left = this.pdfViewerBase.updateLeftPosition(i) + 'px';\n }\n var canvas = this.pdfViewerBase.getElement('_pageCanvas_' + i);\n if (canvas) {\n canvas.style.width = (width) + 'px';\n canvas.style.height = height + 'px';\n if (this.pdfViewer.annotation) {\n this.pdfViewer.annotationModule.resizeAnnotations(width, height, i);\n }\n else if (this.pdfViewer.formDesignerModule) {\n this.pdfViewer.formDesignerModule.resizeAnnotations(width, height, i);\n }\n }\n var zoomFactor = this.pdfViewerBase.retrieveCurrentZoomFactor();\n var tileCount = this.pdfViewerBase.getTileCount(this.pdfViewerBase.pageSize[i].width);\n var noTileX = void 0;\n var noTileY = void 0;\n noTileX = noTileY = tileCount;\n var tileSettings = this.pdfViewer.tileRenderingSettings;\n if (tileSettings.enableTileRendering && tileSettings.x > 0 && tileSettings.y > 0) {\n if ((1200 < this.pdfViewerBase.pageSize[i].width || this.pdfViewerBase.getZoomFactor() > 2)) {\n noTileX = tileSettings.x;\n noTileY = tileSettings.y;\n }\n }\n var tileRequestCount = noTileX * noTileY;\n if (tileRequestCount === 1) {\n var storedData = this.pdfViewerBase.getWindowSessionStorage(i, zoomFactor) ? this.pdfViewerBase.getWindowSessionStorage(i, zoomFactor) : this.pdfViewerBase.getPinchZoomPage(i);\n if (storedData) {\n storedData = JSON.parse(storedData);\n var imageData = storedData['image'];\n if (imageData) {\n canvas.src = imageData;\n canvas.style.display = 'block';\n var oldCanvases = document.querySelectorAll('img[id*=\"' + this.pdfViewer.element.id + '_tileimg_' + i + '_\"]');\n var pageCanvas = this.pdfViewerBase.getElement('_pageDiv_' + i);\n for (var k = 0; k < oldCanvases.length; k++) {\n var tileImgId = oldCanvases[k].id.split('_');\n if (parseFloat(tileImgId[tileImgId.length - 3]) != this.pdfViewerBase.getZoomFactor())\n pageCanvas.removeChild(oldCanvases[k]);\n }\n var oldPageDiv = document.querySelectorAll('img[id*=\"' + this.pdfViewer.element.id + '_oldCanvas\"]');\n for (var j = 0; j < oldPageDiv.length; j++) {\n pageDiv.removeChild(oldPageDiv[j]);\n }\n }\n this.pdfViewerBase.isReRenderRequired = false;\n }\n else {\n this.pdfViewerBase.isReRenderRequired = true;\n }\n }\n else {\n var oldCanvases = document.querySelectorAll('img[id*=\"' + this.pdfViewer.element.id + '_tileimg_' + i + '_\"]');\n for (var l = 0; l < oldCanvases.length; l++) {\n var tileImgId = oldCanvases[l].id.split('_');\n var tileX = parseFloat(tileImgId[tileImgId.length - 2]);\n var tileY = parseFloat(tileImgId[tileImgId.length - 1]);\n // eslint-disable-next-line\n var tileData = JSON.parse(this.pdfViewerBase.getWindowSessionStorageTile(i, tileX, tileY, zoomFactor));\n if (tileData && tileData.zoomFactor) {\n zoomFactor = tileData.zoomFactor;\n }\n if (parseFloat(tileImgId[tileImgId.length - 4]) === i) {\n canvas.style.display = 'none';\n var node = oldCanvases[l];\n // Make sure it's really an Element\n if (node.nodeType == Node.ELEMENT_NODE) {\n var dataScaleFactor = 1.5;\n if (!isNullOrUndefined(tileData)) {\n dataScaleFactor = (!isNullOrUndefined(tileData.scaleFactor)) ? tileData.scaleFactor : 1.5;\n }\n var pageWidth = this.pdfViewerBase.pageSize[i].width;\n var serverImageWidth = pageWidth * zoomFactor * dataScaleFactor;\n var serverImageHeight = this.pdfViewerBase.pageSize[i].height * zoomFactor * dataScaleFactor;\n var tilewidth = serverImageWidth / noTileX;\n var tileHeight = serverImageHeight / noTileY;\n var originalWidth = tilewidth;\n var originalLeft = parseFloat(tileImgId[tileImgId.length - 2]) * tilewidth;\n var originalTop = parseFloat(tileImgId[tileImgId.length - 1]) * tileHeight;\n node.width = (((originalWidth * this.pdfViewerBase.getZoomFactor()) / zoomFactor) / dataScaleFactor);\n node.style.width = (((originalWidth * this.pdfViewerBase.getZoomFactor()) / zoomFactor) / dataScaleFactor) + 'px';\n node.style.left = (((originalLeft * this.pdfViewerBase.getZoomFactor()) / zoomFactor) / dataScaleFactor) + 'px';\n node.style.top = (((originalTop * this.pdfViewerBase.getZoomFactor()) / zoomFactor) / dataScaleFactor) + 'px';\n node.id = this.pdfViewer.element.id + '_tileimg_' + i + '_' + this.pdfViewerBase.getZoomFactor() + '_' + tileX + '_' + tileY;\n if (tileData) {\n var imageData = tileData['image'];\n if (imageData) {\n node.src = imageData;\n }\n this.pdfViewerBase.isReRenderRequired = false;\n }\n else {\n this.pdfViewerBase.isReRenderRequired = true;\n }\n }\n }\n }\n if (oldCanvases.length === 0) {\n this.pdfViewerBase.isReRenderRequired = true;\n }\n }\n var aElement = pageDiv.getElementsByTagName('a');\n if (aElement.length !== 0) {\n for (var index = aElement.length - 1; index >= 0; index--) {\n aElement[index].parentNode.removeChild(aElement[index]);\n }\n }\n if (textLayer) {\n textLayer.style.width = width + 'px';\n textLayer.style.height = height + 'px';\n if (this.pdfViewer.textSelectionModule) {\n if (this.isPinchZoomed) {\n textLayer.style.display = 'none';\n }\n else if (this.isMagnified) {\n var lowerValue = ((pageNumber - 2) === 0) ? 0 : (pageNumber - 2);\n // eslint-disable-next-line max-len\n var higherValue = ((pageNumber) === (this.pdfViewerBase.pageCount)) ? (this.pdfViewerBase.pageCount - 1) : (pageNumber + 1);\n if ((lowerValue <= i) && (i <= higherValue) && ((this.pdfViewer.textSelectionModule.isTextSelection && isSelectionAvailable) || this.pdfViewerBase.textLayer.getTextSearchStatus() || this.pdfViewerBase.isInitialPageMode)) {\n this.pdfViewerBase.textLayer.resizeTextContentsOnZoom(i);\n if (this.pdfViewer.textSelectionModule.isTextSelection && isSelectionAvailable) {\n this.pdfViewer.textSelectionModule.applySelectionRangeOnScroll(i);\n }\n }\n else {\n textLayer.style.display = 'none';\n }\n }\n else {\n textLayer.style.display = 'block';\n }\n }\n this.pdfViewerBase.applyElementStyles(textLayer, i);\n }\n var adornerSvg = getDiagramElement(this.pdfViewer.element.id + '_textLayer_' + i);\n if (adornerSvg) {\n var adonerLayer = getDiagramElement(this.pdfViewer.element.id + i + '_diagramAdorner_svg');\n if (adonerLayer) {\n adonerLayer.style.width = width + 'px';\n adonerLayer.style.height = height + 'px';\n }\n var diagramAdornerLayer = getDiagramElement(this.pdfViewer.element.id + i + '_diagramAdornerLayer');\n if (diagramAdornerLayer) {\n diagramAdornerLayer.style.width = width + 'px';\n diagramAdornerLayer.style.height = height + 'px';\n }\n adornerSvg.style.width = width + 'px';\n adornerSvg.style.height = height + 'px';\n this.pdfViewer.renderSelector(i, this.pdfViewer.annotationSelectorSettings);\n this.pdfViewerBase.applyElementStyles(diagramAdornerLayer, i);\n }\n }\n }\n }\n }\n };\n Magnification.prototype.zoomOverPages = function (pointX1, pointY1, pointX2, pointY2) {\n // eslint-disable-next-line\n var currentDifference = Math.sqrt(Math.pow((pointX1 - pointX2), 2) + Math.pow((pointY1 - pointY2), 2));\n if (this.previousTouchDifference > -1) {\n if (currentDifference > this.previousTouchDifference) {\n this.pinchStep = this.getPinchStep(currentDifference, this.previousTouchDifference);\n this.pinchOut();\n }\n else if (currentDifference < this.previousTouchDifference) {\n this.pinchStep = this.getPinchStep(this.previousTouchDifference, currentDifference);\n this.pinchIn();\n }\n }\n this.previousTouchDifference = currentDifference;\n };\n /**\n * @private\n */\n Magnification.prototype.pinchMoveEnd = function () {\n this.touchCenterX = 0;\n this.touchCenterY = 0;\n this.previousTouchDifference = -1;\n if (this.isPinchZoomed) {\n this.isPinchScrolled = false;\n this.isPagePinchZoomed = true;\n this.pinchMoveScroll();\n }\n };\n /**\n * @param event\n * @private\n */\n // eslint-disable-next-line\n Magnification.prototype.fitPageScrollMouseWheel = function (event) {\n if (this.fitType === 'fitToPage') {\n this.isMagnified = false;\n event.preventDefault();\n if (event.deltaY > 0) {\n this.downwardScrollFitPage(this.pdfViewerBase.currentPageNumber - 1);\n }\n else {\n this.upwardScrollFitPage(this.pdfViewerBase.currentPageNumber - 1);\n }\n }\n };\n /**\n * @param event\n * @private\n */\n Magnification.prototype.magnifyBehaviorKeyDown = function (event) {\n var isMac = navigator.platform.match(/(Mac|iPhone|iPod|iPad)/i) ? true : false;\n var isCommandKey = isMac ? event.metaKey : false;\n switch (event.keyCode) {\n case 38: // up arrow\n case 37: // left arrow\n case 33: // page up\n if (this.fitType === 'fitToPage' && !((event.ctrlKey || isCommandKey) && event.shiftKey)) {\n event.preventDefault();\n this.upwardScrollFitPage(this.pdfViewerBase.currentPageNumber - 1);\n }\n break;\n case 40: // down arrow\n case 39: // right arrow\n case 34: // page down\n if (this.fitType === 'fitToPage' && !((event.ctrlKey || isCommandKey) && event.shiftKey)) {\n event.preventDefault();\n this.downwardScrollFitPage(this.pdfViewerBase.currentPageNumber - 1);\n }\n break;\n case 187: // equal key\n if (event.ctrlKey || isCommandKey) {\n event.preventDefault();\n this.zoomIn();\n }\n break;\n case 189: // minus key\n if (event.ctrlKey || isCommandKey) {\n event.preventDefault();\n this.zoomOut();\n }\n break;\n case 48: // zero key\n if ((event.ctrlKey || isCommandKey) && !event.shiftKey) {\n event.preventDefault();\n this.fitToPage();\n }\n break;\n case 49: // one key\n if ((event.ctrlKey || isCommandKey) && !event.shiftKey) {\n event.preventDefault();\n this.zoomTo(100);\n }\n break;\n default:\n break;\n }\n };\n Magnification.prototype.upwardScrollFitPage = function (currentPageIndex) {\n if (currentPageIndex > 0) {\n this.pdfViewerBase.getElement('_pageDiv_' + (currentPageIndex - 1)).style.visibility = 'visible';\n this.pdfViewerBase.viewerContainer.scrollTop = this.pdfViewerBase.pageSize[currentPageIndex - 1].top * this.zoomFactor;\n if (this.isFitToPageMode) {\n this.pdfViewerBase.getElement('_pageDiv_' + (currentPageIndex)).style.visibility = 'hidden';\n }\n }\n };\n /**\n * @param currentPageIndex\n * @private\n */\n Magnification.prototype.updatePagesForFitPage = function (currentPageIndex) {\n if (this.fitType === 'fitToPage') {\n if (this.isFitToPageMode) {\n if (currentPageIndex > 0 && this.pdfViewerBase.getElement('_pageDiv_' + (currentPageIndex - 1))) {\n this.pdfViewerBase.getElement('_pageDiv_' + (currentPageIndex - 1)).style.visibility = 'hidden';\n }\n // eslint-disable-next-line max-len\n if ((currentPageIndex < (this.pdfViewerBase.pageCount - 1)) && this.pdfViewerBase.getElement('_pageDiv_' + (currentPageIndex + 1))) {\n this.pdfViewerBase.getElement('_pageDiv_' + (currentPageIndex + 1)).style.visibility = 'hidden';\n }\n }\n }\n };\n /**\n * @private\n */\n Magnification.prototype.onDoubleTapMagnification = function () {\n if (this.pdfViewer.toolbarModule && isBlazor()) {\n this.pdfViewer.toolbarModule.showToolbar(true);\n }\n var scrollValue = this.pdfViewerBase.viewerContainer.scrollTop;\n if (!this.pdfViewer.selectedItems.annotations[0]) {\n this.isDoubleTapZoom = true;\n if (!this.isTapToFitZoom) {\n if (this.zoomFactor < 2) {\n this.zoomTo(200);\n }\n else {\n this.fitToWidth();\n }\n }\n else {\n this.fitToWidth();\n }\n this.calculateScrollValues(scrollValue);\n this.isTapToFitZoom = !this.isTapToFitZoom;\n this.isDoubleTapZoom = false;\n }\n else {\n if (isBlazor()) {\n // eslint-disable-next-line max-len\n if (this.pdfViewer.selectedItems.annotations[0] && this.pdfViewer.selectedItems.annotations[0].shapeAnnotationType === 'FreeText') {\n var elmtPosition = {};\n elmtPosition.x = this.pdfViewer.selectedItems.annotations[0].bounds.x;\n elmtPosition.y = this.pdfViewer.selectedItems.annotations[0].bounds.y;\n // eslint-disable-next-line max-len\n this.pdfViewer.annotation.freeTextAnnotationModule.addInuptElemet(elmtPosition, this.pdfViewer.selectedItems.annotations[0]);\n }\n }\n }\n };\n Magnification.prototype.downwardScrollFitPage = function (currentPageIndex) {\n if (currentPageIndex !== (this.pdfViewerBase.pageCount - 1)) {\n this.pdfViewerBase.getElement('_pageDiv_' + (currentPageIndex + 1)).style.visibility = 'visible';\n this.pdfViewerBase.viewerContainer.scrollTop = this.pdfViewerBase.pageSize[currentPageIndex + 1].top * this.zoomFactor;\n if (this.isFitToPageMode) {\n if (currentPageIndex + 1 === (this.pdfViewerBase.pageCount - 1)) {\n this.pdfViewerBase.getElement('_pageDiv_' + (currentPageIndex)).style.visibility = 'hidden';\n }\n else {\n this.pdfViewerBase.getElement('_pageDiv_' + (currentPageIndex + 2)).style.visibility = 'hidden';\n }\n }\n }\n };\n Magnification.prototype.getMagnifiedValue = function (value) {\n return (value / this.previousZoomFactor) * this.zoomFactor;\n };\n /**\n * @private\n */\n Magnification.prototype.destroy = function () {\n this.imageObjects = undefined;\n };\n /**\n * returns zoom factor when the zoom percent is passed.\n *\n * @param zoomValue\n */\n Magnification.prototype.getZoomFactor = function (zoomValue) {\n return zoomValue / 100;\n };\n /**\n * @private\n */\n Magnification.prototype.getModuleName = function () {\n return 'Magnification';\n };\n /**\n * Returns the pinch step value.\n * @param higherValue\n * @param lowerValue\n */\n Magnification.prototype.getPinchStep = function (higherValue, lowerValue) {\n var defaultPinchStep = 0.02; // Default pinch step value.\n var higherPinchStep = 1; // higher pinch step value.\n var pinchstep = (higherValue - lowerValue) / 100;\n if (pinchstep < defaultPinchStep) {\n pinchstep = defaultPinchStep;\n }\n else if (pinchstep > higherPinchStep) {\n pinchstep = 0.1; // set the pinch step as 0.1 if the pinch reaches the higher pinch step value.\n }\n return pinchstep;\n };\n /**\n * @private\n * Brings the given rectangular region to view and zooms in the document to fit the region in client area (view port).\n *\n * @param {Rect} zoomRect - Specifies the region in client coordinates that is to be brought to view.\n */\n Magnification.prototype.zoomToRect = function (zoomRect) {\n var desiredScaleFactor;\n var pdfViewerBase = this.pdfViewerBase;\n var viewerContainer = pdfViewerBase.viewerContainer;\n var pdfViewer = this.pdfViewer;\n if (zoomRect.width > 0 && zoomRect.height > 0) {\n var location_1 = { x: zoomRect.x, y: zoomRect.y };\n var pageNumber = pdfViewer.getPageNumberFromClientPoint(location_1);\n if (pageNumber > 0) {\n var desiredHorizontalScale = viewerContainer.getBoundingClientRect().width / zoomRect.width;\n var desiredVerticalScale = viewerContainer.getBoundingClientRect().height / zoomRect.height;\n if (desiredHorizontalScale < desiredVerticalScale) {\n desiredScaleFactor = desiredHorizontalScale;\n }\n else {\n desiredScaleFactor = desiredVerticalScale;\n }\n var zoomValue = 100; // default zoom value\n var zoomPercentage = pdfViewerBase.getZoomFactor() * 100;\n zoomValue = zoomPercentage * desiredScaleFactor;\n var prevScrollTop = viewerContainer.scrollTop;\n var prevScrollLeft = viewerContainer.scrollLeft;\n // Zoom to desired zoom value.\n this.zoomTo(zoomValue);\n viewerContainer.scrollTop = prevScrollTop;\n viewerContainer.scrollLeft = prevScrollLeft;\n var zoomFactor = pdfViewerBase.getZoomFactor();\n var pagepoint = { x: zoomRect.x, y: zoomRect.y };\n // Convert the client point to page point.\n pagepoint = pdfViewer.convertClientPointToPagePoint(pagepoint, pageNumber);\n pdfViewerBase.updateScrollTop(pageNumber - 1);\n // To adjust the container to the left position.\n viewerContainer.scrollLeft = (pagepoint.x - prevScrollLeft) * zoomFactor;\n // To adjust the container to the top position.\n viewerContainer.scrollTop = ((pagepoint.y + pdfViewerBase.pageSize[pageNumber - 1].top) - prevScrollTop) * zoomFactor;\n }\n }\n };\n /**\n * Returns Point value respect to Main container.\n * @param PointX\n * @param PointY\n */\n Magnification.prototype.positionInViewer = function (pointX, pointY) {\n var mainRect = this.pdfViewerBase.mainContainer.getBoundingClientRect();\n return { x: pointX - mainRect.left, y: pointY - mainRect.top };\n };\n return Magnification;\n}());\nexport { Magnification };\n","import React, { useEffect } from \"react\";\nimport {\n PdfViewerComponent,\n Toolbar,\n Magnification,\n Navigation,\n TextSearch,\n Inject,\n} from \"@syncfusion/ej2-react-pdfviewer\";\nimport { registerLicense } from \"@syncfusion/ej2-base\";\nimport { useNavigate, useParams } from \"react-router-dom\";\nimport { getTokens } from \"utils\";\n\nregisterLicense(\n \"Mgo+DSMBaFt/QHRqVVhkVFpFdEBBXHxAd1p/VWJYdVt5flBPcDwsT3RfQF5jS39QdkJgW39cdH1UTw==;Mgo+DSMBPh8sVXJ0S0J+XE9AflRDX3xKf0x/TGpQb19xflBPallYVBYiSV9jS31TdERgWXhdcnRXQ2NZWA==;ORg4AjUWIQA/Gnt2VVhkQlFacldJXGFWfVJpTGpQdk5xdV9DaVZUTWY/P1ZhSXxQdkdiWn9Zc3ZVRGVZU00=;MTExOTM0MUAzMjMwMmUzNDJlMzBNNXFpZ1dqKzJmQ09GRXh6SHk0QVhMQ0o2Vk9jRFovS0hlbmN2R295MFZnPQ==;MTExOTM0MkAzMjMwMmUzNDJlMzBFWlRsOVgzYWhIaUMxbENZZ3h5MVZXdDBQcUV6YlRUTCtwRTV6YVgwc2FNPQ==;NRAiBiAaIQQuGjN/V0Z+WE9EaFtKVmJLYVB3WmpQdldgdVRMZVVbQX9PIiBoS35RdUVhWHxed3dXRmJaUkF/;MTExOTM0NEAzMjMwMmUzNDJlMzBsWFpuVGk2dEh2S1VvRko0dmoxUTlxNWtKdE5WK0lLb1ZveXd0YzZoVFBnPQ==;MTExOTM0NUAzMjMwMmUzNDJlMzBwQjYxRU5PeG1BOC9Sc0R2dlk2YTVjRkhLVlpNZ0R4Y1NKSmxwZnJqUVdrPQ==;Mgo+DSMBMAY9C3t2VVhkQlFacldJXGFWfVJpTGpQdk5xdV9DaVZUTWY/P1ZhSXxQdkdiWn9Zc3ZVRGdeV00=;MTExOTM0N0AzMjMwMmUzNDJlMzBXZ2wxYmRQbnFoOEp2eFdiZlZyQlZiaks4djk2SEZ1bjRCcGp3MjlSV0swPQ==;MTExOTM0OEAzMjMwMmUzNDJlMzBFQ3RhOWNUZ2dSS3V4T3dwTXdSMUhic3hlMG5mNlF1RXdPaDcrWW5QQTc4PQ==;MTExOTM0OUAzMjMwMmUzNDJlMzBsWFpuVGk2dEh2S1VvRko0dmoxUTlxNWtKdE5WK0lLb1ZveXd0YzZoVFBnPQ==\"\n);\n\nexport const PDFViewer = ({ filePaths = null }) => {\n const { file, dir } = useParams();\n const navigate = useNavigate();\n let filePath = filePaths ? filePaths : `${dir}/${file}`;\n\n const tokens = getTokens();\n\n useEffect(() => {\n if (!tokens?.token) {\n navigate(\"/login\");\n }\n }, [tokens]);\n\n return (\n
    \n \n \n \n
    \n );\n};\n","import React from \"react\";\nimport { Route, Routes } from \"react-router-dom\";\nimport \"./styles/help.styles.css\";\nimport { HelpView } from \".\";\n\nexport const Help = () => {\n return (\n \n } path={\"/\"} />\n \n );\n};\n","var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path10, _path11, _path12, _path13, _path14, _path15, _path16, _path17, _path18, _path19, _path20, _path21, _path22, _path23, _path24, _path25, _path26, _path27, _path28, _path29, _path30, _path31, _path32, _path33, _path34, _path35, _path36, _path37, _path38, _path39, _path40, _path41, _path42, _path43, _path44, _path45, _path46, _path47, _path48, _path49, _path50, _path51, _path52, _path53, _path54, _path55, _path56, _path57, _path58, _path59, _path60, _path61, _path62, _path63, _path64, _path65, _path66, _path67, _path68, _path69, _path70, _path71, _path72, _path73, _path74, _path75, _path76, _path77, _path78, _path79, _path80, _path81, _path82, _path83, _path84, _path85, _path86, _path87, _path88, _path89, _path90, _path91, _path92, _path93, _path94, _path95, _path96, _path97, _path98, _path99, _path100, _path101, _path102, _path103, _defs;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (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\";\n\nexport const HelpView = () => {\n const navigate = useNavigate();\n const { id, name } = localStorage.getItem(\"selectedProgram\")\n ? JSON.parse(localStorage.getItem(\"selectedProgram\"))\n : null;\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 React from \"react\";\nimport { 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 programId = selectedProgram?.id;\n\n const assessmentsQuery = useAssessmentQuery({\n load,\n programId,\n });\n\n const assessmentScheduleQuery = useAssessmentScheduleQuery({\n assessmentId: assessmentPayload.assessmentId,\n programId,\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, programId]);\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 programId,\n };\n};\n","import React from \"react\";\nimport { useQuery } from \"@tanstack/react-query\";\nimport { getAssessmentList, GET_ASSESSMENT_LIST } from \"..\";\n\nexport const useAssessmentQuery = ({ load = false, programId = null }) => {\n return useQuery({\n queryKey: [GET_ASSESSMENT_LIST, programId],\n queryFn: () => getAssessmentList(programId),\n enabled: load && !!programId,\n refetchOnWindowFocus: true,\n });\n};\n","import React from \"react\";\nimport { useQuery } from \"@tanstack/react-query\";\nimport { getAssessmentSchedule, GET_ASSESSMENT_SCHEDULE } from \"..\";\n\nexport const useAssessmentScheduleQuery = ({\n assessmentId = null,\n programId = null,\n scheduleMasterId = null,\n isModalOpen = false,\n}) => {\n return useQuery({\n queryKey: [GET_ASSESSMENT_SCHEDULE, assessmentId, programId],\n queryFn: () =>\n getAssessmentSchedule({ assessmentId, programId, scheduleMasterId }),\n enabled: !!assessmentId && !!programId && !!scheduleMasterId && isModalOpen,\n });\n};\n","import React from \"react\";\nimport { 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 React from \"react\";\nimport { 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 React, { 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 programId,\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 sessionStorage.setItem(\"attemptId\", attemptId_q);\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 disableBackButton,\n mediaPreviewState,\n answeringQuestion,\n clearAnswer,\n onToggleInstruction,\n onToggleHelp,\n answerPayload,\n clearPayload,\n } = questionnaireContext;\n\n useEffect(() => {\n disableBackButton();\n }, []);\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?.isLoading;\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","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 programId,\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, programId]);\n }\n }, [endTimer]);\n\n return (\n
  • \n {isPassed && (\n \n )}\n {isFailed && }\n {isAwaitingResult && (\n \n )}\n {isNotAttempted && (\n \n )}\n\n
    \n
    \n

    {name}

    \n
    \n
    \n
    \n \n {`${noOfQuestions} Questions`}\n
    \n
    \n \n {`${maxTime} Min`}\n
    \n
    \n
    \n {`You have ${remainingAttempt}/${maxAttempt} Attempts left`}\n
    \n
    \n
    \n {(isSchedule || isScheduled || isStart || isContinue) && (\n
    \n {isFetchingData ? (\n \n ) : (\n <>\n {isSchedule && (\n \n onScheduleAssessment({ assessmentId, scheduleMasterId })\n }\n className=\"btn btn-blue\"\n >\n Schedule Assessment\n \n )}\n {isScheduled && !isTimeUp && (\n \n )}\n {(isStart || (isTimeUp && isScheduled)) && (\n \n onStartAssessment({\n assessmentId,\n slotId,\n attemptId,\n noOfQuestions,\n maxTime,\n maxAttempt,\n instructions,\n name,\n attemptStatus,\n isStartAssessment: true,\n })\n }\n className=\"btn btn-green\"\n >\n Start Assessment\n \n )}\n {isContinue && (\n \n onStartAssessment({\n assessmentId,\n slotId,\n attemptId,\n noOfQuestions,\n maxTime,\n maxAttempt,\n instructions,\n name,\n attemptStatus,\n isStartAssessment: false,\n })\n }\n className=\"btn btn-blue-outline\"\n >\n Continue Assessment\n \n )}\n \n )}\n
    \n )}\n
    \n {attempts && attempts?.length > 0 && (\n
    \n {attempts?.map((attempt, index) => {\n return (\n \n );\n })}\n
    \n )}\n
  • \n );\n};\n","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgCalendarIconDarkGrey(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 13,\n height: 12,\n viewBox: \"0 0 13 12\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2.19169 0C1.00105 0 0.0250244 0.976021 0.0250244 2.16667V9.83333C0.0250244 11.024 1.00105 12 2.19169 12H9.85836C11.049 12 12.025 11.024 12.025 9.83333V2.16667C12.025 0.976021 11.049 0 9.85836 0H2.19169ZM2.19169 1H9.85836C10.5084 1 11.025 1.51665 11.025 2.16667V2.66667H1.02502V2.16667C1.02502 1.51665 1.54167 1 2.19169 1ZM1.02502 3.66667H11.025V9.83333C11.025 10.4834 10.5084 11 9.85836 11H2.19169C1.54167 11 1.02502 10.4834 1.02502 9.83333V3.66667ZM3.19169 5C2.97068 5 2.75872 5.0878 2.60244 5.24408C2.44616 5.40036 2.35836 5.61232 2.35836 5.83333C2.35836 6.05435 2.44616 6.26631 2.60244 6.42259C2.75872 6.57887 2.97068 6.66667 3.19169 6.66667C3.4127 6.66667 3.62467 6.57887 3.78095 6.42259C3.93723 6.26631 4.02502 6.05435 4.02502 5.83333C4.02502 5.61232 3.93723 5.40036 3.78095 5.24408C3.62467 5.0878 3.4127 5 3.19169 5ZM6.02502 5C5.80401 5 5.59205 5.0878 5.43577 5.24408C5.27949 5.40036 5.19169 5.61232 5.19169 5.83333C5.19169 6.05435 5.27949 6.26631 5.43577 6.42259C5.59205 6.57887 5.80401 6.66667 6.02502 6.66667C6.24604 6.66667 6.458 6.57887 6.61428 6.42259C6.77056 6.26631 6.85836 6.05435 6.85836 5.83333C6.85836 5.61232 6.77056 5.40036 6.61428 5.24408C6.458 5.0878 6.24604 5 6.02502 5ZM8.85836 5C8.63734 5 8.42538 5.0878 8.2691 5.24408C8.11282 5.40036 8.02502 5.61232 8.02502 5.83333C8.02502 6.05435 8.11282 6.26631 8.2691 6.42259C8.42538 6.57887 8.63734 6.66667 8.85836 6.66667C9.07937 6.66667 9.29133 6.57887 9.44761 6.42259C9.60389 6.26631 9.69169 6.05435 9.69169 5.83333C9.69169 5.61232 9.60389 5.40036 9.44761 5.24408C9.29133 5.0878 9.07937 5 8.85836 5ZM3.19169 8C2.97068 8 2.75872 8.0878 2.60244 8.24408C2.44616 8.40036 2.35836 8.61232 2.35836 8.83333C2.35836 9.05435 2.44616 9.26631 2.60244 9.42259C2.75872 9.57887 2.97068 9.66667 3.19169 9.66667C3.4127 9.66667 3.62467 9.57887 3.78095 9.42259C3.93723 9.26631 4.02502 9.05435 4.02502 8.83333C4.02502 8.61232 3.93723 8.40036 3.78095 8.24408C3.62467 8.0878 3.4127 8 3.19169 8ZM6.02502 8C5.80401 8 5.59205 8.0878 5.43577 8.24408C5.27949 8.40036 5.19169 8.61232 5.19169 8.83333C5.19169 9.05435 5.27949 9.26631 5.43577 9.42259C5.59205 9.57887 5.80401 9.66667 6.02502 9.66667C6.24604 9.66667 6.458 9.57887 6.61428 9.42259C6.77056 9.26631 6.85836 9.05435 6.85836 8.83333C6.85836 8.61232 6.77056 8.40036 6.61428 8.24408C6.458 8.0878 6.24604 8 6.02502 8Z\",\n fill: \"#808080\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCalendarIconDarkGrey);\nexport default __webpack_public_path__ + \"static/media/calendar-icon-dark-grey.4ef78911edd6b29d4e8195be118cb011.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useCallback } from \"react\";\nimport calendarIcon from \"assets/images/icons/calendar-icon-dark-grey.svg\";\nimport clockIcon from \"assets/images/icons/timer-icon-dark-grey.svg\";\n\nexport const AttemptItem = ({ attempt, index }) => {\n const {\n referenceNo,\n scheduledOn,\n startedAtStr,\n endedAtStr,\n startAt,\n endAt,\n assessmentMasterStatus,\n } = attempt;\n\n const isAbsent = assessmentMasterStatus === 8;\n\n const status = useCallback(() => {\n switch (assessmentMasterStatus) {\n case 0:\n return {\n color: \"teal-txt\",\n text: \"In progress\",\n };\n case 1:\n return {\n color: \"green-txt\",\n text: \"Completed\",\n };\n case 2:\n return {\n color: \"orange-txt\",\n text: \"Invalid\",\n };\n case 3:\n return {\n color: \"yellow-txt\",\n text: \"Not started\",\n };\n case 4:\n return {\n color: \"green-txt\",\n text: \"Passed\",\n };\n case 5:\n return {\n color: \"red-txt\",\n text: \"Failed\",\n };\n case 6:\n return {\n color: \"blue-txt\",\n text: \"Awaiting result\",\n };\n case 7:\n return {\n color: \"blue-txt\",\n text: \"Not completed\",\n };\n case 8:\n return {\n color: \"grey-txt\",\n text: \"Absent\",\n };\n case 9:\n return {\n color: \"yellow-txt\",\n text: \"Upcoming\",\n };\n default:\n return {\n color: \"\",\n text: \"\",\n };\n }\n }, [assessmentMasterStatus]);\n\n const statusIndicator = status();\n\n return (\n
    \n
    \n Reference No\n \n {!isAbsent && referenceNo ? referenceNo : \"_ _\"}\n \n
    \n
    \n {`Attempt ${\n index + 1\n } Scheduled On`}\n
    \n
    \n \n {scheduledOn}\n
    \n
    \n \n {`${startAt} - ${endAt}`}\n
    \n
    \n
    \n
    \n Started\n \n {!isAbsent && startedAtStr ? startedAtStr : \"_ _\"}\n \n
    \n
    \n Ended\n \n {!isAbsent && endedAtStr ? endedAtStr : \"_ _\"}\n \n
    \n
    \n Status\n \n {statusIndicator?.text}\n \n
    \n
    \n );\n};\n","export const AssessmentStatusRow = ({ icon, label = \"\" }) => {\n return (\n
    \n
    \n {icon && }\n {label}\n
    \n
    \n );\n};\n","export const AssessmentSpinnerElement = ({ color = \"#999\", ...rest }) => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n );\n};\n","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\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, 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() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { canUseDOM } from './utils';\nvar propTypes = {\n children: PropTypes.node.isRequired,\n node: PropTypes.any\n};\nvar Portal = /*#__PURE__*/function (_React$Component) {\n _inherits(Portal, _React$Component);\n var _super = _createSuper(Portal);\n function Portal() {\n _classCallCheck(this, Portal);\n return _super.apply(this, arguments);\n }\n _createClass(Portal, [{\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.defaultNode) {\n document.body.removeChild(this.defaultNode);\n }\n this.defaultNode = null;\n }\n }, {\n key: \"render\",\n value: function render() {\n if (!canUseDOM) {\n return null;\n }\n if (!this.props.node && !this.defaultNode) {\n this.defaultNode = document.createElement('div');\n document.body.appendChild(this.defaultNode);\n }\n return /*#__PURE__*/ReactDOM.createPortal(this.props.children, this.props.node || this.defaultNode);\n }\n }]);\n return Portal;\n}(React.Component);\nPortal.propTypes = propTypes;\nexport default Portal;","export default {\n disabled: false\n};","import React from 'react';\nexport default React.createContext(null);","export var forceReflow = function forceReflow(node) {\n return node.scrollTop;\n};","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport config from './config';\nimport { timeoutsShape } from './utils/PropTypes';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { forceReflow } from './utils/reflow';\nexport var UNMOUNTED = 'unmounted';\nexport var EXITED = 'exited';\nexport var ENTERING = 'entering';\nexport var ENTERED = 'entered';\nexport var EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 1 },\n * entered: { opacity: 1 },\n * exiting: { opacity: 0 },\n * exited: { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * \n * {state => (\n *
    \n * I'm a fade Transition!\n *
    \n * )}\n *
    \n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
    \n * \n * {state => (\n * // ...\n * )}\n * \n * \n *
    \n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n } // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n ;\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n if (nextStatus === ENTERING) {\n if (this.props.unmountOnExit || this.props.mountOnEnter) {\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this); // https://github.com/reactjs/react-transition-group/pull/749\n // With unmountOnExit or mountOnEnter, the enter animation should happen at the transition between `exited` and `entering`.\n // To make the animation happen, we have to separate each rendering and avoid being processed as batched.\n\n if (node) forceReflow(node);\n }\n\n this.performEnter(mounting);\n } else {\n this.performExit();\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n\n var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing],\n maybeNode = _ref2[0],\n maybeAppearing = _ref2[1];\n\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode);\n });\n return;\n }\n\n this.props.onEnter(maybeNode, maybeAppearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(maybeNode, maybeAppearing);\n\n _this2.onTransitionEnd(enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode, maybeAppearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit() {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts();\n var maybeNode = this.props.nodeRef ? undefined : ReactDOM.findDOMNode(this); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n return;\n }\n\n this.props.onExit(maybeNode);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(maybeNode);\n\n _this3.onTransitionEnd(timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n this.setNextCallback(handler);\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n maybeNode = _ref3[0],\n maybeNextCallback = _ref3[1];\n\n this.props.addEndListener(maybeNode, maybeNextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n _in = _this$props.in,\n _mountOnEnter = _this$props.mountOnEnter,\n _unmountOnExit = _this$props.unmountOnExit,\n _appear = _this$props.appear,\n _enter = _this$props.enter,\n _exit = _this$props.exit,\n _timeout = _this$props.timeout,\n _addEndListener = _this$props.addEndListener,\n _onEnter = _this$props.onEnter,\n _onEntering = _this$props.onEntering,\n _onEntered = _this$props.onEntered,\n _onExit = _this$props.onExit,\n _onExiting = _this$props.onExiting,\n _onExited = _this$props.onExited,\n _nodeRef = _this$props.nodeRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n return (\n /*#__PURE__*/\n // allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, typeof children === 'function' ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))\n );\n };\n\n return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A React reference to DOM element that need to transition:\n * https://stackoverflow.com/a/51127130/4671932\n *\n * - When `nodeRef` prop is used, `node` is not passed to callback functions\n * (e.g. `onEnter`) because user already has direct access to the node.\n * - When changing `key` prop of `Transition` in a `TransitionGroup` a new\n * `nodeRef` need to be provided to `Transition` with changed `key` prop\n * (see\n * [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).\n */\n nodeRef: PropTypes.shape({\n current: typeof Element === 'undefined' ? PropTypes.any : function (propValue, key, componentName, location, propFullName, secret) {\n var value = propValue[key];\n return PropTypes.instanceOf(value && 'ownerDocument' in value ? value.ownerDocument.defaultView.Element : Element)(propValue, key, componentName, location, propFullName, secret);\n }\n }),\n\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * \n * {state => (\n * \n * )}\n * \n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * By default the child component does not perform the enter transition when\n * it first mounts, regardless of the value of `in`. If you want this\n * behavior, set both `appear` and `in` to `true`.\n *\n * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n * > only adds an additional enter transition. However, in the\n * > `` component that first enter transition does result in\n * > additional `.appear-*` classes, that way you can choose to style it\n * > differently.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. Timeouts are still used as a fallback if provided.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func\n} : {}; // Name the function so it is clearer in the documentation\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\nexport default Transition;","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inheritsLoose(t, o) {\n t.prototype = Object.create(o.prototype), t.prototype.constructor = t, setPrototypeOf(t, o);\n}\nexport { _inheritsLoose as default };","var _excluded = [\"tag\", \"baseClass\", \"baseClassActive\", \"className\", \"cssModule\", \"children\", \"innerRef\"];\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; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nimport React, { useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { Transition } from 'react-transition-group';\nimport { mapToCssModules, omit, pick, TransitionPropTypeKeys, TransitionTimeouts, tagPropType } from './utils';\nvar propTypes = _objectSpread(_objectSpread({}, Transition.propTypes), {}, {\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n tag: tagPropType,\n baseClass: PropTypes.string,\n baseClassActive: PropTypes.string,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n innerRef: PropTypes.oneOfType([PropTypes.object, PropTypes.string, PropTypes.func])\n});\nvar defaultProps = _objectSpread(_objectSpread({}, Transition.defaultProps), {}, {\n timeout: TransitionTimeouts.Fade,\n appear: true,\n enter: true,\n exit: true,\n \"in\": true\n});\nfunction Fade(props) {\n var ref = useRef(null);\n var _props$tag = props.tag,\n Tag = _props$tag === void 0 ? 'div' : _props$tag,\n _props$baseClass = props.baseClass,\n baseClass = _props$baseClass === void 0 ? 'fade' : _props$baseClass,\n _props$baseClassActiv = props.baseClassActive,\n baseClassActive = _props$baseClassActiv === void 0 ? 'show' : _props$baseClassActiv,\n className = props.className,\n cssModule = props.cssModule,\n children = props.children,\n _props$innerRef = props.innerRef,\n innerRef = _props$innerRef === void 0 ? ref : _props$innerRef,\n otherProps = _objectWithoutProperties(props, _excluded);\n var transitionProps = pick(_objectSpread({\n defaultProps: defaultProps\n }, otherProps), TransitionPropTypeKeys);\n var childProps = omit(otherProps, TransitionPropTypeKeys);\n return /*#__PURE__*/React.createElement(Transition, _extends({\n nodeRef: innerRef\n }, transitionProps), function (status) {\n var isActive = status === 'entered';\n var classes = mapToCssModules(classNames(className, baseClass, isActive && baseClassActive), cssModule);\n return /*#__PURE__*/React.createElement(Tag, _extends({\n className: classes\n }, childProps, {\n ref: innerRef\n }), children);\n });\n}\nFade.propTypes = propTypes;\nFade.defaultProps = defaultProps;\nexport default Fade;","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\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 _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\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, 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() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport Portal from './Portal';\nimport Fade from './Fade';\nimport { getOriginalBodyPadding, conditionallyUpdateScrollbar, setScrollbarWidth, mapToCssModules, omit, focusableElements, TransitionTimeouts, keyCodes, targetPropType, getTarget } from './utils';\nfunction noop() {}\nvar FadePropTypes = PropTypes.shape(Fade.propTypes);\nvar propTypes = {\n /** */\n autoFocus: PropTypes.bool,\n /** Add backdrop to modal */\n backdrop: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['static'])]),\n /** add custom classname to backdrop */\n backdropClassName: PropTypes.string,\n backdropTransition: FadePropTypes,\n /** Vertically center the modal */\n centered: PropTypes.bool,\n /** Add children for the modal to wrap */\n children: PropTypes.node,\n /** Add custom className for modal content */\n contentClassName: PropTypes.string,\n className: PropTypes.string,\n container: targetPropType,\n cssModule: PropTypes.object,\n external: PropTypes.node,\n /** Enable/Disable animation */\n fade: PropTypes.bool,\n /** Make the modal fullscreen */\n fullscreen: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['sm', 'md', 'lg', 'xl'])]),\n innerRef: PropTypes.oneOfType([PropTypes.object, PropTypes.string, PropTypes.func]),\n /** The status of the modal, either open or close */\n isOpen: PropTypes.bool,\n /** Allow modal to be closed with escape key. */\n keyboard: PropTypes.bool,\n /** Identifies the element (or elements) that labels the current element. */\n labelledBy: PropTypes.string,\n modalClassName: PropTypes.string,\n modalTransition: FadePropTypes,\n /** Function to be triggered on close */\n onClosed: PropTypes.func,\n /** Function to be triggered on enter */\n onEnter: PropTypes.func,\n /** Function to be triggered on exit */\n onExit: PropTypes.func,\n /** Function to be triggered on open */\n onOpened: PropTypes.func,\n /** Returns focus to the element that triggered opening of the modal */\n returnFocusAfterClose: PropTypes.bool,\n /** Accessibility role */\n role: PropTypes.string,\n /** Make the modal scrollable */\n scrollable: PropTypes.bool,\n /** Two optional sizes `lg` and `sm` */\n size: PropTypes.string,\n /** Function to toggle modal visibility */\n toggle: PropTypes.func,\n trapFocus: PropTypes.bool,\n /** Unmounts the modal when modal is closed */\n unmountOnClose: PropTypes.bool,\n wrapClassName: PropTypes.string,\n zIndex: PropTypes.oneOfType([PropTypes.number, PropTypes.string])\n};\nvar propsToOmit = Object.keys(propTypes);\nvar defaultProps = {\n isOpen: false,\n autoFocus: true,\n centered: false,\n scrollable: false,\n role: 'dialog',\n backdrop: true,\n keyboard: true,\n zIndex: 1050,\n fade: true,\n onOpened: noop,\n onClosed: noop,\n modalTransition: {\n timeout: TransitionTimeouts.Modal\n },\n backdropTransition: {\n mountOnEnter: true,\n timeout: TransitionTimeouts.Fade // uses standard fade transition\n },\n\n unmountOnClose: true,\n returnFocusAfterClose: true,\n container: 'body',\n trapFocus: false\n};\nvar Modal = /*#__PURE__*/function (_React$Component) {\n _inherits(Modal, _React$Component);\n var _super = _createSuper(Modal);\n function Modal(props) {\n var _this;\n _classCallCheck(this, Modal);\n _this = _super.call(this, props);\n _this._element = null;\n _this._originalBodyPadding = null;\n _this.getFocusableChildren = _this.getFocusableChildren.bind(_assertThisInitialized(_this));\n _this.handleBackdropClick = _this.handleBackdropClick.bind(_assertThisInitialized(_this));\n _this.handleBackdropMouseDown = _this.handleBackdropMouseDown.bind(_assertThisInitialized(_this));\n _this.handleEscape = _this.handleEscape.bind(_assertThisInitialized(_this));\n _this.handleStaticBackdropAnimation = _this.handleStaticBackdropAnimation.bind(_assertThisInitialized(_this));\n _this.handleTab = _this.handleTab.bind(_assertThisInitialized(_this));\n _this.onOpened = _this.onOpened.bind(_assertThisInitialized(_this));\n _this.onClosed = _this.onClosed.bind(_assertThisInitialized(_this));\n _this.manageFocusAfterClose = _this.manageFocusAfterClose.bind(_assertThisInitialized(_this));\n _this.clearBackdropAnimationTimeout = _this.clearBackdropAnimationTimeout.bind(_assertThisInitialized(_this));\n _this.trapFocus = _this.trapFocus.bind(_assertThisInitialized(_this));\n _this.state = {\n isOpen: false,\n showStaticBackdropAnimation: false\n };\n return _this;\n }\n _createClass(Modal, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this$props = this.props,\n isOpen = _this$props.isOpen,\n autoFocus = _this$props.autoFocus,\n onEnter = _this$props.onEnter;\n if (isOpen) {\n this.init();\n this.setState({\n isOpen: true\n });\n if (autoFocus) {\n this.setFocus();\n }\n }\n if (onEnter) {\n onEnter();\n }\n\n // traps focus inside the Modal, even if the browser address bar is focused\n document.addEventListener('focus', this.trapFocus, true);\n this._isMounted = true;\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n if (this.props.isOpen && !prevProps.isOpen) {\n this.init();\n this.setState({\n isOpen: true\n });\n // let render() renders Modal Dialog first\n return;\n }\n\n // now Modal Dialog is rendered and we can refer this._element and this._dialog\n if (this.props.autoFocus && this.state.isOpen && !prevState.isOpen) {\n this.setFocus();\n }\n if (this._element && prevProps.zIndex !== this.props.zIndex) {\n this._element.style.zIndex = this.props.zIndex;\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.clearBackdropAnimationTimeout();\n if (this.props.onExit) {\n this.props.onExit();\n }\n if (this._element) {\n this.destroy();\n if (this.props.isOpen || this.state.isOpen) {\n this.close();\n }\n }\n document.removeEventListener('focus', this.trapFocus, true);\n this._isMounted = false;\n }\n\n // not mouseUp because scrollbar fires it, shouldn't close when user scrolls\n }, {\n key: \"handleBackdropClick\",\n value: function handleBackdropClick(e) {\n if (e.target === this._mouseDownElement) {\n e.stopPropagation();\n var backdrop = this._dialog ? this._dialog.parentNode : null;\n if (backdrop && e.target === backdrop && this.props.backdrop === 'static') {\n this.handleStaticBackdropAnimation();\n }\n if (!this.props.isOpen || this.props.backdrop !== true) return;\n if (backdrop && e.target === backdrop && this.props.toggle) {\n this.props.toggle(e);\n }\n }\n }\n }, {\n key: \"handleTab\",\n value: function handleTab(e) {\n if (e.which !== 9) return;\n if (this.modalIndex < Modal.openCount - 1) return; // last opened modal\n\n var focusableChildren = this.getFocusableChildren();\n var totalFocusable = focusableChildren.length;\n if (totalFocusable === 0) return;\n var currentFocus = this.getFocusedChild();\n var focusedIndex = 0;\n for (var i = 0; i < totalFocusable; i += 1) {\n if (focusableChildren[i] === currentFocus) {\n focusedIndex = i;\n break;\n }\n }\n if (e.shiftKey && focusedIndex === 0) {\n e.preventDefault();\n focusableChildren[totalFocusable - 1].focus();\n } else if (!e.shiftKey && focusedIndex === totalFocusable - 1) {\n e.preventDefault();\n focusableChildren[0].focus();\n }\n }\n }, {\n key: \"handleBackdropMouseDown\",\n value: function handleBackdropMouseDown(e) {\n this._mouseDownElement = e.target;\n }\n }, {\n key: \"handleEscape\",\n value: function handleEscape(e) {\n if (this.props.isOpen && e.keyCode === keyCodes.esc && this.props.toggle) {\n if (this.props.keyboard) {\n e.preventDefault();\n e.stopPropagation();\n this.props.toggle(e);\n } else if (this.props.backdrop === 'static') {\n e.preventDefault();\n e.stopPropagation();\n this.handleStaticBackdropAnimation();\n }\n }\n }\n }, {\n key: \"handleStaticBackdropAnimation\",\n value: function handleStaticBackdropAnimation() {\n var _this2 = this;\n this.clearBackdropAnimationTimeout();\n this.setState({\n showStaticBackdropAnimation: true\n });\n this._backdropAnimationTimeout = setTimeout(function () {\n _this2.setState({\n showStaticBackdropAnimation: false\n });\n }, 100);\n }\n }, {\n key: \"onOpened\",\n value: function onOpened(node, isAppearing) {\n this.props.onOpened();\n (this.props.modalTransition.onEntered || noop)(node, isAppearing);\n }\n }, {\n key: \"onClosed\",\n value: function onClosed(node) {\n var unmountOnClose = this.props.unmountOnClose;\n // so all methods get called before it is unmounted\n this.props.onClosed();\n (this.props.modalTransition.onExited || noop)(node);\n if (unmountOnClose) {\n this.destroy();\n }\n this.close();\n if (this._isMounted) {\n this.setState({\n isOpen: false\n });\n }\n }\n }, {\n key: \"setFocus\",\n value: function setFocus() {\n if (this._dialog && this._dialog.parentNode && typeof this._dialog.parentNode.focus === 'function') {\n this._dialog.parentNode.focus();\n }\n }\n }, {\n key: \"getFocusableChildren\",\n value: function getFocusableChildren() {\n return this._element.querySelectorAll(focusableElements.join(', '));\n }\n }, {\n key: \"getFocusedChild\",\n value: function getFocusedChild() {\n var currentFocus;\n var focusableChildren = this.getFocusableChildren();\n try {\n currentFocus = document.activeElement;\n } catch (err) {\n currentFocus = focusableChildren[0];\n }\n return currentFocus;\n }\n }, {\n key: \"trapFocus\",\n value: function trapFocus(ev) {\n if (!this.props.trapFocus) {\n return;\n }\n if (!this._element) {\n // element is not attached\n return;\n }\n if (this._dialog && this._dialog.parentNode === ev.target) {\n // initial focus when the Modal is opened\n return;\n }\n if (this.modalIndex < Modal.openCount - 1) {\n // last opened modal\n return;\n }\n var children = this.getFocusableChildren();\n for (var i = 0; i < children.length; i += 1) {\n // focus is already inside the Modal\n if (children[i] === ev.target) return;\n }\n if (children.length > 0) {\n // otherwise focus the first focusable element in the Modal\n ev.preventDefault();\n ev.stopPropagation();\n children[0].focus();\n }\n }\n }, {\n key: \"init\",\n value: function init() {\n try {\n this._triggeringElement = document.activeElement;\n } catch (err) {\n this._triggeringElement = null;\n }\n if (!this._element) {\n this._element = document.createElement('div');\n this._element.setAttribute('tabindex', '-1');\n this._element.style.position = 'relative';\n this._element.style.zIndex = this.props.zIndex;\n this._mountContainer = getTarget(this.props.container);\n this._mountContainer.appendChild(this._element);\n }\n this._originalBodyPadding = getOriginalBodyPadding();\n if (Modal.openCount < 1) {\n Modal.originalBodyOverflow = window.getComputedStyle(document.body).overflow;\n }\n conditionallyUpdateScrollbar();\n if (Modal.openCount === 0) {\n document.body.className = classNames(document.body.className, mapToCssModules('modal-open', this.props.cssModule));\n document.body.style.overflow = 'hidden';\n }\n this.modalIndex = Modal.openCount;\n Modal.openCount += 1;\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n if (this._element) {\n this._mountContainer.removeChild(this._element);\n this._element = null;\n }\n this.manageFocusAfterClose();\n }\n }, {\n key: \"manageFocusAfterClose\",\n value: function manageFocusAfterClose() {\n if (this._triggeringElement) {\n var returnFocusAfterClose = this.props.returnFocusAfterClose;\n if (this._triggeringElement.focus && returnFocusAfterClose) this._triggeringElement.focus();\n this._triggeringElement = null;\n }\n }\n }, {\n key: \"close\",\n value: function close() {\n if (Modal.openCount <= 1) {\n var modalOpenClassName = mapToCssModules('modal-open', this.props.cssModule);\n // Use regex to prevent matching `modal-open` as part of a different class, e.g. `my-modal-opened`\n var modalOpenClassNameRegex = new RegExp(\"(^| )\".concat(modalOpenClassName, \"( |$)\"));\n document.body.className = document.body.className.replace(modalOpenClassNameRegex, ' ').trim();\n document.body.style.overflow = Modal.originalBodyOverflow;\n }\n this.manageFocusAfterClose();\n Modal.openCount = Math.max(0, Modal.openCount - 1);\n setScrollbarWidth(this._originalBodyPadding);\n }\n }, {\n key: \"clearBackdropAnimationTimeout\",\n value: function clearBackdropAnimationTimeout() {\n if (this._backdropAnimationTimeout) {\n clearTimeout(this._backdropAnimationTimeout);\n this._backdropAnimationTimeout = undefined;\n }\n }\n }, {\n key: \"renderModalDialog\",\n value: function renderModalDialog() {\n var _classNames,\n _this3 = this;\n var attributes = omit(this.props, propsToOmit);\n var dialogBaseClass = 'modal-dialog';\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, attributes, {\n className: mapToCssModules(classNames(dialogBaseClass, this.props.className, (_classNames = {}, _defineProperty(_classNames, \"modal-\".concat(this.props.size), this.props.size), _defineProperty(_classNames, \"\".concat(dialogBaseClass, \"-centered\"), this.props.centered), _defineProperty(_classNames, \"\".concat(dialogBaseClass, \"-scrollable\"), this.props.scrollable), _defineProperty(_classNames, 'modal-fullscreen', this.props.fullscreen === true), _defineProperty(_classNames, \"modal-fullscreen-\".concat(this.props.fullscreen, \"-down\"), typeof this.props.fullscreen === 'string'), _classNames)), this.props.cssModule),\n role: \"document\",\n ref: function ref(c) {\n _this3._dialog = c;\n }\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: mapToCssModules(classNames('modal-content', this.props.contentClassName), this.props.cssModule)\n }, this.props.children));\n }\n }, {\n key: \"render\",\n value: function render() {\n var unmountOnClose = this.props.unmountOnClose;\n if (!!this._element && (this.state.isOpen || !unmountOnClose)) {\n var isModalHidden = !!this._element && !this.state.isOpen && !unmountOnClose;\n this._element.style.display = isModalHidden ? 'none' : 'block';\n var _this$props2 = this.props,\n wrapClassName = _this$props2.wrapClassName,\n modalClassName = _this$props2.modalClassName,\n backdropClassName = _this$props2.backdropClassName,\n cssModule = _this$props2.cssModule,\n isOpen = _this$props2.isOpen,\n backdrop = _this$props2.backdrop,\n role = _this$props2.role,\n labelledBy = _this$props2.labelledBy,\n external = _this$props2.external,\n innerRef = _this$props2.innerRef;\n var modalAttributes = {\n onClick: this.handleBackdropClick,\n onMouseDown: this.handleBackdropMouseDown,\n onKeyUp: this.handleEscape,\n onKeyDown: this.handleTab,\n style: {\n display: 'block'\n },\n 'aria-labelledby': labelledBy,\n 'aria-modal': true,\n role: role,\n tabIndex: '-1'\n };\n var hasTransition = this.props.fade;\n var modalTransition = _objectSpread(_objectSpread(_objectSpread({}, Fade.defaultProps), this.props.modalTransition), {}, {\n baseClass: hasTransition ? this.props.modalTransition.baseClass : '',\n timeout: hasTransition ? this.props.modalTransition.timeout : 0\n });\n var backdropTransition = _objectSpread(_objectSpread(_objectSpread({}, Fade.defaultProps), this.props.backdropTransition), {}, {\n baseClass: hasTransition ? this.props.backdropTransition.baseClass : '',\n timeout: hasTransition ? this.props.backdropTransition.timeout : 0\n });\n var Backdrop = backdrop && (hasTransition ? /*#__PURE__*/React.createElement(Fade, _extends({}, backdropTransition, {\n \"in\": isOpen && !!backdrop,\n cssModule: cssModule,\n className: mapToCssModules(classNames('modal-backdrop', backdropClassName), cssModule)\n })) : /*#__PURE__*/React.createElement(\"div\", {\n className: mapToCssModules(classNames('modal-backdrop', 'show', backdropClassName), cssModule)\n }));\n return /*#__PURE__*/React.createElement(Portal, {\n node: this._element\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: mapToCssModules(wrapClassName)\n }, /*#__PURE__*/React.createElement(Fade, _extends({}, modalAttributes, modalTransition, {\n \"in\": isOpen,\n onEntered: this.onOpened,\n onExited: this.onClosed,\n cssModule: cssModule,\n className: mapToCssModules(classNames('modal', modalClassName, this.state.showStaticBackdropAnimation && 'modal-static'), cssModule),\n innerRef: innerRef\n }), external, this.renderModalDialog()), Backdrop));\n }\n return null;\n }\n }]);\n return Modal;\n}(React.Component);\nModal.propTypes = propTypes;\nModal.defaultProps = defaultProps;\nModal.openCount = 0;\nModal.originalBodyOverflow = null;\nexport default Modal;","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, ModalHeader, 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 (programId) => {\n const res = await Axios.get(`/v2/portal/assessments/programs/${programId}`);\n return res.data;\n};\n\nexport const getAssessmentSchedule = async ({\n assessmentId,\n programId,\n scheduleMasterId,\n}) => {\n const res = await Axios.get(\n `/v2/portal/assessments/${assessmentId}/programs/${programId}/schedules/${scheduleMasterId}`\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 { PageLayout } from \"shared\";\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 { ErrorComponent, LoadingSpinner, PageLayout } from \"shared\";\nimport ErrorImg from \"assets/images/error-no-certificate-found-graphics.svg\";\nimport { useNavigate } from \"react-router-dom\";\n\nexport const CertificateList = ({ isAllCertificate }) => {\n const navigate = useNavigate();\n const data = localStorage?.getItem(\"selectedProgram\")\n ? JSON.parse(localStorage.getItem(\"selectedProgram\"))\n : null;\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 } = useCertificate({\n load: true,\n studentBatchId,\n isAllCertificate,\n });\n const { data: program } = useCertificateProgramSelectListQuery({\n load: true,\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\n const goToPreviousPage = () => {\n navigate(-1, { replace: true });\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 && (\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\";\n\nexport const useCertificate = ({\n load = false,\n studentBatchId,\n isAllCertificate,\n}) => {\n const [selectedProgram, setSelectedProgram] = useImmer(\"\");\n\n const { modalState, onOpenModal, onCloseModal } = useModal();\n const studentBatchCertificate = useStudentBatchCertificateQuery({\n load: load,\n studentBatchId,\n programId: selectedProgram,\n isAllCertificate,\n });\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 await fetch(url).then((response) => {\n response.blob().then((blob) => {\n const url = URL.createObjectURL(blob);\n const a = document.createElement(\"a\");\n a.href = url;\n a.download = `${fileName}.pdf`;\n document.body.appendChild(a);\n a.click();\n document.body.removeChild(a);\n URL.revokeObjectURL(url);\n });\n });\n }\n };\n\n return {\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 React from \"react\";\nimport { 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 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 isLoading = false,\n customClass = \"\",\n } = props;\n return (\n \n {header && {header}}\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, isValidElement, 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 === null || isValidElement(fallback)) {\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 = ({ width, label }) => {\n return (\n
    \n
    \n
    \n
    \n
    {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} 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\";\n\nexport const HeaderRightBlock = () => {\n const location = useLocation();\n const questionnaireContext = useQuestionareContext();\n const { signOutFromAccount } = useAuthenticate();\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 {\n user: { firstName, lastName },\n registrationId,\n } = AppState;\n\n const studentName = `${firstName} ${lastName ? lastName : \"\"}`;\n\n const { modalState, onOpenModal, onCloseModal, profileQuery } =\n useProfileDropDown({ load: !isQuestionnairePages });\n\n useEffect(() => {\n onCloseModal();\n }, [location.pathname]);\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 === \"logoutModal\" && (\n \n \n {\n signOutFromAccount.mutate();\n }}\n >\n Log out\n \n \n }\n />\n )}\n \n )}\n \n );\n};\n","import { useProfileQuery } from \"modules\";\nimport { useModal } from \".\";\n\nexport const useProfileDropDown = ({ load = false }) => {\n const { modalState, onOpenModal, onCloseModal } = useModal();\n\n const profileQuery = useProfileQuery({ load });\n\n return {\n modalState,\n onCloseModal,\n onOpenModal,\n profileQuery,\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 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 } 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\n return (\n <>\n
    \n
    \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 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 [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